Лекция № 2
Жизненный цикл программного продукта (ЖЦ, Life cycle)
Этапы жизненного цикла
Ср. длительность
Разработка (Development): 0,5 - 2 года
Проектирование (Design)
Реализация (Implementation)
Сопровождение (Maintenance) 1- 10 лет
Вопрос 1. (См. В конце лекции)
Этапы разработки
Этап |
Результат |
Трудоемкость (в среднем) |
1. Проектирование |
|
|
1.1 Анализ требований |
Внешняя спецификация (ТЗ) |
10% |
1.2 Общее проектирование |
Внутренние (проектные) спецификации |
10% |
1.3 Детальное проектирование |
20% |
|
2. Реализация |
|
|
2.1 Кодирование |
Исходные тексты программ |
10% |
2.2 Автономное тестирование |
Журналы ошибок (Bug books) |
20% |
2.3 Комплексное тестирование |
30% |
NB: 1. Отладка входит в понятие тестирования
Терминология разнообразна; например, Microsoft называет тестирование - стабилизацией
Спецификация (specification) означает строгое, подробное описание, в отличие от description; по-русски – техническое задание (ТЗ)
4. Указана средняя трудоемкость для систем обработки данных
ЖЦ как путь из реального мира в мир абстракций и обратно:
Реальный мир
Мир идей
Функции:
Что?
Зачем?
Требования
Внешняя спецификация
Программный код
Проект
Алгоритмы:
Как?
Модели жизненного цикла
I. Каскадная (Waterfall) модель жц
Особенности этой канонической модели:
Это дискретный (во времени) технологический процесс с остановками по завершении каждого этапа и возможностью контроля и повторения этапа при неудовлетворительных результатах (т.е., итераций разработки)
Вопросы 2 и 3.
Деление на уровни абстракции позволяет формировать документацию различной степени детализации и формулировать критерии проверки правильности принимаемых решений ДО реализации проекта, что способствует предупреждению ошибок проектирования
Концепция требует не переходить к очередному этапу до полного завершения предыдущего – сильное требование
Очевидно:
Чем раньше допущена ошибка, тем позже она может быть обнаружена
Чем позже обнаружена ошибка, тем дороже ее исправление - больше этапов возврата
Хрестоматийный пример (Mайерс, «Надежность ПО», 1986 г.) - команда ценой в 110 тыс.$: в готовом софте бортового истребителя на стадии летных испытаний была обнаружена ошибка, для исправления которой было изменено 9 команд, а заплатили за эту работу 1 млн. $.
Поэтому цель хорошей технологии - возможно более раннее выявление и предупреждение ошибок, что достигается тщательным проектированием !
Недостатки каскадной модели:
Навязывается стратегия проектирования сверху вниз (top-down), что подходит только к хорошо специфицированным небольшим проектам, в основном прикладным. Сложные системы либо создаются по частям (как город) либо растут (эволюционируют), как природные объекты.