А.Н. Павлов. Высокоуровневые методы информатики и программирования

 

1.1.     Жизненный цикл и этапы разработки программного обеспечения

            Жизненным циклом программного обеспечения называют период от момента появления идеи создания некоторого программного обеспечения (ПО) до момента завершения его поддержки фирмой-разработчиком или фирмой, выполнявшей сопровождение [2]. Структура жизненного цикла программного обеспечения включает три группы взаимосвязанных процессов (основные, организационные и вспомогательные). Процесс жизненного цикла определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными данными и результатами. В группу основных процессов входят такие этапы жизненного цикла программного обеспечения, как: постановка задач, разработка, эксплуатация и сопровождение. Каждый этап сопровождается вспомогательными процессами, задачами которых являются: документирование ведения разработок и созданного программного обеспечения; обеспечение качества ведением разработок; верификация и аттестация программного обеспечения; проведение совместной оценки работоспособности отдельных программных модулей и приложений в целом (аудит системы); разрешение проблем при анализе проводимого вспомогательного процесса. Организационные процессы имеют направленность на свершение действий при учете фазы жизненного цикла существования программного продукта. К основным действиям организационных процессов следует отнести: управление состоянием программного обеспечения (имеется в виду управление процессом разработки, управление процессом эксплуатации, управление процессом обучения и т.п.); усовершенствование программного обеспечения, находящегося в стадии проектирования, разработки, эксплуатации; создание инфраструктуры для поддержки процессов разработки и эксплуатации программного обеспечения; обучение персонала, участвующего не только в разработке программного обеспечения, а также в поддержке ПО на стадии его эксплуатации.

            Процесс разработки (development process) является основным в жизненном цикле ПО, выполняется в соответствии ГОСТ 19.102-77 «Стадии разработки». Процесс разработки предусматривает действия и задачи, выполняемые разработчиком, и охватывает работы по созданию программного обеспечения и его компонентов в соответствии с заданными требованиями, включая оформление проектной и эксплуатационной документации. Составной частью процесса является подготовка материалов, необходимых для проверки работоспособности и соответствия качества программных продуктов, материалов, необходимых для обучения персонала. Под стадиями разработки ПО, следует понимать выполнение определенных этапов, которые включают:

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

            Каскадная модель разработки программного обеспечения предполагает переход на следующую стадию только в том случае, если на предыдущей стадии завершены все проектные операции. Схема каскадной модели жизненного цикла разработки программного обеспечения представлена на рис. 1.

Рис. 1. Каскадная схема разработки программного обеспечения

 

            Модель организации разработки программного обеспечения каскадным методом используют при блочно-иерархическом подходе к разработке сложных технических объектов, в этом случае обеспечивается полный набор проектной документации после завершения каждой стадии, что уменьшает вероятность возникновения проблем при эксплуатации системы (программного обеспечения). Неудобством, указанного подхода является то, что требуется на самой ранней стадии при постановке задачи точно указать все параметры системы и выставить окончательные требования.

Модель с промежуточным контролем. На практике, часто приходится во время разработки пересматривать требования к системе и вносить некоторые изменения, что привело к использованию модели с промежуточным контролем, схема которой представлена на рис. 2.

Рис. 2. Схема разработки программного обеспечения с промежуточным контролем

 

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

    Спиральная (итерационная) модель разработки программного обеспечения и поддержки его жизненного цикла возникла на основе идеологии создания прототипов. Под прототипом следует понимать некоторый базовый продукт, который ложится в основу дальнейшего совершенствования, разработки модификаций различных версий и специализации, в зависимости от назначения применения. Основная идея формирования спиральной модели заключается в том, что созданный ранее программный продукт проходит несколько итераций на всем этапе его жизненного цикла. Схема разработки программного обеспечения на основе спиральной (итерационной) модели представлена на рис. 3.

Рис. 3. Итерационная (спиральная) схема разработки программного обеспечения

 

            Основным достоинством данной схемы является та, что, начиная с некоторой итерации, на которой обеспечена определенная функциональная полнота, продукт можно предоставлять пользователю. В итоге, появляются возможности:

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

 

Hosted by uCoz