Тема3_2_Введение в UML.ppt
- Количество слайдов: 36
Диаграммы классов (UML) Лекция 3 УНЦ «Инфотех» Воронеж 2012
План лекции n UML: задачи и структура n Диаграммы классов 1
Метод моделирования n Язык моделирования Нотация, используемая методами для описания проектов n Процесс Рекомендация относительно этапов, которые необходимо выполнить при разработке проекта 2
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 Нотация Совокупность графических элементов, обычно используемых в моделях; является синтаксисом языка моделирования l Содержит имя, атрибуты и операции l n Метамодель Диаграммы, определяющие нотацию 4
Области применения n Общение между разработчиками n Объектно-ориентированный подход n Общение с экспертами предметной области Передача информации в графическом виде на различных уровнях разработки Работа с ОО-приемами в графичекой форме Описание вариантов использования (концептуальный подход) 5
Процесс разработки Начало Исследование Построение 1 2 3 Внедрение . . . n Все фазы могут быть итеративными n UML может быть использован в любой фазе 6
Модель в UML n Элементы модели Сущности Структурные, Поведенческие, Группировки, Примечания l Отношения Зависимость, Ассоциация, Обобщение l Диаграммы l n Модель определяется с помощью диаграмм, но сущности и отношения существуют вне диаграмм 7
Аналитическая модель n Выделение бизнес-объектов и выяснения связей между ними Диаграммы классов 8
Диаграмма классов n Диаграмма классов (class diagram) n Описывает типы объектов системы и различного рода существующие между ними статические отношения n Статические отношения: ассоциации и подтипы n Также отображаются атрибуты и операции классов и ограничения, накладываемые на связи между объектами 9
Подходы к использованию n Концептуальная точка зрения Представление понятий предметной области n Точка зрения спецификации Программная система на уровне интерфейсов n Точка зрения реализации Программная система на уровне реализации 10
Пример диаграммы классов класс атрибуты ассоциация операции кратность: обязательная обобщение ограничение кратность: многозначная имя роли кратность: необязательная 11
Класс n Элемент описывает тип объекта n Описание состоит из трех частей: l l Список атрибутов l n Имя класса Список операций Атрибуты и операции необязательны 12
Имена § имя класса является текстовой строкой § каждый класс имеет уникальное имя Имя класса o простое o составное (впереди добавляется имя пакета, куда входит класс) 13
Видимость элементов n Модификаторы видимости + общедоступная (public) # защищенная (protected) – закрытая (private) 14
Атрибуты n Атрибут - это именованное свойство класса, включающее описание множества значений, которые могут принимать экземпляры этого свойства. 15
Атрибуты n При описании атрибута можно явным образом указывать его класс и начальное значение, принимаемое по умолчанию 16
Атрибуты n Формат записи <видимость> <имя>: <тип>= <значение по умолчанию> Могут быть необязательными n Единственное направление навигации n Тип скорее обладает значением, чем семантикой ссылки n 17
Операции n Операцией называется реализация услуги, которую можно запросить у любого объекта класса для воздействия на поведение n Операция - абстракция того, что необходимо делать с объектом 18
Операции n Операцию можно описать более подробно, указав ее сигнатуру, в которую входят имена и типы всех параметров, их значения, принятые по умолчанию, а применительно к функциям - тип возвращаемого значения 19
Операции n Формат записи видимость> <имя>(<список параметров>): <выражение- возвращающее-значениетипа> {<строка свойств>} n Список параметров <направление> <имя> : <тип> = <значение по умолчанию> 20
Отображение атрибутов n При изображении класса могут быть показаны не все его атрибуты и операции. n Из-за большого количества атрибутов и операций класс сворачивают - изображают лишь некоторые из имеющихся атрибутов и операций 21
Зависимости n Зависимостью (Dependency) называют отношение использования, согласно которому изменение в спецификации одного элемента (например, одного класса) может повлиять на другой элемент, его использующий (другой класс), причем обратное не обязательно n У зависимости может быть собственное имя 22
Ассоциации n Ассоциация(Association) структурное отношение, показывающее, что объекты одного типа неким образом связаны с объектами другого типа. n Ассоциация позволяет перемещаться от объектов одного класса к объектам другого n Допустимы случаи, когда оба конца ассоциации относятся к одному и тому же классу n Ассоциации может быть присвоено имя, описывающее природу отношения 23
Ассоциации n Роль. Класс, участвующий в ассоциации, играет в ней некоторую роль. По существу, это "лицо", которым класс, находящийся на одной стороне ассоциации, обращен к классу с другой ее стороны. 24
Ассоциации n Кратность. Ассоциации отражают структурные отношения между объектами. n Указывает на количество объектов, которые могут быть связаны посредством одного экземпляра ассоциации n Кратность можно задать l равной числу (1, 3), l диапазон: "ноль или единица" (0. . 1), l "много" (0. . *), "единица или больше" (1. . *). 25
Агрегирование n n Агрегирование - отношение типа "часть/целое", в котором один из классов имеет более высокий ранг (целое) и состоит из нескольких меньших по рангу (частей). Агрегирование - частный случай ассоциации n Изображается в виде простой ассоциации с незакрашенным ромбом со стороны "целого" n Используется закрашенный ромб - если агрегация композитная, то есть ее части принадлежат только одному целому. 26
Обобщение n n Обобщение (Generalization) - отношение между общей сущностью (суперклассом, или родителем) и ее конкретным воплощением (субклассом, или потомком). Обобщения называют отношениями типа "является" (одна сущность (является частным выражением другой, более общей) 27
Обобщение n Обозначает подтипы (во всех смыслах) n Позволяет использование принципа замещения n Различается с точки зрения спецификации и реализации 28
Ограничения n n n Не все ограничения описываются средствами атрибута, ассоциации и обобщения Ограничения записываются в фигурных скобках Допускаются: естественный язык l язык объектных ограничений (OCL) l утверждения на языке программирования l 29
Стереотипы n Стереотипы являются механизмом расширения ядра языка UML n Обычно записываются с помощью текста, заключенного в кавычки n Профиль – часть языка UML, расширяет его с помощью стереотипов, предназначенных для специальных целей 30
Стереотипы Пример стереотипов 31
Структурные отношения Отношения зависимости и обобщения применяются при моделировании классов, которые находятся на разных уровнях абстракции или имеют различную значимость. между классами Курс и Преподаватель определена ассоциация (преподаватель читает курс). Для каждого курса должен быть хотя бы один преподаватель и каждый преподаватель может вести любое количество курсов 32
Интерфейсы и абстрактные классы n n Курсив Ограничение (стереотип) зависимость обобщение реализация n Специальный вид реализация интерфейс 33
Операции и атрибуты в контексте класса Контекст экземпляра Контекст класса n В Java реализуется статическими полями и методами 34
Применение диаграмм классов + Являются основой почти всех объектноориентированных методов – Весьма богатая нотация n Выбор точки зрения модели должен соответствовать конкретному этапу работы над проектом n Следует концентрироваться на главных аспектах 35