Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1vendrov_a_m_proektirovanie_programmnogo_obespecheniya_ekonom

.pdf
Скачиваний:
114
Добавлен:
14.05.2016
Размер:
14.05 Mб
Скачать

Жизненный цикл программного обеспечения

71

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

Основные принципы подхода RAD:

разработка приложений итерациями;

необязательность полного завершения работ на каждой из стадий жизненного цикла ПО;

обязательность вовлечения пользователей в процесс разра­ ботки;

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

использование прототипирования, позволяющее полнее выяснить и удовлетворить потребности пользователей;

тестирование и развитие проекта, осуществляемые одновре­ менно с разработкой;

ведение разработки немногочисленной хорошо управляе­ мой командой профессионалов;

грамотное руководство разработкой системы, четкое плани­ рование и контроль выполнения работ.

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

Жизненный цикл ПО в соответствии с подходом RAD состо­ ит из четырех стадий:

анализ и планирование требований;

проектирование;

реализация;

внедрение.

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

72

Глава 1

Естественное развитие каскадной и спиральной моделей при­ вело к их сближению и появлению современного итерационного подхода, который по существу представляет собой рациональное сочетание этих моделей. Различные варианты итерационного подхода реализованы в большинстве современных технологий и методов: Rational Unified Process (RUP), Microsoft Solutions Framework (MSF), XR

1.4. СЕРТИФИКАЦИЯ И ОЦЕНКА ПРОЦЕССОВ СОЗДАНИЯ ПО

1.4.1.

ПОНЯТИЕ ЗРЕЛОСТИ ПРОЦЕССОВ СОЗДАНИЯ ПО. МОДЕЛЬ ОЦЕНКИ ЗРЕЛОСТИ СММ

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

Руководители таких организаций не всегда могут сформиро­ вать стратегию совершенствования и развития технологии дея­ тельности своей компании; на рынке труда специалистов необхо­ димой квалификации явно недостаточно. Вместе с тем в области совершенствования технологических процессов разработки и эксплуатации ПО международный опыт долгие годы был недос­ таточно обобщен и формализован. Только в начале 1990-х годов американский Институт профаммной инженерии (SEI) сформи­ ровал модель технологической зрелости организаций СММ^ (Ca­ pability Maturity Model), определив уровни технологической зре­ лости и их отличительные черты. В течение десятилетия СММ прошла апробацию в целом ряде организаций, ее эффективность

идостоверность проверили заказывающие организации, постав-

^Оценка и аттестация зрелости процессов создания и сопровождения программных средств и информационных систем (ISO/IEC TR 15504СММ) / Пер. с англ. А.С. Агапова и др. — М.: Книга и бизнес, 2001.

Жизненный цикл программного обеспечения

73

щики по, компании, осуществляющие разработку заказного ПО, занимающиеся оффшорным профаммированием.

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

Оценка технологической зрелости компаний может исполь­ зоваться:

заказчиком при отборе лучших исполнителей (например, в тендере);

компаниями-производителями ПО для систематической оценки состояния своих технологических процессов и вы­ бора направлений их совершенствования;

компаниями, решившими пройти аттестацию, для оценки «размеров бедствия», т.е. своего текущего состояния;

аудиторами для определения стандартной процедуры аттес­ тации и проведения необходимых оценок;

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

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

Зрелость процессов (software process maturity) — это степень

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

74 Глава 1

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

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

Начиная с 1990 г. SEI при поддержке правительственных структур США и Организаций-разработчиков ПО постоянно раз­ вивает и совершенствует эту модель, учитывая все новейшие дос­ тижения в области создания и сопровождения ПО.

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

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

Жизненный цикл программного обеспечения

75

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

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

Оптимизируемые

Постоянное процессы совершенствование (optimizing)

процессов J

Управляемые

процессы Прогнозирование (managed)

результатов

Стандартныепроцессы iT Стандартизация (defined)

процессов ff

Повторяемые

процессы Упорядочение (repeatabfe)

процессов — —

Начальный уровень f—' (Initial)

Рис. 1.7. Пять уровней технологической зрелости СММ

76 Глава 1

ти СММ. Надписи на стрелках определяют особенности совер­ шенствования процессов при переходе с уровня на уровень.

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

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

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

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

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

Жизненный цикл программного обеспечения

77

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

Каждый уровень СММ, начиная со второго, характеризуется наличием ряда так называемых основных групп процессов (key process areas — КРА). Модель СММ содержит 18 таких групп, пос­ ледняя версия модели CMMI — 20 фупп. Уровень 2 СММ харак­ теризуется наличием в организации следующих процессов (их наименования соответствуют CMMI):

управление требованиями;

управление конфигурацией;

планирование проекта;

мониторинг и контроль проекта;

управление контрактами;

измерения и анализ;

обеспечение качества процесса и продукта.

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

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

78

Глава 1

На данном уровне к процессам уровня 2 добавляются следую­ щие процессы:

спецификация требований;

интефация продукта;

верификация;

аттестация;

стандартизация процессов организации;

обучение;

интефированное управление проектом;

управление рисками;

анализ и принятие решений.

Основным критерием использования и, при необходимости, корректировки процессов на этом уровне является помощь звену управления и техническим специалистам в повышении эффек­ тивности выполнения проектов. На этом уровне в организации создается специальная фуппа, ответственная за состав операций, из которых состоят процессы, — фуппа по разработке процессов создания ПО (software engineering process group — SEPG).

Ha основе единой технологии для каждого проекта могут раз­ рабатываться свои процессы с учетом его особенностей. Такие процессы в СММ называются «проектно-ориентированные про­ цессы создания ПО» (project's defined software process).

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

Главное назначение уровня 4 (уровня управляемых процес­ сов) — текущий контроль над процессами. Управление должно обеспечивать выполнение процессов в рамках заданного качест­ ва. Могут быть неизбежные потери и временные пики в измеря­ емых результатах, которые требуют вмешательства, но в целом система должна быть стабильна.

На уровне 4 добавляются следующие процессы:

управление производительностью и продуктивностью;

количественное управление проектом.

На этом уровне на практике применяется детальная оценка качества как процессов создания, так и самого создаваемого

Жизненный цикл программного обеспечения

79

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

В рамках всей организации разрабатывается единая програм­ ма количественного контроля производительности создания ПО

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

исопровождения ПО.

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

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

На уровне 5 добавляются следующие процессы:

внедрение технологических и организационных инноваций;

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

как последовательно совершенствуемые, поскольку организа­ ция прилагает постоянные усилия по их модернизации. Это совершенствование распространяется как на выявление допол­ нительных возможностей используемых процессов, так и на создание новых оптимальных процессов и использование но­ вых технологий.

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

80

Глава 1

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

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

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

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

На третьем уровне определена внутренняя структура «черных ящиков», т.е. задачи, из которых состоят процессы. Внутренняя структура представляет собой путь, по которому стандартные процессы в организации применяются в конкрет­ ных проектах. Звено управления и исполнители в необходимой степени детализации знают свои роли и ответственность в рамках проекта. Руководство заранее подготовлено к рискам, которые могут возникнуть в процессе выполнения проекта. Так как стан­ дартизированные и документированные процессы становятся «прозрачными» для обозрения, сотрудники, непосредственно не занятые в проекте, могут своевременно получать точные сведе­ ния о его текущем состоянии.

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