 
        
        Лекция № 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), что подходит только к хорошо специфицированным небольшим проектам, в основном прикладным. Сложные системы либо создаются по частям (как город) либо растут (эволюционируют), как природные объекты. 
