ЗАМЕЧАНИЕ
Был даже придуман специальный термин — продолжающаяся разработка, который
включает в себя как разработку в обычном смысле, так и модификацию программы
(и другие действия) в процессе эксплуатации. Для краткости мы предлагаем вам
понимать термин "процесс разработки" в широком смысле, включая в него все
действия, которые производятся с приложением – проектирование, кодирование,
отладка, внедрение и т. д.
В результате понятия жизненного цикла и процесса разработки можно считать
равнообъемными, даже можно сказать, что это две стороны одного понятия. Когда
мы говорим "жизненный цикл", мы смотрим на предмет как бы с точки зрения
программы, которая пассивно переживает одно состояние за другим, а когда мы
говорим "процесс разработки", мы смотрим на тот же самый предмет с точки
зрения программиста, который активно выполняет одно действие за другим.
Жизненный цикл и процесс разработки каждого конкретного приложения
индивидуальны, и потому они не представляют большого интереса. Для широкого
круга потребителей более интересно рассмотреть модели жизненного цикла и
процесса разработки.
ЗАМЕЧАНИЕ
Здесь слово "модель" используется в обычном смысле – как абстрактное описание
некоторого явления, в котором существенные закономерности учтены, а
несущественные детали опущены. Не следует путать это с моделями UML, о
которых идет речь в других местах книги.
Модель жизненного цикла и модель процесса разработки взаимно определяют друг
друга и являются согласованными. В каждой организации, которая
специализируется на разработке программного обеспечения, и даже у особо
продвинутых программистов-одиночек (далее такая организация или человек
называются обобщенно — разработчик), существуют свои собственные модели
жизненного цикла и процесса разработки. Конечно, в большинстве случаев они
оказываются очень близки, но все-таки имеют некоторые индивидуальные
особенности. Мы рассматриваем те модели жизненного цикла и процесса
разработки, которые используем сами, стараясь, по возможности, опускать влияние
на них наших собственных индивидуальных особенностей. От этого наше
рассмотрение становится более абстрактным, но, одновременно, более широко
применимым. Вы можете приспосабливать наши модели к своим нуждам, меняя их
в соответствии с конкретными обстоятельствами.
Мы используем модель процесса разработки приложений, основанную на понятиях
фаза и веха. Большинство современных моделей процесса разработки также
основаны на этих понятиях.
Веха — это одномоментное идентифицируемое событие в процессе разработки,
сопровождающееся появлением и фиксацией некоторого отчуждаемого артефакта
(документа, программы,
и др.). Фаза
4
— это часть процесса, во время которой
выполняются определенные функции с целью достижения определенной вехи.
Таким образом, веха наступает в конце фазы и является определяющим признаком
фазы. Очень важным является то обстоятельство, что фазы и вехи не обязательно
4
Иногда с той же целью используют слова "стадия" или "этап". В этой книге используется слово
"фаза", потому что оно кажется нам более выразительным.