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




































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

