logo search

74. Методологии разработки программного обеспечения. Классификация. Особенности применения.

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

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

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

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

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

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

Методология управления разработанной ИС для гибкой разработки ПО Scrum

Принципы:

  1. Жестко фиксированные и небольшие по времени итерации – спринты

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

  3. Возможности по реализации не могут изменяться на всем протяжении спринта

  4. Строго фиксированная небольшая длительность спринта

KANBAN – гибкая методология разработки программного обеспечения, ориентированная на задачи.

Преимущества KANBAN:

DYNAMIC SYSTEM DEVELOPMENT METHOD появился в результате работы консорциум из 17 английских компаний. Целая организация занимается разработкой пособий по этой методологии, организацией учебных курсов, программ аккредитации и т.п. Кроме того, ценность DSDM имеет денежный эквивалент.

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

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

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

MICROSOFT SOLUTIONS FRAMEWORK — методология разработки программного обеспечения, предложенная корпорацией Microsoft. MSF опирается на практический опыт Microsoft и описывает управление людьми и рабочими процессами в процессе разработки решения.

Базовые концепции и принципы модели процессов MSF:

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

RATIONAL UNIFIED PROCESS — методология разработки программного обеспечения, созданная компанией Rational Software.

В основе методологии лежат 6 основных принципов:

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

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

PSP:

Команда должна:

PSP помогает разработчикам:

Итеративная методология разработки ПО FDD

5 базовых видов деятельности:

  1. Разработка общей модели

  2. Составление списка необходимых функций системы

  3. Планирование работы над каждой функцией

  4. Проектирование функции

  5. Реализация функции

Адаптивная разработка ПО ASD

Основу ASD составляют 3 нелинейные перекрывающие друг друга фазы:

  1. Обдумывание

  2. Сотрудничество

  3. Обучение

Легковесная гибкая методология Crystal Clear

СС использует 7 методов или практик, 3 из которых являются обязательными

  1. Частая поставка продукта

  2. Улучшение через рефлексию

  3. Личные коммуникации

  4. Чувство безопасности

  5. Фокусировка

  6. Простой доступ к эксперту

Качественное техническое окружение

Методология разработки ПО, сфокусированная на анализе требований и моделирования ICONIX

ICONIX – методология анализа требований, основанная на процедурном использовании

Используется подмножество UML:

  1. ДВИ

  2. Диаграмма классов (описывает структуру, их классы, атрибуты, зависимости, методы, систему)

  3. Диаграмма рабаетности (хз, так написано) описывает связь между вариантами использования и объектами программной системы

  4. Диаграмма последовательностей (описывает упорядоченное по времени взаимодействие объектов)

Итеративно-инкрементный метод разработки ПО Open Up

Принципы:

  1. Совместная работа с целью согласования интересов и достижения общего понимания

  2. Развитие с целью непрерывного обеспечения обратной связи и совершенствования проекта

  3. Концентрация на архитектурных вопросах на ранних стадиях для минимизации рисков и организации разработки

  4. Выравнивание конкурентных преимуществ для максимизации потребительской ценности для заинтересованных лиц

Фазы ЖЦ Open Up:

  1. Начальная фаза

  2. Фазы уточнения

  3. Конструирование

  4. Передачи

Бережливая разработка ПО

Принципы:

  1. Исключение затрат

  2. Акцент на обучении (раннее тестирование, частая обратная связь с заказчиком)

  3. Предельно отсроченное принятие решений

  4. Мотивация команды

  5. Предельно быстрая доставка заказчику

  6. Интегрирование

  7. Целостное видение