Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

docs / Modelirovanie_na_UML_Ivanov_Novikov_uch_metod_po

.pdf
Скачиваний:
57
Добавлен:
20.03.2015
Размер:
1.85 Mб
Скачать

и то же поведение), и вам все станет понятно. Прочие детали нотации

диаграммы коммуникации см. в главе 4.

 

comm Печать через сервер печати

 

:Computer

[printer busy]

:Queue

1.2: store(file)

3

 

1

1: print(file)

 

2

[printer free]

 

 

1.1: print(file)

 

:PrintServer

 

:Printer

Рис. 1.16. Нотация диаграммы коммуникации

 

1.4.7. Диаграмма компонентов

Диаграмма компонентов (component diagram) — показывает взаимо-

связи между модулями (логическими или физическими), из которых состоит моделируемая система.

Основной тип сущностей на диаграмме компонентов — это сами компоненты (1), а также интерфейсы (2), посредством которых указывается взаимосвязь между компонентами. На диаграмме компонентов применяются следующие отношения:

реализации между компонентами и интерфейсами (компонент реализует интерфейс);

зависимости между компонентами и интерфейсами (компонент использует интерфейс) (3).

На рис. 1.17 показаны основные элементы нотации, применяемые на диаграмме компонентов. Детальное описание приведено в главе 3.

component Web приложение

1

DBMS

Application

Service

3

2

WebBrowser

Рис. 1.17. Нотация диаграммы компонентов

1.4.8. Диаграмма размещения

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

Таким образом, на диаграмме размещения, по сравнению с диаграммой компонентов, добавляется два типа сущностей: артефакт (1), который является реализацией компонента (2) и узел (3) (может быть как классификатор, описывающий тип узла, так и конкретный экземпляр), а также отношение ассоциации между узлами (4), показывающее, что узлы физически связаны во время выполнения.

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

«deploy» (5), либо фигура одной сущности помещается внутрь фигу-

ры другой сущности (6). Детальное описание диаграммы приведено в

главе 3.

 

 

 

deployment Web приложение

 

1

«executable»

«manifest»

DBMS

Oracle

 

 

 

 

 

«deploy»

 

2

 

5

 

 

 

 

 

DataBase

 

 

 

Server

 

 

 

4

 

 

 

«execution

 

 

 

environment»

3

 

 

J2EE AS

 

 

 

 

 

«EJB»

«manifest»

Application

 

Server

 

Service

 

6

 

 

 

Workstation

 

 

 

«executable»

«manifest»

WebBrowser

 

Mozilla

 

 

 

 

 

Рис. 1.18. Нотация диаграммы размещения

1.5. Специальные диаграммы

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

1.5.1. Диаграмма объектов

Диаграмма объектов(object diagram) — является экземпляром диаграммы классов.

На диаграмме объектов применяют один основной тип сущностей: объекты (1) (экземпляры классов), между которыми указываются конкретные связи (2) (чаще всего экземпляры ассоциаций).

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

Основные элементы нотации, применяемые на диаграмме объектов, показаны на рис. 1.19. Детальное описание приведено в главе 3.

object Структура системы обработки заказов

:Order

 

:Customer

 

 

 

 

 

 

 

 

 

home:Address

 

 

 

 

 

 

 

 

 

 

 

 

 

:Payment

 

 

visa:CreditCard

 

 

 

2

 

 

 

1

 

 

 

 

 

 

master:CreditCard

 

 

 

 

 

 

 

 

 

 

 

Рис. 1.19. Нотация диаграммы объектов

1.5.2. Диаграмма внутренней структуры

Диаграмма внутренней структуры (composite structure diagram) используется для более подробного представления структурных классификаторов, прежде всего классов и компонентов.

Структурный классификатор изображается в виде прямоугольника (1), в верхней части которого находится имя классификатора (2). Внутри находятся части (parts) (3). Частей может быть несколько. Части могут взаимодействовать друг с другом. Это обозначается с помощью соединителей (connectors) (4) различных видов. Место на внешней границе части, к которому присоединяется соединитель, называется портом (port) (5). Порты располагаются также на внешней границе структурного классификатора (6). Основные элементы нотации, применяемые на диаграмме внутренней структуры, показаны на рис. 1.20. Детальное описание приведено в главе 3.

component Компилятор

 

1

 

Compiler

2

 

4

 

:Lexical

 

In

 

:Syntax

6

Analyzer

5

Analyzer

 

 

 

 

3

Out

:CodeGenerator

:SemanticAnalyzer

 

 

Рис. 1.20. Нотация диаграммы внутренней структуры

1.5.3. Обзорная диаграмма взаимодействия

Обзорная диаграмма взаимодействия (interaction overview diagram) является разновидностью диаграммы деятельности с расширенным синтаксисом: в качестве элементов обзорной диаграммы взаимодействия могут выступать ссылки на взаимодействия (interaction use) (1), определяемые диаграммами последовательности.

Основные элементы нотации показаны на рис. 1.21. Детальное описание приведено в главе 4.

Рис. 1.21. Нотация обзорной диаграммы взаимодействия

1.5.4. Диаграмма синхронизации

Диаграмма синхронизации (timing diagram) представляет собой особую

форму диаграммы последовательности, на которой особое внимание

уделяется изменению состояний (1) различных экземпляров классифи-

каторов и их временной синхронизации (2).

Рис. 1.22. Нотация диаграммы синхронизации

Основные элементы нотации показаны на рис. 1.22. Детальное описа-

ние приведено в главе 4.

 

 

1.5.5. Диаграмма пакетов

Диаграмма пакетов (package diagram) — единственное средство, по-

зволяющее управлять сложностью самой модели.

 

Основные элементы нотации — пакеты (1) и зависимости с различны-

ми стереотипами (2), применяемые на диаграмме, показаны на рис.

1.23.

 

 

package Пакеты UML верхнего уровня L0

PrimitiveTypes

«import»

Basic

 

1

2

«merge»

 

 

 

«merge»

L0

 

 

Рис. 1.23. Нотация диаграммы пакетов

 

1.6. Модели и их представления

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

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

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

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

1.6.1. Классические представления из UML 1 и 2

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

Одним из самых популярных является набор представлений, описанных авторами языка в UML 1 [2] и показанных на рис. 1.24.

Рис. 1.24 Представления из UML 1

Представление использования (Use Case View) — это описание поведе-

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

Представление проектирования (Design View) предназначено для опи-

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

Представление процессов (Process view) — это описание взаимодейст-

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

Представление компонентов (Component view) — это описание систе-

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

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

В таблице 1.4 приведены наборы представлений, описанные авторами языка в UML 23. Первоначальные пять представлений, ассоциирующиеся с UML 1, при переходе к UML 2 были дополнены и в результате образовали набор уже из восьми представлений.

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

 

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

 

Диаграммы

Комментарий

 

Статическое пред-

 

Диаграмма классов

В UML 1 – часть

 

ставление

 

 

представления проек-

 

(Static view)

 

 

тирования (Design

 

 

 

 

view)

 

 

 

 

 

3 Таблица отражает видение, характерное для UML 2. Комментарии поясняют различие между представления-

ми в UML 1 и UML 2.

Представление про-

Диаграмма внутрен-

В UML 1 частично

ектирования

ней структуры

отображается в пред-

(Design view)

Диаграмма коопера-

ставлении процессов

 

ции

(Process view) и пред-

 

Диаграмма компонен-

ставлении компонен-

 

тов

тов (Component view)

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

Диаграмма использо-

В UML 1 описывается

пользования

вания

одноименным пред-

(Use Case view)

 

ставлением

 

 

 

Представление конеч-

Диаграмма автомата

В UML 1 данное

ных автоматов

 

представление ис-

(State machine view)

 

пользуется всеми

 

 

представлениями по

 

 

мере необходимости

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

Диаграмма деятельно-

В UML 1 данное

тельности

сти

представление ис-

(Activity view)

Обзорная диаграмма

пользуется всеми

 

взаимодействия

представлениями по

 

 

мере необходимости.

Представление взаи-

Диаграмма последова-

В UML 1 данное

модействия

тельности

представление ис-

(Interaction view)

Диаграмма коммуни-

пользуется всеми

 

кации

представлениями по

 

Диаграмма синхрони-

мере необходимости.

 

зации

 

Представление раз-

Диаграмма разверты-

В UML 1 описывается

вертывания (разме-

вания

одноименным пред-

щения)

 

ставлением

(Deployment view)

 

 

Представление управ-

Диаграмма пакетов

Отсутствует в UML 1

ления моделью

 

 

(Model Management

 

 

view)

 

 

Соседние файлы в папке docs