Секция “Системы и стандарты – комплексный подход” Rational Unified Process - полный технологический процесс, адаптируемый к условиям организации-заказчика и его гармонизация с ГОСТ Р ИСО/МЭК 12207 Кумсков Михаил Иванович АйТи, Москва mkumskov@it.ru Проводится сопоставление российского стандарта 12207, определяющего основные процессы создания программных средств – стандарта “Информационная технология. Процессы Жизненного Цикла Программных Средств” с мастер-методологией фирмы Rational Software – RUP (Rational Unified Process), которая может рассматриваться как вариант “продвинутой” реализации процессов стандарта 12207. При внедрении RUP ее процессы должны быть адаптированы под условия организации-разработчика и под особенности конкретных проектов организации. Рассмотрен вопрос об установлении соответствия процессов обоих стандартов, включая задачу автоматизации работ и вопрос выбора соответствующих инструментальных средств. Обсуждается вопрос о порядке внедрения процессов RUP в организации с обсуждением конкретного опыта такого внедрения. Стандарт 12207, введенный в действие 1 июля 2000 года, определяет работы, которые могут выполняться в жизненном цикле программных средств. Эти работы распределены по пяти основным, восьми вспомогательным и четырем организационным процессам. Каждый процесс жизненного цикла разделен на набор работ, а каждая работа разделена на набор задач. 1. Основные процессы жизненного цикла: процесс заказа (выполняется на стороне заказчика ПС); процесс поставки (на стороне поставщика ПС); процесс разработки (на стороне разработчика ПС); процесс эксплуатации (на стороне оператора ПС); процесс сопровождения (выполняется персоналом сопровождения). 2. Вспомогательные процессы жизненного цикла: процесс документирования; процесс управления конфигурацией; процесс обеспечения качества; процесс верификации; процесс аттестации; процесс совместного анализа; процесс аудита; процесс решения проблем. 3. Организационные процессы жизненного цикла: процесс управления; процесс создания инфраструктуры; процесс усовершенствования; процесс обучения. Особенность стандарта 12207 в том, что он имеет весьма общий (“рамочный”) характер, поскольку не определяет состав выходных документов каждой задачи, не определяет роли, ответственные за создание документов в процессе и т.п. Практическое использование стандарта 12207 из-за этого сильно затруднено, поскольку требует - 196 - Секция “Системы и стандарты – комплексный подход” определения конкретной технологии, с одной стороны, удовлетворяющей стандарту, а с другой, - поддерживающей лучшие принципы “правильной” разработки программных средств (ПС), такие как: итеративная разработка; управление требованиями; визуальное моделирование; использование компонентной архитектуры; проверка качества ПС на всем протяжении жизненного цикла; контроль изменений, вносимых в ПС. Для простоты сравнения объединим стороны (по 12207), выделив только две: сторону Заказчика, в которую включим заказчика ПС, оператора ПС, персонал сопровождения, сторону Разработчика, включающего поставщика и разработчика ПС. В этой терминологии Rational Unified Process (RUP) описывает работы, выполняемые на стороне разработчика. RUP представляет собой мастер-методологию, упорядочивающую процесс создания ПС с распределением ответственности между участниками проекта (исполнителями). Реализация большинства процессов стандарта 12207, выполняемых на стороне разработчика, детально описана в RUP, общая структура которого приведена на рисунке 1. Рисунок 1 На рисунке 1 показана архитектура RUP в двух измерениях: на горизонтальной оси развернуты во времени аспекты жизненного цикла процесса; на вертикальной оси представлены основные процессы, которые включают в себя логически связанные задачи. - 197 - Секция “Системы и стандарты – комплексный подход” В первом измерении динамические аспекты процесса выражаются в таких понятиях, как фазы, итерации и контрольные точки. Во втором измерении процесс представлен в статическом виде и описывается в терминах компонентов процесса, задач, последовательности работ, артефактов, и ролей (рисунок 2). Диаграмма на рисунке 1 показывает, как с течением времени смещаются акценты. Если, например, на ранних итерациях основное внимание уделяется соблюдению требований, то на поздних большее время затрачивается на реализацию. Рисунок 2. Основные концепции RUP и их взаимосвязи Таблица 1 соответствия задач процесса разработки 12207 и процессов RUP Задачи процесса разработки 12207 Процессы RUP 1 Подготовка процесса разработки 2 Анализ требований к системе 3 Проектирование системной архитектуры 4 Анализ требований к ПС 5 Проектирование программной архитектуры 6 Техническое проектирование ПС 7 Программирование и тестирование ПС 8 Сборка программных средств 9 Квалификационные испытания ПС 10 Сборка системы 11 Квалификационные испытания системы 12 Ввод в действие ПС 13 Обеспечение приемки ПС Управление проектом Управление требованиями (к системе) Анализ и проектирование (системы) Управление требованиями (ПС) Анализ и проектирование (ПС) Анализ и проектирование (ПС) Реализация ПС Управление конфигурациями ПС Тестирование (ПС) Развертывание Развертывание Развертывание Управление проектом Как видно из Таблицы 1, Основной процесс разработки ПС представлен в стандарте 12207 довольно “крупными мазками” - задачи этого процесса покрываются восемью - 198 - Секция “Системы и стандарты – комплексный подход” процессами RUP, при этом три процесса RUP (Управление требованиями, Анализ и проектирование, Реализация) полностью покрыты процессом разработки 12207. Рассмотрим, например, уровень детализации описания процессов в RUP на примере процесса “Управление требованиями”. Схема выполнения его работ приведена на рисунке 3. Рисунок 3. Схема работ процесса управления требованиями Каждая из шести работ этого процесса: анализ проблемы; анализ потребностей заинтересованных лиц; определение системы; контроль функциональных границ системы; уточнение определения системы; управление изменяющимися требованиями; детализирована до уровня задач конкретной роли – на рисунке 4 приведена, как пример, схема для работы “Уточнение определения системы” - 199 - Секция “Системы и стандарты – комплексный подход” Рисунок 4. Схема задач для работы “Уточнение определения системы” Рассмотрим соответствие RUP вспомогательным процессам жизненного цикла по 12207. Процесс документирования (12207) “встроен” во все задачи всех ролей. Для основных документов определены шаблоны документов. Документирование в RUP поддерживается средством автоматизации Rational SoDA – определены схемы генерации основных отчетов и составных документов. Процесс управления конфигурацией (12207) – “применение административных и технических процедур на всем протяжении жизненного цикла программных средств для: обозначения, определения и установления состояния (базовой линии) программных объектов в системе; управления изменениями и выпуском объектов; описания и сообщения о состояниях объектов и заявок на внесение изменений в них; обеспечения полноты, совместимости и правильности объектов; управления хранением, обращением и поставкой объектов”, явно определен в RUP как самостоятельный процесс “Конфигурационное управление и управление изменениями” с соответствующим описанием ролей, задач, входных и выходных материалов (артефактов). - 200 - Секция “Системы и стандарты – комплексный подход” Процесс обеспечения качества (12207) поддерживается в RUP на двух уровнях – на уровне качества материалов и на уровне “качества процесса”. Качество создаваемых материалов для каждого процесса RUP обеспечивается введением ролей “рецензентов”.Качество процесса поддерживается в процессе управления проектом и может контролироваться за счет введения и использования метрик проекта. Процесс верификации (12207) определяет, “что программные продукты функционируют в полном соответствии с требованиями или условиями, реализованными в предшествующих работах”. В RUP полностью покрывается процессом “Тестирование” (включая функциональное и нагрузочное тестирования”). Процесс аттестации (12207) определяет “полноту соответствия установленных требований, созданной системы или программного продукта их функциональному назначению”. В RUP покрывается задачами процесса “Развертывание”. Процесс совместного анализа (12207), т.е. “оценки состояний и, при необходимости, результатов работ (продуктов) по проекту”. В RUP покрывается задачами процесса “Управление проектом”. Процесс аудита (12207), т.е. “определения соответствия требованиям, планам к условиям договора”. В RUP покрывается задачами процесса “Управления проектом” Процесс решения проблем (12207), т.е. “анализа и решения проблем (включая обнаруженные несоответствия), независимо от их происхождения или источника, которые обнаружены в ходе выполнения разработки, эксплуатации, сопровождения или других процессов”. В RUP покрывается процессами “Конфигурационное управление и управление изменениями” и процессом “Управление проектом”. Рассмотрим соответствие RUP организационным процессам жизненного цикла по 12207. Процесс управления (12207) “состоит из общих работ и задач, которые могут быть использованы любой стороной, управляющей соответствующим процессом(ами). Администратор отвечает за управление продуктом, проектом, работами и задачами соответствующего процесса(ов), таких как заказ, поставка, разработка, эксплуатация, сопровождение или вспомогательные процессы”. В RUP покрывается процессом “Управление проектом” (полностью). Процесс создания инфраструктуры (12207) т.е. “установления и обеспечения (сопровождения) инфраструктуры, необходимой для любого другого процесса. Инфраструктура может содержать технические и программные средства, инструментальные средства, методики, стандарты и условия для разработки, эксплуатации или сопровождения”. В RUP покрывается процессом “Поддержка среды разработки” (полностью). Процесс усовершенствования (12207), т.е. “установления, оценки, измерения, контроля и улучшения любого процесса жизненного цикла программных средств”. Явно в RUP не описан. Процесс обучения (12207), т.е. “обеспечения первоначального и продолженного обучения персонала”. Явно в RUP не описан. Подготовка учебных материалов в RUP предусмотрена как задача процесса “Развертывание”. Таким образом, RUP можно рассматривать как “детализированную” реализацию задач, определяемых стандартом 12207 по основным процессам, выполняемым на стороне разработчика и поставщика, а также практически всех задач вспомогательных и организационных процессов 12207. Конкретное определение и реализация процесса создания ПС на основе RUP происходит, как правило, в ходе выполнения соответствующего пилотного проекта, в рамках которого одновременно решаются задачи настройки средств автоматизации процесса и настройки репозитория проекта. - 201 -