Введение в жизненный цикл ПО стандарта
Программная инженерия, как инженерная дисциплина охватывает все аспекты создания ПО от начальной стадии разработки системных требований, создания ПО и его использования. Эталонная модель программной инженерии включает три взаимосвязанных фактора: процессы, программные продукты, ресурсы (человеческие, технические и финансовые).
Каждая ПС на протяжении своего существования проходит определенную последовательность процессов (этапов), начиная от постановки задачи, до ее воплощения в готовую программу, эксплуатации и изъятия. Такая последовательность этапов называется жизненным циклом (ЖЦ) разработки ПС. На каждом этапе ЖЦ выполняется определенная совокупность процессов и/или подпроцессов, каждый из которых порождает соответствующий промежуточный продукт, используя результаты предыдущего.
Все продукты процессов программной инженерии представляют собой некоторые описания, а именно тексты требований к разработке, согласование договоренностей с заказчиком, архитектура, структура данных, тексты программ, документация, инструкции по эксплуатации и т.п.
Главными ресурсами разработки ПС в программной инженерии являются сроки, время и стоимость. Правильное использование этих ресурсов на процессах ЖЦ определяет эффективность этой разработки.
Разновидности действий и задач, представленные в процессах ЖЦ ПС, отображены в международном стандарте ISO\IEC 12207 (таблица 1) и связаны содержательно с областями знаний SWEBOK.
Данный стандарт устанавливает архитектуру верхнего уровня ЖЦ ПО, начиная от разработки концепции до утилизации системы. Архитектура представляет собой множество процессов, взаимосвязей между ними и определяет действия и задачи, т.е, он определяет, что надо делать, а не как надо выполнять действия или задачи процессов.
Стандарт не обязывает использовать определенную модель ЖЦ ПО или конкретную методологию разработки ПО и не предъявляет требования к формату и содержанию создаваемых документов.
Поэтому организации– пользователю этого стандарта потребуются для своей работы дополнительные стандарты или процедуры, определяющие разные детали процесса (ISO выпускает руководства и процедуры, дополняющие стандарт 12207).
Основная идея данного стандарта состоит в том, что разработка и сопровождение ПО должно осуществляться так, как этого требует инженерная дисциплина. Следуя этой идее, разрабатывается каркас (framework), имеющий четкие связи с окружением системной инженерии - ПО, техническим обеспечением, исполнителями и деловой практикой.
Все процессы в данном стандарте разделены на три категории:
– основные процессы;
– обеспечивающие (поддерживающие) процессы;
– организационные процессы.
Для каждого из процессов определены виды деятельности (действия - activity) и задачи и определяется совокупность результатов (выходов) видов деятельности и задач, а также некоторые специфические требования. Стандарт дает перечень работ для основных обеспечивающих и организационных процессов.
Процессы ЖЦ в стандарте ISO/IEC 12207 Таблица 1
№ п/п |
Наименование процессов (подпроцессов) |
|||||||||
Категория “Основные процессы” |
||||||||||
1.1 |
Заказ (договор) |
|||||||||
1.1.1 |
Подготовка заказа, выбор поставщика |
|||||||||
1.1.3 |
Мониторинг деятельности поставщика, прием потребителем |
|||||||||
1.2 |
Поставка (приобретение) |
|||||||||
1.3 |
Разработка |
|||||||||
1.3.1 |
Выявление требований |
|||||||||
1.3.2 |
Анализ требований к системе |
|||||||||
1.3.3 |
Проектирование архитектуры системы |
|||||||||
1.3.4 |
Анализ требований к ПО системы |
|||||||||
1.3.5 |
Проектирование ПО |
|||||||||
1.3.6 |
Конструирование (кодирование) ПО |
|||||||||
1.3.7 |
Интеграция ПО |
|||||||||
1.3.8 |
Тестирование ПО |
|||||||||
1.3.9 |
Системная интеграция |
|||||||||
1.3.10 |
Системное тестирование |
|||||||||
1.3.11 |
Инсталляция ПО |
|||||||||
1.4 |
Эксплуатация |
|||||||||
1.4.1 |
Функциональное использование |
|||||||||
1.4.2 |
Поддержка потребителя |
|||||||||
1.5 |
Сопровождение |
|||||||||
Категория “Процессы поддержки” |
||||||||||
2.1 |
Документирование |
|||||||||
2.2 |
Управление конфигурацией |
|||||||||
2.3 |
Обеспечение гарантии качества |
|||||||||
2.4 |
Верификация |
|||||||||
2.5 |
Валидация |
|||||||||
2.6 |
Общий просмотр |
|||||||||
2.7 |
Аудит |
|||||||||
2.8 |
Решение проблем |
|||||||||
2.9 |
Обеспечение применимости продукта |
|||||||||
2.10 |
Оценивание продукта |
|||||||||
Категория “Организационные процессы” |
||||||||||
3.1 |
Категория |
|||||||||
3.1.1 |
Управление на уровне организации |
|||||||||
3.1.2 |
Управление проектом |
|||||||||
3.1.3 |
Управление качеством |
|||||||||
3.1.4 |
Управление риском |
|||||||||
3.1.5 |
Организационное обеспечение |
|||||||||
3.1.6 |
Измерение |
|||||||||
3.1.7 |
Управления знаниями |
|||||||||
3.2 |
Усовершенствование |
|||||||||
3.2.1 |
Внедрение процессов |
|||||||||
3.2.2 |
Оценивание процессов |
|||||||||
3.2.3 |
Усовершенствование процессов |
|||||||||
К основным процессам относятся:
–
процесс приобретения инициирует ЖЦ ПО и определяет действия организации-покупателя (или заказчика), которая приобретает автоматизированную систему, программный продукт или сервис. Этот процесс включает следующие виды деятельности: инициация; подготовка запроса, контракта и его актуализация; мониторинг поставщиков; приемка и завершение;
– процесс поставки определяет действия предприятия - поставщика, которое снабжает покупателя системой, программным продуктом или сервисом. Данный процесс включает в себя следующие виды деятельности: инициация; подготовка предложений (ответа на запрос); контракт; планирование; выполнение и контроль; анализ и оценка; поставка и завершение. Процесс поставки начинается тогда, когда устанавливаются договорные отношения на поставку ПО между заказчиком и поставщиком. В зависимости от условий договора процесс поставки может включать процесс разработки ПО, процесс эксплуатации для обеспечения служб эксплуатации ПО или процесс сопровождения для исправления и улучшения ПО;
– процесс разработки определяет действия предприятия - разработчика, которое разрабатывает программный продукт. Этот процесс включает в себя: внедрение процесса (implementation); анализ требований к системе; проектирование архитектуры системы; анализ требований к ПО; проектирование архитектуры ПО; детальное проектирование ПО; кодирование и тестирование ПО; интеграция ПО; интеграция системы; квалификационное тестирование; установка ПО; обеспечение приемки ПО;
– процесс эксплуатации определяет действия предприятия-оператора, которое обеспечивает обслуживание системы (ПО) в процессе ее эксплуатации пользователями (консультирование пользователей, изучение их потребностей с точки зрения удовлетворения их системой и т.д.). Этот процесс направлен на: внедрение процесса; функциональное тестирование; эксплуатацию системы; обеспечение пользователя документацией по проведению эксплуатации ПО;
– процесс сопровождения определяет действия организации, выполняющей сопровождение программного продукта (управление модификациями, поддержку текущего состояния и функциональной пригодности, инсталляцию и удаление программного продукта на вычислительной системе пользователя).
Данный процесс ориентирован на: внедрение процесса; анализ проблем и модификация; реализация модификаций; анализ сопровождения; миграция (перемещение) ПО; удаление ПО.
К обеспечивающим процессам создания ПС относятся: документирование, управление версиями, верификация и валидация, просмотры, аудиты, оценивание продукта и др. Процессы управления версиями соответствуют управлению конфигурацией системы, которая также, как и продукты процессы, должны проверяться на правильность реализации целей проекта и соответствия требованиям заказчика. Задачи проверки рекомендуется выполнять специальные контролеры, обладающие знаниями методов и процессов.
К организационным процессам относятся процессы управления проектом (менеджмент разработки), качеством, риском и др. Эти процессы организационно поддерживаются специальными службами: контроля процессов, измерения продуктов, проверки качества, соблюдения стандартных положений и др. Предполагает проведение обучения персонала, определение набора задач и ответственности каждого участника в реализации задач на процессах ЖЦ и др.
Процессы, определенные в этом стандарте, образуют полное множество. Пользователь стандарта может выбрать соответствующее подмножество для достижения своей конкретной цели. Процессы, действия и задачи приведены в стандарте в наиболее общей естественной последовательности. В зависимости от целей конкретного проекта процессы, действия и задачи выбираются, упорядочиваются и применяются итерационно или рекурсивно. Разработчик должен определить или выбрать модель ЖЦ ПО в зависимости от сложности, стоимости и ресурсов программного проекта.