Unified Modeling Language
Part 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:
 Показывайте только такие отношения, которые
необходимы для понимания особенностей
группирования элементов модели;
 Скрывайте несущественные (особенно
избыточные) ассоциации.
Отношения
 Пример:
 Между классами Студент и Курс существует ассоциация, показывающая, что студенты
посещают курсы. Каждый студент может посещать любое число курсов, и на каждый
курс может приходить любое количество студентов.
 Аналогичным образом между классами Курс и Преподаватель определена ассоциация,
показывающая, что преподаватель читает курс. Для каждого курса должен быть хотя
бы один преподаватель, и каждый преподаватель может вести любое количество
курсов (в том числе и ни одного).
 Отношения между классом Вуз и классами Студент и Факультет слегка отличаются
друг от друга, хотя оба являются отношениями агрегирования. В вузе может быть
любое количество студентов (включая ноль), и каждый студент может обучаться в
одном или нескольких вузах;
 Вуз может состоять из одного или нескольких факультетов, но каждый факультет
принадлежит одному и только одному вузу. Отношение между классами Вуз и
Факультет называют композитным агрегированием.
 Между классами Факультет и Преподаватель установлены две ассоциации. Одна из
них показывает, что каждый преподаватель работает на одном или нескольких
факультетах, и на каждом факультете должен быть по меньшей мере один
преподаватель. Здесь мы имеем дело с агрегированием, так как организационно
факультеты находятся на более высоком уровне вузовской структуры, чем
преподаватели.
 Другая ассоциация показывает, что каждым факультетом управляет только один
преподаватель - декан. Согласно данной модели, преподаватель может быть деканом
только одного факультета, причем некоторые преподаватели не являются деканами.
Диаграммы классов
 Хорошо структурированная диаграмма классов
обладает следующими свойствами:
◦ Заостряет внимание только на одном аспекте
статического вида системы с токи зрения
проектирования;
◦ Содержит лишь элементы, существенные для
понимания данного аспекта;
◦ Показывает детали, соответствующие требуемому
уровню абстракции, опуская те, без которых можно
обойтись;
◦ Не настолько лаконична, чтобы ввести читателя в
заблуждение относительно важных аспектов
семантики.
Диаграммы классов
 При изображении диаграммы классов
руководствуйтесь следующими
правилами:
◦ Располагайте элементы так, чтобы свести к
минимуму число пересекающиеся линий;
◦ Пространственно организуйте элементы так,
чтобы семантически близкие сущности
располагались рядом;
◦ Старайтесь не показывать слишком много разных
видов отношений; как правило, в каждой
диаграмме классов должны доминировать
отношения какого-либо одного вида.

Unified modeling language basic-part 2

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