ЖИЗНЕННЫЙ цикл ПРОГРАММНОГО ПРОДУКТА

Понятие жизненного цикла программного продукта

Появление понятия жизненного цикла (ЖЦ) программного продукта (ПП) было связано с кризисом программирования, который наметился в конце 60-х — начале 70-х гг. прошлого века. Суть кризиса состояла в том, что программные проекты все чаще стали выходить из-под контроля: нарушались сроки, превышались запланированные объемы финансирования, результаты не соответствовали требуемым. Многие проекты вообще не доводились до завершения. Ситуация была вызвана ростом сложности проектов, и масштабы ее нарастали, необходимо было принимать меры для радикального усовершенствования принципов и методов разработки ПО с учетом его развития и сопровождения. Заговорили о том, что надо обратиться к опыту промышленного проектирования и производства, где был накоплен опыт успешной разработки не менее сложных проектов.

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

Каждая программная система (ПС) на протяжении своего существования проходит определенную последовательность процессов (этапов), начиная от постановки задачи до ее воплощения в готовую программу, а затем через эксплуатацию — к изъятию. Такая последовательность этапов называется жизненным циклом разработки ПС. На каждом этапе ЖЦ выполняется определенная совокупность процессов и/или подпроцессов, каждый из которых порождает соответствующий промежуточный продукт, используя результаты предыдущего.

Организация промышленного производства с позиции жизненного цикла позволяет рассматривать все его этапы во взаимосвязи, что ведет к сокращению сроков, стоимости и трудозатрат.

Впервые о жизненном цикле ПО заговорили в 1968 г. в Лондоне, где состоялась встреча 22 руководителей проектов по разработке ПО. На встрече анализировались проблемы и перспективы проектирования, разработки, распространения и поддержки программ. Применяющиеся принципы и методы разработки ПО требовали постоянного усовершенствования. Именно на этой встрече была предложена концепция жизненного цикла ПО (SLC — Software Lifetime Cycle) как последовательности шагов-стадий, которые необходимо выполнить в процессе создания и эксплуатации ПО.

В 1970 г. У.У. Ройс (W.W. Royce) произвел идентификацию нескольких стадий в типичном цикле и было высказано предположение, что контроль выполнения стадий приведет к повышению качества ПО и сокращению стоимости разработки.

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

Главными ресурсами разработки ПС в программной инженерии являются сроки, время и стоимость. Правильное использование этих ресурсов на процессах ЖЦ определяет эффективность этой разработки.

Существует общее соглашение о выделении четырех обобщенных фаз жизненного цикла (в скобках приведены используемые в различных источниках альтернативные термины):

  • 1) концепция (инициация, идентификация, отбор);
  • 2) определение (анализ);
  • 3) выполнение (практическая реализация или внедрение, производство и развертывание, проектирование или конструирование, сдача в эксплуатацию, инсталляция, тестирование и т.п.);
  • 4) закрытие (завершение, включая оценивание после завершения).

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

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

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

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

В определенном контексте «модель» и «методология» могут использоваться взаимозаменяемым образом, например при обсуждении разграничения фаз проекта. Говоря «жизненный цикл», мы в первую очередь подразумеваем «модель жизненного цикла». Несмотря на данное в стандартах определение модели жизненного цикла, все же при употреблении слова «модель» чаще подразумевается именно общий принцип организации ЖЦ, чем детализация соответствующих работ. Соответственно, при определении и выборе модели в первую очередь приходится решать вопросы определенности и стабильности требований, жесткости и детализированности плана работ, а также частоты сборки работающих версий создаваемой программной системы.

 
< Пред   СОДЕРЖАНИЕ     След >