unified modeling language basic-part 2
TRANSCRIPT
Unified Modeling LanguagePart I
Three Amigos
Моделирование
Модель является упрощенным представлением реальности.
Моделирование позволяет: Визуализировать систему в ее текущем или
желательном для нас состоянии; Определить структуру или поведение
системы; Получить шаблон, позволяющий затем
сконструировать систему; Документировать принимаемые решения,
используя полученные модели.
Моделирование
Четыре основных принципа моделирования
1. Выбор модели оказывает определяющее влияние на подход к решению проблемы и на то, как будет выглядеть это решение.
2. Модель может быть воплощена с разной степенью абстракции.
3. Лучшие модели – те, что ближе к реальности.4. Нельзя ограничиваться созданием только
одной модели. Наилучший подход при разработке любой нетривиальной системы - использовать совокупность нескольких моделей, почти независимых друг от друга.
Значение UML
ВизуализацияСпецифицированиеКонструированиеДокументирование
Визуализация
UML – средством для составления «чертежей» программного обеспечения.
Специфицирование
◦UML – это графический язык специфицирования, что означает построение точных и полных графических моделей, касающиеся анализа, проектирования и реализации, которые должны приниматься в процессе разработки и развертывания системы программного обеспечения.
Конструирование
Модели, созданные с помощью UML, могут быть непосредственно переведены на различные языки программирования
Документирование
UML позволяет решить проблему документирования системной архитектуры и всех ее деталей, предлагает язык для формулирования требований к системе и определения тестов.
Структура и компоненты языка UML
Общие принципы:◦Принцип абстрагирования; ◦Принцип многомодельности;◦Принцип иерархического построения
моделей
Структура и компоненты языка UML
СущностиОтношения Диаграммы
Сущности
◦Структурные сущности - статические части модели, соответствующие концептуальным или физическим элементам системы. Класс (Class) Интерфейс (Interface) Кооперация (Collaboration) Прецедент (Use case) Активный класс (Active class)
Сущности
◦Физические сущности системы: Компонент (Component) Узел (Node)
Сущности
◦Поведенческие сущности: Взаимодействие (Interaction)
Сообщение Последовательность действий (поведение,
инициированное сообщением) Связь (между объектами)
Автомат (State machine)
Сущности
◦Группирующие сущности: Пакет (Package)
◦Аннотационные сущности: Примечание(Note)
Отношения
Зависимость (Dependency)Ассоциация (Association)
Агрегирование (Aggregation)Обобщение (Generalization)Реализация (Realization)
Отношения
Зависимость (Dependency)
Отношения
Ассоциация (Association) Агрегирование (Aggregation)
Отношения
Обобщение (Generalization)
Отношения
Реализация (Realization)
Диаграммы
◦ Диаграмма в UML – это графическое представление набора элементов, изображаемое в виде связанного графа с вершинами (сущностями) и ребрами(отношениями), используемое для визуализации системы с разных точек зрения.
Типы диаграмм◦ Статические:
Диаграммы классов; Диаграммы объектов; Диаграммы компонентов; Диаграммы развертывания.
◦ Динамические: Диаграммы прецедентов; Диаграммы последовательностей; Диаграммы кооперации; Диаграммы состояний; Диаграммы действий.
Общие механизмы языка UML
Спецификации (Specifications)Принятые деления (Common divisions)Механизмы расширения (Extensibility
mechanisms)
Общие механизмы языка UML
Механизмы расширения: ◦Стереотипы; ◦Помеченные значения; ◦Ограничения.
Классы
Классы
◦Классом (Class) называется описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Графически класс изображается в виде прямоугольника.
Классы
◦Обязанности (Responsibilities) класса - это контракт, которому он должен подчиняться.
Классы
Классы
◦Атрибут - это именованное свойство класса, включающее описание множества значений, которые могут принимать экземпляры этого свойства.
Классы
◦Операцией называется реализация услуги, которую можно запросить у любого объекта класса для воздействия на поведение.
Классы
Классы
Иногда бывает необходимо отделить реализацию класса от его спецификации, что в UML может быть выражено с помощью интерфейсов.
Классы
◦Леденец
Классы
◦Требуемый и предоставляемый интерфейсы
Классы
Кооперации
Классы
Хорошо структурированный класс:
◦Является четко очерченной абстракцией некоторого понятия из словаря;
◦Содержит небольшой, точно определенный набор обязанностей и выполняет каждую из них.
Классы
Изображая класс в UML, придерживайтесь следующих правил:
Показывайте только те его свойства, которые важны для понимания абстракции в данном контексте;
Разделяйте длинные списки атрибутов и операций на группы в соответствии с их категориями;
Показывайте взаимосвязанные классы на одной и той же диаграмме.
Отношения
Отношения
◦Обобщение (Generalization)
Как создать обобщение
Отношения
◦Зависимость (Dependency)
Отношения
◦Ассоциация (Association)
◦Четыре дополнения: Имя
Отношения
◦Роль
Отношения
◦Кратность: Единица (1) «Ноль или единица" (0..1) «Много" (0..*) «Единица или больше" (1..*). Определенное число (например, 3).
Отношения
◦Агрегирование
Ассоциация как класс
Отношения
◦Рекомендации при изображении отношений в UML:
Показывайте только такие отношения, которые необходимы для понимания особенностей группирования элементов модели;
Скрывайте несущественные (особенно избыточные) ассоциации.
Отношения
Пример:
Между классами Студент и Курс существует ассоциация, показывающая, что студенты посещают курсы. Каждый студент может посещать любое число курсов, и на каждый курс может приходить любое количество студентов.
Аналогичным образом между классами Курс и Преподаватель определена ассоциация, показывающая, что преподаватель читает курс. Для каждого курса должен быть хотя бы один преподаватель, и каждый преподаватель может вести любое количество курсов (в том числе и ни одного).
Отношения между классом Вуз и классами Студент и Факультет слегка отличаются друг от друга, хотя оба являются отношениями агрегирования. В вузе может быть любое количество студентов (включая ноль), и каждый студент может обучаться в одном или нескольких вузах;
Вуз может состоять из одного или нескольких факультетов, но каждый факультет принадлежит одному и только одному вузу. Отношение между классами Вуз и Факультет называют композитным агрегированием.
Между классами Факультет и Преподаватель установлены две ассоциации. Одна из них показывает, что каждый преподаватель работает на одном или нескольких факультетах, и на каждом факультете должен быть по меньшей мере один преподаватель. Здесь мы имеем дело с агрегированием, так как организационно факультеты находятся на более высоком уровне вузовской структуры, чем преподаватели.
Другая ассоциация показывает, что каждым факультетом управляет только один преподаватель - декан. Согласно данной модели, преподаватель может быть деканом только одного факультета, причем некоторые преподаватели не являются деканами.
Диаграммы классов
Хорошо структурированная диаграмма классов обладает следующими свойствами:◦ Заостряет внимание только на одном аспекте
статического вида системы с токи зрения проектирования;
◦ Содержит лишь элементы, существенные для понимания данного аспекта;
◦ Показывает детали, соответствующие требуемому уровню абстракции, опуская те, без которых можно обойтись;
◦ Не настолько лаконична, чтобы ввести читателя в заблуждение относительно важных аспектов семантики.
Диаграммы классов
При изображении диаграммы классов руководствуйтесь следующими правилами:◦Располагайте элементы так, чтобы свести к
минимуму число пересекающиеся линий;
◦Пространственно организуйте элементы так, чтобы семантически близкие сущности располагались рядом;
◦Старайтесь не показывать слишком много разных видов отношений; как правило, в каждой диаграмме классов должны доминировать отношения какого-либо одного вида.