Шаг 228.
Унифицированный язык моделирования UML.
Системы и подсистемы

    На этом шаге рассмотрим понятия системы и подсистемы в UML.

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

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

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

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

    В UML предусмотрены определенные средства для графического представления систем и подсистем (см. рис. 1).


Рис.1. Системы и подсистемы

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

    Система (system), возможно декомпозированная на ряд подсистем, – это множество элементов, организованных некоторым образом для выполнения определенной цели. Она описывается набором моделей, зачастую с различных точек зрения.

    Подсистема (subsystem) – это объединение элементов, ряд которых составляет спецификацию поведения других ее элементов. Система и подсистема изображаются в виде пиктограммы компонента со стереотипом.

    Модель (model) – это упрощение реальности, абстракция, создаваемая для лучшего восприятия системы.

    Представление (view) – это проекция модели, рассматриваемая под определенным углом зрения: в ней отражены одни сущности и опущены другие, которые с данной точки зрения не представляют интереса.

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

    В UML система изображается в виде компонента со стереотипом, как показано на рис. 1. Являясь компонентом со стереотипом, она владеет некоторыми элементами. Если заглянуть внутрь системы, то можно увидеть все ее модели и отдельные элементы (в том числе и диаграммы), зачастую декомпозированные на более мелкие подсистемы. Являясь классификатором, система может иметь экземпляры (допускается существование нескольких экземпляров системы, размещенных в разных точках), атрибуты и операции (внешние по отношению к системе действующие лица способны воздействовать на систему в целом), варианты использования, автоматы и кооперации; все они могут принимать участие в специфицировании поведения системы. В ряде случаев она обладает даже интерфейсами, что оказывается важным при конструировании системы систем.

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

    Основная связь между системой и ее подсистемами – это композиция. Система (целое) может состоять из одной или нескольких подсистем (частей) либо вообще не содержать таковых. Допускается наличие связей обобщения между подсистемами. Благодаря этому можно моделировать семейства подсистем, ряд которых представляет общие виды систем, а другие являют собой специализацию этих систем, рассчитанную на конкретные условия. Подсистемы могут быть соединены друг с другом различными способами.

    Система – это сущность самого высокого уровня в данном контексте; составляющие ее подсистемы представляют полное разбиение системы на непересекающиеся части. Система – это подсистема верхнего уровня.

    На следующем шаге рассмотрим понятие моделей и представлений в UML.




Предыдущий шаг Содержание Следующий шаг