Введение в UML

Содержание

Слайд 2

Темы лекционных занятий Введение в UML Моделирование использования Моделирование структуры Моделирование

Темы лекционных занятий

Введение в UML
Моделирование использования
Моделирование структуры
Моделирование поведения
Дисциплина моделирования
Примеры моделей на

UML
Слайд 3

Этапы выполнения практических работ Подготовительный этап. Выбор инструментов 1 этап. Анализ

Этапы выполнения
практических работ

Подготовительный этап. Выбор инструментов
1 этап. Анализ предметной области.

Моделирования использования (л.р. 1)
2 этап. Анализ требований. Моделирование поведения (л.р. 2)
3 этап. Архитектура системы. Моделирование структуры (лабораторная работа 3)
4 этап. Реализация прототипа.
5 этап. Приёмо-сдаточные испытания (лабораторная работа 4)
Слайд 4

Рекомендуемая литература Новиков Ф. А., Иванов Д. Ю. Моделирование на UML.

Рекомендуемая литература

Новиков Ф. А., Иванов Д. Ю. Моделирование на UML. Теория,

практика, видеокурс
Буч Г., Рамбо Д., Якобсон И. Введение в UML от создателей языка
Слайд 5

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

Введение в UML

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

Слайд 6

UML — это язык Язык — это знаковая система для хранения

UML — это язык

Язык — это знаковая система для хранения и

передачи информации.
UML формальный искусственный язык.
Авторы — Гради Буч, Ивар Якобсон и Джеймс Рамбо.
Слайд 7

UML — это язык моделирования UML имеет отношение прежде всего и

UML — это язык моделирования

UML имеет отношение прежде всего и главным

образом к созданию и применению компьютерных программ.
В отношении разработки программного обеспечения так сложилось, что результаты фаз анализа и проектирования, оформленные средствами определенного языка, принято называть моделью.
Слайд 8

UML — это язык моделирования Деятельность по составлению моделей естественно назвать

UML — это язык моделирования

Деятельность по составлению моделей естественно назвать моделированием.

Именно в этом смысле UML является языком моделирования.
Модель UML — это, прежде всего, основной артефакт фазы проектирования.
Слайд 9

UML — это унифицированный язык моделирования UML является отнюдь не первым

UML — это унифицированный язык моделирования

UML является отнюдь не первым языком

моделирования.
К моменту его появления (т.е. к 1995 году) насчитывались десятки других, различающихся системой обозначений, степенью универсальности, способами применения и т. д. Ни один из методов не дотягивал до уровня индустриального стандарта.
Слайд 10

UML — это унифицированный язык моделирования Если попытаться проследить историю возникновения

UML — это унифицированный язык моделирования

Если попытаться проследить историю возникновения и

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

Назначение UML UML — это графический язык моделирования общего назначения, предназначенный

Назначение UML

UML — это графический язык моделирования общего назначения, предназначенный для

спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке программных систем.
Слайд 12

Назначение UML В типичных случаях в процессе разработки приложений участвуют по

Назначение UML

В типичных случаях в процессе разработки приложений участвуют по меньше

мере два действующих лица: заказчик и разработчик. Из-за того, что действующих лиц двое, очень многое зависит от степени их взаимопонимания.
Одним из ключевых этапов разработки приложения является определение того, каким требованиям должно удовлетворять разрабатываемое приложение.
В результате этого этапа появляется формальный или неформальный документ (артефакт): постановка задачи, требования, техническое задание, внешние спецификации и др.
Аналогичные по назначению артефакты появляются и на других этапах разработки: функциональные спецификации, архитектура приложения и др.
Мы будем все такие артефакты называть спецификациями.
Спецификация — это декларативное описание того, как нечто устроено или работает.
Слайд 13

Назначение UML Необходимо принимать во внимание три толкования спецификаций. То, которое

Назначение UML

Необходимо принимать во внимание три толкования спецификаций.
То, которое имеет в

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

Назначение UML Основное назначение UML — предоставить, с одной стороны, достаточно

Назначение UML

Основное назначение UML — предоставить, с одной стороны, достаточно формальное,

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

Назначение UML Модели UML допускают представление в форме картинок, причем эти

Назначение UML

Модели UML допускают представление в форме картинок, причем эти картинки

наглядны, интуитивно понятны, практически однозначно интерпретируются и легко составляются.
Слайд 16

Назначение UML Второе по важности назначение UML состоит в том, чтобы

Назначение UML

Второе по важности назначение UML состоит в том, чтобы служить

адекватным средством коммуникации между людьми.
Разумеется, наглядность визуализации моделей UML имеет значение, только если они должны составляться или восприниматься человеком — это назначение UML не имеет отношения к компьютерам.
Слайд 17

Назначение UML UML предназначен не только для описания абстрактных моделей приложений,

Назначение UML

UML предназначен не только для описания абстрактных моделей приложений, но

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

Назначение UML Наконец, четвёртое назначение – документирование. Модели UML являются документами,

Назначение UML

Наконец, четвёртое назначение – документирование.
Модели UML являются документами, которые можно

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

Способы использования UML (сортировка по важности) Рисование картинок Обмен информацией Спецификация

Способы использования UML

(сортировка по важности)
Рисование картинок
Обмен информацией
Спецификация систем
Повторное использование архитектурных решений
Генерация

кода
Имитационное моделирование.
Верификация моделей.
Слайд 20

Стандарт UML Искусственный язык, претендующий на массовое использование, должен быть описан

Стандарт UML

Искусственный язык, претендующий на массовое использование, должен быть описан так,

чтобы притягивать, а не отпугивать потенциальных пользователей.
Весь текст описания UML каждой версии находится в свободно распространяемых документах, доступных по адресу http://www.omg.org. (Более 1000 страниц текста).
Последние версии:
2.4.1 (август 2011) http://www.omg.org/spec/UML/2.4.1/
2.4 (март 2011) http://www.omg.org/spec/UML/2.4
2.3 (май 2010) http://www.omg.org/spec/UML/2.3
Слайд 21

Стандарт UML Чтобы подчеркнуть, что UML язык графический, авторы называют правила

Стандарт UML

Чтобы подчеркнуть, что UML язык графический, авторы называют правила записи

(рисования) моделей не синтаксисом, а нотацией.
Типов элементов нотации четыре:
• фигуры;
• линии;
• значки;
• тексты.
Слайд 22

Стандарт UML Нотация UML довольно свободная: рисовать можно как угодно, лишь

Стандарт UML

Нотация UML довольно свободная: рисовать можно как угодно, лишь бы

не возникало недоразумений. Поставщики инструментов, поддерживающих UML пользуются этой свободой кто во что горазд.
В качестве инструмента рисования диаграмм UML можно использовать различные приложения.
Например, Sun Java Studio Enterprise, Visio Professional.
В этой презентации использована программа: Visual Paradigm for UML 8.2
Слайд 23

Модель UML Модель UML — это конечное множество сущностей и отношений

Модель UML

Модель UML — это конечное множество сущностей и отношений между

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

Сущности Для удобства обзора сущности в UML можно подразделить на четыре

Сущности

Для удобства обзора сущности в UML можно подразделить на четыре группы:

структурные;
• поведенческие;
• группирующие;
• аннотационные.
Слайд 25

Структурные сущности • Класс — описание множества объектов с общими атрибутами

Структурные сущности

• Класс — описание множества объектов с общими атрибутами и

операциями.
• Интерфейс — множество операций, которое определяет набор услуг (службу), предоставляемых классом или компонентом.
• Действующее лицо — сущность, находящаяся вне моделируемой системы и непосредственно взаимодействующая с ней.
• Вариант использования — описание последовательности производимых системой действий, доставляющей значимый для некоторого действующего лица результат.
• Компонент — физически заменяемый артефакт, реализующий некоторый набор интерфейсов.
• Узел — физический вычислительный ресурс.
Слайд 26

Структурные сущности

Структурные сущности

Слайд 27

Поведенческие сущности Состояние — период в жизненном цикле объекта, в котором

Поведенческие сущности
Состояние — период в жизненном цикле объекта, в котором объект

удовлетворяет некоторому условию, выполняет деятельность или ожидает события.
Деятельность — состояние, в котором выполняется работа, а не просто пассивно ожидается наступление события.
Слайд 28

Группирующая сущность Пакет — группа элементов модели (в том числе пакетов).

Группирующая сущность

Пакет — группа элементов модели (в том числе пакетов).

Слайд 29

Аннотационная сущность Примечание

Аннотационная сущность

Примечание

Слайд 30

Отношения В UML используются четыре основных типа отношений: • зависимость; • ассоциация; • обобщение; • реализация.

Отношения

В UML используются четыре основных типа отношений:
• зависимость;
• ассоциация;
• обобщение;
• реализация.

Слайд 31

Отношения Зависимость — это наиболее общий тип отношения между двумя сущностями.

Отношения

Зависимость — это наиболее общий тип отношения между двумя сущностями. Отношение

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

Отношения Обобщение — это отношение между двумя сущностями, одна их которых

Отношения

Обобщение — это отношение между двумя сущностями, одна их которых является

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

Диаграммы UML Диаграммы UML – основная накладываемая на модель структура, которая

Диаграммы UML

Диаграммы UML – основная накладываемая на модель структура, которая облегчает

создание и использование модели.
Диаграмма — это графическое представление некоторой части графа модели.
Авторы UML определили набор рекомендуемых к использованию типов диаграмм, которые получили название канонических типов диаграмм.
Слайд 34

Диаграммы UML В UML 1.x всего определено 9 канонических типов диаграмм.

Диаграммы UML

В UML 1.x всего определено 9 канонических типов диаграмм.

Диаграмма использования
• Диаграмма классов
• Диаграмма объектов
• Диаграмма состояний
• Диаграмма деятельности
• Диаграмма последовательности
• Диаграмма кооперации
• Диаграмма компонентов
• Диаграмма размещения
Слайд 35

Иерархия диаграмм UML

Иерархия диаграмм UML

Слайд 36

Диаграммы UML Диаграмма использования — это наиболее общее представление функционального назначения

Диаграммы UML

Диаграмма использования — это наиболее общее представление функционального назначения системы.

Диаграмма использования призвана ответить на главный вопрос моделирования: что делает система во внешнем мире?
Слайд 37

Пример действующее лицо (эктор), ассоциация, вариант использования (прецедент), рамки системы

Пример действующее лицо (эктор), ассоциация, вариант использования (прецедент), рамки системы

Слайд 38

Диаграммы UML Диаграмма классов — основной способ описания структуры системы. Это

Диаграммы UML

Диаграмма классов — основной способ описания структуры системы. Это не

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

Пример

Пример

Слайд 40

Диаграммы UML Диаграмма объектов — это частный случай диаграммы классов. Диаграммы

Диаграммы UML

Диаграмма объектов — это частный случай диаграммы классов. Диаграммы объектов

имеют вспомогательный характер — по сути это примеры, показывающие, какие имеются объекты и связи между ними в некоторый конкретный момент функционирования системы.
Слайд 41

Диаграммы UML Диаграмма состояний — это основной способ детального описания поведения

Диаграммы UML

Диаграмма состояний — это основной способ детального описания поведения в

UML. В сущности, диаграммы состояний представляют собой граф состояний и переходов конечного автомата, нагруженный множеством дополнительных деталей и подробностей.
Слайд 42

Пример (изменение состояний банкомата при проверке ПИН-кода)

Пример (изменение состояний банкомата при проверке ПИН-кода)

Слайд 43

Диаграммы UML Диаграмма деятельности — это, фактически, блок-схема алгоритма, в которой

Диаграммы UML

Диаграмма деятельности — это, фактически, блок-схема алгоритма, в которой модернизированы

обозначения, а семантика согласована с современным объектно-ориентированным подходом.
Слайд 44

Пример

Пример

Слайд 45

Диаграмма деятельности (пример)

Диаграмма деятельности (пример)

Слайд 46

Диаграммы UML Диаграмма последовательности — это способ описать поведение системы "на

Диаграммы UML

Диаграмма последовательности — это способ описать поведение системы "на примерах".

Фактически, диаграмма последовательности — это запись протокола конкретного сеанса работы системы (или фрагмента такого протокола). В объектно-ориентированном программировании самым существенным во время выполнения является посылка сообщений взаимодействующими объектами.
Слайд 47

Пример

Пример

Слайд 48

Диаграммы UML Диаграмма кооперации (в UML 2 – диаграмма коммуникации) семантически

Диаграммы UML

Диаграмма кооперации (в UML 2 – диаграмма коммуникации) семантически эквивалентна

диаграмме последовательности.
Фактически, это такое же описание последовательности обмена сообщениями
взаимодействующих объектов, только выраженное другими графическими
средствами.
Слайд 49

Диаграммы UML Диаграмма компонентов — это, фактически, список артефактов, из которых

Диаграммы UML

Диаграмма компонентов — это, фактически, список артефактов, из которых состоит

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

Диаграммы UML Диаграмма размещения (диаграмма развёртывания) немногим отличается от диаграммы компонентов.

Диаграммы UML

Диаграмма размещения (диаграмма развёртывания) немногим отличается от диаграммы компонентов. Фактически,

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

Иерархия диаграмм UML

Иерархия диаграмм UML

Слайд 52

Представления Все аспекты моделируемой системы не удается описать с единой точки

Представления

Все аспекты моделируемой системы не удается описать с единой точки зрения.
Моделировать

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

Представления Выделим три представления: представление использования (что делает система полезного?); представление

Представления

Выделим три представления:
представление использования (что делает система полезного?);
представление структуры

(из чего состоит система?);
- представление поведения (как работает система?).
Слайд 54

Представления Выделим три представления: представление использования; представление структуры; - представление поведения.

Представления

Выделим три представления:
представление использования;
представление структуры;
- представление поведения.

Слайд 55

Представления Представление использования призвано отвечать на вопрос, что делает система полезного.

Представления

Представление использования призвано отвечать на вопрос, что делает система полезного.
Определяющим

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

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

Представления

Представление структуры призвано отвечать на вопрос: из чего состоит система.
Определяющим

признаком для отнесения элементов модели к представлению структуры является явное выделение структурных элементов — составных частей системы — и описания взаимосвязей между ними. Принципиальным является чисто статический характер описания, то есть отсутствие понятия времени в любой форме, в частности, в форме последовательности событий и/или действий.
Описывается диаграммами классов, а также, если нужно, диаграммами компонентов и размещения и, в редких случаях, диаграммами объектов.
Слайд 57

Представления Представление поведения призвано отвечать на вопрос: как работает система. Определяющим

Представления

Представление поведения призвано отвечать на вопрос: как работает система.
Определяющим признаком

для отнесения элементов модели к представлению поведения является явное использования понятия времени, в частности, в форме описания последовательности событий/действий, то есть в форме алгоритма.
Описывается диаграммами состояний и деятельности, а также диаграммами взаимодействия в форме диаграмм кооперации и/или последовательности.
Слайд 58

Выводы Знание UML является необходимым, но не является достаточным условием построения

Выводы

Знание UML является необходимым, но не является достаточным условием построения разумных

моделей программных систем.
UML имеет синтаксис, семантику и прагматику, которые нужно знать и использовать с учетом особенностей реальной задачи и инструмента.
Модель UML состоит из описания сущностей и отношений между ними.
Элементы модели группируются в диаграммы и представления для наилучшего описания моделируемой системы с различных точек зрения.