Разделы презентаций


Обобщение на диаграмме классов UML

Содержание

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

Слайды и текст этой презентации

Слайд 1Анализ и моделирование на UML



Максим Валерьевич Хлопотов,
старший преподаватель кафедры ИС

Анализ и моделирование на UMLМаксим Валерьевич Хлопотов,старший преподаватель кафедры ИС

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

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


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

Слайд 3Обобщение на диаграмме классов
Отношение обобщения часто применяется на диаграмме классов.
Действительно,

трудно представить себе ситуацию, когда между объектами в одной системе

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

Слайд 4Обобщение на диаграмме классов
Использование обобщений не ограничивает свободу проектировщика системы,

поскольку унаследованные составляющие можно переопределить в подклассе, если нужно. При

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

Слайд 5Обобщение на диаграмме классов
Рассмотрим пример. В информационной системе отдела кадров

мы выделили классы Position, Department и Person.
Резонно предположить, что все

эти классы имеют атрибут, содержащий собственное имя объекта, выделяющее его в ряду однородных. Для простоты положим, что такой атрибут имеет тип String. В таком случае можно определить суперкласс, ответственный за хранение данного атрибута и работу с ним, а прочие классы связать с суперклассом отношением обобщения.
Однако более пристальный анализ предметной области наводит на мысль, что работа с собственным именем для выделенных классов производится не совсем одинаково.
Обобщение на диаграмме классовРассмотрим пример. В информационной системе отдела кадров мы выделили классы Position, Department и Person.Резонно

Слайд 6Обобщение на диаграмме классов
Назначение и изменение собственных имен подразделениям и

должностям находится в пределах ответственности информационной системы отдела кадров, но

назначение собственного имени сотрудника явно выходит за эти пределы.
Исходя из этих соображений, мы приходим к следующей структуре обобщений.
Обратите внимание, что суперкласс Unit мы определили как абстрактный, т. е. не могущий иметь непосредственных экземпляров, поскольку не предполагаем иметь в системе объекты данного класса. Класс Unit в данном нужен только для того, чтобы свести описания одного атрибута и двух операций в одно место и не повторять их дважды.
Обобщение на диаграмме классовНазначение и изменение собственных имен подразделениям и должностям находится в пределах ответственности информационной системы

Слайд 7Обобщение на диаграмме классов

Обобщение на диаграмме классов

Слайд 8Обобщение на диаграмме классов
В UML допускается, чтобы класс был подклассом

нескольких суперклассов (множественное наследование), не требуется, чтобы у базовых классов

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

Слайд 9Интерфейс
В UML имеется несколько частных случаев классификаторов, которые, подобно классам,

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

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

Слайд 10Интерфейс
Между интерфейсами и другими классификаторами, в частности классами, на диаграмме

классов применяются два отношения:
классификатор (в частности, класс) использует интерфейс —

это показывается с помощью зависимости со стереотипом «call»;
классификатор (в частности, класс) реализует интерфейс — это показывается с помощью отношения реализации.
ИнтерфейсМежду интерфейсами и другими классификаторами, в частности классами, на диаграмме классов применяются два отношения:классификатор (в частности, класс)

Слайд 11Интерфейс
Между интерфейсами и другими классификаторами, в частности классами, на диаграмме

классов применяются два отношения:
классификатор (в частности, класс) использует интерфейс —

это показывается с помощью зависимости со стереотипом «call»;
классификатор (в частности, класс) реализует интерфейс — это показывается с помощью отношения реализации.
ИнтерфейсМежду интерфейсами и другими классификаторами, в частности классами, на диаграмме классов применяются два отношения:классификатор (в частности, класс)

Слайд 12Интерфейс
Роль — это интерфейс, который предоставляет классификатор в данной ассоциации.

ИнтерфейсРоль — это интерфейс, который предоставляет классификатор в данной ассоциации.

Слайд 13Интерфейс

Интерфейс

Слайд 14Интерфейс

Интерфейс

Слайд 15Типы данных
Тип данных — это совокупность множества значений (может быть

очень большого или даже потенциально бесконечного) и конечного множества операций,

применимых к данным значениям.
UML не является сильно типизированным языком: например, в модели можно указывать типы атрибутов классов и параметров операций, но это не обязательно.
Типы данныхТип данных — это совокупность множества значений (может быть очень большого или даже потенциально бесконечного) и

Слайд 16Типы данных
Для каких элементов модели можно указать тип?
Что можно использовать

в качестве указания типа?

Типы данныхДля каких элементов модели можно указать тип?Что можно использовать в качестве указания типа?

Слайд 17Типы данных
Для каких элементов модели можно указать тип?
В UML типизированы

могут быть:
атрибуты классов, в том числе классов ассоциаций;
параметры операций, в

том числе тип возвращаемого значения;
роли полюсов ассоциаций;
параметры шаблонов (см. ниже).
Типы данныхДля каких элементов модели можно указать тип?В UML типизированы могут быть:атрибуты классов, в том числе классов

Слайд 18Типы данных
В модели UML можно использовать три вида типов данных:
Примитивные

типы, которые считаются предопределенными в UML
Типы данных, которые определены в

языке программирования, поддерживаемым инструментом
Типы данных, которые определены в модели
Типы данныхВ модели UML можно использовать три вида типов данных:Примитивные типы, которые считаются предопределенными в UMLТипы данных,

Слайд 19Типы данных
Примитивные типы, которые считаются предопределенными в UML — таковых,

как минимум, три: строка, целое число и значение даты/времени. Инструменты

вправе расширять этот набор и использовать подходящие названия.
Типы данных, которые определены в языке программирования, поддерживаемым инструментом. Это могут быть как названия встроенных типов, так и сколь угодно сложные выражения, доставляющие тип, если таковые допускаются языком.
Типы данных, которые определены в модели. В стандарте UML предусмотрен только один конструктор типов данных: перечислимый тип, который определяется с помощью стереотипа «enumeration». Наряду со стандартным стереотипом «enumeration» многие инструменты допускают использование стереотипа «datatype», который означает построение типа данных с помощью не специфицированного конструктора типов.
Типы данныхПримитивные типы, которые считаются предопределенными в UML — таковых, как минимум, три: строка, целое число и

Слайд 20Шаблон
Еще одной сущностью, специфической для диаграмм классов, являются шаблоны.
Шаблон —

это класс с параметрами. Параметром может быть любой элемент описания

класса — тип составляющей, кратность атрибута и т. д. На диаграмме шаблон изображается с помощью прямоугольника класса, к которому в правом верхнем углу присоединен пунктирный прямоугольник с параметрами шаблона.
Описания параметров перечисляются в этом прямоугольнике через запятую. Описание каждого параметра имеет вид:
ИМЯ : тип
ШаблонЕще одной сущностью, специфической для диаграмм классов, являются шаблоны.Шаблон — это класс с параметрами. Параметром может быть

Слайд 21Шаблон
Сам по себе шаблон не может непосредственно использоваться в модели.

Для того, чтобы на основе шаблона получить конкретный класс, который

может использоваться в модели, нужно указать явные значения аргументов. Такое указание называется связыванием. В UML применяются два способа связывания:
явное связывание — зависимость со стереотипом «bind», в которой указаны значения аргументов;
неявное связывание — определение класса, имя которого имеет формат имя_шаблона < аргументы >
ШаблонСам по себе шаблон не может непосредственно использоваться в модели. Для того, чтобы на основе шаблона получить

Слайд 22Шаблон
Назначение и область применения шаблонов понятны — шаблоны нужны, чтобы

определить некоторую общую параметрическую конструкцию класса один раз, и затем

использовать ее многократно, подставляя конкретные значения аргументов.
Явное связывание более наглядно, неявное связывание менее наглядно, зато записывается короче.
ШаблонНазначение и область применения шаблонов понятны — шаблоны нужны, чтобы определить некоторую общую параметрическую конструкцию класса один

Слайд 23Шаблон
Здесь определен шаблон Array, имеющий два параметра: n типа Integer

и T, тип которого не указан. Этот шаблон применяется для

создания массивов определенной длины, содержащих элементы определенного типа. В данном случае с помощью явного связывания определен класс Triangle как массив из трех элементов типа Point. С помощью неявного связывания определен аналогичный по смыслу класс с именем Array<3,Point>.
ШаблонЗдесь определен шаблон Array, имеющий два параметра: n типа Integer и T, тип которого не указан. Этот

Слайд 24Диаграммы классов
Диаграммы классов содержат множество деталей. Для практически значимых систем

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

сложную диаграмму классов сразу "на всю глубину" нерационально — слишком велик риск "утонуть" в деталях.
Удачная модель структуры сложной системы создается за несколько (может быть даже за несколько десятков) итераций, в которых моделирование структуры перемежается моделированием поведения.
Диаграммы классовДиаграммы классов содержат множество деталей. Для практически значимых систем диаграммы классов в конечном итоге получаются довольно

Слайд 25Диаграммы классов
Описывать структуру удобнее параллельно с описанием поведения. Каждая итерация

должна быть небольшим уточнением как структуры, так и поведения.
Не обязательно

включать в модель все классы сразу. На первых итерациях достаточно идентифицировать очень небольшую (10%) долю всех классов системы.
Не обязательно определять все свойства класса сразу. Начните с имени — операции и атрибуты постепенно выявятся в процессе моделирования поведения.
Не обязательно показывать на диаграмме все свойства класса. В процессе работы диаграмма должна легко охватываться одним взглядом.
Не обязательно определять все отношения между классами сразу. Пусть класс на диаграмме "висит в воздухе" — ничего с ним не случится.
Диаграммы классовОписывать структуру удобнее параллельно с описанием поведения. Каждая итерация должна быть небольшим уточнением как структуры, так

Слайд 26Диаграммы реализации
Диаграммы реализации — это обобщающее название для диаграмм компонентов

и диаграмм размещения. Название объясняется тем, что данные диаграммы приобретают

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

Слайд 27Диаграммы реализации
Диаграммы компонентов и размещения имеют больше общего, чем различий,

поскольку предназначены для моделирования двух теснейшим образом связанных структур:
• структуры

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

Слайд 28Диаграммы компонентов
Диаграмма компонентов предназначена для перечисления и указания взаимосвязей артефактов

моделируемой системы.
На диаграмме компонентов применяются следующие основные типы сущностей:
компоненты;
интерфейсы;
классы;
объекты.
На диаграмме

компонентов обычно используются отношения следующих типов:
зависимость;
ассоциация (главным образом в форме композиции);
реализация.
Диаграммы компонентовДиаграмма компонентов предназначена для перечисления и указания взаимосвязей артефактов моделируемой системы.На диаграмме компонентов применяются следующие основные

Слайд 29Компонент
Абсолютно формальное определение компонента в UML дать невозможно.
Компонент —

это физически существующий и заменяемый артефакт системы.
Прежде всего, это компонент

в смысле сборочного программирования: особым образом оформленная часть программного кода, которая может работать в составе более сложной программы.
Компоненты понимаются в UML в наиболее общем смысле: это не только исполнимые файлы с кодами программы, но и исходные тексты программ, веб-страницы, справочные файлы, сопроводительные документы, файлы с данными и вообще любые артефакты, которые тем или иным способом используются при работе приложения и входят в его состав.
КомпонентАбсолютно формальное определение компонента в UML дать невозможно. Компонент — это физически существующий и заменяемый артефакт системы.Прежде

Слайд 30Компонент
При выделении компонентов применяются следующие неформальные критерии.
Компонент нетривиален. Это нечто

более сложное и объемное, чем фрагмент кода или одиночный класс.
Компонент

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

Слайд 31Диаграмма компонентов
В случае разработки "монолитного" настольного приложения диаграмма компонентов не

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

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

Слайд 32Диаграмма компонентов
Если приложение поставляется в виде "конструктора" (набора "кубиков" —

компонентов) из которого при установке собирается конкретный уникальный экземпляр приложения,

то диаграммы компонентов оказываются просто незаменимым средством.
Многие современные приложения поставляются в виде большого (десятки и сотни) набора компонентов, из которых "на месте" собирается нужная пользователю, часто уникальная конфигурация.
Рекомендуют использовать диаграммы компонентов для управления конфигурацией не только на фазе поставки и установки программного обеспечения, но и в процессе разработки: для отслеживания версий компонентов, вариантов сборки и т. п.
Диаграмма компонентовЕсли приложение поставляется в виде

Слайд 33Диаграмма компонентов
Диаграмма компонентов разрабатывается для следующих целей:

Визуализации общей структуры исходного

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

фрагментов программного кода.
Представления концептуальной и физической схем баз данных.
Диаграмма компонентовДиаграмма компонентов разрабатывается для следующих целей:Визуализации общей структуры исходного кода программной системы.Спецификации исполнимого варианта программной системы.Обеспечения

Слайд 34Стереотипы компонентов
исполнимый компонент Control .exe использует или импортирует некоторую функциональность компонентa Library .dll, вызывает страницу

гипертекста Home .html и файл помощи Search .hlp, а исходный

текст этого исполнимого компонентa хранится в файле Control .cpp.
Стереотипы компонентовисполнимый компонент Control .exe использует или импортирует некоторую функциональность компонентa Library .dll, вызывает страницу гипертекста Home .html и файл помощи Search

Слайд 35Зависимость компонентов
компонент с именем Control зависит от импортируемого интерфейса IDialog, который, в свою

очередь, реализуется компонентом с именем DataBase.

При этом для второго компонентa этот

интерфейс является экспортируемым. 
Зависимость компонентовкомпонент с именем Control зависит от импортируемого интерфейса IDialog, который, в свою очередь, реализуется компонентом с именем DataBase. При этом для

Слайд 36Диаграмма компонентов

Диаграмма компонентов

Слайд 37Диаграмма размещения
Последним структурным аспектом, который необходимо обсудить, является описание размещения

компонентов относительно участвующих в работе вычислительных ресурсов.
В UML для

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

Слайд 38Диаграмма размещения
На диаграмме размещения, по сравнению с диаграммами компонентов, применяются

только один дополнительный тип сущности — узел и два дополнительных

отношения: ассоциация между узлами и размещение компонента на узле.
В остальном диаграммы размещения наследуют возможности диаграмм компонентов.
Диаграмма размещенияНа диаграмме размещения, по сравнению с диаграммами компонентов, применяются только один дополнительный тип сущности — узел

Слайд 39Диаграмма размещения
Узел — это физический вычислительный ресурс, участвующий в работе

системы.
Компоненты системы во время ее работы размещаются на узлах. В

UML узел является классификатором, т. е. мы можем (и должны!) различать описание типа вычислительного ресурса (например, рабочая станция, последовательный порт) и описание экземпляра вычислительного устройства (например, устройство COM1 типа последовательный порт).
Это различие моделируется согласно общему механизму UML: имя экземпляра узла подчеркивается, а имя типа узла — нет.
Диаграмма размещенияУзел — это физический вычислительный ресурс, участвующий в работе системы.Компоненты системы во время ее работы размещаются

Слайд 40Диаграмма размещения
На диаграмме узел представляется фигурой, изображающей прямоугольный параллелепипед.
На примере

(а) - имя типа узла, (б) – имя экземпляра узла

.
Диаграмма размещенияНа диаграмме узел представляется фигурой, изображающей прямоугольный параллелепипед.На примере (а) - имя типа узла, (б) –

Слайд 41Диаграмма размещения
Ассоциация между узлами означает то же, что и в

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

означает наличие канала связи. Если нужно указать дополнительную информацию о свойствах канала, то это можно сделать используя общие механизмы: стереотипы, ограничения и именованные значения, приписанные ассоциации.
Диаграмма размещенияАссоциация между узлами означает то же, что и в других контекстах: возможность обмена сообщениями. Применительно к

Слайд 42Диаграмма размещения
Размещение компонента на узле, как правило, изображают, помещая фигуру

компонента внутрь фигуры узла.

Диаграмма размещенияРазмещение компонента на узле, как правило, изображают, помещая фигуру компонента внутрь фигуры узла.

Слайд 43Диаграмма размещения
Если это по каким-либо причинам неудобно, то отношение размещения

можно передать отношением зависимости от узла к компоненту.

Диаграмма размещенияЕсли это по каким-либо причинам неудобно, то отношение размещения можно передать отношением зависимости от узла к

Слайд 44Выводы
Диаграммы классов моделируют структуру объектов и связей между ними.
Классы выбираются

на основе анализа предметной области, взаимного согласования элементов модели и

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

Слайд 45Выводы
Диаграммы компонентов моделируют структуру компонентов (артефактов) и взаимосвязей между ними.
Диаграммы

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

ВыводыДиаграммы компонентов моделируют структуру компонентов (артефактов) и взаимосвязей между ними.Диаграммы размещения моделируют структуру вычислительных ресурсов, а также

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика