В.В. Кулямин - Технологии программирования. Компонентный подход (1133554), страница 9
Текст из файла (страница 9)
Каждая роль может быть охарактеризована как абстрактная группазаинтересованных лиц, участвующих в деятельности по созданию и эксплуатации системы ирешающих одни и те же задачи или имеющих одни и те же интересы по отношению к ней.Примерами ролей являются: бизнес-аналитик, инженер по требованиям, архитектор,проектировщик пользовательского интерфейса, программист-кодировщик, технический писатель,тестировщик, руководитель проекта по разработке, работник отдела продаж, конечныйпользователь, администратор системы, инженер по поддержке и т.п.Похоже, что общую структуру жизненного цикла любого ПО задать невозможно, посколькуона существенно зависит от целей, для которых это ПО разрабатывается или приобретается, и отрешаемых им задач. Структура жизненного цикла будет существенно разной у программы дляформатирования кода, которая сначала делалась программистом для себя, а впоследствии былапризнана перспективной в качестве продукта и переработана, и у комплексной системыавтоматизации предприятия, которая с самого начала задумывалась как таковая.
Тем не менее,часто определяют основные элементы структуры жизненного цикла в виде модели жизненногоцикла ПО. Модель жизненного цикла ПО выделяет конкретные наборы видов деятельности(обычно разбиваемых на еще более мелкие активности), артефактов, ролей и их взаимосвязи, атакже дает рекомендации по организации процесса в целом.
Эти рекомендации включают ответына вопросы о том, какие артефакты являются входными данными у каких видов деятельности, акакие появляются в качестве результатов, какие роли вовлечены в различные деятельности, какразличные деятельности связаны друг с другом, каковы критерии качества полученныхрезультатов, как оценить степень соответствия различных артефактов общим задачам проекта икогда можно переходить от одной деятельности к другой.Жизненный цикл ПО является составной частью жизненного цикла программно-аппаратнойсистемы, в которую это ПО входит.
Поэтому часто различные его аспекты рассматриваются всвязи с элементами жизненного цикла системы в целом.Существует набор стандартов, определяющих различные элементы в структуре жизненныхциклов ПО и программно-аппаратных систем. В качестве основных таких элементов выделяюттехнологические процессы — структурированные наборы деятельностей, решающих некоторуюобщую задачу или связанную совокупность задач, такие, как процесс сопровождения ПО, процессобеспечения качества, процесс разработки документации и пр. Процессы могут определять разныеэтапы жизненного цикла и увязывать их с различными видами деятельностей, артефактами иролями заинтересованных лиц.Стоит отметить, что процессом (или технологическим процессом) называют и наборпроцессов, увязанных для совместного решения более крупной задачи, например, всюсовокупность деятельностей, входящих в жизненный цикл ПО.
Таким образом, процессы могутразбиваться на подпроцессы, решающие частные подзадачи той задачи, с которой работает общийпроцесс.22Стандарты жизненного циклаЧтобы получить представление о возможной структуре жизненного цикла ПО, обратимсясначала к соответствующим стандартам, описывающим технологические процессы.Международными организациями, такими, как:• IEEE — читается «ай-трипл-и», Institute of Electrical and Electronic Engineers, Институтинженеров по электротехнике и электронике;• ISO — International Standards Organization, Международная организация по стандартизации;• EIA — Electronic Industry Association, Ассоциация электронной промышленности;• IEC — International Electrotechnical Commission, Международная комиссия поэлектротехнике;а также некоторыми национальными и региональными институтами и организациями (в основном,американскими и европейскими, поскольку именно они оказывают наибольшее влияние наразвитие технологий разработки ПО во всем мире):• ANSI — American National Standards Institute, Американский национальный институтстандартов;• SEI — Software Engineering Institute, Институт программной инженерии;• ECMA — European Computer Manufactures Association, Европейская ассоциацияпроизводителей компьютерного оборудования;разработан набор стандартов, регламентирующих различные аспекты жизненного цикла ивовлеченных в него процессов.
Список и общее содержание этих стандартов представлены ниже.Группа стандартов ISO•ISO/IEC 12207 Standard for Information Technology — Software Life Cycle Processes [1](процессы жизненного цикла ПО, есть его российский аналог ГОСТ Р-1999 [2]).Определяет общую структуру жизненного цикла ПО в виде 3-х ступенчатой модели,состоящей из процессов, видов деятельности и задач. Стандарт описывает вводимыеэлементы в терминах их целей и результатов, тем самым задавая неявно возможныевзаимосвязи между ними, но не определяя четко структуру этих связей, возможнуюорганизацию элементов в рамках проекта и метрики, по которым можно было быотслеживать ход работ и их результативность.Самыми крупными элементами являются процессы жизненного цикла ПО (lifecycleprocesses). Всего выделено 18 процессов, которые объединены в 4 группы.Основные процессыПоддерживающие процессыПриобретение ПО;Передача ПО (виспользование);Разработка ПО;Эксплуатация ПО;Поддержка ПОДокументирование;Управление конфигурациями;Обеспечение качества;Верификация;Валидация;Совместные экспертизы;Аудит;Разрешение проблемОрганизационныепроцессыУправление проектом;Управлениеинфраструктурой;Усовершенствованиепроцессов;Управление персоналомАдаптацияАдаптацияописываемыхстандартомпроцессов поднужды конкретногопроектаТаблица 1.
Процессы жизненного цикла ПО по ISO 12207.Процессы строятся из отдельных видов деятельности (activities).Стандартом определены 74 вида деятельности, связанной с разработкой и поддержкой ПО.Здесь мы упомянем только некоторые из них.o Приобретение ПО включает такие деятельности, как инициация приобретения,подготовка запроса предложений, подготовка контракта, анализ поставщиков,получение ПО и завершение приобретения.23•o Разработка ПО включает развертывание процесса разработки, анализ системныхтребований, проектирование (программно-аппаратной) системы в целом, анализтребований к ПО, проектирование архитектуры ПО, детальное проектирование,кодирование и отладочное тестирование, интеграцию ПО, квалификационноетестирование ПО, системную интеграцию, квалификационное тестирование системы,развертывание (установку или инсталляцию) ПО, поддержку процесса получения ПО.o Поддержка ПО включает развертывание процесса поддержки, анализ возникающихпроблем и необходимых изменений, внесение изменений, экспертизу и передачуизмененного ПО, перенос ПО с одной платформы на другую, изъятие ПО изэксплуатации.o Управление проектом включает запуск проекта и определение его рамок, планирование,выполнение проекта и надзор за его выполнением, экспертизу и оценку проекта,свертывание проекта.Каждый вид деятельности нацелен на решение одной или нескольких задач (tasks).
Всегоопределено 224 различные задачи. Например:o Развертывание процесса разработки состоит из определения модели жизненного цикла,документирования и контроля результатов отдельных работ, выбора используемыхстандартов, языков и инструментов и пр.o Перенос ПО между платформами состоит из разработки плана переноса, оповещенияпользователей, выполнения анализа произведенных действий и пр.ISO/IEC 15288 Standard for Systems Engineering — System Life Cycle Processes [3](процессы жизненного цикла систем).Отличается от предыдущего нацеленностью на рассмотрение программно-аппаратныхсистем в целом.В данный момент продолжается работа по приведению этого стандарта в соответствие спредыдущим.ISO/IEC 15288 предлагает похожую схему рассмотрения жизненного цикла системы в виденабора процессов.
Каждый процесс описывается набором его результатов (outcomes),которые достигаются при помощи различных видов деятельности.Всего выделено 26 процессов, объединяемых в 5 групп.ПроцессывыработкисоглашенийПриобретениесистемы;ПоставкасистемыПроцессы уровняорганизацииПроцессы уровняпроектаТехническиепроцессыСпециальныепроцессыУправлениеокружением;Управлениеинвестициями;Управлениепроцессами;Управлениересурсами;УправлениекачествомПланирование;Оценивание;Мониторинг;Управление рисками;Управлениеконфигурацией;Управлениеинформацией;Выработка решенийОпределениетребований;Анализ требований;Проектированиеархитектуры;Реализация;Интеграция;Верификация;Валидация;Передача виспользование;Эксплуатация;Поддержка;Изъятие изэксплуатацииАдаптацияописываемыхстандартомпроцессов поднуждыконкретногопроектаТаблица 2.
Процессы жизненного цикла систем по ISO 15288.24•Помимо процессов, определено 123 различных результата и 208 видов деятельности,нацеленных на их достижение. Например, определение требований имеет следующиерезультаты.o Должны быть поставлены технические задачи, которые предстоит решить.o Должны быть сформулированы системные требования.Деятельности в рамках этого процесса следующие.o Определение границ функциональности системы.o Определение функций, которые необходимо поддерживать.o Определение критериев оценки качества при использовании системы.o Анализ и выделение требований по безопасности.o Анализ требований защищенности.o Выделение критических для данной системы аспектов качества и требований к ним.o Анализ целостности системных требований.o Демонстрация прослеживаемости требований.o Фиксация и поддержка набора системных требований.ISO/IEC 15504 (SPICE) Standard for Information Technology — Software ProcessAssessment [4] (оценка процессов разработки и поддержки ПО).Определяет правила оценки процессов жизненного цикла ПО и их возможностей,опирается на модель CMMI (см.
ниже) и больше ориентирован на оценку процессов ивозможностей их улучшения.В качестве основы для оценки процессов определяет некоторую базовую модель,аналогичную двум описанным выше. В ней выделены категории процессов, процессы ивиды деятельности.Определяются 5 категорий, включающих 35 процессов и 201 вид деятельности.ОтношениязаказчикпоставщикПриобретение ПО;Составлениеконтракта;Определение нуждзаказчика;Проведениесовместныхэкспертиз иаудитов;Подготовка кпередаче;Поставка иразвертывание;Поддержкаэксплуатации;Предоставлениеуслуг;ОценкаудовлетворенностизаказчиковПроцессы уровняорганизацииПроцессыуровня проектаИнженерныепроцессыПроцессыподдержкиРазвитие бизнеса;Определениепроцессов;Усовершенствованиепроцессов;Обучение;Обеспечениепереиспользования;Обеспечениеинструментами;Обеспечение средыдля работыПланированиежизненногоцикла;Планированиепроекта;Построениекоманды;Управлениетребованиями;Управлениекачеством;Управлениерисками;Управлениересурсами играфиком работ;УправлениеподрядчикамиВыделениесистемныхтребований ипроектированиесистемы в целом;Выделениетребований к ПО;ПроектированиеПО;Реализация,интеграция итестирование ПО;Интеграция итестированиесистемы;Сопровождениесистемы и ПОРазработкадокументации;Управлениеконфигурацией;Обеспечениекачества;Разрешениепроблем;ПроведениеэкспертизТаблица 3.