Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования Национальный Исследовательский Университет «Высшая школа экономики» Факультет информационных технологий и вычислительной техники Кафедра информационных технологий и автоматизированных систем Программа дисциплины «Технология разработки программного обеспечения» для направления 230100.68 – Информатика и вычислительная техника подготовки магистра Автор программы Доцент, к.т.н. Э.С. Клышинский [email protected] Рекомендована профессиональной коллегией УМС по направлению «Информатика Одобрена на заседании кафедры «Информационные технологии и автоматизированные системы» Председатель ________________ ______________ Зав. кафедрой ________________ С.Р. Тумковский "____" _________________ 2012 г. "____" _________________ 2012 г. Москва – 2012 2 I. Пояснительная записка Автор программы: доцент, к.т.н. Э.С. Клышинский Общие сведения об учебном курсе Дисциплина читается студентам магистратуры кафедры «Информационные технологии и автоматизированные системы» факультета информационных технологий и вычислительной техники НИУ ВШЭ. Она является обязательной дисциплиной профессионального цикла, и читается в первом и втором модулях первого учебного года. Количество кредитов – 5. Продолжительность курса составляет 64 аудиторных учебных часов, в том числе: 32 часа лекционных занятий, 32 часа практических занятий и 116 часов самостоятельной работы, всего 180 часа. Контроль – домашнее зачет и экзамен. Требования к студентам Изучение дисциплины базируется на знаниях, полученных студентами при освоении учебных дисциплин в рамках обучения на степень бакалавра. Цель курса Целью преподавания дисциплины “Технология разработки программного обеспечения” является изучение теоретических основ построения программного обеспечения различного назначения, а также обеспечения его жизненного цикла. Аннотация Предлагаемый курс позволяет получить основные знания о видах жизненного цикла программного обеспечения, особенностей выбора жизненного цикла в зависимости от поставленных задач. В рамках изучения курса проводится деловая игра в рамках которой студенты выполняют различные роли, обеспечивающие жизненный цикл разработки программного обеспечения. Учебные задачи курса В результате прохождения учебного курса студенты должны знать: основные этапы жизненного цикла программного обеспечения в соответствии с разными методиками; последовательность проведения этапов в соответствии с различными методологиями; предназначение основных инструментальных средств, предназначенных для разработки программного обеспечения; основные риски при разработке программного обеспечения и методы их избегания. иметь представление о проблемах и основных направлениях развития информационных технологий и систем, принципах построения программного обеспечения и его вариантах разработки. 3 уметь: проводить обоснованный выбор методологии разработки программного обеспечения; работать над разработкой программного обеспечения в рамках любого из этапов; использовать в своей работе правильно выбранные инструментальные средства; работать в команде над проектом. IΙ. Тематический план учебной дисциплины № п/п Наименование тем 1 Тема 1. Введение 2 Тема 2. Ведение документации по проекту Тема 3. Классические модели разработки программного обеспечения Тема 4. Гибкие методики разработки программного обеспечения Тема 5. Стандарты обеспечения качества Тема 6. Инструментальные средства разработки программного обеспечения Тема 7. Вопросы кадрового менеджмента при разработке программного обеспечения 3 4 5 6 7 Итого: Всего часов Аудиторные часы Самостоятельная работа Лекции Практич. занятия 12 2 2 8 24 4 4 16 28 6 6 16 32 6 6 20 24 4 4 16 32 4 4 24 28 6 6 16 180 32 32 116 ΙΙΙ. Формы контроля Оценки текущего и итогового контроля складываются из следующих элементов: - текущий контроль: оценка качества подготовки и работы на семинарских занятиях в ходе выполнения деловой игры (доклады, презентации, оппонирование, критические выступления, выполнение домашних работ); - итоговый контроль: зачет в конце 1 модуля в форме отчета по проекту; теоретический экзамен в конце 2 модуля. 4 итоговая оценка за дисциплину К в первом семестре по 10-балльной шкале формируется как взвешенная сумма: K = 0,7 ∙ Тек +0,3 ∙ З, где Тек и З – 10-балльные оценки за текущую успеваемость и за зачет соответственно с округлением до целого числа баллов. При 10-балльной оценке оценка за зачет должна быть не менее 4 баллов, в противном случае оценкой за модуль является «незачет». итоговая оценка за дисциплину К во втором семестре по 10-балльной шкале формируется как взвешенная сумма: K = 0,7 ∙ Тек +0,3 ∙ Экз, где Тек и Экз – 10-балльные оценки за текущую успеваемость и за экзамен соответственно с округлением до целого числа баллов. При 10-балльной оценке оценка за зачет должна быть не менее 4 баллов, в противном случае оценкой за модуль является «незачет». Перевод в пятибалльную оценку осуществляется в соответствии со следующей таблицей: Таблица Соответствие оценок по десятибалльной и пятибалльной системам По десятибалльной шкале 1 – неудовлетворительно 2 – очень плохо 3 – плохо 4 – удовлетворительно 5 – весьма удовлетворительно 6 – хорошо 7 – очень хорошо 8 – почти отлично 9 – отлично 10 – блестяще По пятибалльной шкале неудовлетворительно – 2 удовлетворительно – 3 хорошо – 4 отлично – 5 ΙV. Базовые учебники 1. Брукс Ф. Мифический человеко-месяц / Символ, С-Пб.: 2000. 2. Липаев В.В. Системное проектирование сложных программных средств для информационных систем / Синтег, М.: 1999. 3. Салливан Э. Время – деньги / Русская редакция Microsoft, М.: 2002. 4. Йордон Э. Путь камикадзе / Лори, М.: 2003. 5. Бобровский С. Технологии Пентагона на службе российских программистов. Программная инженерия / Питер, СПб.: 2003. 6. Humphrey W.S. Managing the software process / Addison-Wesley, Boston: 1990 5 7. Ховард М., Лебланк Д. Защищенный код / Русская редакция Microsoft, М.: 2004. V. Содержание программы Тема 1. Введение Понятие жизненного цикла. Сложность разработки программного обеспечения. Место разработки программного обеспечения в современных технологиях. Основная литература 1. Брукс Ф. Мифический человеко-месяц / Символ, С-Пб.: 2000. 2. Салливан Э. Время – деньги / Русская редакция Microsoft, М.: 2002. Дополнительная литература 1. Липаев В.В. Системное проектирование сложных программных средств для информационных систем / Синтег, М.: 1999. 2. Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения / М.: Форум, 2008. С. 400. Тема 2. Ведение документации по проекту Виды документации на программное обеспечение. Требования ГОСТ по составу документации и ее оформлению. Состав технического задания, проектной документации, пользовательской документации, цели оформления различных документов. Альтернативные стандарты оформления документации. Документация в составе Rational Unified Process и Microsoft Solution Framework. Основная литература 1. Липаев В.В. Системное проектирование сложных программных средств для информационных систем / Синтег, М.: 1999. 2. ГОСТ 34.601-90 3. ГОСТ Р ИСО/МЭК 12207 (ISO/IEC 12207) Дополнительная литература 1. Rational Unified Process http://www-01.ibm.com/software/rational/rup/ 2. Microsoft Solutions us/library/bb668991.aspx Framework http://msdn.microsoft.com/en- 3. Технологии командной разработки программного обеспечения информационных систем http://www.intuit.ru/studies/courses/4806/1054/info Тема 3. Классические модели разработки программного обеспечения Этапы разработки программного обеспечения: анализ, проектирование, разработка, тестирование, внедрение и поддержка. Цели, задачи, характеристики и особенности каждого из этапов. Каскадная модель разработки программного обеспечения, модель с возвратами, области их применения, достоинства и недостатки. 6 Основная литература 1. Липаев В.В. Системное проектирование сложных программных средств для информационных систем / Синтег, М.: 1999. 2. Салливан Э. Время – деньги / Русская редакция Microsoft, М.: 2002. Дополнительная литература 3. ГОСТ 34.601-90 4. ГОСТ Р ИСО/МЭК 12207 (ISO/IEC 12207) Тема 4. Гибкие методики разработки программного обеспечения Итерационные методики разработки программного обеспечения. Сложности работы с классическими методиками и необходимость введения гибких. Метод расширения ядра. Итерационный метод разработки. Гибкие методики разработки программного обеспечения. Технология Agile, ее основные принципы. Методологии, относящиеся к гибким. Экстремальное программирование. Методология SCRUM. Основная литература 1. Салливан Э. Время – деньги / Русская редакция Microsoft, М.: 2002. 2. Бобровский С. Технологии Пентагона на службе российских программистов. Программная инженерия / Питер, СПб.: 2003. Дополнительная литература 3. http://project.mentoors.com/?cat=48 4. Вольфсон Б. Гибкие методологии lib.ru/books/10/Gibkie-metodologii.pdf разработки / http://adm- Тема 5. Стандарты обеспечения качества Необходимость оценки качества. Методология CMM. Пять уровней зрелости компании, их основные отличия. Группа стандартов ИСО-9000. Необходимость непрерывного контроля качества. Методика обеспечения качества на всех этапах существования продукта по ИСО-9000. Особенности реализации программных проектов. Реинжиниринг бизнес-процессов, его цели и задачи, сложность проведения реинжиниринга бизнес-процессов. Основная литература 1. Денис М. Ахен, Арон Клауз, Ричард Тернер CMMI: Комплексный подход к совершенствованию процессов. Практическое введение в модель. - М: «МФК», 2005, 300 с. Дополнительная литература 2. Ahern D.M., Clouse A., Turner R. CMMI Distilled: A Practical Introduction to Integrated Process Improvement, 3rd Edition 7 Тема 6. Инструментальные средства разработки программного обеспечения Необходимость использования инструментальных средств при разработке программного обеспечения. Основные ошибки при использовании инструментальных средств. Виды инструментальных средств. Характеристики основных существующих инструментальных средств в зависимости от этапа жизненного цикла программного обеспечения. Основная литература 1. Салливан Э. Время – деньги / Русская редакция Microsoft, М.: 2002. Тема 7. Вопросы кадрового менеджмента при разработке программного обеспечения Команда разработчиков в небольшом проекте. Необходимость включения в команду различных специалистов. Команда большого проекта. Масштабируемость команды. Кадровая политика компании. Экстремальные ситуации: определение экстремальной ситуации, Методы действия в экстремальной ситуации. Методы предотвращения экстремальных ситуаций. Основная литература 1. Салливан Э. Время – деньги / Русская редакция Microsoft, М.: 2002. 2. Рейнвотер Дж. Как пасти котов. Наставление для программистов, руководящих другими программистами / СПб.: Питер. 2006. С. 256. 3. Йордон Э. Путь камикадзе / Лори, М.: 2003. Оценка качества освоения дисциплины Зачет Зачет проводится в форме устной беседы в ходе которой студенты опрашиваются в соответствии с их ролями в деловой игре. Экзамен Зачет проводится в форме устной беседы в ходе которой студенты опрашиваются в соответствии с их ролями в деловой игре. Кроме того, проводится устный опрос по вопросам, обсуждавшимся в лекциях. Автор программы Э.С. Клышинский