Методы и средства инженерии программного обеспечения

       

Введение в жизненный цикл ПО стандарта


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

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

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

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

Разновидности действий и задач,  представленные в процессах ЖЦ ПС,  отображены в  международном стандарте 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); анализ требований к системе; проектирование архитектуры системы; анализ требований к ПО; проектирование архитектуры ПО; детальное проектирование ПО; кодирование и тестирование ПО; интеграция ПО; интеграция системы; квалификационное тестирование; установка ПО; обеспечение приемки ПО;
– процесс эксплуатации определяет действия предприятия-оператора, которое обеспечивает обслуживание системы (ПО) в процессе ее эксплуатации пользователями (консультирование пользователей, изучение их потребностей с точки зрения удовлетворения их системой и т.д.). Этот процесс направлен на: внедрение процесса; функциональное тестирование; эксплуатацию системы; обеспечение  пользователя документацией по проведению эксплуатации ПО;
– процесс сопровождения определяет действия организации, выполняющей сопровождение программного продукта (управление модификациями, поддержку текущего состояния и функциональной пригодности, инсталляцию и удаление программного продукта на вычислительной системе пользователя).


Данный процесс ориентирован на: внедрение процесса; анализ проблем и модификация; реализация модификаций; анализ сопровождения;  миграция (перемещение) ПО; удаление ПО.       
К обеспечивающим процессам создания ПС относятся: документирование, управление версиями, верификация и валидация, просмотры, аудиты, оценивание продукта и др. Процессы управления  версиями соответствуют управлению конфигурацией системы, которая также, как и продукты процессы,  должны проверяться на правильность реализации целей проекта и соответствия требованиям заказчика. Задачи проверки рекомендуется выполнять  специальные контролеры, обладающие знаниями методов и процессов.
К организационным процессам относятся процессы управления проектом  (менеджмент разработки),  качеством, риском и др. Эти процессы организационно поддерживаются специальными службами:  контроля процессов,  измерения продуктов, проверки качества, соблюдения стандартных положений  и др. Предполагает  проведение   обучения персонала, определение набора  задач и ответственности каждого участника в реализации   задач на процессах ЖЦ и др.
Процессы, определенные в этом стандарте, образуют полное множество. Пользователь стандарта может выбрать соответствующее подмножество для достижения своей конкретной цели. Процессы, действия и задачи приведены в стандарте в наиболее общей естественной последовательности. В зависимости от целей  конкретного проекта процессы, действия и задачи выбираются, упорядочиваются и применяются итерационно или рекурсивно. Разработчик должен определить или выбрать модель ЖЦ ПО в зависимости от сложности, стоимости и ресурсов программного проекта.

Содержание раздела