Разработка сложных программных изделий

Модель жизненного цикла программного изделия


Многолетний мировой опыт разработки средств программного обеспечения ЭВМ позволил выделить несколько общепринятых мо­делей (парадигм) создания сложных программных систем. Эти мо­дели предназначены для установления четкой регламентации эта­пов и содержания работ на каждом этапе, методов и процедур вы­полнения самих работ, состава и содержания разрабатываемой до­кументации. Четко определенные модели позволяют существенно повысить эффективность процесса разработки сложных программ­ных комплексов, оптимально организовать управление разработ­кой, планирование и контроль за сроками выполнения отдельных этапов, правильно распределить работы в коллективе разработчи­ков. В результате удается заметно снизить затраты на разработку программного изделия и повысить качество продукта.

Одна из наиболее распространенных моделей — модель жизнен­ного цикла программного изделия. В различных литературных ис­точниках состав фаз (этапов) ЖЦПИ несколько отличается, хотя общая последовательность и содержание основных работ сохраняет основную схему: анализ и выработка требований — проектирова­ние — программирование — тестирование и отладка — эксплуата­ция и сопровождение (см. рис. 2). Эта модель ЖЦПИ получила также название "Водопад", или каскадная модель.

В дальнейшем целесообразно ориентироваться на наиболее со­временный подход, представленный в стандартах на разработку программного обеспечения. Модель ЖЦПИ применима как для разработки программ для индивидуального использования, так и для сложных программных изделий промышленного и коммерчес­кого назначения.

Требования пользователя

Требования к программному изделию

Архитектурное проектирование

Детальное проектирование

Передача в эксплуатацию

Эксплуатация, сопровождение

Рис. 2. Модель жизненного цикла программного изделия

На практике выполнение работ по такой жесткой схеме можно реализовать только для довольно простых программных продуктов, требования пользователя к которым можно с самого начала сфор­мулировать в полном объеме.
В общем случае процесс разработки является итеративным, что показано на рисунке пунктирными ли­ниями. На каждой фазе жизненного цикла могут вноситься измене­ния в принятые решения, что приводит к необходимости возвраще­ния к предыдущим этапам.



Модель ЖЦПИ содержит шесть фаз разработки, для которых в стандартах определены содержание работ, виды деятельности, входные и выходные документы:

1. Определение требований пользователя.

2. Определение требований к программному обеспечению.

3. Архитектурное проектирование.

4. Детальное проектирование и программирование.

5. Передача программного изделия в эксплуатацию.

6. Эксплуатация и сопровождение.

Разработка программного изделия здесь предполагает выполне­ние четко определенных работ. Результаты оформляются в виде со­ответствующих документов и материалов, которые должны быть рассмотрены и одобрены до передачи на следующую фазу. Таким образом, важнейшим видом деятельности на всех этапах жизненно­го цикла является критический и всесторонний обзор и оценка ма­териалов, подготовленных на соответствующей фазе ЖЦПИ. Одобрение этих материалов определяет момент окончания одной фазы и момент начала следующей фазы.

В соответствии со структурой ЖЦПИ при планировании работ и при контроле за сроками их выполнения имеется, по крайней мере, шесть событий, которые характеризуют переход к следующей фазе:

1. Рассмотрение и одобрение требований пользователя.

2. Рассмотрение и одобрение требований к программному изде­лию.

3. Рассмотрение и одобрение архитектурного проекта про­граммного изделия.

4. Рассмотрение и одобрение детального проекта программного изделия, руководства пользователя, программ и утверждение акта о готовности их к приемному тестированию.

5. Утверждение акта о предварительной приемке программного изделия, рассмотрение и одобрение документа о передаче про­граммного изделия в эксплуатацию.

6. Утверждение акта об окончательной приемке и передаче в эксплуатацию программного изделия и принятие документа о ре­зультатах всех работ по созданию программного изделия.


Содержание раздела