Что такое UML. Визуальное моделирование

Содержание

Слайд 2

Визуальное моделирование UML (Unified Modeling Language) - унифицированный язык моделирования. Язык

Визуальное моделирование

UML (Unified Modeling Language) - унифицированный язык моделирования.
Язык -

система знаков, служащая:
средством человеческого общения и мыслительной деятельности;
способом выражения самосознания личности;
средством хранения и передачи информации.
Слайд 3

Слайд 4

Слайд 5

Итак, UML в первую очередь – это cпецификации. Спецификация - подробное

Итак, UML в первую очередь – это cпецификации.
Спецификация - подробное

описание системы, которое полностью определяет ее цель и функциональные возможности. Различают:
словесные спецификации на естественном языке;
модельные спецификации;
формальные спецификации.
Слайд 6

Слайд 7

Слайд 8

UML - еще один формальный язык, который необходимо освоить каждому, кто

UML - еще один формальный язык, который необходимо освоить каждому, кто

собирается заниматься программной инженерией.
Само собой разумеется, что знание UML не гарантирует построения разумных и понятных моделей, хотя и является для этого необходимым.
UML предоставляет огромную свободу при рисовании диаграмм и выборе инструмента рисования. Производители инструментов также воспользовались этой свободой, чтобы по своему разумению "украсить" имеющуюся нотацию.
Слайд 9

Виды диаграмм DOMAIN CATEGORIES DO

Виды диаграмм

DOMAIN CATEGORIES
DO

Слайд 10

Виды диаграмм диаграмма прецедентов; диаграмма классов; диаграмма объектов; диаграмма последовательностей; диаграмма

Виды диаграмм

диаграмма прецедентов;
диаграмма классов;
диаграмма объектов;
диаграмма последовательностей;
диаграмма взаимодействия;
диаграмма состояний;
диаграмма активности;
диаграмма развертывания.

Слайд 11

Диаграмма прецедентов (use case diagram) Эктор (actor) - это множество логически

Диаграмма прецедентов (use case diagram)

Эктор (actor) - это множество логически связанных

ролей, исполняемых при взаимодействии с прецедентами или сущностями (система, подсистема или класс). Эктором может быть человек или другая система, подсистема или класс, которые представляют нечто вне сущности.
Графически эктор изображается либо человечком, либо символом класса с соответствующим стереотипом
Слайд 12

Диаграмма прецедентов (use case diagram) Прецедент (use-case) - описание отдельного аспекта

Диаграмма прецедентов (use case diagram)

Прецедент (use-case) - описание отдельного аспекта поведения

системы с точки зрения пользователя (Буч).
Прецеденты обозначаются очень простым образом - в виде эллипса, внутри которого указано его название (рис.4.2). Прецеденты и экторы соединяются с помощью линий. Часто на одном из концов линии изображают стрелку, причем направлена она к тому, у кого запрашивают сервис, другими словами, чьими услугами пользуются.
Прецеденты могут включать другие прецеденты, расширяться ими, наследоваться и т. д.
Слайд 13

Диаграмма прецедентов (use case diagram)

Диаграмма прецедентов (use case diagram)

Слайд 14

Слайд 15

Диаграмма прецедентов (use case diagram) Цели создания диаграмм прецедентов: определение границы

Диаграмма прецедентов (use case diagram)

Цели создания диаграмм прецедентов:
определение границы и контекста

моделируемой предметной области на ранних этапах проектирования;
формирование общих требований к поведению проектируемой системы;
разработка концептуальной модели системы для ее последующей детализации;
подготовка документации для взаимодействия с заказчиками и пользователями системы.
Слайд 16

Диаграмма классов (class diagram) Класс (class) - категория вещей, которые имеют

Диаграмма классов (class diagram)

Класс (class) - категория вещей, которые имеют общие

атрибуты и операции.
Диаграмма классов - это набор статических, декларативных элементов модели.
Слайд 17

Диаграмма классов (class diagram) Сокрытие от пользователя внутреннего устройства объектов называется инкапсуляцией.

Диаграмма классов (class diagram)

Сокрытие от пользователя внутреннего устройства объектов называется инкапсуляцией.


Слайд 18

Изображение интерфейса Класс со стереотипом > Изображение интерфейса Изображение интерфейса Символы предоставляемого и требуемого интерфейсов

Изображение интерфейса

Класс со стереотипом <>

Изображение интерфейса

Изображение интерфейса

Символы предоставляемого и требуемого интерфейсов

Слайд 19

Диаграмма классов (class diagram) Обобщение - это отношение между более общей

Диаграмма классов (class diagram)

Обобщение - это отношение между более общей сущностью,

называемой суперклассом, и ее конкретным воплощением, называемым подклассом.
Обобщение (или, как часто говорят, наследование) на диаграммах обозначается очень просто - незакрашенной треугольной стрелкой, направленной на суперкласс
Слайд 20

Обобщение 1. Найдите атрибуты, операции и обязанности, общие для двух или

Обобщение

1. Найдите атрибуты, операции и обязанности, общие для двух или более

классов из данной совокупности. Это позволит избежать ненужного дублирования структуры и функциональности объектов.

2. Вынесите эти элементы в некоторый общий суперкласс, а если такого не существует, то создайте новый класс.
3. Отметьте в модели, что подклассы наследуются от суперкласса, установив между ними отношение обобщения.

Слайд 21

Пример использования обобщения

Пример использования обобщения

Слайд 22

Полиморфизм Полиморфи́зм (в языках программирования) — возможность объектов с одинаковой спецификацией

Полиморфизм

Полиморфи́зм (в языках программирования) — возможность объектов с одинаковой спецификацией иметь различную

реализацию.
Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».
Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение:
внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именем методов и типами аргументов и их количеством);
внутренняя общность — одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (перегрузкой функций, перегрузкой операций).
Слайд 23

Отношения между классами Зависимость возникает тогда, когда реализация класса одного объекта

Отношения между классами

Зависимость возникает тогда, когда реализация класса одного объекта зависит

от спецификации операций класса другого объекта
Слайд 24

Отношения между классами Ассоциация - Это просто связь между объектами, по

Отношения между классами

Ассоциация - Это просто связь между объектами, по которой

можно между ними перемещаться. Ассоциация может иметь имя, показывающее природу отношений между объектами, при этом в имени может указываться направление чтения связи при помощи треугольного маркера.
Слайд 25

Отношения между классами Кроме направления ассоциации, мы можем указать на диаграмме

Отношения между классами

Кроме направления ассоциации, мы можем указать на диаграмме роли,

которые каждый класс играет в данном отношении, и кратность, то есть количество объектов, связанных отношением
Слайд 26

Отношения между классами Ассоциация может объединять три и более класса. В

Отношения между классами

Ассоциация может объединять три и более класса. В этом

случае она называется n-арной и изображается ромбом на пересечении линий, как показано на этой диаграмме
Слайд 27

Отношения между классами Ассоциация - более сложное отношение между классами, например,

Отношения между классами

Ассоциация - более сложное отношение между классами, например, связь

типа "часть-целое". Такой вид ассоциации называется ассоциацией с агрегированием. В этом случае один класс имеет более высокий статус (целое) и состоит из низших по статусу классов (частей). При этом выделяют простое и композитное агрегирование и говорят о собственно агрегации и композиции. Простая агрегация предполагает, что части, отделенные от целого, могут продолжать свое существование независимо от него
Слайд 28

Отношения между классами В отношении между двумя классами сама ассоциация тоже

Отношения между классами

В отношении между двумя классами сама ассоциация тоже может

иметь свойства и, следовательно, тоже может быть представлена в виде класса.
Слайд 29

Отношения между классами

Отношения между классами

Слайд 30

Диаграмма классов (class diagram)

Диаграмма классов (class diagram)

Слайд 31

Диаграмма классов (class diagram)

Диаграмма классов (class diagram)

Слайд 32

Диаграмма классов (class diagram)

Диаграмма классов (class diagram)

Слайд 33

Слайд 34

Диаграмма объектов (object diagram) Объект (object) - экземпляр класса. Объект (object)

Диаграмма объектов (object diagram)

Объект (object) - экземпляр класса.
Объект (object) -
конкретная материализация

абстракции;
сущность с хорошо определенными границами, в которой инкапсулированы состояние и поведение;
экземпляр класса (вернее, классификатора - эктор, класс или интерфейс). Объект уникально идентифицируется значениями атрибутов, определяющими его состояние в данный момент времени.
Объект, как и класс, обозначается прямоугольником, но его имя подчеркивается.
Слайд 35

Диаграмма объектов (object diagram) Для чего нужны диаграммы объектов? Они показывают

Диаграмма объектов (object diagram)

Для чего нужны диаграммы объектов? Они показывают множество

объектов - экземпляров классов (изображенных на диаграмме классов) и отношений между ними в некоторый момент времени.
То есть диаграмма объектов - это своего рода снимок состояния системы в определенный момент времени, показывающий множество объектов, их состояния и отношения между ними в данный момент.
Слайд 36

Диаграмма объектов (object diagram)

Диаграмма объектов (object diagram)

Слайд 37

Диаграмма объектов (object diagram)

Диаграмма объектов (object diagram)

Слайд 38

Диаграмма последовательностей (sequence diagram) Диаграмма последовательностей отображает взаимодействие объектов в динамике.

Диаграмма последовательностей (sequence diagram)

Диаграмма последовательностей отображает взаимодействие объектов в динамике.
Диаграмма последовательностей

относится к диаграммам взаимодействия UML, описывающим поведенческие аспекты системы, но рассматривает взаимодействие объектов во времени. Другими словами, диаграмма последовательностей отображает временные особенности передачи и приема сообщений объектами.
Слайд 39

Диаграмма последовательностей (sequence diagram)

Диаграмма последовательностей (sequence diagram)

Слайд 40

Диаграмма последовательностей (sequence diagram)

Диаграмма последовательностей (sequence diagram)

Слайд 41

Диаграмма последовательностей (sequence diagram)

Диаграмма последовательностей (sequence diagram)

Слайд 42

Диаграмма взаимодействия (кооперации, collaboration diagram)

Диаграмма взаимодействия (кооперации, collaboration diagram)

Слайд 43

Диаграмма взаимодействия (кооперации, collaboration diagram)

Диаграмма взаимодействия (кооперации, collaboration diagram)

Слайд 44

Диаграмма состояний (statechart diagram) ". Диаграммы состояний применяются для того, чтобы

Диаграмма состояний (statechart diagram)

". Диаграммы состояний применяются для того, чтобы объяснить,

каким образом работают сложные объекты.
Состояние (state) - ситуация в жизненном цикле объекта, во время которой он удовлетворяет некоторому условию, выполняет определенную деятельность или ожидает какого-то события. Состояние объекта определяется значениями некоторых его атрибутов и присутствием или отсутствием связей с другими объектами.
Слайд 45

Диаграмма состояний (statechart diagram)

Диаграмма состояний (statechart diagram)

Слайд 46

Диаграмма состояний (statechart diagram)

Диаграмма состояний (statechart diagram)

Слайд 47

Диаграмма активности (деятельности, activity diagram) Диаграммы деятельности удобно применять для визуализации

Диаграмма активности (деятельности, activity diagram)

Диаграммы деятельности удобно применять для визуализации алгоритмов,

по которым работают операции классов.
Алгоритм - последовательность определенных действий или элементарных операций, выполнение которых приводит к получению желаемого результата.
Слайд 48

Диаграмма активностей Диаграммы активностей (Activity Diagrams) являются представлением алгоритмов неких действий

Диаграмма активностей

Диаграммы активностей (Activity Diagrams) являются представлением алгоритмов неких действий (активностей),

выполняющихся в системе.
Существует пять представлений системы:
Вид системы с точки зрения прецедентов.
Вид с точки зрения проектирования.
Вид с точки зрения процессов.
Вид с точки зрения развертывания.
Вид с точки зрения реализации.
Слайд 49

Пример диаграммы деятельности

Пример диаграммы деятельности

Слайд 50

Обозначение начального и конечного состояний Обозначение начального и конечного состояний

Обозначение начального и конечного состояний

Обозначение начального и конечного состояний

Слайд 51

Пример диаграммы активностей

Пример диаграммы активностей

Слайд 52

Слайд 53

Слайд 54

Слайд 55

Обозначение состояний потока

Обозначение состояний потока

Слайд 56

Примеры использования таких диаграмм На практике диаграммы деятельности применяются в основном

Примеры использования таких диаграмм

На практике диаграммы деятельности применяются в основном двумя

способами:
Для моделирования процессов
В этом случае внимание фокусируется на деятельности с точки зрения экторов, которые работают с системой.
Для моделирования операций
В этом случае диаграммы деятельности играют роль "продвинутых" блок-схем и применяются для подробного моделирования вычислений.
Слайд 57

Слайд 58

Примеры использования таких диаграмм Рефакторинг ( refactoring) — процесс изменения внутренней

Примеры использования таких диаграмм

Рефакторинг ( refactoring) — процесс изменения внутренней структуры программы, не

затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. Цель рефакторинга — сделать код программы легче для понимания; без этого рефакторинг нельзя считать успешным.
Слайд 59

Слайд 60

Последовательность построения диаграммы Составление перечня деятельностей в системе Принятие решения о

Последовательность построения диаграммы

Составление перечня деятельностей в системе
Принятие решения о необходимости

построения диаграммы деятельностей
Определение зависимостей между деятельностями
Выделение параллельных потоков деятельностей
Определение условий переходов
Уточните сложные деятельности
Слайд 61

Слайд 62

Выводы Диаграммой деятельности можно дополнить любой элемент модели, имеющий динамическое поведение.

Выводы

Диаграммой деятельности можно дополнить любой элемент модели, имеющий динамическое поведение.
Диаграммы деятельности

являются частным случаем диаграммы состояний.
В отличие от блок-схем, диаграммы деятельности могут отображать одновременно выполняемые действия.
На диаграммах активности можно использовать плавательные дорожки, распределяющие деятельности в соответствии с ролями (объектами), их выполняющими.
Траектория объекта позволяет показать объекты, относящиеся к деятельности, и моменты переходов этих объектов из одного состояния в другое.
Сложные деятельности можно дополнительно детализировать, разбив на действия и изобразив "диаграмму в диаграмме".
Диаграммы деятельностей можно использовать для проектирования процессов (например, бизнес-процессов) или операций (вычислений). Во втором случае UML выступает в роли визуального языка программирования.
Слайд 63

Диаграмма активности (деятельности, activity diagram)

Диаграмма активности (деятельности, activity diagram)

Слайд 64

Диаграмма активности (деятельности, activity diagram)

Диаграмма активности (деятельности, activity diagram)

Слайд 65

Диаграмма активности (деятельности, activity diagram)

Диаграмма активности (деятельности, activity diagram)

Слайд 66

Диаграмма развертывания (deployment diagram) . Диаграммы развертывания представляют графическое представление инфраструктуры,

Диаграмма развертывания (deployment diagram)

. Диаграммы развертывания представляют графическое представление инфраструктуры, на

которой будет развернуто приложение.
Такие диаграммы есть смысл строить только для аппаратно-программных систем, тогда как UML позволяет строить модели любых систем, не обязательно компьютерных.
Применение:
Во-первых, графическое представление ИТ-инфраструктуры может помочь более рационально распределить компоненты системы по узлам сети, от чего, как известно, зависит в том числе и производительность системы.
Во-вторых, такая диаграмма может помочь решить множество вспомогательных задач, связанных, например, с обеспечением безопасности.
Слайд 67

Диаграмма развертывания (deployment diagram)

Диаграмма развертывания (deployment diagram)

Слайд 68

Диаграмма развертывания (deployment diagram)

Диаграмма развертывания (deployment diagram)