Модели жизненного цикла программного обеспечения (Software Life Cycle Models)



Модели жизненного цикла задают высокоуровневое определение фаз (стадий) разработки программного обеспечения. Их целью не является предоставление детального определения, но концентрируется на ключевых работах и их взаимосвязях. Примерами таких моделей* являются водопадная (каскадная - waterfall), модель прототипирования, эволюционной разработки, инкрементальная/итеративная, спиральная и т.п. Существуют различные сравнения и критерии выбора моделей, ссылки на некоторые из которых, в частности, даны в оригинальной версии SWEBOK.

* базовые модели жизненного цикла рассматриваются далее в отдельной дополнительной главе.

Процессы жизненного цикла программного обеспечения (Software Life Cycle Processes)

Определения процессов жизненного цикла обычно являются более детальными, чем модели. Однако, определения процессов не описывают порядка их выполнения во времени (за это как раз и отвечают модели,прим. автора). Это означает, что, в принципе, процессы жизненного цикла программного обеспечения могут быть “выстроены” (во времени) соответственно любой модели жизненного цикла. Основным источником знаний по процессам является стандарт IEEE/ISO/ГОСТ 12207 “InformationTechnology –SoftwareLifecycleProcesses”(основные элементы структуры этого стандарта рассматривается за рамками перевода и комментариев SWEBOK в самостоятельной главе, посвященной жизненному циклу).

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

Стандарт IEEE 1074 “StandardforDevelopingSoftwareLifeCycleProcesses” предоставляет список процессов и действий по разработке и сопровождению программного обеспечения, а также список действий по поддержке самого жизненного цикла, который может быть отображен на процессы и организован таким же образом, как и любая модель жизненного цикла. Кроме того, этот стандарт идентифицирует и связывает другие стандарты IEEE с действиями по поддержке процессов жизненного цикла. В принципе, стандарт IEEE 1074 может быть использован для построения процессов, соответствующих любой модели жизненного цикла.

SWEBOK отмечает два стандарта, связанных с процессами сопровождения программного обеспечения – IEEE 1219 “Standard for Software Maintenance” и ISO 14764 “Standard for Software Engineering -Software Maintenance” (см. область знаний SWEBOK “Сопровождение программного обеспечения”).

Другие важные стандарты, предоставляющие определение процессов, включают:

  • IEEE 1540: Standard for Software Risk Management – управление рисками программного обеспечения
  • IEEE 1517: Standard for Software Reuse Processes – процессы повторного использования программного обеспечения
  • ISO/IEC 15939: Standard for Software Measurement Process – процесс измерений в области программного обеспечения

В ряде ситуаций процессы программной инженерии определяться принимая во внимание организационные процессы управления качеством. ISO 9001 формулирует требования к процессам управления качеством, а ISO 9003 интерпретирует эти требования в отношении организаций, занимающихся разработкой программного обеспечения (ISO/IEC 90003:2004, Software and Systems Engineering - Guidelines for the Application of ISO9001:2000 to Computer Software).

Некоторые процессы жизненного цикла придают особое значение быстрому вводу в эксплуатацию (rapid delivery) программных систем и глубокой вовлеченности пользователей <в процесс разработки>. Такие процессы называют agile-методами – быстрыми, живыми, подвижными. К ним относится, например, экстремальное программирование – eXtreme Programming (XP, см. работы Кента Бека – Kent Beck). Отличительной особенностью этих методов является гибкость в вопросах планирования, когда план проекта активно корректируется по мере продвижения к цели проекта. Другие процессы уделяют специальное внимание принятию решений на основе оценки рисков (см. работы Барри Боэма – Barry W. Boehm).


Дата добавления: 2018-05-12; просмотров: 61; ЗАКАЗАТЬ РАБОТУ