Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Диаграмма классов
Основные понятия
• Диаграмма классов (class diagram) служит для представления статической
структурной модели системы в терминологии классов объектноориентированного программирования.
• Диаграмма классов отражает различные взаимосвязи между отдельными
сущностями предметной области, а также описывает их внутреннюю
структуру и типы отношений.
• На данной диаграмме не указывается информация о временных аспектах
функционирования системы. С этой точки зрения диаграмма классов
является дальнейшим развитием концептуальной модели проектируемой
системы.
Применение диаграмм классов
Диаграммы классов создаются при логическом моделировании ИС и служат для следующих целей:
• Для моделирования данных. Анализ предметной области позволяет выявить основные характерные для
нее сущности и связи между ними. Это удобно моделируется с помощью диаграмм классов. Эти
диаграммы являются основой для построения концептуальной схемы базы данных.
• Для представления архитектуры ИС. Можно выделить архитектурно значимые классы и показать их на
диаграммах, описывающих архитектуру ИС.
• Для моделирования навигации экранов. На таких диаграммах показываются пограничные классы и их
логическая взаимосвязь.
• Для моделирования логики программных компонент.
• Для моделирования логики обработки данных.
Основные понятия
• Диаграмма классов представляет собой некоторый граф, вершинами
которого являются элементы типа "классификатор", которые связаны
различными типами структурных отношений. Следует заметить, что
диаграмма классов может также содержать интерфейсы, пакеты,
отношения и даже отдельные экземпляры, такие как объекты и
связи.
Секции класса
• Окончательный вариант диаграммы содержит наиболее полное описание классов,
которое состоит из трех разделов или секций. Иногда в обозначениях классов
используется дополнительный четвертый раздел, в котором приводится
семантическая информация справочного характера или явно указываются
исключительные ситуации.
• Даже если секция атрибутов и операций является пустой, в обозначении класса она
выделяется горизонтальной линией, чтобы сразу отличить класс от других элементов
языка UML.
Имя класса
• Рекомендуется в качестве имен классов использовать существительные. В последнее время среди отечественных
разработчиков принято все проекты, выполняемые с использованием нотации языка UML 1.х/2.0, разделять на два типа:
• проекты без генерации программного кода
• проекты с генерацией программного кода.
• Для проектов первого типа диаграмма классов служит моделью анализа. Имена классов в этом случае можно записывать
символами кириллицы, т. е. использовать русскоязычные слова, возможно, с пробелами. Это значительно повышает
наглядность диаграммы классов для всех заинтересованных лиц.
• Для проектов второго типа диаграмма классов служит моделью проектирования. Имена классов в этом случае следует
записывать символами латиницы, т. е. использовать англоязычные слова без пробелов. При этом имена классов должны
соответствовать правилам синтаксиса выбранного языка генерации программного кода.
• В секции имени класса могут записываться также стереотипы и помеченные значения. При этом текстовый стереотип
класса всегда записывается выше строки имени класса по центру в угловых кавычках, а помеченное значение — ниже
строки имени класса. В форме помеченных значений может представляться информация о разработчике данного класса,
статус состояния разработки или номер версии.
Модель анализа
Виды классов. Абстрактный класс
Активные и пассивные классы
Дополнительно класс может быть специфицирован как активный или пассивный.
• Активный класс (active class) — класс, чьими экземплярами являются активные
объекты, которые могут инициировать независимое управляющее воздействие.
• Пассивный класс (passive class) — обычный класс, объекты которого не могут
инициировать независимое управляющее воздействие.
Объект активного класса после своего создания начинает исполнять поведение
своего класса и не прекратит его до тех пор, пока либо не будет закончено
выполнение этого поведения, либо данный объект не будет уничтожен некоторым
другим объектом.
Активный класс в языке изображается прямоугольником класса с утолщенными
границами (в UML 1.0 ) или с дополнительными вертикальными отрезками на
каждой его стороне (в UML 2.0 ).
Имя класса
Стереотипы классов
Тип атрибута
• У атрибута должен быть тип (type
expression), который может
представлять собой простой тип
или сложный, как например:
• CArray
• Детали, касающиеся типов
атрибутов, не специфицированы
UML. Более подробное описание
типа зависит от того, какой язык
программирования используется
разработчиками.
• В простейшем случае тип атрибута
указывается строкой текста,
имеющей осмысленное значение
в пределах пакета или модели, к
которым относится
рассматриваемый класс.
Примеры
Отношения между классами
•
•
•
•
Базовыми отношениями или связями в языке UML
являются:
Отношение зависимости (dependency relationship)
Отношение ассоциации (association relationship)
Отношение обобщения (generalization relationship)
Отношение реализации (realization relationship)
Виды ассоциаций
Ассоциация
Пример ненаправленной бинарной
ассоциации между классами в UML 2.0
Исключающая бинарная ассоциация в UML 2.0
• Частным случаем отношения ассоциации является
исключающая ассоциация (Xor-association). Из
нескольких потенциально возможных
вариантов данной ассоциации в каждый
момент времени может использоваться
только один ее экземпляр. На диаграмме
классов исключающая ассоциация изображается
с помощью дополнительной пунктирной линии,
соединяющей две и более ассоциации, рядом с
которой записывается ограничение в форме
специального ключевого слова {xor}.
• Например, для некоторой модели счет в банке
может быть открыт для любого клиента, в качестве
которого может выступать либо физическое лицо
(индивидуум), либо юридическое лицо
(компания). Эта ситуация на диаграмме классов
может быть представлена следующим образом.
Базовый класс Счет в банке связывается
исключающей ассоциаций с классом Физическое
лицо и с классом Юридическое лицо
N-арная ассоциация в UML 2.0
• N-арная ассоциация связывает отношением ассоциации более двух классов. В качестве
значения N может выступать произвольное натуральное число больше 1. N-арная ассоциация
графически обозначается ромбом, от которого ведут линии к символам классов данной
ассоциации.
• В качестве примера 4-арной ассоциации рассмотрим отношение Игра между классами:
Футбольная команда, Год и Дата. Данная ассоциация может представлять информацию о
состоявшихся играх футбольных команд в национальном чемпионате в течение нескольких
лет. Отдельным экземпляром ассоциации Игра может служить, например, кортеж <Динамо,
Зенит, 17 июля, 2005>.
Ассоциация-класс в UML 2.0
• Ассоциация-класс (association class) — элемент модели, который имеет свойства как
ассоциации, так и класса, и предназначенный для спецификации дополнительных свойств
ассоциации в форме атрибутов и, возможно, операций класса.
• В качестве примера преобразуем рассмотренную ранее 4-арную ассоциацию Игра в ассоциацию
класс, что позволит представлять информацию о результате и месте состоявшейся встречи.
В этом случае отдельным
экземпляром ассоциации класса
Игра может служить, например,
информация о конкретно
состоявшейся встрече, записанной
в форме кортежа: <Динамо, Зенит,
игра : Игра>. При этом для объекта
игра : Игра задаются конкретные
значения атрибутов: встреча = 17
июля, сезон = 2005, место =
'Москва', результат = <1, 2>.
Отношение агрегации
Пример композиции
Пример отношений агрегации и
композиции
Отношение обобщения
Отношения
реализации
Графические
элементы
диаграммы
классов UML 2.0
Модель анализа
Диаграммы объектов
Диаграмма объектов
• Диаграмма объектов (object diagram) UML – это снимок
объектов системы в какой-то момент времени. Поскольку
она показывает экземпляры, а не классы, то диаграмму
объектов часто называют диаграммой экземпляров.
• Диаграмма объектов (object diagram) ‒ является
экземпляром диаграммы классов.
Диаграмма объектов
Диаграммы объектов показывают множество объектов - экземпляров
классов (изображенных на диаграмме классов) и отношения между ними в
некоторый момент времени.
Таким образом, диаграммы объектов представляют статический вид
системы с точки зрения проектирования и процессов, являясь основой для
сценариев, описываемых диаграммами взаимодействия, обычно
диаграмма объектов используется для пояснения и детализации диаграмм
взаимодействия, например, диаграмм последовательностей.
Диаграмма объектов
На диаграмме объектов применяют один основной тип сущностей: объекты 1 (экземпляры классов),
между которыми указываются конкретные связи 2 (чаще всего экземпляры ассоциаций).
Диаграммы объектов имеют вспомогательный характер ‒ по сути это примеры, показывающие, какие
имеются объекты и связи между ними в некоторый конкретный момент функционирования системы.
Объект
Объект (object) • конкретная
материализация
абстракции;
• сущность с хорошо
определенными
границами, в которой
инкапсулированы
состояние и поведение;
• экземпляр класса (в
общем случае
классификатора).
Объект однозначно
идентифицируется
значениями атрибутов,
определяющими его
состояние в данный
момент времени.
Имя объекта
• Объект (object) является отдельным
экземпляром класса, который создается на
этапе реализации модели или выполнения
программы.
• Имя объекта представляет собой строку текста,
записанную в следующем виде:
• <имя-объекта>::=[<собственное-имяобъекта>] | [:<имя- класса> [‘,’<Имя-класса>]*]
Примеры объектов
• Пример: объектом класса "Микроволновая печь"
может быть и простейший прибор фирмы "Saturn"
небольшой емкости и с механическим управлением,
и навороченный агрегат с грилем, сенсорным
управлением и системой трехмерного
распределения энергии от Samsung или LG.
• Пример: каждый из нас является объектом класса
"человек" и отличается от другого по таким
признакам (значениям атрибутов), как имя, цвет
волос, глаз, рост, вес, возраст и т. д. (в зависимости
от того, какую задачу мы рассматриваем и какие
свойства человека для нас в ней важны).
Графическое представление
объекта
• Объект, как и класс, обозначается
прямоугольником, но его имя подчеркивается.
• Для указания значений атрибутов объекта в его
обозначении может быть предусмотрена
специальная секция.
• Объект может быть анонимным: это нужно в
том случае, если в данный момент не важно,
какой именно объект данного класса принимает
участие во взаимодействии.
Пример диаграммы объектов
На диаграмме представлена
взаимосвязь объектов организационных единиц некоторой
компании.
Пример диаграммы объектов
Некоторая фирма продвигает на рынке
новый товар или услугу. В этом
процессе участвуют вице-президент по
маркетингу, вице-президент по
продажам, менеджер по продажам,
торговый агент, специалист по рекламе,
некое печатное издание и покупатель.
Причем даже без указания сообщений,
которыми обмениваются эти объекты,
отлично видно, кто с кем
взаимодействует. На этой диаграмме
все объекты анонимные!
Пример диаграммы объектов
• Диаграмма
объектов учебной
среды "Робот" для
Turbo Pascal,
которая
использовалась
ранее для
обучения
школьников
основам
алгоритмизации.