11-software_lifecycle_models (1133551), страница 2
Текст из файла (страница 2)
Основные процессы жизненного цикла - Primary Processes5.1 Заказ - Acqusition5.2 Поставка - Supply5.3 Разработка - Development5.4 Эксплуатация - Operation5.5 Сопровождение - Maintenance6. Вспомогательные процессы жизненного цикла – Supporting Processes6.1 Документирование - Documentation6.2 Управление конфигурацией – Configuration Management6.3 Обеспечение качества – Quality Assurance6.4 Верификация - Verification6.5 Аттестация - Validation6.6 Совместный анализ – Joint Review6.7 Аудит - Audit6.8 Решение проблем – Problem Resolution7.
Организационные процессы жизненного цикла – Organizational Processes7.1 Управление - Management7.2 Создание инфраструктуры - Infrastructure7.3 Усовершенствование - Improvement7.4 Обучение - TrainingСтандарт определяет высокоуровневую архитектуру жизненного цикла. Жизненный циклначинается с идеи или потребности, которую необходимо удовлетворить с использованиемпрограммных средств (может быть и не только их).
Архитектура строится как набор процессов ивзаимных связей между ними. Например, основные процессы жизненного цикла обращаются квспомогательным процессам, в то время, как организационные процессы действуют на всемпротяжении жизненного цикла и связаны с основными процессами.Дерево процессов жизненного цикла представляет собой структуру декомпозиции жизненногоцикла на соответствующие процессы (группы процессов).
Декомпозиция процессов строится наоснове двух важнейших принципов , определяющих правила разбиения (partitioning) жизненногоцикла на составляющие процессы. Эти принципы:Модульность задачи в процессе являются функционально связанными; связь между процессами – минимальна; если функция используется более, чем одним процессом, она сама является процессом; если Процесс Y используется Процессом X и только им, значит Процесс Y принадлежит(является его частью или его задачей) Процессу X, за исключением случаевпотенциального использования Процесса Y в других процессах в будущем.Ответственность каждый процесс находится под ответственностью конкретного лица (управляется и/иликонтролируется им), определенного для заданного жизненного цикла, например, в видероли в проектной команде; функция, чьи части находятся в компетенции различных лиц, не может рассматриватьсякак самостоятельный процесс.Copyright © Сергей Орлик, 2005-2010.http://swebok.sorlik.ru4Основы программной инженерии (по SWEBOK)Модели жизненного цикла программного обеспеченияОбщая иерархия (декомпозиция) составных элементов жизненного цикла выглядит следующимобразом: группа процессовo процессы работы задачиВ общем случае, разбиение процесса базируется на широко распространенном PDCA-цикле: “P” – Plan – Планирование “D” – Do – Выполнение “C” – Check – Проверка “A” – Act – Реакция (действие)Рассмотрим вкратце, какие работы составляют процессы жизненного цикла, помня, что полноеопределение работ, как и определение составляющих их задач, дано непосредственно встандарте.
Ниже приведен краткий обзор основных процессов жизненного цикла, явнодемонстрирующий связь вопросов, касающихся непосредственно самой программной системы, ссистемными аспектами ее функционирования и обеспечения ее эксплуатации.Основные процессы жизненного цикла (5)Приобретение (5.1)Процесс приобретения (как его называют в ГОСТ – “заказа”) определяет работы и задачизаказчика, приобретающего программное обеспечение или услуги, связанные с ПО, на основеконтрактных отношений. Процесс приобретения состоит из следующих работ (названия ГОСТ12207 даны в скобках, если предлагают другой перевод названий работ оригинального стандарта): Inititation – инициирование (подготовка) Request-for-proposal preparation – подготовка запроса на предложение (подготовка заявкина подряд) Contract preparation and update –подготовка и корректировка договора Supplier monitoring – мониторинг поставщика (надзор за поставщиком) Acceptance and completion – приемка и завершение (приемка и закрытие договора)Все работы проводятся в рамках проектного подхода.Поставка (5.2)Процесс поставки, в свою очередь, определяет работы и задачи поставщика.
Работы такжепроводятся с использованием проектного подхода. Процесс включает следующие работы: Inititation – инициирование (подготовка) Preparation of response – подготовка предложения (подготовка ответа) Contract – разработка контракта (подготовка договора) Planning - планирование Execution and control – выполнение и контроль Review and evaluation –проверка и оценка Delivery and completion – поставка и завершение (поставка и закрытие договора)Разработка (5.3)Процесс разработки определяет работы и задачи разработчика. Процесс состоит из следующихработ: Process implementation – определение процесса (подготовка процесса) System requirements analysis – анализ системных требований (анализ требований ксистеме) System design – проектирование системы (проектирование системной архитектуры) Software requirements analysis – анализ программных требований (анализ требований кпрограммным средствам)Copyright © Сергей Орлик, 2005-2010.http://swebok.sorlik.ru5Основы программной инженерии (по SWEBOK)Модели жизненного цикла программного обеспеченияSoftware architectural design – проектирование программной архитектурыSoftware detailed design – детальное проектирование программной системы (техническоепроектирование программных средств)Software coding and testing – кодирование и тестирование (программирование итестирование программных средств)Software integration – интеграция программной системы (сборка программных средств)Software qualification testing – квалификационные испытания программных средствSystem integration – интеграция системы в целом (сборка системы)System qualification testing – квалификационные испытания системыSoftware installation – установка (ввод в действие)Software acceptance support – обеспечение приемки программных средствСтандарт отмечает, что работы проводятся с использованием проектного подхода и могутпересекаться по времени, т.е.
проводиться одновременно или с наложением, а также могутпредполагать рекурсию и разбиение на итерации.Эксплуатация (5.4)Процесс разработки определяет работы и задачи оператора службы поддержки. Процессвключает следующие работы: Process implementation – определение процесса (подготовка процесса) Operational testing – операционное тестирование (эксплуатационные испытания) System operation– эксплуатация системы User support – поддержка пользователяСопровождение (5.5)Процесс разработки определяет работы и задачи, проводимые специалистами службысопровождения.
Процесс включает следующие работы: Process implementation – определение процесса (подготовка процесса) Problem and modification analysis – анализ проблем и изменений Modification implementation – внесение изменений Maintenance review/acceptance – проверка и приемка при сопровождении Migration – миграция (перенос) Software retirement – вывод программной системы из эксплуатации (снятие с эксплуатации)Важно понимать, что стандарт 12207 не определяет последовательность и разбиениевыполнения процессов во времени, адресуя этот вопрос также работам по адаптации стандарта кконкретным условиям и окружению и применению выбранных моделей, практик, техник и т.п.Адаптация стандартаАдаптация стандарта* подразумевает применение требований стандарта к конкретному проектуили проектам, например, в рамках создания внутрикорпоративных регламентов ведения проектовпрограммного обеспечения.Адаптация включает следующие виды работ: Определение исходной информации для адаптации стандарта Определение условий выполнения проекта Отбор процессов, работ и задач, используемых в проекте или соответствующихрегламентах Документирование требований, решений и процессов, связанных с адаптацией иполученных в ее результатеАдаптация также подразумевает выбор модели (или комбинации моделей) жизненного цикла, атакже применение соответствующих методологий, детализирующих процедуры выполненияпроцессов, работ и задач в рамках заданных границ (содержания) жизненного цикла программногообеспечения и организационной структуры и ролевой ответственности в конкретной организации(ее подразделении) и/или в проектной группе.Copyright © Сергей Орлик, 2005-2010.http://swebok.sorlik.ru6Основы программной инженерии (по SWEBOK)Модели жизненного цикла программного обеспечения* Необходимо отметить, что существует еще один стандарт жизненного цикла - ISO/IEC 15288 (выпущен в2002 году), фокусирующийся на вопросах организации процессов жизненного цикла системного уровня (LifeCycle Processes – System) и включающий специальный процесс - “Tailoring”, т.е.
настройку, адаптациюжизненного цикла к конкретным требованиям и ограничениям, существующим или принятым в конкретнойорганизации/подразделении или для заданного проекта.Модели жизненного циклаНаиболее часто говорят о следующих моделях жизненного цикла: Каскадная (водопадная) или последовательная Итеративная и инкрементальная – эволюционная (гибридная, смешанная) Спиральная (spiral) или модель БоэмаЛегко обнаружить, что в разное время и в разных источниках приводится разный список моделей иих интерпретация. Например, ранее, инкрементальная модель понималась как построениесистемы в виде последовательности сборок (релизов), определенной в соответствии с заранееподготовленным планом и заданными (уже сформулированными) и неизменными требованиями.Сегодня об инкрементальном подходе чаще всего говорят в контексте постепенного наращиванияфункциональности создаваемого продукта.Может показаться, что индустрия пришла, наконец, к общей “правильной” модели. Однако,каскадная модель, многократно “убитая” и теорией и практикой, продолжает встречаться вреальной жизни.