СТАТЬЯ25.06.01

Модель качества разработок CMM и её поддержка линейкой продуктов Rational

Новичков Александр,
технический специалист,
Interface Ltd.

В начале июня Санкт-Петербурге состоялась Конференция разработчиков Software Outsourcing Summit, организованная ассоциацией "Форт-Росс". На Конференции обсуждались вопросы грамотной организации процесса по выпуску качественного программного обеспечения.

В качестве инструмента измерения надежности и качественности принято считать CMM. Необходимость в СММ не есть дань моде, поскольку в современных условиях разработки программного обеспечения просто жизненно необходимо работать не только быстро, но и качественно - это с одной стороны. А с другой стороны, получение определенного уровня CMM привлекает потенциальных заказчиков. Ведь заказчики хотят получить программный продукт гарантированного качества в заданные сроки, а СММ является той визитной карточкой, которая подтверждает уровень подрядчика.

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

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

Но в России пока знают только слово СММ, но не знают каким способом можно подняться до нужного качества и пройти сертификацию (как этого добиться читайте далее по тексту). На Западе уже давно используют для этих целей технологические решения компании Rational Software для организации процесса по выпуску качественного программного обеспечения. И делают это по нескольким причинам: во-первых, Rational Software - единственная компания, которая четко описала весь производственный цикл по выпуску программных продуктов (Rational Unified Process), расписала все возможные виды документов, сопровождающих проект, строго определила роли каждого участника проекта. А во-вторых, написала специальное программное обеспечение для качественного исполнения того или иного этапа. Важно и то, что Rational посредством RUP предлагает перейти от программирования как ремесла, к программированию, как к науке, где все понятно и прозрачно. Ведь повышение качества продукта возможно только в случае, если люди придерживаются технологий, апробированных на многих проектах, а не занимаются изобретением собственных стандартов. Вот и получается, что технологии Rational Software позволят улучшить процесс выпуска ПО и получить соответствующий уровень СММ.

Что такое CMM?

Capability Maturity Model - модель зрелости процессов создания ПО: эволюционная модель развития способности компании разрабатывать программное обеспечение.

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

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

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

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

  1. Начальный уровень (initial level) описан в стандарте в качестве основы для сравнения со следующими уровнями. На предприятии начального уровня организации не существует стабильных условий для созданий качественного программного обеспечения. Результат любого проекта целиком и полностью зависит от личных качеств менеджера и опыта программистов, причем успех в одном проекте может быть повторен только в случае назначения тех же менеджеров и программистов на следующий проект. Более того, если такие менеджеры или программисты уходят с предприятия, то с их уходом резко падает качество производимых программных продуктов. В стрессовых ситуациях процесс разработки сводится к написанию кода и его минимальному тестированию.

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

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

  4. Управляемый уровень (managed level) в организации устанавливаются количественные показатели качества – как на программные продукты, так и на процесс в целом. Таким образом, более совершенное управление проектами достигается за счет уменьшения отклонений различных показателей проекта. При этом осмысленные вариации в производительности процесса можно отличить от случайных вариаций (шума), особенно в хорошо освоенных областях.

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

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

  1. Заинтересованность руководства в данной области (планируется ли практическое внедрение данной ключевой области, существует ли понимание у руководства необходимости данной области и т.д.).
  2. Насколько широко данная область применяется в организации (например, оценке в 4 балла соответствует фрагментарное применение).
  3. Успешность использования данной области на практике (например, оценке в 0 баллов соответствует полное отсутствие какого-либо эффекта, а оценка в 8 баллов выставляется при наличии систематического и измеримого положительного результата практически во всей организации).

О компании Rational Software

Корпорация Rational Software - ведущий разработчик CASE-средств нового поколения, предназначенных для объектно-ориентированного визуального моделирования и проектирования корпоративных информационных систем (КИС) на основе оригинальных методологий, таких как Rational Unified Process (RUP) и Unified Modeling Language (UML). Данные методики создания программных систем основаны на ежегодных опросах пользователей, разрабатывающих ПО. Идейными вдохновителями и отцами RUP и UML являются такие гуру CASE-технологий как Гради Буч, Ивар Якобсон и Джеймс Рамбо, которые до сих пор работают в аналитическом центре Rational и продолжают работу над модернизацией данных методик.

Rational выпускает CASE-средства, системы автоматизированного проектирования ПО, а также средства управления проектами, связанными с разработкой, документированием и сопровождением крупных информационных систем. Несколько лет подряд International Data Corp. (IDC) признает Rational Software лидером по целому ряду показателей среди компаний, разрабатывающих программное обеспечение. По данным USA Today, 49 из 50 ведущих компьютерных компаний используют продукты Rational Software, по данным журнала «Fortune», продукты Rational используют 90 из 100 компаний-разработчиков ПО.

Rational Software была основана в 1981 году, когда Пол Леви (Paul Levy) и Майк Девлин (Mike Devlin), являющиеся и по сей день руководителями и главными генераторами идей, обратили внимание на перспективность ПО.

С тех пор важность программного обеспечения как двигателя экономического роста во всем мире возросла многократно.

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

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

Первую продукцию компания начала выпускать в конце 1984 года. С тех пор компания существенно разрослась как в людских ресурсах так и в собственной капитализации. На сегодняшний день Rational имеет более 26000 клиентов, которые используют более 432,000 лицензий (данные на 1999 год). Доход компании – более 815 миллионов долларов в год. Штат компании - более 3700 специалистов. В число партнеров Rational входят такие лидеры индустрии разработки ПО, как IBM, Oracle и Microsoft.

Rational разработала и развила уникальное решение по объединению команд разработчиков, которое сочетает лидирующие средства разработки с профессиональными услугами и интеллектуальным лидерством в науке развития программного обеспечения. Если способность развивать или развертывать программное обеспечение важна для Вас, то Вам нужны решения Rational Software.

О Rational Unified Process

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

Выше уже упоминался ряд проблем на пути выпуска ПО. Вот что предлагает RUP для решения подобных проблем:


  1. Выпускать программное обеспечение, пользуясь принципом промышленного подхода. То есть так, как поступают любые заводы и фабрики: определяя стадии, потоки, уточняя обязанности каждого участника проекта. Именно промышленный подход позволит достаточно оперативно выпускать новые версии ПО, которые при этом будут надежными и качественными.
  2. Расширять кругозор специалистов для снятия барьеров. Ведь в подавляющем большинстве случаев специалисты из разных отделов просто говорят на разных языках. Соответственно, снятие языкового барьера должно вести к ускорению работы над программным обеспечением.
  3. Использовать итеративную разработку вместо каскадной, существующей в настоящее время. Принцип итерации заключается в повторяемости определенной последовательности процессов с целью доведения элемента до безошибочного состояния.
  4. Обязательное управление требованиями. Всем известно, что по ходу разработки в систему вносятся изменения (самой группой разработчиков или заказчиком – неважно). Rational предлагает мощную систему контроля управления требованиями: их обнаружение и документирование, поддержку соглашений между разработчиками и заказчиками,
  5. Полный контроль всего происходящего в проекте посредством создания специальных архивов.
  6. Унифицированный документооборот, приведенный в соответствие со всеми известными стандартами. Это значит, что каждый этап в разработке (начало, работа и завершение) сопровождаются унифицированными документами, которыми должен пользоваться каждый участник проекта.
  7. Использование визуального моделирования
  8. Применение не только механизмов объектно-ориентированного программирования, но и ОО мышления и подхода.
  9. Подход к разработке ПО как к промышленному процессу

В RUP регламентируются все этапы работ и документы, сопровождающие каждый этап. Также написаны программные продукты, которые помогут достичь высокого уровня в CMM.

О продуктах Rational Software

Rational Rose. CASE-средство визуального моделирования информационных
систем. Используется для построения функциональной, а также бизнесс модели предприятия, а также для кодогенерации на языке реализации. Данный инструмент используется аналитиками на этапе проектирования программной системы и разработчиками на этапе генерации кода смоделированной системы.

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

Rational ClearQuest. Продукт для управления изменениями и отслеживания дефектов в проекте. Посредством ClearQuest возможно хранить в отдельной базе данных (Oracle, Access, SQL) историю всех изменений проекта. Данный продукт тесно интегрируется со средствами тестирования и управления требованиями, представляя собой единую среду для связывания всех ошибок и документов между собой, тем самым давая высшему звену руководства полную информацию о состоянии дел в проекте.

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

Rational Purify, Rational PureCoverage, Rational Quantify. Средства тестирования для разработчиков. Данные продукты позволят оптимизировать выпускаемые программные продукты по скорости работы и по качеству кода.

Rational Robot. Инструмент для создания, модификации и автоматического запуска тестов. Инструмент, на основе тест плана способен проводить как функциональное тестирование (кнопочных и оконных форм), так и нагрузочное, тестируя при этом распределенные приложения клиент/сервер.

Rational TestManager. Открытая и наращиваемая система управления тестированием, которая объединяет все связанные с тестированием инструментальные средства, артефакты, сценарии и данные. Кроме того, Rational вместе с Microsoft и Applied Information Services (AIS) разработали базу знаний Rational Unified Process для платформы Web-решений Microsoft. Все четыре новых продукта интегрированы в семейство программ Rational Suite.

SiteLoad, SiteCheck. Средства тестирования Web-сайтов на производительность и наличие неработающих ссылок.

Rational ClearCase. Предназначен для управления конфигурацией программ (software configuration management - SCM). Данный продукт позволяет производить версионный контроль всех документов проекта. С его помощью можно поддерживать несколько версий проектов одновременно, быстро переключаясь между ними.

Более подробно и о CMM и о технологиях Rational читайте на нашем сайте в ближайшее время.


Другие статьи по управлению качеством
Другие статьи по продуктам Rational Software

Подробно о продуктах Rational Software
Обратиться в Interface Ltd. за дополнительной информацией/по вопросу приобретения продуктов
Курсы по управлению качеством на основе CMM

За дополнительной информацией обращайтесь в Interface Ltd.

Отправить ссылку на страницу по e-mail
Обсудить на форуме Rational Software


Interface Ltd.
Тel/Fax: +7(095) 105-0049 (многоканальный)
Отправить E-Mail
http://www.interface.ru
Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 25.06.01