Процессы жизненного цикла программного обеспечения

Скотт Амблер (Scott W. Ambler) [Ambler, 2005], автор концепций и практик гибкого моделирования (Agile Modeling) и Enterprise Unified Process (расширение Rational Unified Process), предлагает следующие уровни жизненного цикла, определяемые соответствующим содержанием работ:

• Жизненный цикл разработки программного обеспечения – проектная деятельность по разработке и развертыванию программных систем

• Жизненный цикл программной системы – включает разработку, развертывание, поддержку и сопровождение

• Жизненный цикл информационных технологий (ИТ) – включает всю деятельность ИТ- департамента

• Жизненный цикл организации/бизнеса – охватывает всю деятельность организации в целом

SWEBOK по сути описывает области знаний жизненного цикла системы и жизненного цикла разработки программного обеспечения.

Фазы и виды деятельности. Говоря о моделях процессов, необходимо различать

фазы и виды деятельности.

Фаза (phase) – это определенный этап процесса, имеющий начало, конец и

выходной результат. Например, фаза проверки осуществимости проекта, сдачи проекта и

т.д. Фазы следуют друг за другом в линейном порядке, характеризуются предоставлением

отчетности заказчику и, часто, выплатой денег за выполненную часть работы.

Редко какой заказчик согласится первый раз увидеть результаты только после

завершения проекта. С другой стороны, подрядчики предпочитают получать деньги

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

появляются фазы, позволяющие создавать и предъявлять промежуточные результаты

проекта. Фазы полезны также безотносительно взаимодействия с заказчиком – с их

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

отслеживать продвижение проекта. Примерами фаз может служить согласование с

заказчиком технического задания, реализация определенной функциональности ПО, этап

разработки, оканчивающийся сдачей системы на тестирование или выпуском альфа-

версии.

Вид деятельности (activity) – это определенный тип работы, выполняемый в процессе разработки ПО. Разные виды деятельности часто требуют разные

профессиональные навыки и выполняются разными специалистами. Например,

управление проектом выполняется менеджером проекта, кодирование – программистом,

тестирование – тестеровщиком. Есть виды деятельности, которые могут выполняться

одними и теми же специалистами – например, кодирование и проектирование (особенно в

небольшом проекте) часто выполняют одни и те же люди.

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

Кроме того, один вид деятельности может выполняться на разных фазах – например,

тестирование: на фазе анализа и проектирования можно писать тесты и налаживать

тестовое окружение, при разработке и перед сдачей производить, собственно, само

тестирование. На настоящий момент для сложного программного обеспечения

используются многомерные модели процесса, в которых отделение фаз от видов

деятельности существенно облегчает управление разработкой ПО.

Виды деятельности, фактически, присутствуют, под разными названиями, в

каждом методе разработки ПО. В RUP они называются рабочими процессами (work flow),

в CMM – ключевыми областями процесса (key process area). Мы будем сохранять

традиционные названия, принятые в том или ином методе, чтобы не создавать путаницы.__

В 1997 году Международная Организация по Стандартизации - ИСО (International Organization for Standardization - ISO) и Международная Электротехническая Комиссия - МЭК (International Electrotechnical Commission - IEC) создали Совместный Технический Комитет по Информационным Технологиям - Joint Technical Committee (JTC1) on Information Technology. Содержание работ JTC1 определено как “стандартизация в области систем и оборудования информационных технологий (включая микропроцессорные системы)”. В 1989 году этот комитет инициировал разработку стандарта ISO/IEC 12207, создав для этого подкомитет SC7 (SuСommittee 7) по программной инженерии. Соответствующий стандарт впервые был опубликован 1-го августа 1995 года под заголовком “Software Life Cycle Processes” – “Процессы жизненного цикла программного обеспечения”. Национальный стандарт [ГОСТ 12207, 1999] получил название “Процессы жизненного цикла программных средств”.

В настоящее время в Росси действует версия международного стандарта ГОСТ Р ИСО/МЭК 12207-2010 "Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств." устанавливает терминологию, общую структуру процессов жизненного цикла программных средств, определяет процессы, виды деятельности и задачи, которые используются при приобретении программного продукта или услуги, а также при поставке, разработке, применении, сопровождении и прекращении применения программных продуктов.

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

Данный стандарт определяет жизненный цикл как структуру декомпозиции работ. Детализация, техники и метрики проведения работ – вопрос программной инженерии. Организация последовательности работ – модель жизненного цикла. Совокупность моделей, процессов, техник и организации проектной группы задаются методологией. В частности, выбор и применение метрик оценки качества программной системы и процессов находятся за рамками стандарта 12207, а концепция совершенствования процессов рассматривается в стандарте ISO/IEC 15504 “Information Technology - Software Process Assessment” (“Оценка процессов <в области> программного обеспечения”).

Необходимо отметить заложенные в стандарте ключевые концепции рассмотрения жизненного цикла программных систем. Стандарт определяет область его применения, дает ряд важных определений (таких, как заказчик, разработчик, договор, оценка, выпуск – релиз, программный продукт, аттестация и т.п.), процессы жизненного цикла и включает ряд примечаний по процессу и вопросам адаптации стандарта. Стандарт описывает 17 процессов жизненного цикла, распределенных по трем категориям – группам процессов (названия представлены с указанием номеров разделов стандарта, следуя определениям на русском и английском языке, определяемыми [ГОСТ 12207, 1999] и оригинальной версией ISO/IEC 12207, соответственно):

5. Основные процессы жизненного цикла - Primary Processes

5.1 Заказ - Acqusition

5.2 Поставка - Supply

5.3 Разработка - Development

5.4 Эксплуатация - Operation

5.5 Сопровождение - Maintenance

6. Вспомогательные процессы жизненного цикла – Supporting Processes

6.1 Документирование - Documentation

6.2 Управление конфигурацией – Configuration Management

6.3 Обеспечение качества – Quality Assurance

6.4 Верификация - Verification

6.5 Аттестация - Validation

6.6 Совместный анализ – Joint Review

6.7 Аудит - Audit

6.8 Решение проблем – Problem Resolution

7. Организационные процессы жизненного цикла – Organizational Processes

7.1 Управление - Management

7.2 Создание инфраструктуры - Infrastructure

7.3 Усовершенствование - Improvement

7.4 Обучение - Training

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: