Унифицированный язык моделирования (Unified Modeling Language, UML)
Для представления архитектуры, удобно использовать графические языки. На настоящий момент наиболее проработанным и широко используемым из них являетсяUML. UML предлагает использовать для описания архитектуры 8 видов диаграмм.
Диаграммы классов (class diagrams) показывают классы или типы сущностей системы, характеристики классов (поля и операции) и возможные связи между ни ми. Пример диаграммы классов изображен на рисунке 6.11.
Рисунок 6.11 – Пример диаграммы классов
Классы представляются прямоугольниками, поделенными на три части. В верхней части показывают имя класса, в средней — набор его полей, с именами, типами, модификаторами доступа и начальными значениями, в нижней — набор операций класса. Для каждой операции показывают ее модификатор доступа и сигнатуру. Диаграммы классов используются чаще других видов диаграмм.
Диаграммы объектов показывают часть объектов системы и связи между ними в некотором конкретном состоянии или за некоторый интервал времени.
Объекты изображают прямоугольниками с идентификаторами ролей объектов и типами. Однородные коллекции объектов могут изображаться накладывающимися друг на друга прямоугольниками. Такие диаграммы используются довольно редко.
Рисунок 6.12 - Пример диаграммы объектов
Диаграммы компонентов представляют компоненты системы с точки зрения ее сборки, конфигурационного управления и развертывания. Компоненты сборки и конфигурационного управления обычно представляют собой файлы с исходным кодом, динамически подгружаемые библиотеки, HTML-странички и пр., компоненты развертывания — это компоненты JavaBeans, CORBA, COM и т.д. Компонент изображается в виде прямоугольника с несколькими прямоугольными или другой формы «зубами» на левой стороне. Связи, показывающие зависимости между компонентами, изображаются пунктирными стрелками. Один компонент зависит от другого, если он не может быть использован в отсутствии этого другого компонента в конфигурации системы. Компоненты могут также реализовывать интерфейсы. Диаграммы этого вида используются редко.
На диаграмме компонентов есть пакеты, изображаемые в виде «папок», прямоугольников с прямоугольными «наростами» над левым верхним углом. Пакеты являются пространствами имен и средством группировки диаграмм и других модельных элементов UML — классов, компонентов и пр.
Диаграммы развертывания показывают декомпозицию системы на физические устройства различных видов — серверы, рабочие станции, терминалы, принтеры, маршрутизаторы и прочее и связи между ними, представленные различного рода сетевыми и индивидуальными соединениями.
Рисунок 6.13 - Пример диаграммы компонентов
Физические устройства, называемые узлами системы, изображают в виде кубов или параллелепипедов, а физические соединения между ними — в виде линий. Эти диаграммы используются достаточно редко.
Динамические диаграммы описывают происходящие в системе процессы. К ним относятся диаграммы деятельности, сценариев, диаграммы взаимодействия и диаграммы состояний.
Диаграммы деятельности иллюстрируют набор процессов-деятельностей и потоки данных между ними, а также возможные их синхронизации друг с другом. Деятельность изображают в виде прямоугольника с закругленными сторонами, помеченного слева и справа именем деятельности.
Потоки данных изображают стрелками. Синхронизации двух видов — развилки и слияния показывают жирными короткими линиями, к которым сходятся или от которых расходятся потоки данных. Кроме синхронизаций, на диаграммах деятельности могут быть показаны разветвления потоков данных, связанных с выбором того или иного направления в зависимости от некоторого условия. Такие разветвления показывают в виде небольших ромбов. Диаграммы деятельности могут заменять часто используемые диаграммы потоков данных.
Рисунок 6.14 - Пример диаграммы развертывания
Диаграммы сценариев (или диаграммы последовательности) показывают возможные сценарии обмена сообщениями или вызовами во времени между различными компонентами. Компоненты, участвующие во взаимодействии, изображают прямоугольниками вверху диаграммы. От каждого компонента вниз идет вертикальная линия, называемая его линией жизни. Считается, что ось времени направлена вертикально вниз. Интервалы времени, в которые компонент активен, то есть управление находится в одной из его операций, представлены тонким прямоугольником, для которого линия жизни компонента является осью симметрии. Передачу сообщения или вызов изображают стрелкой от компонента-источника к компоненту-приемнику. Возврат управления показан пунктирной стрелкой, обратной к соответствующему вызову. Эти диаграммы используются достаточно часто, например, при детализации сценариев, входящих в варианты использования.
Рисунок 6.15 - Пример диаграммы деятельности
Рисунок 6.16 - Пример диаграммы сценариев
Диаграммы взаимодействия представляют ту же информацию, что и диаграммы сценариев, но привязывают обмен сообщениями (вызовами) не ко времени, а к связям между компонентами. Компоненты на диаграмме изображают в виде прямоугольников. Вдоль связей могут передаваться сообщения, которые показывают в виде небольших стрелок, параллельных связи. Стрелки нумеруются в соответствии с порядком происходящих событий. Нумерация может быть иерархической, чтобы показать вложенность действий друг в друга. Эти диаграммы используют довольно редко.
Рисунок 6.17 - Пример диаграммы взаимодействия, соответствующей примеру диаграммы сценариев
Диаграммы состоянийпоказывают возможные состояния отдельных компонентов или системы в целом, переходы между ними в ответ на какие-либо события и выполняемые при этом действия (рисунок 6.18). Состояния показываются в виде прямоугольников с закругленными углами, переходы — в виде стрелок. Начальное состояние представляется как небольшой темный кружок, конечное — как пустой кружок с концентрически вложенным темным кружком. Состояния могут быть устроены иерархически: они могут включать в себя другие состояния, даже целые отдельные диаграммы вложенных состояний и переходов между ними. Диаграммы состояний используются часто, хотя требуется довольно много усилий, чтобы разработать их с достаточной степенью подробности.
Рисунок 6.18- Пример диаграммы состояний,моделирующей сайт Интернет-магазина