Скачать презентацию Диаграммы классов UML Лекция 3 УНЦ Инфотех Воронеж Скачать презентацию Диаграммы классов UML Лекция 3 УНЦ Инфотех Воронеж

Тема3_2_Введение в UML.ppt

  • Количество слайдов: 36

Диаграммы классов (UML) Лекция 3 УНЦ «Инфотех» Воронеж 2012 Диаграммы классов (UML) Лекция 3 УНЦ «Инфотех» Воронеж 2012

План лекции n UML: задачи и структура n Диаграммы классов 1 План лекции n UML: задачи и структура n Диаграммы классов 1

Метод моделирования n Язык моделирования Нотация, используемая методами для описания проектов n Процесс Рекомендация Метод моделирования n Язык моделирования Нотация, используемая методами для описания проектов n Процесс Рекомендация относительно этапов, которые необходимо выполнить при разработке проекта 2

UML (Unified Modeling Language) – унифицированный язык моделирования n n 1995 Unified Method (v UML (Unified Modeling Language) – унифицированный язык моделирования n n 1995 Unified Method (v 0. 8) 1997 UML 1. 0 (Буч, Рамбо, Джекобсон) UML 1. 1 (OMG) 2005 UML 2. 0 2010 UML 2. 3 3

Состав UML n Нотация Совокупность графических элементов, обычно используемых в моделях; является синтаксисом языка Состав UML n Нотация Совокупность графических элементов, обычно используемых в моделях; является синтаксисом языка моделирования l Содержит имя, атрибуты и операции l n Метамодель Диаграммы, определяющие нотацию 4

Области применения n Общение между разработчиками n Объектно-ориентированный подход n Общение с экспертами предметной Области применения n Общение между разработчиками n Объектно-ориентированный подход n Общение с экспертами предметной области Передача информации в графическом виде на различных уровнях разработки Работа с ОО-приемами в графичекой форме Описание вариантов использования (концептуальный подход) 5

Процесс разработки Начало Исследование Построение 1 2 3 Внедрение . . . n Все Процесс разработки Начало Исследование Построение 1 2 3 Внедрение . . . n Все фазы могут быть итеративными n UML может быть использован в любой фазе 6

Модель в UML n Элементы модели Сущности Структурные, Поведенческие, Группировки, Примечания l Отношения Зависимость, Модель в UML n Элементы модели Сущности Структурные, Поведенческие, Группировки, Примечания l Отношения Зависимость, Ассоциация, Обобщение l Диаграммы l n Модель определяется с помощью диаграмм, но сущности и отношения существуют вне диаграмм 7

Аналитическая модель n Выделение бизнес-объектов и выяснения связей между ними Диаграммы классов 8 Аналитическая модель n Выделение бизнес-объектов и выяснения связей между ними Диаграммы классов 8

Диаграмма классов n Диаграмма классов (class diagram) n Описывает типы объектов системы и различного Диаграмма классов n Диаграмма классов (class diagram) n Описывает типы объектов системы и различного рода существующие между ними статические отношения n Статические отношения: ассоциации и подтипы n Также отображаются атрибуты и операции классов и ограничения, накладываемые на связи между объектами 9

Подходы к использованию n Концептуальная точка зрения Представление понятий предметной области n Точка зрения Подходы к использованию n Концептуальная точка зрения Представление понятий предметной области n Точка зрения спецификации Программная система на уровне интерфейсов n Точка зрения реализации Программная система на уровне реализации 10

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

Класс n Элемент описывает тип объекта n Описание состоит из трех частей: l l Класс n Элемент описывает тип объекта n Описание состоит из трех частей: l l Список атрибутов l n Имя класса Список операций Атрибуты и операции необязательны 12

Имена § имя класса является текстовой строкой § каждый класс имеет уникальное имя Имя Имена § имя класса является текстовой строкой § каждый класс имеет уникальное имя Имя класса o простое o составное (впереди добавляется имя пакета, куда входит класс) 13

Видимость элементов n Модификаторы видимости + общедоступная (public) # защищенная (protected) – закрытая (private) Видимость элементов n Модификаторы видимости + общедоступная (public) # защищенная (protected) – закрытая (private) 14

Атрибуты n Атрибут - это именованное свойство класса, включающее описание множества значений, которые могут Атрибуты n Атрибут - это именованное свойство класса, включающее описание множества значений, которые могут принимать экземпляры этого свойства. 15

Атрибуты n При описании атрибута можно явным образом указывать его класс и начальное значение, Атрибуты n При описании атрибута можно явным образом указывать его класс и начальное значение, принимаемое по умолчанию 16

Атрибуты n Формат записи <видимость> <имя>: <тип>= <значение по умолчанию> Могут быть необязательными n Атрибуты n Формат записи <видимость> <имя>: <тип>= <значение по умолчанию> Могут быть необязательными n Единственное направление навигации n Тип скорее обладает значением, чем семантикой ссылки n 17

Операции n Операцией называется реализация услуги, которую можно запросить у любого объекта класса для Операции n Операцией называется реализация услуги, которую можно запросить у любого объекта класса для воздействия на поведение n Операция - абстракция того, что необходимо делать с объектом 18

Операции n Операцию можно описать более подробно, указав ее сигнатуру, в которую входят имена Операции n Операцию можно описать более подробно, указав ее сигнатуру, в которую входят имена и типы всех параметров, их значения, принятые по умолчанию, а применительно к функциям - тип возвращаемого значения 19

Операции n Формат записи видимость> <имя>(<список параметров>): <выражение- возвращающее-значениетипа> {<строка свойств>} n Список параметров Операции n Формат записи видимость> <имя>(<список параметров>): <выражение- возвращающее-значениетипа> {<строка свойств>} n Список параметров <направление> <имя> : <тип> = <значение по умолчанию> 20

Отображение атрибутов n При изображении класса могут быть показаны не все его атрибуты и Отображение атрибутов n При изображении класса могут быть показаны не все его атрибуты и операции. n Из-за большого количества атрибутов и операций класс сворачивают - изображают лишь некоторые из имеющихся атрибутов и операций 21

Зависимости n Зависимостью (Dependency) называют отношение использования, согласно которому изменение в спецификации одного элемента Зависимости n Зависимостью (Dependency) называют отношение использования, согласно которому изменение в спецификации одного элемента (например, одного класса) может повлиять на другой элемент, его использующий (другой класс), причем обратное не обязательно n У зависимости может быть собственное имя 22

Ассоциации n Ассоциация(Association) структурное отношение, показывающее, что объекты одного типа неким образом связаны с Ассоциации n Ассоциация(Association) структурное отношение, показывающее, что объекты одного типа неким образом связаны с объектами другого типа. n Ассоциация позволяет перемещаться от объектов одного класса к объектам другого n Допустимы случаи, когда оба конца ассоциации относятся к одному и тому же классу n Ассоциации может быть присвоено имя, описывающее природу отношения 23

Ассоциации n Роль. Класс, участвующий в ассоциации, играет в ней некоторую роль. По существу, Ассоциации n Роль. Класс, участвующий в ассоциации, играет в ней некоторую роль. По существу, это "лицо", которым класс, находящийся на одной стороне ассоциации, обращен к классу с другой ее стороны. 24

Ассоциации n Кратность. Ассоциации отражают структурные отношения между объектами. n Указывает на количество объектов, Ассоциации n Кратность. Ассоциации отражают структурные отношения между объектами. n Указывает на количество объектов, которые могут быть связаны посредством одного экземпляра ассоциации n Кратность можно задать l равной числу (1, 3), l диапазон: "ноль или единица" (0. . 1), l "много" (0. . *), "единица или больше" (1. . *). 25

Агрегирование n n Агрегирование - отношение типа Агрегирование n n Агрегирование - отношение типа "часть/целое", в котором один из классов имеет более высокий ранг (целое) и состоит из нескольких меньших по рангу (частей). Агрегирование - частный случай ассоциации n Изображается в виде простой ассоциации с незакрашенным ромбом со стороны "целого" n Используется закрашенный ромб - если агрегация композитная, то есть ее части принадлежат только одному целому. 26

Обобщение n n Обобщение (Generalization) - отношение между общей сущностью (суперклассом, или родителем) и Обобщение n n Обобщение (Generalization) - отношение между общей сущностью (суперклассом, или родителем) и ее конкретным воплощением (субклассом, или потомком). Обобщения называют отношениями типа "является" (одна сущность (является частным выражением другой, более общей) 27

Обобщение n Обозначает подтипы (во всех смыслах) n Позволяет использование принципа замещения n Различается Обобщение n Обозначает подтипы (во всех смыслах) n Позволяет использование принципа замещения n Различается с точки зрения спецификации и реализации 28

Ограничения n n n Не все ограничения описываются средствами атрибута, ассоциации и обобщения Ограничения Ограничения n n n Не все ограничения описываются средствами атрибута, ассоциации и обобщения Ограничения записываются в фигурных скобках Допускаются: естественный язык l язык объектных ограничений (OCL) l утверждения на языке программирования l 29

Стереотипы n Стереотипы являются механизмом расширения ядра языка UML n Обычно записываются с помощью Стереотипы n Стереотипы являются механизмом расширения ядра языка UML n Обычно записываются с помощью текста, заключенного в кавычки n Профиль – часть языка UML, расширяет его с помощью стереотипов, предназначенных для специальных целей 30

Стереотипы Пример стереотипов 31 Стереотипы Пример стереотипов 31

Структурные отношения Отношения зависимости и обобщения применяются при моделировании классов, которые находятся на разных Структурные отношения Отношения зависимости и обобщения применяются при моделировании классов, которые находятся на разных уровнях абстракции или имеют различную значимость. между классами Курс и Преподаватель определена ассоциация (преподаватель читает курс). Для каждого курса должен быть хотя бы один преподаватель и каждый преподаватель может вести любое количество курсов 32

Интерфейсы и абстрактные классы n n Курсив Ограничение (стереотип) зависимость обобщение реализация n Специальный Интерфейсы и абстрактные классы n n Курсив Ограничение (стереотип) зависимость обобщение реализация n Специальный вид реализация интерфейс 33

Операции и атрибуты в контексте класса Контекст экземпляра Контекст класса n В Java реализуется Операции и атрибуты в контексте класса Контекст экземпляра Контекст класса n В Java реализуется статическими полями и методами 34

Применение диаграмм классов + Являются основой почти всех объектноориентированных методов – Весьма богатая нотация Применение диаграмм классов + Являются основой почти всех объектноориентированных методов – Весьма богатая нотация n Выбор точки зрения модели должен соответствовать конкретному этапу работы над проектом n Следует концентрироваться на главных аспектах 35