11-software_lifecycle_models (1133551), страница 4
Текст из файла (страница 4)
Модель, ориентированная на риски, позволяет в контекстеконкретного проекта решить задачу приложения адекватного уровня усилий, определяемогоуровнем рисков, связанных с недостаточным выполнением тех или иных работ.Модель не проводит различий между разработкой нового продукта и расширением (илисопровождением) существующего.
Этот аспект позволяет избежать часто встречающегосяотношения к поддержке и сопровождению как ко “второсортной” деятельности. Такой подходпредупреждает большого количество проблем, возникающих в результате одинакового уделениявнимания как обычному сопровождению, так и критичным вопросам, связанным с расширениемфункциональности продукта, всегда ассоциированным с повышенными рисками.Модель позволяет решать интегрированный задачи системной разработки, охватывающей ипрограммную и аппаратную составляющие создаваемого продукта. Подход, основанный науправлении рисками и возможности своевременного отбрасывания непривлекательныхальтернатив (на ранних стадиях проекта) сокращает расходы и одинаково применим и каппаратной части, и к программному обеспечению.”Описывая созданную спиральную модель, Боэм обращает внимание на то, что обладая явнымипреимуществами по сравнению с другими взглядами на жизненный цикл, необходимо уточнить,детализировать шаги, т.е.
циклы спиральной модели для обеспечения целостного контекста длявсех лиц, вовлеченных в проект (Боэм это формулирует так: “Need for further elaboration of spiralCopyright © Сергей Орлик, 2005-2010.http://swebok.sorlik.ru11Основы программной инженерии (по SWEBOK)Модели жизненного цикла программного обеспеченияmodel steps. In general, the spiral model process steps need further elaboration to ensure that allsoftware development participants are operating in a consistent context.”). Организация ролей(ответственности членов проектной команды), детализация этапов жизненного цикла и процессов,определение активов (артефактов), значимых на разных этапах проекта, практики анализа ипредупреждения рисков – все это вопросы уже конкретного процессного фреймворка или, какпринято говорить, методологии разработки.Действительно, детализация процессов, ролей и активов – вопрос методологии.
Однако,рассматривая (спиральная) модель разработки, являясь концептуальным взглядом на созданиепродукта, требует, как и в любом проекте, определения ключевых контрольных точек проекта milestones. Это, в большой степени, связано с попыткой ответить на вопрос “где мы?”. Вопрос,особенно актуальный для менеджеров и лидеров проектов, отслеживающих ход их выполнения ипланирующих дальнейшие работы.В 2000 году [Boehm, 2000], представляя анализ использования спиральной модели и, в частности,построенного на его основе подхода MBASE - Model-Based (System) Architecting and SoftwareEngineering (MBASE), Боэм формулирует 6 ключевых характеристик или практик, обеспечивающихуспешное применение спиральной модели:1.
Параллельное, а не последовательное определение артефактов (активов) проекта2. Согласие в том, что на каждом цикле уделяется внимание:: целям и ограничениям, важным для заказчика альтернативам организации процесса и технологических решений, закладываемыхв продукт идентификации и разрешению рисков оценки со стороны заинтересованных лиц (в первую очередь заказчика) достижению согласия в том, что можно и необходимо двигаться дальше3. Использование соображений, связанных с рисками, для определения уровня усилий,необходимого для каждой работы на всех циклах спирали.4.
Использование соображений, связанных с рисками, для определения уровня детализациикаждого артефакта, создаваемого на всех циклах спирали.5. Управление жизненным циклом в контексте обязательств всех заинтересованных лиц наоснове трех контрольных точек: Life Cycle Objectives (LCO) Life Cycle Architecture (LCA) Initial Operational Capability (IOC)6. Уделение специального внимания проектным работам и артефактам создаваемой системы(включая непосредственно разрабатываемое программное обеспечение, ее окружение, атакже эксплуатационные характеристики) и жизненного цикла (разработки ииспользования).Эволюционирование спиральной модели, таким образом, связано с вопросами детализации работ.Особенно стоит выделить акцент на большем внимании вопросам уточнения – требований,дизайна и кода, т.е.
придание большей важности вопросам итеративности, в том числе,увеличения их количества при сокращении длительности каждой итерации. В результате, можноопределить общий набор контрольных точек в сегодняшней спиральной модели: Concept of Operations (COO) – концепция <использования> системы; Life Cycle Objectives (LCO) – цели и содержание жизненного цикла; Life Cycle Architecture (LCA) – архитектура жизненного цикла; здесь же возможно говорить оготовности концептуальной архитектуры целевой программной системы; Initial Operational Capability (IOC) – первая версия создаваемого продукта, пригодная дляопытной эксплуатации; Final Operational Capability (FOC) – готовый продукт, развернутый (установленный инастроенный) для реальной эксплуатации.Таким образом, мы приходим к возможному современному взгляду (см., например, представлениеспиральной модели в [Фатрелл, Шафер и Шафер, 2003, с.159]) на итеративный иинкрементальный – эволюционный жизненный цикл в форме спиральной модели, изображеннойна рисунке 5.Copyright © Сергей Орлик, 2005-2010.http://swebok.sorlik.ru12Основы программной инженерии (по SWEBOK)Модели жизненного цикла программного обеспеченияРисунок 5.
Обновленная спиральная модель c контрольными точками проекта.(данное авторское представление базируется на оригинальной модели Боэма и различных еемодификациях)Похоже, нам удалось более четко и естественно определить контрольные точки проекта, вопределенной степени, подчеркнув эволюционную природу жизненного цикла. Теперь же поравзглянуть на жизненный цикл в контексте методологий, не просто детализирующих ту или инуюмодель, но добавляющих к ним ключевой элемент – людей.
Роли, как представление различныхфункциональных групп работ, связывает создание, модификацию и использование активовпроектов с конкретными участниками проектных команд. В совокупности с процессами и активами(артефактами) они позволяют нам создать целостную и подробную картину жизненного цикла.Так как взглядов на детализацию описания жизненного цикла может быть много – безусловно,существуют различные методологии, среди которых наибольшее распространение получили: Rational Unified Process (RUP) Enterprise Unified Process (EUP) Microsoft Solutions Framework (MSF) в обоих представлениях: MSF for Agile и MSF for CMMI(анонсированная изначально как “MSF Formal”) Agile-практики (eXtreme Programming (XP), Feature Driven Development (FDD), DynamicSystems Development Method (DSDM), SCRUM,...).Copyright © Сергей Орлик, 2005-2010.http://swebok.sorlik.ru13.