Основы программной инженерии

Лектор: Ицыксон В.М.

Жизненный цикл программного обеспечения

История развития подходов к проектированию ПО. Жизненный цикл ПО. Классические методологии проектирования ПО. Водопадная модель и ее разновидности. Спиральная модель проектирования. Прототипирование. Быстрая разработка приложений. Итерационно-инкрементальные подходы. Rational Unified Process (RUP). Гибкие методологии. Экстремальное программирование (XP). Методология SCRUМ.

Управление требованиями и рисками

Выявление и анализ требований. Документирование и организация требований. Изменение и версионирование требований. Трассировка требований. Программные средства управления требованиями. Управление рисками в программных проектах

Управление программными проектами

Процесс проектирования программного продукта. Управление ресурсами. Роли в программных проектах. Отношения между ролями. Управление другими ресурсами.
Проектные активности. Задачи, изменения, дефекты. Временные сущности: этапы и вехи. Способы визуализации плана выполнения программного проекта. Диаграммы Ганта и PERT. Наблюдение за проектом.
Системы управления задачами и дефектами. Понятие дефекта ПО. Характеристики дефектов. Жизненный цикл дефекта. Программные средства управления задачами и дефектами.
Версионирование программных проектов. Задачи совместной работы с проектными артефактами. Системы контроля версий (СКВ. )Централизованные и распределенные СКВ. Инструментальные средства контроля версий.
Сборка программных проектов. Проблемы сборки программных проектов. Окружение для сборки. Утилиты сборки проектов. Версии в программных проектах

Качество программного обеспечения

Проблематика качества ПО. Понятие качества ПО. Характеристики качества ПО: функциональность, надежность, практичность, эффективность, сопровождаемость, мобильность. Стандарты качества ПО.
Оценка качества ПО. Программометрика. Объектно-ориентированные метрики: метрики Чидамбера-Кемерера, метрики Лоренца и Кида, метрики MOOD. Метрики сложности и размера ПО. Аудит программного кода. Отображение программных метрик.

Обеспечение качества программных систем

Методы обеспечения качества ПО. Динамические методы обеспечения качества. Статические методы обеспечения качества. Верификация. Формальная верификация. Метод проверки моделей (Model checking). Статический анализ ПО и обнаружение ошибок. Рефакторинг и модификация программ.
Тестирование ПО. Функциональное и структурное тестирование. Понятие белого и черного ящика. Модульное тестирование. Тестирование интеграции. Системное тестирование: тестирование производительности, стресс-тестирование, тестирование надежности, тестирование безопасности. Регрессионное тестирование. Тестирование приложений с графическим пользовательским интерфейсом. Интегрированные системы тестирования.

Документирование программного обеспечения

Программная документация, виды программных документов. Стандарты документирования. ЕСПД. UML как средство документирования. Автоматизация документирования. Системы Doxygen, JavaDoc. Повторное использование документации. Системы Docbook и DITA. Документирование сложных программных продуктов.