Технологии конструирования программного обеспечения
Методы, средства, процедуры МЕТОДЫ обеспечивают: планирование и оценка проекта; анализ системных и программных требований; проектирование алгоритмов, структур данных и программных структур; кодирование; тестирование; сопровождение. СРЕДСТВА (УТИЛИТЫ) обеспечивают: автоматизированную или автоматическую поддержку методов. CASE – Computer Aided Software Engineering (программная инженерия с компьютерной поддержкой). Процедуры определяют: порядок применения методов и утилит; формирование отчетов, форм по соответствующим требованиям; Формирование контрольных точек оценки процесса выполнения.
Классический жизненный цикл Системный анализ Тестирование Анализ требований Проектирование Кодирование Сопровождение
Макетирование Сбор и уточнение требований Быстрое проектирование Построение макета Оценка макета заказчиком Уточнение макета Конструирование продукта Продолжить
Инкрементная модель Анализпроектированиекодированиетестирование 1-й инкремент Постановка 1-го инкремента Анализпроектированиекодированиетестирование 2-й инкремент Постановка 2-го инкремента Анализпроектированиекодированиетестирование 3-й инкремент Постановка 3-го инкремента
Быстрая разработка приложений (Rapid Application Development) Бизнес моделирование Тестирование и объединение Моделирование данных Моделирование обработки Генерация приложения Бизнес моделирование Тестирование и объединение Моделирование данных Моделирование обработки Генерация приложения 2-я группа 1-я группа дней
Спиральная модель
Компонентно-ориентированная модель планированиеАнализ риска Оценивание заказчиком Конструирование Идентификация кандидатов в компоненты Поиск Компонентов в библиотеке Извлечение компонентов (если найдены) Построение компонентов (если не найдены) Включение новых компонентов в библиотеку Конструирование N-й итерации системы
eXtreme Programming (XP процесс) 1 Реализация 2 Реализация 3 Реализация 4 Реализация 5 Реализация 6 Реализация 7 Реализация Начальное исследование (exploration) Блокирующие планирование Итерации Исследование итерации (exploration) Блокировка итерации (commitment) Регулирование итерации (steering)
eXtreme Programming (XP процесс) Основные принципы: 1.Игра планирования (Planning game) 2.Частая смена версий (Small releases) 3.Метафора (Metaphor) 4.Простое проектирование (Simple design) 5.Тестирование (Testing) 6.Реорганизация (Refactoring) 7.Парное программирование (Pair programming) 8.Коллективное владение кодом (Collective ownership) 9.Непрерывная интеграция (Continuous integration) часовая неделя (40-hour week) 11.Локальный заказчик (On-site customer) 12.Стандарты кодирования (Coding standards)
Модели качества процессов конструирования ISO/IEC процессы программной разработки ISO 9001: процессы разработки из любых областей человеческой деятельности Capability Maturity Model (СММ) - модель зрелости процесса конструирования ПО института программной инженерии при американском университете Карнеги-Меллон.
Уровни СММ 1. Начальный. Самоорганизующийся хаос. Процесс осуществляется случайным образом 2.Повторяемый. Процесс планируется и отслеживается. 3. Определенный. Процесс полностью распланирован и определен на основе единого стандарта компании 4. Управляемый. Количественное управление процессом 5. Оптимизирующий. Планомерное улучшение и повышение качества процесса