Разработка программного обеспечения (Software Engineering) Часть 2. Создание ПО
Базовые процессы создания ПО Разработка спецификации Разработка спецификации Проектирование и реализация Проектирование и реализация Аттестация Аттестация Эволюция Эволюция Жизненный цикл ПО – совокупность процессов, протекающих от момента принятия решения о создании ПО до его полного вывода из эксплуатации
Каскадная модель Анализ и формирование требований Проектирование системы и ПО Кодирование и тестирование программных модулей Сборка и тестирование системы Эксплуатация и сопровождение
Достоинства: Документирование каждого этапа Документирование каждого этапаНедостатки: «негибкое» разбиение процесса создания на отдельные этапы «негибкое» разбиение процесса создания на отдельные этапыПрименение: Требования сформулированы достаточно четко. Требования сформулированы достаточно четко. Повсеместно для разработки небольших систем, входящих в состав крупного проекта. Повсеместно для разработки небольших систем, входящих в состав крупного проекта. Каскадная модель
Эволюционная модель Эскизное описание Определение спецификаций Разработка Аттестация Начальная версия Промежуточная версия Конечная версия Выполняются параллельно Прототип – действующий программный модуль, реализующий отдельные функции создаваемого ПО.
Достоинства: Спецификация разрабатывается постепенно, по мере требования заказчика. Спецификация разрабатывается постепенно, по мере требования заказчика.Недостатки: Многие этапы создания ПО не документированы. Многие этапы создания ПО не документированы. Система часто получается плохо структурированной. Система часто получается плохо структурированной. Требуются специальные средства и технологии разработки ПО. Требуются специальные средства и технологии разработки ПО.Применение: Разработка небольших систем (
Формальная разработка Определение требований Формальная спецификация Формальные преобразования Сборка и тестирование Формальная спецификация ПК1ПК2ПКn Исполняемая программа (…) T1T2Tn ПР1ПР2ПРn Процесс формальных преобразований
Преимущества: Точное соответствие программы спецификации. Точное соответствие программы спецификации. Отказ от тестирования отдельных модулей. Отказ от тестирования отдельных модулей. Тестирование всей системы только после ее сборки. Тестирование всей системы только после ее сборки.Недостатки: Требуют специальных знаний и опыта использования. Требуют специальных знаний и опыта использования. Не дают существенного выигрыша в стоимости разработки. Не дают существенного выигрыша в стоимости разработки. Большинство сложных систем с трудом поддаются формальному описанию. Большинство сложных систем с трудом поддаются формальному описанию.Применение: Метод «Чистой комнаты» (IBM). Метод «Чистой комнаты» (IBM). Формальная разработка
Модель пошаговой разработки Определение плана требований Пошаговая детализация требований Разработка системной архитектуры Шаг разработки Шаг аттестации Шаг сборки Аттестация системы Конечная система На каждом шаге отсутствует требование использования одного и того же подхода к процессу разработки!
Достоинства: Нет необходимости ждать полного завершения разработки системы. Нет необходимости ждать полного завершения разработки системы. Можно использовать компоненты, полученные на первых шагах, как прототипы. Можно использовать компоненты, полученные на первых шагах, как прототипы. Уменьшается риск общесистемных ошибок. Уменьшается риск общесистемных ошибок. Системные сервисы с высоким приоритетом разрабатываются первыми, а все последующие интегрируются с ними. Это позволяет снизить вероятность программных ошибок в особо важных частях системы. Системные сервисы с высоким приоритетом разрабатываются первыми, а все последующие интегрируются с ними. Это позволяет снизить вероятность программных ошибок в особо важных частях системы.Недостатки: Компоненты, получаемые на каждом шаге, имеют небольшой размер. Компоненты, получаемые на каждом шаге, имеют небольшой размер. Сложно определить на первых этапах общесистемные функции. Сложно определить на первых этапах общесистемные функции. Невозможно сразу определить набор базовых свойств, которые зачастую разрабатываются совместно с другими частями системы. Невозможно сразу определить набор базовых свойств, которые зачастую разрабатываются совместно с другими частями системы. Модель пошаговой разработки
Спиральная модель Анализ рисков Анализ рисков Анализ рисков Анализ рисков Прототип 1 Прототип 2 Прототип 3 Функциональный прототип Определение общих требований Анализ требований Проектирование КодированиеТестированиеПродукт Детализация проекта Имитация, моделирование, аттестация Планирование сборки и тестирование Планирование разработок Планирование требований и жизненного цикла Анализ Планирование следующей итерации Разработка и тестирование продукта на очередной итерации Определение целей, альтернатив и ограничений Оценка альтернатив, оценка и разрешение рисков
Достоинства: Нет фиксированных этапов. Нет фиксированных этапов. Эта модель может включать в себя любые другие модели на каждом витке спирали – Эта модель может включать в себя любые другие модели на каждом витке спирали – прототипирование может использоваться при нечетком определении требований; прототипирование может использоваться при нечетком определении требований; Каскадная модель в случае последовательного выполнения некоторых этапов; Каскадная модель в случае последовательного выполнения некоторых этапов; Модель формальных преобразований – если четко сформулированы требования. Модель формальных преобразований – если четко сформулированы требования.Недостатки: Сложна автоматизация процессов разработки. Сложна автоматизация процессов разработки. Огромная роль при разработке системы отводится управлению проектом. Огромная роль при разработке системы отводится управлению проектом. Спиральная модель