Программная инженерия
Кафедра информатики и автоматизации научных исследований
Специальность: Прикладная информатика
Преподаватель: Филимонов А.В.
Целями освоения дисциплины (модуля) «Программная инженерия» являются ознакомление студентов с основными понятиями, методологией и процессами производства сложного программного обеспечения.
В курсе освещается проблематика производства программного обеспечения, приводятся причины и следствия сложности программного обеспечения, приводятся базовые дисциплины процессов производства программного обеспечения, их структура в терминах времени, активностей, производимых и потребляемых артефактов. В курсе рассматривается ряд конкретных модификаций процессов производства программного обеспечения в разрезе вариаций применения описанных техник и методологий.
В результате освоения дисциплины обучающийся должен:
Знать: основы терминологии и методологии производства программного обеспечения; сходства, варианты применения различных типов процессов производства программного обеспечения.
Уметь: Определять тип и конкретную модификацию процесса производства программного обеспечения исходя из структуры конфигурации проекта, определять начало и конец различных стадий процессов, а также диагностировать девиации в случае их присутствия.
Владеть: базовыми средствами языка UML по визуализации моделей объектно-ориентированных программ, приемами проектирования на шаблонных решений, техниками реализации проектных решений на одном из объектно-ориентированных языков программирования.
Содержание
1. Проблемы конструирования сложных программных систем. Сложность программного обеспечения. Простые и сложные программные системы. Сложность реального мира. Трудности управления процессом разработки. Структура сложных систем (примеры, признаки сложных систем, виды сложности). Проектирование сложных систем.
2. Понятие процесса, дисциплины процесса. Процесс. Основные принципы. Микропроцесс проектирования. Макропроцесс проектирования. Концептуализация: вехи, основные виды деятельности, артефакты. Анализ: вехи, основные виды деятельности, артефакты. Проектирование: вехи, основные виды деятельности, артефакты. Эволюция: вехи, основные виды деятельности, артефакты. Сопровождение: вехи, основные виды деятельности, артефакты.
3. Стратегии и методологии конструирования ПО. Классический жизненный цикл. Макетирование. Стратегии конструирования ПО. Быстрая разработка приложений. Спиральная модель. Компонентно-ориентированная модель. Тяжеловесные и облегченные процессы. ХР-процесс.
Лабораторный практикум
- Процесс. Взгляды с различных позиций. Контролируемость и свобода действий.
- Концептуализация: смысл, мера заинтересованности различных ролей процесса.
- Анализ: смысл, мера заинтересованности различных ролей процесса, модели предметной области, способы описания.
- Проектирование: методологии и смысл проектирования, мера заинтересованности различных ролей процесса.
- Эволюция: Структура фазы, артефакты, критерии выхода.
- Сопровождение: сопровождение и сохранение, вопросы целесообразности и стоимости.
Литература
а) основная литература:
- 2007. Object-Oriented Analysis and Design with Applications. Addison-Wesley ISBN 0-201-89551-X
- http://www.extremeprogramming.org/
- http://citforum.ru/SE/project/msf/
- http://www.ibm.com/developerworks/ru/library/kroll/index.html?S_TACT=105AGX99&S_CMP=GR01
б) дополнительная литература:
Отчетность
- Семестр 8: Экз