Представления

Как показывает практический опыт, не удается описать с единой точки зрения все без исключения аспекты моделируемой системы. Действительно, в модели нужно отразить множество вещей: интерфейсы для взаимодействия с внешним миром, внутреннюю логическую структуру программы, структуру хранимых данных, алгоритмы функционирования, состав артефактов, включаемых в поставку и многое другое. Отсюда следует вывод: моделировать сложную систему следует с нескольких различных точек зрения, каждый раз принимая во внимание один аспект моделируемой системы и абстрагируясь от остальных. Этот тезис является одним из основополагающих принципов UML, предопределившим практический успех UML.

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

Набор используемых представлений модели является еще менее формальным и догматическим, чем набор канонических типов диаграмм. Например, одним из самых популярных является набор представлений, описанных авторами UML в [1] и показанных на рисунке 1.15.

Рисунок 1.15. Пять представлений модели

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

Логическое представление предназначено для описания словаря предметной области, то есть, в парадигме объектно-ориентированного программирования, классов. Структурные аспекты передаются диаграммами классов и объектов, а поведенческие аспекты — диаграммами взаимодействия, состояний и деятельности.

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

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

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

С другой стороны, те же авторы в книге [2],[3] рассматривают уже восемь представлений, как показано в табл. 2.

Таблица 2. Представления модели и диаграммы в языке UML

Представления Диаграммы Основные концепции
Статическое представление Диаграмма классов Класс, ассоциация, обобщение, зависимость, реализация, интерфейс
Представление использования Диаграмма использования Вариант использования, действующее лицо, ассоциация, расширение, включение, обобщение вариантов использования
Представление реализации Диаграмма компонентов Компонент, интерфейс, зависимость, реализация
Представление размещения Диаграмма размещения Узел, компонент, зависимость, расположение
Представление конечных автоматов Диаграмма состояний Состояние, событие, переход, действие
Представление деятельности Диаграмма деятельности Состояние, деятельность, переход по завершении, развилка, слияние
Представление взаимодействия Диаграмма последовательности Взаимодействие, объект, сообщение, активация
Диаграмма кооперации Кооперация, взаимодействие, роль в кооперации, сообщение
Представление управления моделью Диаграмма классов Пакет, подсистема, модель

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

Учитывая неформальный характер понятия представления и опираясь на собственный опыт использования UML, предложим свой вариант набора представлений. Их всего три.

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

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

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

Если процесс моделирования заканчивается удовлетворительным результатом, то он (процесс) оказывается итеративным и параллельным, примерно таким как показано на рисунке 1.16.

Рисунок 1.16. Процесс моделирования

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

Данный набор представлений положен в основу структуры пособия.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: