МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное образовательное учреждение высшего профессионального образования
«Новосибирский государственный университет» (НГУ)
Факультет информационных технологий
УТВЕРЖДАЮ
_
« _» _ 20_г.
РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
Управление производственным процессом разработки ПО (наименование дисциплины)НАПРАВЛЕНИЕ ПОДГОТОВКИ 230100 «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
Квалификация (степень) выпускника Бакалавр Форма обучения очная Новосибирск Программа дисциплины «Управление производственным процессом разработки ПО» составлена в соответствии с требованиями ФГОС ВПО к структуре и результатам освоения основных образовательных программ бакалавриата по Профессиональному циклу по направлению подготовки «Информатика и вычислительная техника», а также задачами, стоящими перед Новосибирским государственным университетом по реализации Программы развития НГУ.Автор (авторы): Мухортов Вячеслав Викторович (ФИО, ученая степень, ученое звание) Факультет Информационных Технологий Кафедра Общей Информатики 1. Цели освоения дисциплины (курса) Необходимость для выпускников «доучиваться» на первом месте работы давно и повсеместно является узким местом высшей школы, как в России, так и за рубежом.
Часто приходится слышать избитые фразы о том, что «единственное, чему учит ВУЗ – это учиться», причем проблема заключается не в недостатке у выпускника теоретических знаний, а в отсутствии навыка их применения на практике, в неумении вписать свои обширные познания в реальный технологический процесс.
Применительно к сфере информационных технологий, проблему следует уточнить следующим образом: выпускник специальности «информатика и вычислительная техника», если и знаком с производственным процессом, используемым в индустрии разработки программного обеспечения (при наличии в программах кафедр соответствующих спецкурсов), то никогда не применял их на практике в процессе коллективной работы над проектом.
Проблема усугубляется сложившейся практикой выставления оценок в ВУЗе:
оценки строго индивидуальны, студент мотивирован только на личные достижения, привыкает работать в одиночку. По этой же причине дипломный проект, как правило, выполняется отнюдь не в «проектном» режиме – студент решает строго определенную задачу и успешность его «проекта» не зависит от успешности работ других членов коллектива, то есть дипломная практика не дает будущему специалисту один из необходимейших практических навыков: умение работать в команде. В то же время в реальном производстве время программистов-одиночек давно прошло, и для успеха проекта имеет значение только конечный результат коллективной работы.
Курс «Управление производственным процессом разработки ПО» ставит целью решить наиболее болезненную проблему будущего выпускника-бакалавра: получение первого практического навыка коллективного выполнения проекта по разработке программного обеспечения, в соответствии с технологическим процессом, принятым в индустрии, а также ознакомление студентов с современными методами управления проектами по разработке программного обеспечения.
Уникальность курса заключается в соединении практических занятий магистрантов, проходящих курс «Управление ИТ проектом» и бакалавров данного курса: магистранты участвуют в учебном проекте в роли менеджеров, бакалавры – в ролях архитектор, разработчик, тест-дизайнер и т.д.
2. Место дисциплины в структуре образовательной программы Дисциплина относится к разделу Б.1.В.7 «Вариативная часть» образовательной программы.
Курс проводится в 7 семестре, что даёт студентам возможность самостоятельно выбрать наиболее подходящие для выполнения курсового проекта языки программирования и методологии разработки программ, изученные за прошлые годы обучения на курсах: «Языки высокого уровня», «Объектно-ориентированное программирование», «Объектно-ориентированный анализ и проектирование».
Материал курса «Объектно-Ориентированное программирование» необходим в полном объеме, т.к практическая часть курса требует от студента знания современных технологий разработки ПО (С++/Java/C#). Теоретическая часть курса предполагает предварительное знакомство студентов с современными процессами разработки и моделирования ПО, преподаваемыми в курсе «Объектно-Ориентированный Анализ и Дизайн».
Материал курса «Управление производственным процессом разработки ПО» является необходимым для успешного прохождения производственной практики, а также дальнейшей работы выпускника в должностях «инженер-программист», «Java-разработчик», «С++-разработчик», «C#-разработчик», «Web-разработчик», «системный аналитик», «бизнес-аналитик», заявленных как целевые в п 2.1 Область профессиональной деятельности выпускника Основной Образовательной Программы высшего профессионального образования по направлению «230100 ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА».
3. Компетенции обучающегося, формируемые в результате освоения дисциплины В результате освоения дисциплины у обучающегося формируются следующие компетенции:
ПК-23 Знает методы и средства организации коллективной работы над проектом по разработке ПО ПК-29 Готов к командному стилю работы - выполнять профессиональные функции в составе коллектива исполнителей ПК-67 Умеет выбирать парадигму программирования в зависимости от уровня изученности класса решаемых задач и модели жизненного цикла разрабатываемой информационной системы ПК-68 Умеет применять современные методы организации и планирования производства программного обеспечения В результате освоения дисциплины студент должен:
Знать: Основные фазы процесса разработки ПО; распределение ролей в проектной Уметь: Проводить декомпозицию проекта на задачи, составлять план проекта, проводить оценку трудозатрат и рисков, выбирать стратегию управления рисками проекта Владеть: средством планирования проектов MS Project или OpenProj; инструментом контроля версий SVN 4. Структура и содержание дисциплины Структура дисциплины Общая трудоемкость дисциплины составляет 3 зачетных единицы, 108 часов, из них 1 зачетная единица (36 аудиторных часов) – лекции и семинары, и 2 зачетных единицы (72 часа) самостоятельной работы.
проекта и формирование команд лективной разработки ПО контроля хода выполнения проекта Содержание курса лекций 1. Введение в управление проектами a. Понятие проекта, проектное управление как область знаний, терминология b. Модели жизненного цикла ИТ проекта: каскадная, итеративная и инкрементная модели. Agile и RUP методологии.
c. Цикл управления ИТ проектом d. Авторское право в контексте ИТ 2. Инструменты коллективной разработки ПО:
a. Системы контроля версий (SVN, CVS) b. Системы багтрекинга (Bugzilla, JIRA) 3. Планирование проекта a. Понятие плана, задачи процесса планирования, мета-план: план составления плана b. Представление планов: сетевые и Гантт-диаграммы, связи и ограничения задач, распределение ресурсов c. Методы проведения оценки задач проекта: аналоговая, параметрическая, d. PERT-анализ e. Критический путь проекта, управление критическим путем 4. Обеспечение качества a. Роли тест-дизайнера и тестировщика, разработка тест-сценариев b. Важность ревью кода и архитектуры в обеспечении качества ПО 5. Управление рисками a. Определение риска по PMI, типы и характеристики рисков b. Типичные риски ИТ разработки c. Понятие управления риском – планирование срывов плана d. Методы идентификации, качественной и количественной оценки рисков e. Стратегии управления риском: сдерживание, избежание, принятие, передача. Влияние стратегий на бюджет проекта 6. Методы текущего контроля хода выполнения проекта a. Задачи контроля, контроль темпов работ и бюджета проекта b. Контроль темпов работ: Tracking Gannt, понятие baseline c. Комплексный метод контроля (темпы и бюджет): отчеты по сметной стоимости, отклонение стоимости и расписания, индексы выполнения бюджета d. Ловушка 90% завершенности проекта 5. Образовательные технологии В курсе использованы следующие образовательные технологии:
1. Лекции. Презентации лекций доступны студентам на сайте курса. Приветствуется предварительная распечатка студентом презентаций и добавление комментариев по ходу лекции непосредственно на распечатку слайдов, что позволяет не тратить время на переписывание и перерисовывание в конспекты диаграмм, графиков и тезисов.
2. Семинары. В ходе семинаров производится обсуждение проектов с преподавателем и с другими студентами группы. Задачей преподавателя на семинарах является помощь в выборе подходящей технологии и установке правильного объема функциональных требований, реализуемого командой в течение 1 семестра.
3. Самостоятельная работа. В процессе самостоятельной работы студенты выполняют проект группами по 4-5 человек, причем в качестве руководителей проекта выступают студенты магистратуры – слушатели курса «Управление ИТ проектами». В ходе работы над проектом студенты обучаются инструментам организации коллективной работы: репозиторий исходных текстов и документов проекта (на базе SVN), учатся документировать проектное решение (для составления документации студентам предлагаются шаблоны проектной документации, составленные на основе использующихся в индустрии), для обсуждения проекта студенты организуют Google Groups.
6. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины и учебно-методическое обеспечение самостоятельной работы студентов В целях обеспечения текущего контроля успеваемости студентов в течение семестра работа над проектом разбивается на этапы, с приемкой каждого этапа преподавателем на семинарах.
Этап 1: Vision проекта Этап 2: Техническое задание, включающее описание требований, план проекта, анализ рисков, оценку трудозатрат.
Этап 3: Защита проекта Тема проекта предлагается группой студентов (проектная команда) и согласуется с преподавателем на семинаре. При согласовании проекта преподаватель, основываясь на своем опыте в разработке ИТ проектов, ограничивает объем проекта до уровня, реализуемого командой в пределах 1 семестра.
На каждом из этапов производится оценка преподавателем достигнутых результатов, выдача рекомендаций по исправлению допущенных недочетов. Итоговая оценка выставляется после защиты проектной командой завершенного проекта, на основании оценки личного вклада студента в реализацию проекта и ответов на теоретические вопросы.
Примерный перечень теоретических вопросов к зачету:
1. Управление конфигурацией. Задачи, методы и технические средства.
2. Определение проекта по PMI. Планирование. Задачи планирования. WBS.
Связи задач.
3. Критический путь проекта. Определение. Методы управления.
4. PERT анализ. Применение при расчете бюджета проекта.
5. PERT анализ. Расчет запаса для управления критическим путем.
6. Управление рисками. Определение, классификация рисков по PMI. Типичные риски ИТ-проекта и типичные стратегии управления.
7. Авторские права разработчика и заказчика ПО.
8. Контроль хода выполнения проекта. Отчеты по сметной стоимости выполненных работ. Методика расчета, применение.
7. Учебно-методическое и информационное обеспечение дисциплины а) основная литература:
1. PMBOK – Project Management Body of Knowledge, USA, 2. Лекции по управлению ИТ проектами. http://inteks.ru/PM/, Мухортов В.В 3. Лекции по инструментам управления конфигурацией, Иртегов Д.В, http://parallels.nsu.ru/~fat/subversion.ppt 4. Rational Unified Process, www.rational.com 5. Управление версиями в Subversion, http://svnbook.red-bean.com/ 6. Документация по Bugzilla: http://www.bugzilla.org/docs/ б) дополнительная литература:
1. Project Management, Clifford F.Gray, Erik W.Larson, Irwin McGraw-Hill, USA, 2. Structured Computer Project Management, W.Roetzheim, Prentice Hall, в) программное обеспечение и Интернет-ресурсы:
1. UML редактор ASTAH Community edition (бесплатное ПО) 2. Microsoft Office Word (коммерческое ПО) или Open Office (бесплатное ПО) 3. Microsoft Project (коммерческое ПО) или OpenProj (бесплатное ПО) 4. SVN-сервер на UNIX-сервере ФИТ (бесплатное ПО) 5. Tortoise SVN-клиент (бесплатное ПО) 6. сайт с материалами курса: http://www.inteks.ru/PM/ 8. Материально-техническое обеспечение дисциплины Для проведения курса требуются следующие технические ресурсы:
1. Терминальный класс с компьютерами на базе процессоров не хуже P-IV 3Hz, 2. Программное обеспечение компьютеров терминального класса:
a. операционная система Microsoft Windows (XP,Vista, Win7) или Linux b. Программное обеспечение J2SE 1.6 (бесплатное ПО) c. UML редактор ASTAH Community edition (бесплатное ПО) d. Microsoft Office Word (коммерческое ПО) или Open Office (бесплатное e. Microsoft Project (коммерческое ПО) или OpenProj (бесплатное ПО) f. Tortoise SVN-клиент на компьютерах терминального класса (бесплатное 3. SVN-сервер на UNIX-сервере ФИТ (бесплатное ПО) Рецензент (ы) _ Программа одобрена на заседании (Наименование уполномоченного органа вуза (УМК, НМС, Ученый совет) от _ года.