Экстремальное программирование

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

Большинство принципов, применяемых в ХР, диктуется здравым смыслом и применяется в том или ином виде и в других технологиях, просто в ХР они достигают «экстремальных» значений.

Унифицированный процесс (RUP)

Разработчиками IBM Rational Unified Process (RUP) являются Г. Буч, А. Якобсон,

Д. Рамбо (компания «Rational», 1998).

IBM Rational Unified Process — это:

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

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

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

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

RUP — итерационный процесс. Создавать современные сложные программные системы последовательно, т.е. сначала определять все проблемы, затем принимать все проектные решения, разрабатывать и, наконец, проверять изделие, невозможно. Такой подход, рассмотренный выше в разделе «Классическая модель жизненного цикла программного обеспечения», в современной информационной индустрии не оправдывает себя, поскольку его использование часто приводит к непредсказуемому увеличению проектной стоимости и сроков выпуска ПС. Эффективной альтернативой «водопадной модели» служит итерационный процесс разработки ПС.

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

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

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

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

UML (Unified Modeling Language) является языком для специфицирования, визуализации, конструирования и документирования программных продуктов, а также используется в бизнес-моделировании и моделировании любых иных (не программных) систем. Примеры диаграмм UML приведены на рис. 6.4, 6.5.

Диаграмма вариантов использования (Use case diagram)

Рис. 6.4. Диаграмма вариантов использования (Use case diagram)

Диаграмма деятельности (Activity diagram)

Рис. 6.5. Диаграмма деятельности (Activity diagram)

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >