Наращивание функциональности в соответствии со сценариями.

Формирование системы понятий проекта.

Изменение функциональности.

Итеративность развития.

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

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

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

Задание ситуаций использования (use cases) для определения того, как контактирует пользователь с системой, — первый уровень моделей, предполагаемый объектно-ориентированным проектированием. Эти мо­дели фиксируют ситуации, которые возникают при взаимодействии пользователя с системой. Содержательные действия системы с пользова­телями выводятся из них б виде сценариев. Ситуации использования и сценарии — основа формулирования требований в том виде, в котором их можно предъявлять для разработки архитектуры.

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