Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (1037782), страница 8
Текст из файла (страница 8)
1.5):• Сущности – это сами элементы модели.• Отношения связывают сущности. Отношения определяют, как семантически связаны две или более сущностей.• Диаграммы – это представления моделей UML. Они показываютнаборы сущностей, которые «рассказывают» о программной системе и являются нашим способом визуализации того, что будет делать система (аналитические диаграммы) или как она будет делатьэто (проектные диаграммы).32Глава 1.
Что такое UML?Строительные блокиСущностиОтношенияДиаграммыРис. 1.5. Строительные блоки UMLВ следующих трех разделах типы строительных блоков рассматриваются немного подробнее.1.8.1. Сущности«Сущности» – это существительные UMLмодели.Все UMLсущности можно разделить на:• структурные сущности – существительные UMLмодели, такие каккласс, интерфейс, кооперация, прецедент, активный класс, компонент, узел;• поведенческие сущности – глаголы UMLмодели, такие как взаимодействия, деятельности, автоматы;• группирующая сущность – пакет, используемый для группировкисемантически связанных элементов модели в образующие единоецелое модули;• аннотационная сущность – примечание, которое может быть добавлено к модели для записи специальной информации, очень похожее на стикер.Все эти сущности и то, насколько успешно они используются в UMLмоделировании, рассматривается в части 2.1.8.2.
ОтношенияОтношения позволяют показать взаимодействие в пределах моделидвух или более сущностей. Для понимания роли, которую отношенияиграют в моделях UML, достаточно представить отношения между членами отдельной семьи. Отношения в модели UML позволяют зафиксировать значимые (семантические) связи между сущностями. Например, в табл. 1.1 представлены UMLотношения, применяемые к структурным и группирующим сущностям модели.Правильное понимание семантики различных типов отношений является очень важной частью моделирования UML. Однако мы отложимподробное описание этих семантик до следующих разделов книги.331.8. Строительные блоки UMLТаблица 1.1ТипотношенияUMLсинтаксис Краткаяисточник цель семантикаРазделЗависимостьИсходный элемент зависит от целевого 9.5элемента и изменение последнего можетповлиять на первый.АссоциацияОписание набора связей между объектами.
9.4АгрегацияЦелевой элемент является частью исход 18.4ного элемента.КомпозицияСтрогая (более ограниченная) формаагрегирования.ВключениеИсходный элемент содержит целевой эле 11.4мент.ОбобщениеИсходный элемент является специализа 10.2цией более обобщенного целевого элемента и может замещать его.РеализацияИсходный элемент гарантированно вы 12.3полняет контракт, определенный целевым элементом.18.51.8.3. ДиаграммыДиаграммы – это только представления модели.Во всех инструментальных средствах UMLмоделирования новые сущности или новые отношения при создании добавляются в модель. Модель – это хранилище всех сущностей и отношений, созданных дляописания требуемого поведения проектируемой программной системы.Диаграммы – это своего рода картины, или представления модели.Диаграмма это не модель! На самом деле, различие между диаграммойи моделью является очень важным для понимания, поскольку сущность или отношение могут быть удалены с диаграммы, или даже совсех диаграмм, но попрежнему они продолжают существовать в модели.
Они будут оставаться в модели до тех пор, пока не будут явно удалены из нее. Общая ошибка новичков в UMLмоделировании состоитв том, что они удаляют сущности с диаграмм, не удаляя их из модели.Существует тринадцать различных типов UMLдиаграмм, все они приведены на рис. 1.6. На рисунке каждый прямоугольник представляетопределенный тип диаграммы, при этом курсивом выделяются абстрактные категории типов диаграмм.
Например, существует шесть разных типов Диаграмм структуры. Обычный текст указывает на конкретную диаграмму, которую можно реально создать. Заштрихованныеблоки обозначают типы диаграмм, впервые появившиеся в UML 2.34Глава 1. Что такое UML?ДиаграммаДиаграммаструктурыДиаграммаклассовДиаграммаповеденияДиаграмма ДиаграммаДиаграммаДиаграмма Диаграммасоставных компонентов развертывания объектовпакетовструктурДиаграммадеятель!ностиДиаграммавзаимо!действияДиаграмма Диаграммапреце!состоянийдентов(конечныхавтоматов)ДиаграммаКоммуникационнаяДиаграммапоследовательностидиаграммаобзора взаимодействийВременнаядиаграммаРис.
1.6. Типы UML+диаграммЭти диаграммы можно разделить на те, которые моделируют статическую структуру системы (статическую модель), и те, которые моделируют динамическую структуру системы (динамическую модель). Статическая модель фиксирует сущности и структурные отношения между ними; динамическая модель отображает, как сущности взаимодействуютдля генерирования требуемого поведения программной системы. Статическая и динамическая модели рассматриваются начиная с части 2.Определенного порядка создания UMLдиаграмм не существует, хотяобычно начинают с диаграммы прецедентов для определения предметной области системы. Как правило, работа идет одновременно над несколькими диаграммами, каждая из которых уточняется по мере выявления более подробной информации о разрабатываемой программнойсистеме.
Таким образом, диаграммы являются как представлением модели, так и основным механизмом введения информации в модель.В UML 2 представлен новый синтаксис диаграмм, изображенный нарис. 1.7. У каждой диаграммы может быть рамка, область заголовкаи область содержимого. Область заголовка – это неправильный пятиугольник, содержащий тип (не обязательно), имя и параметры (не обязательно) диаграммы.рамказаголовокобласть содержимогосинтаксис заголовка: <тип> <имя> <параметры>особое внимание: <тип> и <параметры> необязательныРис. 1.7.
Синтаксис UML+диаграмм351.9. Общие механизмы UMLусловная рамкаРис. 1.8. Пример диаграммы<Тип> указывает тип данной диаграммы и должен быть одним из типов, перечисленных на рис. 1.6. Спецификация UML определяет, что<тип> может быть сокращен, но не предоставляет списка стандартныхсокращений. Явное задание <типа> требуется редко, потому что егообычно легко определить из визуального синтаксиса.<Имя> должно описывать семантику диаграммы (например, CourseRegistration (регистрация курса)). <Параметры> предоставляют информацию,необходимую элементам модели, представленным на диаграмме. Примеры использования <параметров> будут приведены позже.У диаграммы может быть (не обязательно) условная рамка, ограничивающая область в инструменте моделирования, внутри которой находится диаграмма.
Пример условной рамки приведен на рис. 1.8.1.9. Общие механизмы UMLВ UML существует четыре общих механизма, последовательно применяемых ко всему языку моделирования. Они описывают четыре стратегии подхода к моделированию объектов, которые в разных контекстах многократно применяются в UML. Это еще раз убеждает нас в простоте и элегантности структуры UML (рис. 1.9).36Глава 1. Что такое UML?Общие механизмыПринятыеделенияСпецификацииДополненияМеханизмырасширенияРис.
1.9. Общие механизмы UML1.9.1. СпецификацииСпецификации – это суть UMLмодели. Они обеспечивают семантический задний план модели.Модели UML имеют, по крайней мере, два измерения: графическое,позволяющее визуализировать модель с помощью диаграмм и пиктограмм, и текстовое, состоящее из спецификаций различных элементовмодели. Спецификации – это текстовые описания семантики элемента.Класс, например BankAccount (банковский счет), можно изобразить в виде прямоугольника с ячейками (рис. 1.10), но это представление ничего не сообщает о бизнессемантике этого класса. Семантика элементовмодели фиксируется в спецификациях; без них можно только догадываться, что на самом деле представляет собой элемент.Набор спецификаций – это суть модели. Спецификации формируют се+мантический задний план (semantic backplane), который объединяетмодель и наполняет ее смыслом.
Различные диаграммы – это простопредставления или визуальные проекции этого плана.BankAccountпиктограммаили элементмоделиaccountNumberownerbalanceСемантический задний планСпецификация классаwithdraw()calculateInterest()deposit()DepositСпецификация прецедентовСпецификация зависимостейРис. 1.10. Семантический задний план1.9. Общие механизмы UML37Семантический задний план обычно сопровождается инструментоммоделирования UML, предоставляющим доступ, просмотр и изменение спецификаций каждого элемента модели.Диаграммы обеспечивают представления семантического заднего плана.UML обеспечивает большую гибкость при создании моделей. В частности, модели могут быть:•сокращенными – некоторые элементы присутствуют в заднем плане,но скрыты в той или иной диаграмме для упрощения представления;•неполными – некоторые элементы модели могут быть полностьюпропущены;•несогласованными – модель может содержать противоречия.Здесь важен сам факт ослабления требований к полноте и согласованности, поскольку, как вы заметите, со временем модель эволюционирует и неоднократно подвергается изменениям.