Программные продукты. Зрелость проектных организаций. Методология CMM Исходные документы, отражающие особенности жизненного цикла конкретного программного средства

Введение

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

В настоящее время сложилось два почти независимых направления стандартизации в программной инженерии и обеспечении качества программных продуктов, которые условно можно назвать профилями стандартов ISO (Международной организации стандартизации) и моделями зрелости SEI (Института программной инженерии США). Первые достаточно полно представлены в [ , ], а вторые - в [ , ]. Именно моделям зрелости посвящено основное содержание статьи.

Для обеспечения конкурентоспособности в мире сложных программных продуктов и возможности их успешного экспорта они должны быть разработаны и сертифицированы в соответствии с требованиями профилей международных стандартов на базе ISO 9000:2000 или моделей зрелости - CMMI:2003 (Capability Maturity Model Integration - Интегрированная модель оценивания зрелости программной инженерии). Эти два направления методологически очень близки и частично пересекаются посредством взаимных ссылок.

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

Для удостоверения качества, надежности и безопасности применения сложных, критических систем, используемые в них программные продукты, подвергаются сертификации аттестованными, проблемно-ориентированными испытательными центрами или лабораториями. Такие испытания необходимо проводить, когда программы управляют сложными, критическими процессами или обрабатывают столь важную информацию, что дефекты в них или недостаточное качество могут нанести значительный ущерб. Сертификационные испытания должны устанавливать соответствие комплексов программ требованиям документации и допускать их к эксплуатации в пределах изменения параметров внешней среды, исследованных при проведенных проверках. Эти виды испытаний характеризуются наибольшей строгостью и глубиной проверок, должны проводиться специалистами, независимыми от разработчиков и от заказчиков (пользователей).

Основой сертификации должны быть детальные и эффективные программы и методики испытаний комплексов программ на соответствие стандартизированным требованиям заказчиков, специально разработанные тестовые задачи и генераторы для их формирования, а также высокая квалификация и авторитет испытателей. Применение на предприятиях-разработчиках программных продуктов, сертифицированных систем качества обеспечения ЖЦ ПС на базе требований ISO 9000:2000 или CMMI:2003 , гарантирует высокое, устойчивое управление качеством процессов и продуктов их жизненного цикла, а также позволяет во многих случаях облегчать сертификацию конечного программного продукта. Поэтому заказчики сложных программных проектов стремятся выбирать подрядчиков-исполнителей, имеющих сертификаты, удостоверяющие применение ими систем гарантирования качества на основе адаптированных профилей международных стандартов или моделей зрелости.

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

Быстрое увеличение и усложнение комплексов программ приводит к созданию крупных программистских коллективов с профессиональным разделением труда, в которых необходимо регламентирование координированной деятельности групп специалистов над единым проектом. Обещания разработчиков в контрактах создать высококачественные программы в согласованные сроки во многих случаях не выполняются. Часто это происходит в силу того, что заказчик и исполнитель оценивают уровень качества по разным критериям, и согласованности по этому вопросу у них нет, а подход к оценке качества программ недостаточно формализован. Кроме того, иногда не хватает умения правильно оценить ресурсы, необходимые для достижения высокого качества программ. В результате качество программной продукции зачастую остается низким, неподдающимся достоверной оценке и не конкурентоспособным на международном рынке. Поэтому важнейшей проблемой развития и применения многих современных систем является обучение и воспитание специалистов в области программной инженерии, использованию международных стандартов, способствующих высокому качеству ПС и достоверному его оцениванию с основной целью - сделать процессы проектов управляемыми , а результаты - предсказуемыми . Необходимо умение формализовать требования и достигать конкретные значения характеристик качества функционирования и применения сложных комплексов программ с учетом тех ресурсов, которые доступны для обеспечения и совершенствования этого качества.

Модель зрелости CMMI - 1.1 , уточняет и совершенствует предшествовавшие модели CMM (см. ), а также частично учитывает основные требования существующих международных стандартов в области менеджмента программных средств. Значительное внимание в CMMI уделяется процессам разработки и учету итераций при изменении требований заказчиков, их прослеживанию к функциям, компонентам, тестам и документам проекта. В последнее время появилась информация о модернизации институтом SEI версии 2003-го года CMMI - 1.1 на основе накопленного опыта и отзывов предприятий. Предполагается выпустить в 2006 году новую, существенно модернизированную, версию модели CMMI - 1.2 , после чего постепенно должно прекратиться применение версии 1.1. До конца 2007 года должен проводиться переход пользователей на версию CMMI - 1.2 , а в дальнейшем она станет обязательной для формализованной оценки качества (сертификации) технологии предприятий в области программной инженерии. При этом срок действия сертификата будет ограничен тремя годами. К этим изменениям следует готовиться заказчикам и разработчикам крупных ПС до официальной публикации институтом SEI версии 1.2.

Структура и содержание модели зрелости CMMI - 1.1

Два варианта модели CMMI - 1.1 созданы для обеспечения непрерывного оценивания комплекса процессов в определенной области создания программных средств или для поэтапного оценивания и совершенствования зрелости предприятия, а также для организации ЖЦ комплексов программ в целом. Модели CMMI представляют помощь специалистам при организации и совершенствовании их продуктов, а также по упорядочению и обслуживанию процессов разработки и сопровождения ПС. Концепция этих моделей охватывает управление и оценивание зрелости сложных систем, инженерии программных средств, а также процессов создания интегрированных программных продуктов и совершенствования их разработки. Компоненты непрерывной и поэтапной моделей в значительной степени подобны, могут выбираться и применяться в разном составе и последовательности использования в зависимости от свойств и характеристик конкретных проектов.

Варианты описания моделей построены по единой схеме, которая включает общие разделы:

  • предисловие;
  • 1 раздел - введение;
  • 2 раздел - модель компонентов;
  • 3 раздел - терминология;
  • 4 раздел - содержание уровней и главные компоненты каждого варианта модели (разработка целей и процедур);
  • 5 раздел - структура взаимодействия процессов; аннотированы четыре категории процессов раздела 7, их общий обзор и схемы взаимодействия CMMI процессов:
    • менеджмент процессов;
    • менеджмент - управление проектом;
    • инжиниринг (технология);
    • поддержка;
  • 6 раздел - использование модели CMMI - краткие рекомендации для пользователей по применению модели и обучению; отмечается совместимость и соответствие процессов модели, с регламентированными процессами предыдущей модели СММ в части 2 и 3 стандарта ISO 15504 .
  • 7 раздел - последний, самый большой в каждом стандарте, он занимает около 500 страниц из полного объема документа, который составляет свыше 700 страниц. В этом разделе представлены подробные рекомендации для реализации каждого из перечисленных в нем процессов, которые учитывают особенности конкретной модели.

Первый вариант (непрерывной) модели отражает документ: Capability Maturity Model Integration (CMMI) for Systems Engineering/ Software Engineering/Integrated Prod-uct and Process Development, Version 1.1, Continuous Representation (CMMI-SE/SW/IPPD, V1.1, Continuous ). Интегрированная модель оценивания зрелости инженерии систем/программной инженерии/интегрированных продуктов и процессов разработки - непрерывное представление . В этой модели седьмой раздел составляют процессы:

  • менеджмент процессов:
    • организация обучения;
    • организация преобразования (изменений) процессов;
    • организация инноваций и расширений;
  • управление проектом:
    • планирование проекта;
    • мониторинг и контроль процессов проекта;
    • управление рисками;
    • количественное управление проектом;
  • инженерия (технология):
    • управление требованиями;
    • разработка требований;
    • технические решения;
    • интеграция продукта;
    • верификация;
    • валидация (аттестация, утверждение);
  • поддержка:
    • управление конфигурацией;
    • анализ и принятие решений на изменения;
    • анализ причин и разрешение проблем (устранение дефектов).

В пяти приложениях приводятся:

А - состав использованных литературных источников и документов, в котором, однако, не упоминаются стандарты ISO ;

В - сокращения;

С - глоссарий на основе терминологии ISO , применяемой только в четырех стандартах ISO 9000, ISO 12207, ISO 15504:1-9, ISO 15288 ;

D - описания требований и предложений для формирования компонентов модели по уровням зрелости;

Е - список участников разработки CMMI - проекта.

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

Планирование проекта в этой также как и во второй модели включает:

  • оценку возможного размера (масштаба) программного продукта;
  • оценку сложности функций и характеристик проекта ПС;
  • определение модели и этапов жизненного цикла комплекса программ;
  • технико-экономическое обоснование проекта - определение стоимости, трудоемкости и длительности ЖЦ ПС;
  • разработка поэтапного графика работ и бюджета проекта;
  • анализ, идентификация и оценка проектных рисков;
  • планирование и управление документированием процессов и продуктов в ЖЦ проекта ПС;
  • планирование и распределение технических и людских ресурсов по этапам ЖЦ ПС;
  • планирование обеспечения знаний и квалификации коллектива специалистов для реализации проекта;
  • обобщение и анализ совокупности планов проекта ПС;
  • согласование работ и ресурсов по этапам ЖЦ разработчиком с заказчиком проекта ПС;
  • документирование плана работ и утверждение его менеджером разработчиков проекта.

Процессы разработки требований к программному продукту аналогичны процессам в обеих моделях и включают:

  • выявление реальных потребностей заказчика и пользователей к функциям и характеристикам программного продукта;
  • разработку и согласование между заказчиком и разработчиком исходных, базовых требований к функциям программного продукта;
  • определение доступных ресурсов и ограничений проекта комплекса программ;
  • декомпозицию базовых исходных требований к функциям ПС в набор требований к компонентам и тестам комплекса программ;
  • формализацию требований к интерфейсам между компонентами, с операционной и внешней средой;
  • разработку концепции программного продукта и сценариев его использования;
  • разработку требований к обобщенным характеристикам функциональной пригодности и использованию функций программного продукта по назначению.

Управление требованиями в обеих моделях включает:

  • достижение однозначного понимания требований к проекту ПС заказчиком и разработчиками;
  • получение заказчиком от разработчиков обязательств выполнить все его требования к программному продукту;
  • согласованное между заказчиком и разработчиком управление изменениями требований к проекту ПС;
  • обеспечение прослеживания корректности изменений от общих требований к проекту ПС до требований к компонентам и частным процессам;
  • выявление и идентификация несоответствий между процессами разработки проекта и требованиями заказчика.

Второй вариант представляет документ: Capability Maturity Model Integration (CMMI) for Systems Engineering/Software Engineering/Integrated Product and Process Development, Version 1.1, Staged Representation (CMMI-SE/SW/IPPD, V1.1, Staged ). Интегрированная модель оценивания зрелости инженерии сложных систем/программной инженерии/интегрированных продуктов и процессов разработки - поэтапное представление . Модель базируется на сохранении концепции пяти уровней зрелости CMM [ , ]. Состав процессов практически повторяет приведенный выше для первого варианта модели, но в несколько иной последовательности и с относительно небольшими дополнениями.

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

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

Приложения во втором варианте модели подобны по составу приведенным выше приложениям для первой модели. Рекомендуется на каждом более высоком уровне зрелости применять все процессы предыдущих нижних уровней. В обоих вариантах модели каждый, выделенный выше, базовый процесс комментируется подробными рекомендациями для его практической реализации, которые содержат унифицированные по структуре описания объемом около 20 - 30 страниц:

  • общие цели процесса, которые должны быть достигнуты;
  • вводные замечания и общее описание функций процесса;
  • специфические цели процесса;
  • менеджмент процесса;
  • разработка требований к процессу;
  • взаимодействие и интерфейсы с другими процессами;
  • практические цели - требуемые результаты действий процесса;
  • планирование действий в определенном процессе;
  • анализ и валидация (утверждение) результатов реализации процесса;
  • мониторинг и контроль выполнения процесса.

Эти рекомендации по объему, содержанию и полноте описаний базовых процессов подобны ряду стандартов профиля ЖЦ ПС, представленного в . Упорядочение и оценка полноты используемых процессов в соответствии с уровнями зрелости, позволяет устанавливать производственный потенциал предприятий - разработчиков программных продуктов по прогнозируемому качеству процессов и результатов их деятельности и готовности к сертификации на соответствие определенному уровню зрелости модели CMMI - 1.1.

Особое внимание в моделях CMMI уделяется процессам менеджмента проекта ПС. Эти требования и процессы моделей практически соответствуют регламентированным и детализированным рекомендациям в стандартах ISO 9001:2000 и основных компонентах профиля стандартов жизненного цикла сложных ПС [ , ]. Требованиям к процессам в функциональных разделах 4-8 стандартов ISO 9001, ISO 9004, ISO 90003 может быть сопоставлен адекватный по содержанию ряд разделов в модели CMMI (на Рис. 1 зона перекрытия содержания). Общность процессов и требований состоит в подобии: состава, терминологии, структуры, перечня рекомендуемых процессов управления, планирования, учета доступных ресурсов, реализации процессов программной инженерии, оценивания и организации специалистов.

Рисунок 1. Общность процессов и требований стандартов и моделей зрелости

С точки зрения поддержки и регламентирования полного жизненного цикла крупных проектов программных средств к недостаткам моделей CMMI относительно профиля существующих стандартов ISO можно отнести следующие:

Для определения представленных выше уровней зрелости процессов обеспечения жизненного цикла ПС разработан и первоначально утвержден в 1998 году обширный технический отчет ISO 15504 , состоящий из девяти частей и множества приложений. В нем изложены модель зрелости CMM и восемь базовых принципов программной инженерии на основе стандарта ISO 9000:2000 . Затем в ISO этот документ претерпел коренную переработку, сокращение, упрощение структуры и содержания, при полном сохранении целей и концепции, и утвержден как стандарт в составе пяти частей.

Стандарт ISO 15504:1-5:2003-2006 регламентирует оценку и аттестацию зрелости процессов создания, сопровождения и совершенствования программных средств и систем, выполняемых предприятиями:

  • для установления состояния собственных технологических процессов и их совершенствования;
  • для определения пригодности собственных процессов для выполнения определенных требований или классов требований заказчиков;
  • с целью его пригодности для выполнения определенных договоров с заказчиками ПС и систем.

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

  • для заказчиков, покупателей, пользователей программных продуктов и систем: способность определять текущую и потенциальную зрелость процессов жизненного цикла у поставщика;
  • для поставщиков и разработчиков: способность определять текущую и потенциальную зрелость собственных процессов жизненного цикла ПС и систем, области и приоритеты усовершенствования процессов;
  • для аттестаторов зрелости: основу для проведения и совершенствования процессов аттестации.

Аттестация в стандарте рассматривается в двух аспектах : для усовершенствования процессов ЖЦ ПС и систем конкретного предприятия и для определения соответствия декларированной зрелости процессов обеспечения проекта или предприятия реальным используемым процессам. Это отражено в следующих пяти частях стандарта ISO 15504:1-5:2003-2006 .

Часть 1 - Концепция и словарь. Содержит общую информацию о процессах аттестации зрелости ПС и систем и рекомендации по использованию частей стандарта. Изложены общие требования к аттестации, терминология, структура, определена область применения остальных частей стандарта.

Часть 2 - Выполнение (производство) аттестации. Включает детальные требования к проведению процессов аттестации как основы для совершенствования и определения уровня зрелости технологических процессов обеспечения ЖЦ ПС и систем. Документ определяет процессы выполнения аттестации, модели рекомендуемых процессов аттестации и верификации процессов, с тем чтобы они были объективными, содержательными и репрезентативными.

Часть 3 - Руководство по производству аттестации. Содержит обзор технологии выполнения процессов аттестации зрелости и интерпретации реализации требований. В нем отражено: исполнение аттестации; измерительные средства для определения процессов зрелости; выбор и применение средств аттестации; оценка компетентности аттестаторов; верификация соответствия аттестации декларированным требованиям. Средства аттестации могут использоваться предприятиями при планировании, менеджменте, мониторинге, контроле и усовершенствовании программных продуктов и систем, при их приобретении, разработке, применении и сопровождении.

Часть 4 - Руководство пользователей для процессов усовершенствования и определения зрелости процессов по этим двум аспектам. Рекомендуется ряд шагов, которые включают: применение результатов процессов аттестации; постановка целей аттестации зрелости; определение исходных данных для аттестации; оценка возможного снижения результирующих рисков; шаги по усовершенствованию процессов; шаги по определению уровня зрелости; сравнение результатов анализа аттестации с требованиями.

Часть 5 - Образец модели процессов аттестации на соответствие требованиям, представленным в части 2. Обширный документ (162 стр.) содержит примеры практического применения предыдущих частей стандарта для организации, оценивания и совершенствования аттестации зрелости процессов жизненного цикла для различных областей использования, проектов программных средств и предприятий.

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

Организация сертификации программных продуктов

Сертификация состоит из ряда организационных процессов, составляющих систему сертификации , эти процессы поддерживаются регламентированными процедурами и документами и должны выполняться квалифицированными, аттестованными экспертами - инспекторами. Для сертификации предприятия-разработчика и результатов его деятельности - программных продуктов, моделями CMMI или профилями стандартов ISO [ , ] рекомендуется определенная дисциплина, которая должна быть адаптирована к конкретным характеристикам объектов и внешней среды жизненного цикла ПС. Перечисленные ниже процессы и документы ориентированы на крупные проекты, и их состав может сокращаться по согласованию между разработчиками, заказчиками и сертификаторами в более простых случаях.

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

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

Руководство по качеству содержит изложение принципов, описание методов и процедур, связанных с выполнением основных функций и задач органа по сертификации или лаборатории, обеспечивающих качество проводимых испытаний и доверие к результатам оценок, испытаний и экспертиз. Руководство по качеству, как правило, включает разделы [ TWLSC$

  • политика в области обеспечения качества проведения испытаний и экспертиз;
  • оснащение центра актуальными методологическими материалами и программно-инструментальными средствами испытаний;
  • формализация требований к объектам испытаний;
  • политика в области технической оснащенности центра и повышения квалификации персонала;
  • архивация и контроль сохранности документации результатов сертификации.

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

  • выбор схемы сертификации с учетом специфики продукции (объем, технология, требования нормативных документов и др.) и предложений разработчика;
  • определение количества и порядка отбора образцов и компонентов, подлежащих испытаниям, если это не указано в стандартах;
  • выбор и определение аккредитованной испытательной лаборатории, которая должна проводить испытания;
  • подготовку проекта договора на выполнение работ.

Подготовительная часть работы по сертификации заканчивается выпуском решения по форме, принятой в системе сертификации. Решение вместе с проектами договора на выполнение работ направляется заявителю. При организации сертификационных испытаний осуществляется подбор и изучение действующих нормативных документов на продукцию, заявленную к сертификации, методов ее испытаний и оценки результатов.

Заявитель принимает окончательные решения, какие элементы системы качества, участки и виды организационной и технической деятельности подлежат проверке при сертификации в заданный интервал времени. Заявитель должен создать условия и представить документы для обеспечения процессов проверок. Он может представить в орган по сертификации протоколы испытаний, проведенных при разработке и постановке продукции на производство, документы об испытаниях, выполненных сторонними испытательными лабораториями и другие документы, свидетельствующие о соответствии технологии или продукции установленным требованиям. На основе анализа представленных с заявкой документально подтвержденных доказательств соответствия его продукции установленным требованиям, орган по сертификации может принять решение о сокращении объема испытаний или о выдаче сертификата.

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

Процесс сертификации программных продуктов и систем качества предприятия включает:

  • анализ и выбор разработчиком или заказчиком (заявителем) компетентных в данной области органа и аттестованной лаборатории для выполнения сертификационных испытаний;
  • подачу заявителем заявки на испытания в орган сертификации и принятие сертификаторами решения по заявке, выбор схемы сертификации, заключение договора на сертификацию;
  • идентификацию требований к системе качества предприятия и/или к версии программного продукта, подлежащих испытаниям;
  • выполнение сертификационных испытаний системы качества предприятия или версии программного продукта сертификационной лабораторией;
  • анализ полученных результатов и принятие решения лабораторией и/или органом сертификации о возможности выдачи заявителю сертификата соответствия;
  • выдачу органом сертификации заявителю - сертификата и лицензии на применение знака соответствия и на выпуск сертифицированной продукции - версий программного продукта;
  • осуществление инспекционного контроля органом сертификации сертифицированной системы качества предприятия и/или продукции;
  • проведение заявителем корректирующих мероприятий при нарушении соответствия процессов системы качества и/или продукции установленным требованиям и при неправильном применении знака соответствия.

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

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

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

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

Методики проверок качества разработки должны быть обеспечены необходимыми ресурсами для выполнения программы испытаний, методиками планирования и разработки частных процедур проверок. Методики должны содержать: объекты и цели испытаний; оцениваемые показатели качества; условия и порядок испытаний; методы обработки, анализа и оценки результатов испытаний; техническое обеспечение испытаний и отчетность. Следует указывать технические и программные средства, используемые во время проведения испытаний, и порядок проведения испытаний, а также ожидаемые результаты проверок. Должны быть разработаны методики контроля за корректировками, действиями по исправлению дефектов, если в службу управления проверок поступит такой запрос. Служба управления программами испытаний должна разработать методики сохранения конфиденциальности любой информации об испытаниях, а также данных, имеющихся у экспертов.

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

Заключение по результатам сертификационных испытаний разрабатывается сертификаторами и содержит обобщенные сведения о результатах испытаний и обоснование целесообразности выдачи сертификата. В случае получения отрицательных результатов сертификационных испытаний принимается решение об отказе в выдаче сертификата соответствия. После доработки сертифицируемой продукции или системы качества испытания могут быть повторены. Результаты анализа состояния технологии или качества продукции оформляются актом , в котором даются оценки по всем позициям Программы испытаний и содержатся выводы, включающие общую оценку состояния производства и продукции, необходимость корректирующих мероприятий. Акт используется органом по сертификации наряду с протоколами испытаний, заявкой для выдачи и определения срока действия сертификата на программный продукт, периодичности инспекционного контроля, а также для составления корректирующих мероприятий.

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

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

За сертифицированными программными продуктами в процессе их эксплуатации в течение всего срока действия сертификата соответствия должен осуществляться инспекционный контроль . Инспекционный контроль проводится в форме периодических и внеплановых проверок соблюдения требований к качеству технологии и сертифицированной продукции. Объектами контроля, в зависимости от схемы сертификации, является сертифицированная продукция, система качества или стабильность производства предприятия-разработчика. При определении периодичности и объема инспекционной проверки учитываются следующие факторы: степень потенциальной опасности программного продукта, стабильность производства, объем выпуска, наличие и применение системы качества при разработке, информация о результатах испытаний продукта и его производства, проведенных изготовителем, органами государственного контроля и надзора.

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

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

Решение о приостановлении действия сертификата и лицензии на право применения знака соответствия не принимается в том случае, если путем корректирующих мероприятий, согласованных с органом по сертификации, его выдавшим, заявитель может устранить обнаруженные причины несоответствия и подтвердить без повторных испытаний в аккредитованной лаборатории, соответствие продукта или процессов нормативным документам. Если этого сделать нельзя, то действие сертификата отменяется, и лицензия на право применения знака соответствия аннулируется. Информация о приостановлении или отмене действия сертификата доводится органом по сертификации, его выдавшим, до сведения заявителя, потребителей и других заинтересованных организаций. Действие сертификата и право маркирования продукции знаком соответствия могут быть возобновлены при выполнении предприятием-разработчиком следующих условий:

  • выявления причин несоответствия и их устранения;
  • представления в орган по сертификации отчета о проделанной работе по улучшению и обеспечению качества продукции;
  • проведения по методикам и под контролем органа по сертификации дополнительных испытаний продукции и получения положительных результатов.

Документирование процессов и результатов сертификации программных продуктов

Состав и содержание документации для сертификации системы качества предприятия зависят от характеристик проектирования, разработки и модификации программных средств, а также от требований к их качеству и особенностей технологической среды. Поэтому необходимый комплект документов для каждого предприятия или проекта следует выбирать и адаптировать применительно к этим характеристикам. Оцениваемыми при сертификации показателями системы качества являются наличие соответствующих документов и практическое выполнение требований определенного уровня модели зрелости СММI или адаптированного профиля стандартов на базе ISO 9000:2000 , а также, созданных на их основе, должностных инструкций специалистами предприятия-разработчика. Заявитель должен подготовить и предъявить испытательной лаборатории согласованный между заказчиком и разработчиком и утвержденный комплект документов для проверки их достоверности, достаточности состава и качества изготовления в соответствии с нормативными документами.

Ориентировочный комплект основных документов при сертификации состоит из трех групп:

  • базовые нормативные документы систем качества в соответствии с номенклатурой и содержанием профиля стандартов на базе ISO 9000:2000 или модели зрелости СММI , а также подготовленные разработчиками на их основе программа, руководство и инструкции, предъявляемые испытателям (экспертам) системы качества или продукции проверяемого предприятия;
  • исходные документы, характеризующие конкретное предприятие или проект, а также жизненный цикл программного средства, подготавливаемые руководством проекта для сертификации его качества;
  • отчетные документы испытателей, отражающие результаты проверки (сертификации) системы качества предприятия и/или программного продукта, представляемые органу сертификации, заявителю и руководству проверяемого предприятия.

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

Базовые документы системы качества предприятия и жизненного цикла программного средства

  1. Концепция, терминология, требования и руководство по улучшению деятельности - системы менеджмента качества - ISO 9000:2000 или версия модели зрелости СММI.
  2. Адаптированные версии или перечень разделов и рекомендаций стандартов ISO 12207, ISO 15504 , их изменений и руководств по применению, выделенных при адаптации и обязательных для использования в системе качества конкретного предприятия или проекта программного продукта.
  3. Адаптированная версия или перечень разделов и рекомендаций стандарта ISO 900003 , выделенных при адаптации и обязательных для применения в системе качества предприятия, выпускающего программный продукт.
  4. Базовые характеристики и атрибуты качества проекта ПС, выделенные, адаптированные и конкретизированные на основе стандартов ISO 12182, ISO 9126, ISO 14598, ISO 25000 .
  5. Адаптированная версия и утвержденная редакция руководства по сопровождению и конфигурационному управлению основе рекомендаций стандартов ISO 14764, ISO 10007, ISO 15846 .
  6. Комплект должностных инструкций, определяющих ответственность, полномочия и порядок взаимодействия всего руководящего, выполняющего и проверяющего работу персонала, участвующего в процедурах системы качества предприятия для конкретного проекта ПС.

Исходные документы, отражающие особенности жизненного цикла конкретного программного средства

  1. Описание характеристик программных продуктов, создаваемых на предприятии, системы и внешней среды их жизненного цикла, необходимых для адаптации и подготовки рабочих версий стандартов и требований проекта ПС и системы качества предприятия в соответствии с рекомендациями стандартов ISO 12207, ISO 15504, ISO 90003 и ISO 9126 .
  2. Описание целей, требований и обязательств предприятия-разработчика в области системы качества, критериев качества процессов и продуктов разработки, поставки и поддержки всего жизненного цикла ПС.
  3. Комплект эксплуатационных документов, поставляемых заказчику и пользователям для обеспечения ЖЦ и применения конкретной версии программного продукта на основе адаптированных стандартов ISO 9294, ISO 15910, ISO 18019 .
  4. Документация и средства автоматизации проектирования, разработки, модификации, контроля и испытаний, используемых для обеспечения жизненного цикла программного продукта.
  5. Планы и методики испытаний применения и оценки эффективности процессов системы качества предприятия и программного продукта.
  6. Методики сопровождения, идентификации компонентов программного продукта и документации, анализа и утверждения версий комплексов программ и данных.
  7. Методика конфигурационного управления, утверждения, хранения, защиты, копирования версий программного продукта и сопровождающих документов, а также накопления и хранения, зарегистрированных в архиве предприятия данных о характеристиках качества в течение жизненного цикла версий программного продукта.

Результирующие документы испытаний - сертификации системы качества предприятия и/или программного продукта

  1. Отчет о наличии, актуальности и систематичности оформления документации, адаптированной к требованиям и положениям системы качества предприятия, обеспечивающей интегрированный процесс гарантии качества на протяжении всего жизненного цикла программного продукта.
  2. Результаты контроля и испытаний состояния и применения системы качества, проводимых периодически для определения ее пригодности и эффективности.
  3. Отчет о наличии и поддержании в рабочем состоянии методик проведения проверок и документально оформленных отчетов о результатах достигнутого качества выполнения требований договора на сертификацию с заказчиком.
  4. Результаты регистрации достигнутых характеристик качества комплекса программ: идентификация, накопление, хранение зарегистрированных данных о характеристиках и атрибутах качества программного продукта и его компонентов.
  5. Результаты реализации плана разработки, документально оформленных входных и выходных данных этапов разработки и протоколов проверки реализации жизненного цикла ПС.
  6. Результаты практического выполнения программы качества и осуществления регламентированной деятельности в области качества на всех этапах жизненного цикла ПС.
  7. Результаты аттестации имитаторов внешней среды и генераторов тестов, а также оценка их достаточности для выполнения сертификационных испытаний программного продукта.
  8. Результаты анализа выполнения планов и методик проведения испытаний, протоколы испытаний, оценки соответствия результатов испытаний предъявляемым требованиям, а также результаты испытаний, утвержденные представителями заявителя, заказчика и поставщика.
  9. Акт результатов проверок реальных характеристик жизненного цикла ПС и системы качества предприятия, выводы о их соответствии требованиям к сертификации производства программного продукта.
  10. Сертификат системы качества предприятия и/или программного продукта и обеспечения его жизненного цикла, лицензия на применение знаков соответствия.

Литература

В.В. Липаев -- Профили стандартов жизненного цикла программных средств. -- Jet Info, Информационный бюллетень , N 12 , 2005

К. Мильман, С. Мильман -- СММI - шаг в будущее. -- Открытые системы. , N 5-6.(2005), N2.(2006) , 2005, 2006

Оценка и аттестация зрелости процессов создания и сопровождения программных средств и информационных систем ISO IEC TR 15504-CMMI. Пер. с англ -- М.: Книга и бизнес , 2001

В.В. Липаев -- Процессы и стандарты жизненного цикла сложных программных средств. Справочник. -- М.: СИНТЕГ , 2006

В.В. Липаев -- Методы обеспечения качества крупномасштабных программных средств. -- М.: РФФИ. СИНТЕГ , 2003

"; antisource: "Программные продукты сейчас применяются для решения задач управления практически во всех сферах деятельности человека: в экономике, социальной, военной и других областях. Обеспечение высокого качества отечественных программных продуктов при их массовой разработке и поставке для различных сфер применения в стране и на мировом рынке стало стратегической задачей."; condition: 1]$

5 эволюционных этапов в управлении организационными процессами. Объяснение Capability Maturity Model (Модель развития функциональных возможностей). CMM

Моделью Capability Maturity Model (Модель зрелости возможности) CM-CEI организационная модель, которая описывает 5 эволюционных этапов (уровней), на которых управляются процессы в организации.

Смысл Capability Maturity Model (Модель зрелости возможности), первоначально созданной для развития программного обеспечения, в том, что организация должна быть способна принять и поддерживать приложения своего программного обеспечения. Модель также предлагает конкретные шаги и инициативы, которые помогут организации развиться до следующего уровня.

5 этапов Capability Maturity Model (Модель развития функциональных возможностей)

Начальный (Initial) (процессы специальные, хаотичные или, на самом деле, немногие из них определены) Повторяемый (Repeatable) (основные процессы установлены, и существует дисциплина для того, чтобы придерживаться этих процессов) Определяемый (Defined) (все процессы определены, документированы, унифицированы и интегрированы) Управляемый (Managed) (процессы измеряются путем агрегирования подробных данных о процессах и их качестве) Оптимизирование (Optimizing) (непрерывное развитие процесса с помощью количественной обратной связи и испытания новых идей и технологий)

Модель развития программного обеспечения

CMM описывает принципы и практики, которые лежат в основе понятия зрелости программного процесса. Они предназначены для того, чтобы помочь фирмам по разработке и продаже программного обеспечения улучшить совершенность своих программных процессов эволюционным путем. Начиная от специальных, хаотичных процессов, переходя к зрелым, дисциплинированным программным процессам. Фокус делается на определение ключевых областей процессов и примерные практики, которые могут составить дисциплинированные программные процессы. Концепция зрелости CMM создает контекст, в котором:

    Практики можно повторить. Если вы не повторяете какую-то операцию, то не стоит ее улучшать. Существуют правила, процедуры и практики, которые принуждают организацию к внедрению и последовательному исполнению. Лучшие методы организации производственных работ можно быстро распространить между группами. Практики определены так, чтобы позволить обмен между проектами, таким образом обеспечивая некоторцю стандартизацию для организации. Отклонения в исполнении этих методов минимизируются. Количественные цели установливаются для задач; и установливаются, производятся и поддерживаются измерения для формирования основы для оценки. Практики непрерывно улучшаются для совершенствования возможности (оптимизирование).

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

Структура Модели развития функциональных возможностей

    Уровни зрелости - многоуровневая концепция, обеспечивающая последовательность дисциплины, которая необходима для достижения непрерывного улучшения. Важно отметить здесь, что организация развивает способность оценивания последствий новой практики, технологии или инструмента. Следовательно, дело не в принятии этих нововведений, а скорее в том, как эти инновационные усилия оказывают влияние на существующие практики. Это оказывает поддержку проектам, группам и организациям давая им основание для обоснованного выбора. Ключевые области процессов - Ключевая область процессов/Key process area (KPA) определяет группу родственных операций, которые при совместном выполнении, достигают ряда важных целей. Цели - цели ключевой области процессов описывают положения, которые должны существовать для той ключевой области процессов. Положения необходимо внедрить эффективным и надежным способом. Объем, в котором цели выполнены, показывает какого рода возможность организация установила на этом уровне совершенности. Цели очерчивают сферы деятельности, границы, и цель каждой ключевой области процессов. Общие характеристики - общие характеристики включают практики, которые внедряют и институционализируют ключевые области процессов. Эти 5 типов общих характеристик включают: Обязателъство исполнить, Способность исполнить, Выполняемые инициативы, Измерение и Анализ, и Контроль внедрения. Ключевые практики - ключевые практики описывают элементы инфраструктуры и практики, которые вносят наиболее эффективный вклад во внедрение и институционализацию ключевых областей процессов.

Критерии для пределения процесса

Критерии для пределения процесса - это совокупность элементов процесса, которые необходимо включить в описание программного процесса для того, чтобы люди могли использовать их на практике. Для того, чтобы установить критерии вам надо задать вопрос - «Какая информация по программному процессу нужна для документирования?»

Помимо государственных и международных стандартов, существует несколько подходов к сертификации процесса разработки. Наиболее известными из них в России являются, по-видимому, CMM и CMMI.

CMM (Capability Maturity Model) - модель зрелости процессов создания ПО, которая предназначена для оценки уровня зрелости процесса разработки в конкретной компании. В соответствии с этой моделью имеется пять уровней зрелости процесса разработки. Первый уровень соответствует разработке «как получится», когда на каждый проект разработчики идут как на подвиг. Второй соответствует более-менее налаженным процессам, когда можно с достаточной уверенностью рассчитывать на положительный исход проекта. Третий соответствует наличию разработанных и хорошо описанных процессов, используемых при разработке, а четвертый - активному использованию метрик в процессе управления для постановки целей и контроля их достижения. И наконец, пятый уровень означает способность компании оптимизировать процесс по мере необходимости.

Требования CMM и CMMI

После появления CMM стали разрабатываться специализированные модели зрелости для создания информационных систем, для процесса выбора поставщиков и некоторые другие. На их основе была разработана интегрированная модель CMMI (Capability Maturity Model Integration). Кроме того, в CMMI была предпринята попытка преодолеть проявившиеся к тому времени недостатки CMM - преувеличение роли формальных описаний процессов, когда наличие определенной документации оценивалось значительно выше, чем просто хорошо налаженный, но не описанный процесс. Тем не менее CMMI также ориентирован на использование весьма формализованного процесса.

Таким образом, основой моделей CMM и CMMI является формализация процесса разработки. Они нацеливают разработчиков на внедрение детально описанного в регламентах и инструкциях процесса, который, в свою очередь, не может не требовать разработки большого объема проектной документации для соответствующего контроля и отчетности.

Связь CMM и CMMI с итеративной разработкой более опосредованная. Формально ни та ни другая не выдвигают конкретных требований к тому, чтобы придерживаться каскадного или итеративного подхода. Однако, по мнению ряда специалистов, CMM в большей степени совместима с каскадным подходом, в то время как CMMI допускает также и применение итеративного подхода.

Безусловно, RUP - это итеративная методология. Хотя формально обязательность выполнения всех фаз или какого-то минимального числа итераций нигде в RUP не обозначена, весь подход ориентирован на то, что их достаточно много. Ограниченное количество итераций не позволяет в полной мере использовать все преимущества RUP. Вместе с тем RUP можно применять и в практически каскадных проектах, включающих реально всего пару итераций: одну в фазе «Построение», а другую в фазе «Передача». Кстати говоря, в каскадных проектах реально используется именно такое количество итераций. Ведь проведение испытаний и опытной эксплуатации системы предполагает внесение исправлений, которые могут подразумевать определенные действия, связанные с анализом, проектированием и разработкой, то есть фактически являются еще одним проходом через все фазы разработки.

Методология RUP

Что касается формальности методологии, то здесь RUP представляет пользователю весьма широкий диапазон возможностей. Если выполнять все работы и задачи, создавать все артефакты и достаточно формально (с официальным рецензентом, с подготовкой полной рецензии в виде электронного или бумажного документа и т.д.) проводить все рецензирования, RUP может оказаться крайне формальной, тяжеловесной методологией. В то же время RUP позволяет разрабатывать только те артефакты и выполнять только те работы и задачи, которые необходимы в конкретном проекте. А выбранные артефакты могут выполняться и рецензироваться с произвольной степенью формальности. Можно требовать детальной проработки и тщательного оформления каждого документа, предоставления столь же тщательно выполненной и оформленной рецензии и даже, следуя старой практике, утверждать каждую такую рецензию на научно-техническом совете предприятия. А можно ограничиться электронным письмом или наброском на бумаге. Кроме того, всегда остается еще одна возможность: сформировать документ в голове, то есть обдумать соответствующий вопрос и принять конструктивное решение. И если это решение касается только вас, то ограничиться, например, комментарием в коде программы.

Таким образом, RUP - итеративная методология с очень широким диапазоном возможных решений в части формализации процесса разработки.

Подведем итоги второй части статьи. RUP, в отличие от большинства других методологий, позволяет в широком диапазоне выбирать степень формализации и итеративности процесса разработки в зависимости от особенностей проектов и разрабатывающей организации.

А почему это так важно - мы обсудим в следующей части.

Модели совершенствования

Совершенствование процессов работы с требованиями

Парадигма управления качеством, как способ организации производства, появилась давно. Идеи, заложенные в группе стандартов ISO9000 1) , уходят корнями, в частности, и в такие "советские" изобретения, как поддержка рационализаторских предложений, наставничества и др.

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

Применительно к софтверной индустрии, помимо серии ISO9000, наиболее успешно себя зарекомендовавшими стандартами качества являются SEI CMM, SEI CMMI, ISO/IEC 15504 (SPICE), Bootstrap, TickIT.

Активное внедрение методов управления качеством на Западе началось в начале 1960-х годов. В основу стандартов серии ISO9000 легла философия подходов CPI (Continuous Process Improvement) и TQM (Total Quality Management) . Подъем экономики послевоенной Японии во многом был обусловлен идеям, заложенным в TQM.

Качество - термин, который для одних означает необходимость делать то, что желает потребитель, для других - то, что отвечает его потребностям. Менеджмент качества, как он определен в ИСО 9001:2000, исходит прежде всего из того, что люди работают лучше, если им известно то, чем они занимаются. .

Поэтому прежде, чем приступить к какому-либо действию, следует получить ответы на вопросы: что нужно делать, кто будет проверять сделанное, как это нужно делать и как определить, что работа завершена? Необходимо также продумать, как вы собираетесь управлять данным процессом и как его можно усовершенствовать.

Основные принципы ISO9000:

  • Концентрация на потребностях заказчика;
  • Активная лидирующая роль руководства;
  • Вовлечение исполнителей в процессы совершенствования;
  • Реализация процессного подхода;
  • Системный подход к управлению;
  • Обеспечение непрерывных улучшений;
  • Принятие решений на основе фактов;
  • Взаимовыгодные отношения с поставщиками.

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

Стандарт СММ (the Capability Maturity Model) разработан институтом инженерии программного обеспечения (SEI) при университете Карнеги-Меллон.

Назначение стандарта - оценка уровня "зрелости" (maturity levels) организации - разработчика программного обеспечения. Выделяются пять уровней: начальный, повторяемый, определенный, управляемый и оптимизирующий (подробнее см. в ). Данный стандарт получил широкую известность, значительное количество западных IT-компаний сертифицировано по CMM.



В 2000 г. SEI выпустил CMMI-SE/SW, интегрированную модель совершенствования как ПО, так и возможностей конструирования систем .

CMMI-SE/SW имеет две формы. Ступенчатое представление (the staged representation) соответствует структуре SW-CMM с небольшими уточнениями наименований уровней. Пять уровней зрелости содержат 22 области технологических процессов, показанных в таблице 14.1. (CMU/SEI, 2000а). Непрерывное представление (continuous representation), содержит другой взгляд: те же 22 области структурируются по 4 категориям: управление процессами, управление проектами, конструирование и поддержка (CMU/SEI, 2000b).

В непрерывном представлении вместо уровней зрелости определяются шесть уровней способностей (capability levels) для каждой области технологических процессов. Это представление позволяет каждой организации решать, какой уровень способностей ей соответствует в каждой из 22 областей технологических процессов.

Как и в CMM, в рассматриваемом стандарте на уровне 2 имеется область, именуемая "Управление требованиями", но, в отличие от предыдущего стандарта, на уровне 3 есть и отдельная область "Разработка требований". Размещение этой области на уровне 3 не подразумевает, что требования для проектов организации, не достигших уровня 2, собирать и документировать не нужно. Управление требованиями рассматривается как способ, помогающий создавать более предсказуемые и менее хаотичные проекты, что составляет сущность уровня 2 СММ. Приняв порядок управления изменениями и проверки статуса требований, организация может больше внимания уделять разработке высококачественных требований .

Таблица 14.1.
Уровень зрелости Название Области процессов
Начальный (нет)
Управляемый Управление требованиями Планирование проекта Мониторинг и контроль проекта Управление соглашениями с поставщиками Измерения и анализ Обеспечение качества процессов и продуктов Управление конфигурацией
Определенный Разработка требований Техническое решение Интеграция продуктов Верификация Валидация Концентрация внимания на процессе Определение процесса организацией Организационное обучение Интегрированное управление проектом Управление риском Анализ и разрешение вопросов
Количественно управляемый Производительность организационных процессов Количественное управление проектом
Оптимизирующий Организационные нововведения и их развертывание Случайный анализ и разрешение

Область процессов "Управление требованиями"

Ключевые темы включают в себя то, как команда разработчиков должна приобретать понимание требований и разрешать вопросы с клиентами, вовлекать участников проекта в работу с требованиями и управлять изменениями. В отличие от SW-CMM, трассирование (одно из ключевых свойств требований) включено в рассматриваемую область процессов. В стандарте обсуждаются следующие качества трассирования:

  • обеспечение записи источников низкоуровневых или вторичных требований;
  • трассирование каждого требования вниз, к вторичным требованиям, и его размещение по функциям, объектам, процессам и исполнителям;
  • установка горизонтальных связей между требованиями, принадлежащими к одному типу.

Область процессов "Разработка требований"

В CMMI-SE/SW описаны три набора приемов разработки требований:

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

Как в СММ, так и в CMMI формулируются цели, к которым проект или организация по разработке ПО должны стремиться в различных областях процессов. В них также рекомендуются технические приемы, помогающие достичь этих целей.

CMMI-SE/SW регламентирует взаимосвязи между управлением требованиями, разработкой требований и другими областями процессов (рис. 14.1).

Модель зрелости возможностей CMM (Capability Maturity Model) предлагает

различного уровня. Для этого определяются 3 уровня элементов: уровни зрелости организации (maturity levels) , ключевые области процесса (key process areas) и ключевые практики (key practices) . Чаще всего под моделью CMM имеют в виду модель уровней зрелости. В настоящий момент CMM считается устаревающей и сменяется моделью CMMI (см. ниже).

o Уровни зрелости. CMM описывает различные степени зрелости процессов в организациях, определяя 5 уровней организаций.

􀂃 Уровень 1, начальный (initial). Организации, разрабатывающие ПО, но не имеющие осознанного процесса разработки, не производящие планирования и оценок своих возможностей.

􀂃 Уровень 2, повторяемый (repeatable). В таких организациях ведется учет затрат ресурсов и отслеживается ход проектов, установлены правила управления проектами, основанные на имеющемся опыте.

􀂃 Уровень 3, определенный (defined). В таких организациях имеется принятый, полностью документированный, соответствующий реальному положению дел и доступный персоналу процесс разработки и сопровождения ПО. Он должен включать как управленческие, так и технические подпроцессы, а также обучение сотрудников работе с ним.

􀂃 Уровень 4, управляемый (manageable). В этих организациях, помимо установленного и описанного процесса, используются измеримые показатели качества продуктов и результативности процессов, которые позволяют достаточно точно предсказывать объем ресурсов (времени, денег, персонала), необходимый для разработки продукта с определенным качеством.

􀂃 Уровень 5, совершенствующийся (optimizing). В таких организациях, помимо процессов и методов их оценки, имеются методы определения слабых мест, определены процедуры поиска и оценки новых методов и техник разработки, обучения персонала работе с ними и их включения в общий процесс организации в случае повышения эффективности производства.

o Ключевые области процесса. Согласно CMM, уровни зрелости организации можно определять по использованию четко определенных техник и процедур, относящихся к различным ключевым областям процесса. Каждая такая область представляет собой набор связанных видов деятельности, которые нацелены на достижение целей, существенных для общей оценки результативности технологического процесса. Всего выделяется 18 областей. Множество областей, которые должны поддерживаться организацией, расширяется при переходе к более высоким уровням зрелости.



􀂃 К первому уровню не предъявляется никаких требований.

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

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

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

􀂃 Организации пятого уровня зрелости должны дополнительно поддерживать управление изменениями процесса, управление изменениями используемых технологий и предотвращение дефектов.

o Ключевые практики. Ключевые области процесса описываются с помощью наборов ключевых практик. Ключевые практики классифицированы на несколько видов: обязательства (commitments to perform), возможности (abilities to perform), деятельности (activities performed), измерения (measurements and analysis) и проверки (verifying implementations). Например, управление требованиями связано со следующими практиками.

􀂃 Обязательство. Проекты должны следовать определенной политике организации по управлению требованиями.

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

􀂃 Деятельности. Прежде чем быть включенными в проект, требования подвергаются анализу на полноту, адекватность, непротиворечивость и пр. Выделенные требования используются в качестве основы для планирования и выполнения других работ. Изменения в требованиях анализируются и включаются в проект.

􀂃 Измерение. Производится периодическое определение статуса требований и статуса деятельности по управлению ими.

􀂃 Проверки. Деятельность по управлению требованиями периодически анализируется старшими менеджерами. Деятельность по управлению требованиями периодически и на основании значимых событий анализируется менеджером проекта. Группа обеспечения качества проводит анализ и аудит деятельности по управлению требованиями и отчитывается по результатам этого анализа.

Таблица 4 суммирует информацию о количестве практик различных видов, приписанных к разным ключевым областям процесса.

Уровни Область процесса Обязательства Возможности Деятельности Измерения Проверки
Управление требованиями
Планирование проектов
Надзор за ходом проекта
Управление подрядчиками
Обеспечение качества ПО
Управление конфигурацией
Контроль соблюдения технологического процесса
Выработка и поддержка технологического процесса
Обучение персонала
Интегрированное управление
Разработка программного продукта
Координация деятельности групп
Проведение экспертиз
Управление процессом на основе метрик
Управление качеством ПО
Предотвращение дефектов
Управление изменениями технологий
Управление изменениями процесса

Таблица 4. Количество ключевых практик в разных областях процесса по CMM версии 1.1.

Модели жизненного цикла

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

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

Наиболее широко известной и применяемой долгое время оставалась так называемая каскадная или водопадная (waterfall) модель жизненного цикла, которая, как считается, была впервые четко сформулирована в работе и впоследствии запечатлена в стандартах министерства обороны США в семидесятых-восьмидесятых годах XX века. Эта модель предполагает последовательное выполнение различных видов деятельности, начиная с выработки требований и заканчивая сопровождением, с четким определением границ между этапами, на которых набор документов, созданный на предыдущей стадии, передается в качестве входных данных для следующей. Таким образом, каждый вид деятельности выполняется на какой-то одной фазе жизненного цикла. «Классическая» каскадная модель предполагает только движение вперед по этой схеме: все необходимое для проведения очередной деятельности должно быть подготовлено в ходе предшествующих работ. Выработка системных требований Выработка требований к ПО Эксплуатация

Тестирование

Кодирование

Проектирование

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

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

Эксплуатация

Тестирование

Кодирование

Проектирование

Среди разработчиков и исследователей, имевших дело с разработкой сложного ПО, практически с самого зарождения индустрии производства программ (см., например, )


Рис. 6.1. Примерная архитектура авиасимулятора


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

Архитектура определяет большинство характеристик качества ПО в целом. Архитектура служит также основным средством общения между разработчиками, а также между разработчиками и всеми остальными лицами, заинтересованными в данном ПО.

Выбор архитектуры задает способ реализации требований на высоком уровне абстракции. Именно архитектура почти полностью определяет такие характеристики ПО как надежность, переносимость и удобство сопровождения. Она также значительно влияет на удобство использования и эффективность ПО, которые, однако, сильно зависят и от реализации отдельных компонентов. Значительно меньше влияние архитектуры на функциональность - обычно заданную функциональность можно реализовать, использовав совершенно различные архитектуры.

Поэтому выбор между той или иной архитектурой определяется в большей степени именно нефункциональными требованиями и необходимыми свойствами ПО с точки зрения удобства сопровождения и переносимости. При этом для построения хорошей архитектуры надо учитывать возможные противоречия между требованиями к различным характеристикам и уметь выбирать компромиссные решения, дающие приемлемые значения по всем показателям.

Так, для повышения эффективности в общем случае выгоднее использовать монолитные архитектуры, в которых выделено небольшое число компонентов (в пределе - единственный компонент). Этим обеспечивается экономия как памяти, поскольку каждый компонент обычно имеет свои данные, а здесь число компонентов минимально, так и времени работы, поскольку возможность оптимизировать работу алгоритмов обработки данных имеется также только в рамках одного компонента.

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

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

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

· IEEE 1016-1998 Recommended Practice for Software Design Descriptions (рекомендуемые методы описаний проектных решений для ПО).

· IEEE 1471-2000 Recommended Practice for Architectural Description of Software-Intensive Systems (рекомендуемые методы описания архитектуры программных систем).

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

Это определение, в отличие от данного в начале этой лекции, делает акцент не на наборе структур в основе архитектуры, а на принципах ее построения. Стандарт IEEE 1471 определяет также представление архитектуры (architectural description) как согласованный набор документов, описывающий архитектуру с точки зрения определенной группы заинтересованных лиц с помощью набора моделей. Архитектура может иметь несколько представлений, отражающих интересы различных групп заинтересованных лиц.

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

Стандарт IEEE 1471 отмечает необходимость использования архитектуры системы для решения таких задач, как следующие.