
Презентация UML.pptx
- Количество слайдов: 46
Объектно–ориентированный анализ и программирование Язык UML. Основные средства анализа и моделирования предметной области в языке UML. Для студентов 2 курса обучающихся по направлению «Бизнес информатика» Ст. преп. каф. «Математика и информатика» Владимирского филиала Финуниверситета Мануйлов Н. Н. ВЛАДИМИР 2013
Литература: Основная: 1. Сафонов В. О. Введение в Java-технологию: учебное пособие. — СПб. : Наука, 2002. Дополнительная: 1. Гагарина Л. Г. , Кокорева Е. В. , Виснадул Б. Д. – Технология разработки программного обеспечения. –М. : ИД ФОРУМ, 2008. 2. Гради Буч и др. - Объектно-ориентированный анализ и проектирование с примерами приложений, 3 -е изд. : Пер. с англ. - М. : 000 "И. Д. Вильямс", 2008.
Язык UML § UML –язык визуального моделирования (промышленный стандарт) § UML предоставляет визуальный синтаксис для моделирования § UML независимым от языков и платформ § UML пригоден для использования в любой модели процесса (не только RUP) § UML объектно-ориентирован
Язык UML § Статическая структура – описывает, какие типы объектов важны для моделирования системы и как они взаимосвязаны. Статическая структура § Динамическое поведение – описывает жизненные циклы этих объектов и то, как они взаимодействуют друг с другом для обеспечения требуемой функциональности системы. Модель UML Динамическое поведение
Виды конструкций языка UML Сущности Структурные сущности Поведенческие сущности Группирующая сущность Отношения Диаграммы Аннотационная сущность
Структурные диаграммы § Диаграмма классов (Class diagram) § Диаграмма компонентов (Component diagram) § Диаграммы коммуникаций (Communication diagrams, в UML 1. x - диаграмма кооперации (Collaboration diagram)) § Диаграмма развертывания (Deployment diagram) § Диаграмма объектов (Object diagram) § Диаграмма пакетов (Package diagram) § Диаграмма профилей (Profile diagram)
Структурные диаграммы. Диаграмма классов Аннотация Ячейка Атрибутов Ячейка Операций Ячейка имени класса стереотип
Структурные диаграммы Диаграмма классов Полная форма имени класса: стереотип видимость имя {строка свойств} *Если имя курсивом – класс абстрактный. Полная форма атрибута: стереотип видимость имя: тип крат. = знач. по. ум. {строка свойств} *Если атрибут подчеркнут – атрибут статический. * Кратность – для определения массивов.
Структурные диаграммы Диаграмма классов Полная форма операции: стереотип видимость имя (список параметров) : возвращаемый тип {строка свойств} *Если операция подчеркнута – операция статическая
Структурные диаграммы Диаграмма классов Полная форма параметра: направление имя : тип = значение *Направление определяет тип входного параметра: in Входной параметр. Значение не может быть изменено внутри операции. out Выходной параметр. Значение может быть изменено внутри операции. inout Входной-выходной параметр.
Структурные диаграммы Диаграмма классов Видимость контролирует доступ к свойствам класса + Public Любой элемент имеет доступ к любому атрибуту или методу, помеченному как public - Private Только элементы класса имеют доступ к атрибутам и методам, помеченным как private # Protected Только элементы класса и наследники класса имеют доступ к атрибутам и методам, помеченным как protected ~ (нет) Package Любой элемент из того же пакета имеет доступ к атрибутам и методам с видимостью package
Структурные диаграммы Диаграмма классов Стандартные стереотипы классов: «actor» Действующее лицо «interface» Интерфейс. Все составляющие абстрактные. «enumeration» Класс-перечисление. «metaclass» Класс, порождающий классы. «data. Type» Класс определяет новый тип данных. «stereotype» Производный тип данных. «signal» Класс, экземпляры которого – сигналы. «utility» У класса нет экземпляров – это служба.
Структурные диаграммы Диаграмма классов Отношения на диаграмме классов: Используются: имя отношения, стереотипы, кратность. Кратность - количество отношений в которое могут быть вовлечены элементы (нижняя и верх. граница) Сокращения: 1 – ровно одно отношение, * - нижняя граница ноль, а сверху множество отношений не ограничено.
Структурные диаграммы Диаграмма классов Стандартные стереотипы отношений: Стереотипы использования «call» Источник вызывает операцию цели. «use» Источник использует цель «parameter» Источник является параметром операции цели «send» Источник это операция (сообщение), посылаемое цели «instantiate» Источник является экземпляром цели
Структурные диаграммы Диаграмма классов Стандартные стереотипы отношений: Стереотипы абстракции «trace» Источник иллюстрирует цель с другой точки зрения (требования, другой уровень абстракции, слежение за связями из разных моделей) «substitute» Источник может быть заменен целью. «refine» Источник уточняет цель в рамках одной модели «derive» Источник представляет собой производное цели
Структурные диаграммы Диаграмма классов Стандартные стереотипы отношений: Стереотипы доступа «access» Источнику разрешен доступ ко всему открытому содержимому цели «import» Пространство имен источника и цели объединяются «permit» Источник имеет доступ к закрытой функциональности цели
Диаграмма классов. Ассоциация (Association, Directed. Association): Ассоциация – описание связей между объектами и классами Однонаправленная ассоциация
Диаграмма классов. Ассоциация. Пример № 1: Каждый покупатель может сходить во множество магазинов либо никуда не ходить и любой магазин может посетить от нуля до 100 покупателей.
Диаграмма классов. Ассоциация. Пример № 2: Отправитель может отправить (или не отправить) множество писем одному адресату.
Диаграмма классов. Ассоциация. Пример № 3: Рефлексивная ассоциация. Каждая директория может содержать в себе множество поддиректорий. Каждая директория может содержать множество файлов (возможно пустое). Каждый файл связан только с одной директорией
Диаграмма классов. Зависимость (Dependency): Зависимость – отношение между элементами модели, при котором изменение одного элемента может повлиять или предоставить необходимую информацию другому элементу
Диаграмма классов. Зависимость. Пример № 4: Уточнение класса Банковский счет.
Диаграмма классов. Зависимость. Пример № 5: Клиент пользуется услугами Поставщика.
Диаграмма классов. Агрегация (Aggregation): Агрегация – отношение типа «часть целого»
Диаграмма классов. Агрегация. Пример № 6: Рабочие входят в состав компании. При этом предполагается, что каждый рабочий может принадлежать не одной компании. Кроме того, рабочие и компании как объекты могут существовать сами по себе (при уничтожении компании рабочие не уничтожаются и наоборот).
Диаграмма классов. Композиция (Composition): Композиция – отношение агрегации с наложенными условиями: часть может входить только в одно целое, часть существует пока существует целое, часть прекращает существование вместе с целым.
Диаграмма классов. Композиция. Пример № 7: Объект многоугольник состоит из трех или более точек. Объект окружность состоит из одной точки (центр). При уничтожении Многоугольника и Окружности уничтожаются и составляющие их точки. Множество точек многоугольника и окружности не пересекаются.
Диаграмма классов. Композиция. Пример № 8: Экономический отдел включен в предприятие через отношение композиции. При ликвидации предприятия ликвидируется и Экономический отдел. Связь экономистов с предприятием теряется, но сами они не уничтожаются. Т. к. Экономический отдел это часть Предприятия, Экономист это часть Экономического отдела, то Экономист это часть Предприятия (свойство транзитивности)
Диаграмма классов. Обобщение (Generalization): Обобщение – отношение между двумя сущностями, одна из которых является частным случаем другой. С помощью обобщения реализуется простое и множественное наследование.
Диаграмма классов. Обобщение. Пример № 9: Простое наследование: Левша является наследником класса Человек, Правша является наследником класса Человек. Классы Правша и Левша наследуют атрибуты (Имя, Возраст) и операции (Есть(), Ходить()) класса Человек. При этом операции могут быть переопределены в классахнаследниках (Есть()). Кроме того, в классы наследники можно добавить индивидуальные атрибуты (Рост, Цвет Глаз) и операции (Читать(), Писать()).
Диаграмма классов. Обобщение. Полиморфизм – замещение операций родителя операциями наследника, имеющими те же сигнатуры, что и родитель. Пример № 10: Множественное наследование. Класс Банковский счет наследует атрибуты и операции сразу трех классов: Активы, Страхование, Начисление процентов
Диаграмма классов. Обобщение. Пример 10. Множественное наследование тесно связано с так называемой «Проблемой ромба» когда класс наследует у нескольких классов, имеющих общего предка. Современные компиляторы при создании объекта создают всю его иерархию его наследования. В «проблеме ромба» мы получаем несколько объектов корневого предка, при этом, если наследники не переопределяют его операции, возникает неоднозначность обращения к атрибутам и операциям.
Диаграмма классов. Обобщение. Решение проблемы ромба в ЯП: § Особенный синтаксис для указания компилятору о создании только одного объекта корневого предка § Отказ от использования множественного наследования § Множественное наследование интерфейсов.
Диаграмма классов. Реализация (Realization): Реализация – это семантическая связь между классификаторами, один из которых специфицирует некие обязательства, а другой обязуется их выполнять. Отношение реализации тесно связано с понятиями абстрактного класса и интерфейса
Диаграмма классов. Реализация. Примеры реализации: Абстрактная операция – операция, не имеющая реализации, у которой определена только сигнатура. Абстрактный класс – класс, имеющий одну или более абстрактную операцию. Абстрактный класс не может порождать объекты-экземпляры. В UML абстрактные операции и классы обозначаются курсивом.
Диаграмма классов. Обобщение. Пример 11. Реализован абстрактный класс Абстрактный список. Операции Добавить Элемент() и Удалить Элемент() – абстрактные. Наследники Стек и Очередь обязаны реализовать абстрактные операции класса Абстрактный список. При этом Список и Дек наследуют атрибут Размер и операцию Инициализировать(), реализованную в абстрактном классе.
Диаграмма классов. Реализация. Примеры реализации: § Интерфейс – абстрактный класс, у которого все операции абстрактные. § Интерфейс представляется как набор операций, используемых для спецификации сервиса класса, реализующего интерфейс. § Интерфейс описывает контракт (набор обязательств), который класс обязан исполнять. *Класс может реализовывать множество интерфейсов.
Диаграмма классов. Реализация. Интерфейс через операцию «реализация» : Пример № 11. Одно из решений «Проблемы Ромба» с помощью интерфейсов и отношения реализация
Диаграмма классов. Реализация. Интерфейс через шарово-гнездовую нотацию: Пример № 12. Класс Список реализует и предоставляет интерфейс Быть списком ‑ шар. Класс больница имеет атрибут Список пациентов, который является списком, поэтому он требует от класса Список реализации интерфейса Быть списком ‑ гнездо.
Диаграмма классов. Специальные классы. Шаблоны классов. Шаблон класса – класс, предназначенный для определения обобщенного класса, без привязки к некоторым параметрам (типам данных, параметрам по умолчанию). Шаблон позволяет параметризировать как атрибуты класса так и его операции.
Диаграмма классов. Специальные классы. Особенности использования шаблонов классов: § Исключение дублирования похожего кода. § Позволяет абстрагироваться от некоторых параметров класса. § Для привязки шаблона к конкретным параметрам используется отношение «Реализация» со стереотипом «bind» . § Для связывания отдельных параметров используется обозначение «‑>» . Связываемые параметры перечисляются через запятую и заключаются в угловые скобки.
Диаграмма классов. Специальные классы. Синтаксис шаблона классов:
Диаграмма классов. Специальные классы. Пример № 13. Создан шаблон Массива, тип элементов массива и размер массива по умолчанию задаются в качестве параметров шаблона. На основе шаблона реализован Массив целых и Массив строк. В массиве строк происходит переопределение значения Размер.
Диаграмма компонентов – структурная диаграмма, которая показывает взаимосвязь между модулями из которых состоит моделируемая система. Компоненты – независимые модули, скрывающие свою реализацию и взаимодействующие друг с другом посредством интерфейсов.
Диаграмма компонентов. Пример № 14. Схема реализации заказа. На схеме представлены основные компоненты и интерфейсы которые они реализуют и требуют реализовать. Кроме того на диаграмме приведен артефакт (представление физического явления), связанный с компонентом Сервер Обработки заказов.
Диаграмма компонентов.
Презентация UML.pptx