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

Объектно-ориентированное моделирование на основе UML. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
11
Так, например, отношение включения, направленное от варианта использо-
вания «Заказ» к варианту использования «Оформление» (рис. 4), указывает на то,
что каждый экземпляр первого варианта использования всегда включает в себя
функциональное поведение или выполнение второго варианта использования.
В этом смысле поведение второго варианта использования является частью
поведения первого варианта использования на данной диаграмме.
Рис. 4. Отношение включения
Графически данное отношение обозначается как отношение зависимости в форме пунктирной линии со стрелкой, направленной от базового варианта ис­пользования к включаемому варианту использования. При этом данная линия
помечается стереотипом <<include>>.
Отношение расширения определяет взаимосвязь базового варианта ис-
пользования с другим вариантом использования, функциональное поведение ко­торого задействуется базовым не всегда, а только при выполнении дополни-
тельных условий.
Отношение расширения между вариантами использования обозначается как
отношение зависимости в форме пунктирной линии со стрелкой, направленной
от того варианта использования, который является расширением для базового варианта использования. Данная линия со стрелкой должна быть помечена сте-
реотипом <<extend>>.
На рисунке 5 отношение расширения между вариантами использования «Выбрать конфигурацию» и «Построить конфигурацию» указывает на то, что сервис «Построить конфигурацию» предоставляется не всегда, а только в том случае, когда ни одна стандартная конфигурация компьютера клиента не устраи-
вает.
12
Рис. 5. Отношение расширения
Между вариантами использования «Оплата» и «Аннулировать заказ» также
установлено отношение расширения (рис. 7), что моделирует ситуацию аннули-
рования заказа при условии его неоплаты. Как правило, отношение расширения сопровождается блоком комментария, в котором записывается условие, при ко-
тором задействуется зависимый вариант использования.
Любой элемент диаграммы может иметь пояснения (комментарии), которые
помещаются в прямоугольник на диаграмме с загнутым верхним правым угол­ком. Этот прямоугольник соединяют пунктирной линией с соответствующим
элементом диаграммы.
Отношение обобщения служит для указания того факта, что некоторый ва-
риант использования А может быть обобщен до варианта использования В. В
этом случае вариант А будет являться специализацией варианта В.
При этом В называется предком или родителем по отношению А, а вариант
А – потомком по отношению к варианту использования В.
Следует подчеркнуть, что потомок наследует все свойства и поведение свое­го родителя, а также может быть дополнен новыми свойствами и особенностями
поведения.
Графически отношение обобщения обозначается сплошной линией со стрелкой в форме незакрашенного треугольника, которая указывает на родитель-
ский вариант использования.
Так, например, вариант использования «Выбор компьютера» является
обобщением варианта использования «Выбор портативного компьютера» (рис. 6).
Рис. 6. Отношение обобщения
13
Между отдельными актерами также может существовать отношение обоб­щения. Данное отношение является направленным и указывает на факт специа­лизации одних актеров относительно других. Например, отношение обобщения
от актера «VIP-клиент» к актеру «Клиент» отмечает тот факт, что каждый экзем­пляр актера «VIP-клиент» является одновременно экземпляром актера «Клиент» и обладает всеми его свойствами.
Диаграмма вариантов использования для предметной области «Продажа
компьютеров через Интернет-магазин» приведена на рисунке 7.
Рис. 7. Диаграмма вариантов использования
1.3. Диаграмма классов
Центральное место в объектно-ориентированном анализе и проектировании занимает разработка логической модели системы в виде диаграммы классов.
Диаграмма классов служит для представления статической структуры мо­дели системы в терминологии классов объектно-ориентированного программи­рования.
Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и под-
системы, а также описывает их внутреннюю структуру и типы отношений.
На данной диаграмме не указывается информация о временных аспектах
функционирования системы. С этой точки зрения диаграмма классов является
дальнейшим развитием концептуальной модели проектируемой системы.
Класс в языке UML служит для обозначения множества объектов, которые обладают одинаковой структурой, поведением и отношениями с объектами из
других классов.
Графически класс изображается в виде прямоугольника, который дополни­тельно может быть разделен горизонтальными линиями на разделы или секции
(рис. 3). В этих разделах могут указываться имя класса, атрибуты (переменные) и операции (методы).
14
Рис. 8. Графическое изображение класса на диаграмме классов
Обязательным элементов обозначения класса является его имя. На началь­ных этапах разработки диаграммы отдельные классы могут обозначаться про-
стым прямоугольником с указанием только имени соответствующего класса (рис. 3, а).
По мере проработки отдельных компонентов диаграммы описания классов
дополняются атрибутами (рис. 3, б) и операциями или методами (рис. 3, в).
Имя класса указывается в первой верхней секции прямоугольника, записы­вается по центру секции имени полужирным шрифтом и должно начинаться с
заглавной буквы.
Во второй сверху секции прямоугольника класса записываются его атрибу-
ты или свойства.
В третьей сверху секции прямоугольника записываются операции или мето-
ды класса.
Операция представляет собой некоторый сервис, предоставляющий каждый экземпляр класса по определенному требованию. Совокупность операций харак-
теризует функциональный аспект поведения класса.
Пример описания класса приведен на рисунке 4, где имя класса – Конфигу­рация, характеристики – Номер конфигурации и Характеристики конфигурации, методы – Выбрать существующую конфигурацию и Построить новую конфигу­рацию.
Рис. 9. Пример графического изображения класса на диаграмме
Кроме внутреннего устройства или структуры классов на соответствующей диаграмме указываются различные отношения между классами. Базовыми от-
ношениями или связями в языке UML являются:
Отношение зависимости;
Отношение ассоциации;
Отношение обобщения;
Отношение агрегации;
Отношение композиции.
15
Каждое из этих отношений имеет собственное графическое представление на диаграмме, которое отражает взаимосвязи между объектами соответствую-
щих классов.
Отношение зависимости используется в такой ситуации, когда некоторое
изменение одного элемента модели может потребовать изменения другого зави-
симого от него элемента модели.
Классы каким-либо образом зависят друг от друга, если, например, у одного класса меняются методы, конструкторы или поля, и по этой причине необходимо переписывать другой класс или, например, объекты одного класса передаются как параметр в методы другого класса и т.д.
Отношение зависимости графически изображается пунктирной линией меж-
ду соответствующими элементами со стрелкой на одном из ее концов. На диа-
грамме классов данное отношение связывает отдельные классы между собой,
при этом стрелка направлена от класса-клиента зависимости к независимому классу или классу-источнику (рис. 5). На данном рисунке изображены два класса: Заказ и Клиент, при этом Клиент является источником некоторой зависимости, а Заказ – клиентом этой зависимости.
Рис. 10. Графическое изображение отношения зависимости
Отношение ассоциации соответствует наличию некоторого отношения
между классами. Данное отношение обозначается сплошной линией с дополни­тельными специальными символами, которые характеризуют отдельные свой-
ства конкретной ассоциации.
В качестве дополнительных специальных символов могут использоваться
имя ассоциации, а также имена и кратность классов-ролей ассоциации (рис. 6).
16
Рис. 11. Отношение ассоциации
Имя ассоциации является необязательным элементом ее обозначения. Если оно задано, то записывается с заглавной (большой) буквы рядом с линией соот-
ветствующей ассоциации. На рисунке 6 ассоциация имеет имя «Покупает».
Наиболее простой случай данного отношения – бинарная ассоциация. Она
связывает в точности два класса и, как исключение, может связывать класс с са-
мим собой.
Отношение агрегации имеет место между несколькими классами в том
случае, если один из классов представляет собой некоторую сущность, включа-
ющую в себя в качестве составных частей другие сущности.
Данное отношение имеет фундаментальное значение для описания структу­ры сложных систем, поскольку применяется для представления системных взаи-
мосвязей типа «часть-целое».
Раскрывая внутреннюю структуру системы, отношение агрегации показыва-
ет, из каких компонентов состоит система и как они связаны между собой.
Графически отношение агрегации изображается сплошной линией, один из
концов которой представляет собой незакрашенный внутри ромб. Этот ромб ука-
зывает на тот из классов, который представляет собой «целое». Остальные клас-
сы являются его «частями» (рис. 7).
Примером отношения агрегации может служить деление персонального компьютера на составные части: системный блок, монитор, клавиатуру и мышь. Используя обозначения языка UML, компонентный состав ПК можно предста-
вить в виде соответствующей диаграммы классов (рис. 7), которая в данном слу­чае иллюстрирует отношение агрегации.
Рис. 12. Графическое изображение отношения агрегации
17
Отношение композиции является частным случаем отношения агрегации. Это отношение служит для выделения специальной формы отношения «часть-
целое», при которой составляющие части в некотором смысле находятся внутри
целого.
Специфика взаимосвязи между ними заключается в том, что части не могут выступать в отрыве от целого, т.е. с уничтожением целого уничтожаются и все
его составные части.
Пример – окно интерфейса программы, которое может состоять из строки
заголовка, кнопок управления размером, полос прокрутки, главного меню, рабо-
чей области и строки состояния.
Графически отношение композиции изображается сплошной линией, один из концов которой представляет собой закрашенный внутри ромб. Этот ромб
указывает на тот из классов, который представляет собой класс-композицию или «целое». Остальные классы являются его «частями» (рис. 8). Отношение компо-
зиции в данном примере отражает тот факт, что ни предназначенная для Интер-
нет-продаж информационная система, ни предназначенная для этих же целей Web-страница не могут выступать в отрыве от Интернет-магазина, не могут су­ществовать, если не существует соответствующий объект класса «Интернет­магазин».
Рис. 13. Графическое изображение отношения композиции
Отношение обобщения является отношением между более общим элемен-
том (родителем или предком) и более частным или специальным элементом (до-
черним или потомком).
Применительно к диаграмме классов данное отношение описывает иерархи­ческое строение классов и наследование их свойств и поведения. При этом пред-
полагается, что класс-потомок обладает всеми свойствами и поведением класса-
предка, а также имеет свои собственные свойства и поведение, которые отсут-
ствуют у класса-предка.
На диаграммах отношение обобщения обозначается сплошной линией с тре-
угольной стрелкой на одном из концов (рис. 9). Стрелка указывает на более об-
18
щий класс (класс-предок или суперкласс), а ее отсутствие – на более специаль­ный класс (класс-потомок или подкласс).
Рис. 14. Графическое изображение отношения обобщения
Диаграмма классов для предметной области «Продажа компьютеров через
Интернет-магазин» приведена на рисунке 15.
Рис. 15. Диаграмма классов
19
1.4. Диаграмма состояния
Рассмотренная выше диаграмма классов представляет собой логическую модель статического представления моделируемой системы. Речь идет о том, что на данной диаграмме изображаются только взаимосвязи структурного характера, не зависящие от времени или реакции системы на внешние события. Однако для большинства физических систем, кроме самых простых и тривиальных, статиче­ских представлений совершенно недостаточно для моделирования процессов функционирования подобных систем как в целом, так и их отдельных подсистем
и элементов [3].
Необходимо отметить, что каждая прикладная система характеризуется не только структурой составляющих ее элементов, но и некоторым поведением или функциональностью. Для общего представления функциональности моделируе­мой системы предназначены диаграммы вариантов использования, которые на
концептуальном уровне описывают поведение системы в целом.
Для моделирования поведения на логическом уровне в языке UML могут использоваться сразу несколько диаграмм: состояний, деятельности, последова­тельности и кооперации, каждая из которых фиксирует внимание на отдельном
аспекте функционирования системы.
В отличие от других диаграмм диаграмма состояний описывает процесс изменения состояний только одного класса, а точнее – одного экземпляра опре-
деленного класса, т.е. моделирует все возможные изменения в состоянии кон-
кретного объекта.
При этом изменение состояния объекта может быть вызвано внешними воз­действиями со стороны других объектов или извне. Именно для описания реак­ции объекта на подобные внешние воздействия и используются диаграммы со-
стояний.
Главное предназначение этой диаграммы – описать возможные последова-
тельности состояний и переходов, которые в совокупности характеризуют пове-
дение элемента модели в течение его жизненного цикла.
Диаграмма состояний по существу является графом специального вида.
Вершинами этого графа являются состояния, которые изображаются соответ­ствующими графическими символами. Дуги графа служат для обозначения пере-
ходов из состояния в состояние.
Состояние может быть задано в виде набора конкретных значений атрибу-
тов класса или объекта, при этом изменение их отдельных значений будет отра-
жать изменение состояния моделируемого класса или объекта.
На диаграмме имеются два специальных состояния – начальное и конечное. Начальное состояние выделено черной точкой (рис. 16), оно соответствует со­стоянию объекта, когда он только что был создан.
Рис. 16. Начальное состояние
20
Конечное состояние обозначается черной точкой в белом кружке (рис. 17), оно соответствует состоянию объекта непосредственно перед его уничтожением.
Рис. 17. Конечное состояние
На диаграмме состояний может быть одно и только одно начальное состоя-
ние. В то же время может быть столько конечных состояний, сколько вам нужно, или их может не быть вообще.
Состояние на диаграмме изображается прямоугольником со скругленными
вершинами (рис. 18). Этот прямоугольник, в свою очередь, может быть разделен на две секции горизонтальной линией.
Если указана лишь одна секция, то в ней записывается только имя состоя- ния. В противном случае в первой из них записывается имя состояния, а во вто-
рой – список некоторых внутренних действий или переходов в данном со-
стоянии.
Рис. 18. Пример состояния
Таким образом, когда объект находится в каком-то конкретном состоянии, могут выполняться различные процессы. Процессы, происходящие в этот мо­мент, когда объект находится в определенном состоянии, называются действия-
мии [4].
С состоянием можно связывать следующие данные: деятельность, входное
действие, выходное действие и событие.
Деятельность – это поведение, реализуемое объектом, пока он находится в
данном состоянии. Деятельность – это прерываемое поведение. Оно может вы-
полняться до своего завершения, пока объект находится в данном состоянии, или
может быть прервано переходом объекта в другое состояние.
Деятельность изображают внутри самого состояния, ее обозначению долж­но предшествовать слово do (делать).
Входное действие – это поведение, которое выполняется, когда объект пе-
реходит в данное состояние. Таким образом, данное действие осуществляется не
после того, как объект перешел в это состояние, а скорее как часть этого перехо-
да. Входное действие также показывают внутри состояния, его обозначению
предшествуют слово entry (вход).
Выходное действие подобно входному. Однако оно осуществляется как со-
ставная часть процесса выхода из данного состояния. Оно является частью про-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]