Разработка и оценка архитектуры на основе сценариев

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

- Выделение компонентов

- Выбирается набор "основных" сценариев использования

- Определяются компоненты, отвечающие за определенные действия в рамках этих сценариев

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

- Определение интерфейсов компонентов

- Уточнение набора компонентов

- Достижение нужных свойств.

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

1) Определить набор сценариев действия пользователя или внешних систем

2) Определить архитектуру

3) Классифицировать сценарий

4) Необходимо оценить сценарий

5) Выявить взаимодействие сценариев

6) Оценить архитектуру в целом, для этого надо использовать оценки важности сценариев и степень их поддержки архитектуры.

 

UML Виды диаграмм UML

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

UML предлагает использовать для описания архитектуры 8 видов диаграмм. 9-й вид UML диаграмм, диаграммы вариантов использования (см. лекцию 4), не относится к архитектурным представлениям. Другие виды диаграмм можно использовать для описания внутренней структуры компонентов или сценариев действий пользователей и прочих элементов, к архитектуре часто не относящихся. Диаграммы UML делятся на две группы — статические и динамические диаграммы.

Статические диаграммы

К этому типу относятся диаграммы классов, объектов, компонентов и диаграммы развертывания.

Динамические диаграммы

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

 

Статические диаграммы

Статические диаграммы

Статические диаграммы представляют либо постоянно присутствующие в системе сущности и связи между ними. К этому типу относятся диаграммы классов, объектов, компонентов и диаграммы развертывания.

Диаграммы классов (classdiagrams) показывают классы или типы сущностей системы, характеристики классов (поля и операции) и возможные связи между ними.

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

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

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

 

Динамические диаграммы

Динамические диаграммы

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

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

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

Диаграммы взаимодействия (collaborationdiagrams) показывают ту же информацию, что и диаграммы сценариев, но привязывают обмен сообщениями/вызовами не к времени, а к связям между компонентами.

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