Download - Unified modeling language basic-part 2
![Page 1: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/1.jpg)
Unified Modeling LanguagePart I
![Page 2: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/2.jpg)
Three Amigos
![Page 3: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/3.jpg)
Моделирование
![Page 4: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/4.jpg)
Модель является упрощенным представлением реальности.
Моделирование позволяет: Визуализировать систему в ее текущем или
желательном для нас состоянии; Определить структуру или поведение
системы; Получить шаблон, позволяющий затем
сконструировать систему; Документировать принимаемые решения,
используя полученные модели.
Моделирование
![Page 5: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/5.jpg)
Четыре основных принципа моделирования
1. Выбор модели оказывает определяющее влияние на подход к решению проблемы и на то, как будет выглядеть это решение.
2. Модель может быть воплощена с разной степенью абстракции.
3. Лучшие модели – те, что ближе к реальности.4. Нельзя ограничиваться созданием только
одной модели. Наилучший подход при разработке любой нетривиальной системы - использовать совокупность нескольких моделей, почти независимых друг от друга.
![Page 6: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/6.jpg)
Значение UML
ВизуализацияСпецифицированиеКонструированиеДокументирование
![Page 7: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/7.jpg)
Визуализация
UML – средством для составления «чертежей» программного обеспечения.
![Page 8: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/8.jpg)
Специфицирование
◦UML – это графический язык специфицирования, что означает построение точных и полных графических моделей, касающиеся анализа, проектирования и реализации, которые должны приниматься в процессе разработки и развертывания системы программного обеспечения.
![Page 9: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/9.jpg)
Конструирование
Модели, созданные с помощью UML, могут быть непосредственно переведены на различные языки программирования
![Page 10: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/10.jpg)
Документирование
UML позволяет решить проблему документирования системной архитектуры и всех ее деталей, предлагает язык для формулирования требований к системе и определения тестов.
![Page 11: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/11.jpg)
Структура и компоненты языка UML
Общие принципы:◦Принцип абстрагирования; ◦Принцип многомодельности;◦Принцип иерархического построения
моделей
![Page 12: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/12.jpg)
Структура и компоненты языка UML
СущностиОтношения Диаграммы
![Page 13: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/13.jpg)
Сущности
◦Структурные сущности - статические части модели, соответствующие концептуальным или физическим элементам системы. Класс (Class) Интерфейс (Interface) Кооперация (Collaboration) Прецедент (Use case) Активный класс (Active class)
![Page 14: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/14.jpg)
Сущности
◦Физические сущности системы: Компонент (Component) Узел (Node)
![Page 15: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/15.jpg)
Сущности
◦Поведенческие сущности: Взаимодействие (Interaction)
Сообщение Последовательность действий (поведение,
инициированное сообщением) Связь (между объектами)
Автомат (State machine)
![Page 16: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/16.jpg)
Сущности
◦Группирующие сущности: Пакет (Package)
◦Аннотационные сущности: Примечание(Note)
![Page 17: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/17.jpg)
Отношения
Зависимость (Dependency)Ассоциация (Association)
Агрегирование (Aggregation)Обобщение (Generalization)Реализация (Realization)
![Page 18: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/18.jpg)
Отношения
Зависимость (Dependency)
![Page 19: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/19.jpg)
Отношения
Ассоциация (Association) Агрегирование (Aggregation)
![Page 20: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/20.jpg)
Отношения
Обобщение (Generalization)
![Page 21: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/21.jpg)
Отношения
Реализация (Realization)
![Page 22: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/22.jpg)
Диаграммы
◦ Диаграмма в UML – это графическое представление набора элементов, изображаемое в виде связанного графа с вершинами (сущностями) и ребрами(отношениями), используемое для визуализации системы с разных точек зрения.
Типы диаграмм◦ Статические:
Диаграммы классов; Диаграммы объектов; Диаграммы компонентов; Диаграммы развертывания.
◦ Динамические: Диаграммы прецедентов; Диаграммы последовательностей; Диаграммы кооперации; Диаграммы состояний; Диаграммы действий.
![Page 23: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/23.jpg)
Общие механизмы языка UML
Спецификации (Specifications)Принятые деления (Common divisions)Механизмы расширения (Extensibility
mechanisms)
![Page 24: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/24.jpg)
Общие механизмы языка UML
Механизмы расширения: ◦Стереотипы; ◦Помеченные значения; ◦Ограничения.
![Page 25: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/25.jpg)
Классы
![Page 26: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/26.jpg)
Классы
◦Классом (Class) называется описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Графически класс изображается в виде прямоугольника.
![Page 27: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/27.jpg)
Классы
◦Обязанности (Responsibilities) класса - это контракт, которому он должен подчиняться.
![Page 28: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/28.jpg)
Классы
![Page 29: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/29.jpg)
Классы
◦Атрибут - это именованное свойство класса, включающее описание множества значений, которые могут принимать экземпляры этого свойства.
![Page 30: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/30.jpg)
Классы
◦Операцией называется реализация услуги, которую можно запросить у любого объекта класса для воздействия на поведение.
![Page 31: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/31.jpg)
Классы
![Page 32: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/32.jpg)
Классы
Иногда бывает необходимо отделить реализацию класса от его спецификации, что в UML может быть выражено с помощью интерфейсов.
![Page 33: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/33.jpg)
Классы
◦Леденец
![Page 34: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/34.jpg)
Классы
◦Требуемый и предоставляемый интерфейсы
![Page 35: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/35.jpg)
Классы
Кооперации
![Page 36: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/36.jpg)
Классы
Хорошо структурированный класс:
◦Является четко очерченной абстракцией некоторого понятия из словаря;
◦Содержит небольшой, точно определенный набор обязанностей и выполняет каждую из них.
![Page 37: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/37.jpg)
Классы
Изображая класс в UML, придерживайтесь следующих правил:
Показывайте только те его свойства, которые важны для понимания абстракции в данном контексте;
Разделяйте длинные списки атрибутов и операций на группы в соответствии с их категориями;
Показывайте взаимосвязанные классы на одной и той же диаграмме.
![Page 38: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/38.jpg)
Отношения
![Page 39: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/39.jpg)
Отношения
◦Обобщение (Generalization)
![Page 40: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/40.jpg)
Как создать обобщение
![Page 41: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/41.jpg)
Отношения
◦Зависимость (Dependency)
![Page 42: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/42.jpg)
Отношения
◦Ассоциация (Association)
◦Четыре дополнения: Имя
![Page 43: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/43.jpg)
Отношения
◦Роль
![Page 44: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/44.jpg)
Отношения
◦Кратность: Единица (1) «Ноль или единица" (0..1) «Много" (0..*) «Единица или больше" (1..*). Определенное число (например, 3).
![Page 45: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/45.jpg)
Отношения
◦Агрегирование
![Page 46: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/46.jpg)
Ассоциация как класс
![Page 47: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/47.jpg)
Отношения
◦Рекомендации при изображении отношений в UML:
Показывайте только такие отношения, которые необходимы для понимания особенностей группирования элементов модели;
Скрывайте несущественные (особенно избыточные) ассоциации.
![Page 48: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/48.jpg)
Отношения
Пример:
![Page 49: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/49.jpg)
Между классами Студент и Курс существует ассоциация, показывающая, что студенты посещают курсы. Каждый студент может посещать любое число курсов, и на каждый курс может приходить любое количество студентов.
Аналогичным образом между классами Курс и Преподаватель определена ассоциация, показывающая, что преподаватель читает курс. Для каждого курса должен быть хотя бы один преподаватель, и каждый преподаватель может вести любое количество курсов (в том числе и ни одного).
Отношения между классом Вуз и классами Студент и Факультет слегка отличаются друг от друга, хотя оба являются отношениями агрегирования. В вузе может быть любое количество студентов (включая ноль), и каждый студент может обучаться в одном или нескольких вузах;
Вуз может состоять из одного или нескольких факультетов, но каждый факультет принадлежит одному и только одному вузу. Отношение между классами Вуз и Факультет называют композитным агрегированием.
Между классами Факультет и Преподаватель установлены две ассоциации. Одна из них показывает, что каждый преподаватель работает на одном или нескольких факультетах, и на каждом факультете должен быть по меньшей мере один преподаватель. Здесь мы имеем дело с агрегированием, так как организационно факультеты находятся на более высоком уровне вузовской структуры, чем преподаватели.
Другая ассоциация показывает, что каждым факультетом управляет только один преподаватель - декан. Согласно данной модели, преподаватель может быть деканом только одного факультета, причем некоторые преподаватели не являются деканами.
![Page 50: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/50.jpg)
Диаграммы классов
Хорошо структурированная диаграмма классов обладает следующими свойствами:◦ Заостряет внимание только на одном аспекте
статического вида системы с токи зрения проектирования;
◦ Содержит лишь элементы, существенные для понимания данного аспекта;
◦ Показывает детали, соответствующие требуемому уровню абстракции, опуская те, без которых можно обойтись;
◦ Не настолько лаконична, чтобы ввести читателя в заблуждение относительно важных аспектов семантики.
![Page 51: Unified modeling language basic-part 2](https://reader036.vdocuments.site/reader036/viewer/2022062405/557ed2c2d8b42a815a8b46df/html5/thumbnails/51.jpg)
Диаграммы классов
При изображении диаграммы классов руководствуйтесь следующими правилами:◦Располагайте элементы так, чтобы свести к
минимуму число пересекающиеся линий;
◦Пространственно организуйте элементы так, чтобы семантически близкие сущности располагались рядом;
◦Старайтесь не показывать слишком много разных видов отношений; как правило, в каждой диаграмме классов должны доминировать отношения какого-либо одного вида.