Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Тема №3. Диаграмма классов

Содержание

Понятие диаграммы классовДиаграмма классов (class diagram) служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования.На диаграмме не указывается информация о временных аспектах функционирования системы.Диаграмма классов является дальнейшим развитием концептуальной модели проектируемой системы.
Диаграмма классовРассматриваемые вопросы:Понятие диаграммы классовКлассОтношения между классамиИнтерфейсыОбъектыШаблоны или параметризованные классыРекомендации по построению диаграмм классовТема №3 Понятие диаграммы классовДиаграмма классов (class diagram) служит для представления статической структуры модели КлассКласс (class) в языке UML служит для обозначения множества объектов, которые обладают КлассОбязательным элементом обозначения класса является его имя.На начальных этапах разработки диаграммы отдельные Примеры графических изображений классов: Для класса «Прямоугольник» указаны только его атрибуты – Имя классаИмя класса должно быть уникальным в пределах пакета, который описывается некоторой Абстрактный классКласс может не иметь экземпляров или объектов. В этом случае он Атрибуты классаВ языке UML принята стандартная запись атрибутов класса.Каждому атрибуту соответствует отдельная Атрибуты классаПример использования кванторов видимости:Квантор видимости может быть опущен. В этом случае Имя атрибута представляет собой строку текста, которая используется в качестве идентификатора соответствующего Атрибуты классаТип атрибута представляет собой выражение, семантика которого определяется языком спецификации соответствующей Атрибуты класса видимость:Boolean – здесь видимость есть имя абстрактного атрибута (курсив), который Атрибуты классаПримеры исходных значений атрибутов: цвет:Color = (255, 0, 0) – в Атрибуты классаПодчеркивание строки атрибута означает, что соответствующий атрибут может принимать подмножество значений.Примером ОперацияОперация представляет собой некоторый сервис, предоставляющий каждый экземпляр класса по определенному требованию.Совокупность ОперацияДля повышения производительности одни операции могут выполняться параллельно или одновременно, а другие ОперацияПримеры записи операций: +создать() – операция по созданию отдельного объекта класса, которая Отношения между классамиБазовыми отношениями между классами в языке UML являются: Отношение зависимости Отношение зависимостиОтношение зависимости в общем случае указывает некоторое семантическое отношение между двумя Отношение зависимостиОтношение зависимости графически изображается пунктирной линией между соответствующими элементами со стрелкой Отношение зависимостиСтрелка может помечаться необязательным, но стандартным ключевым словом в кавычках и Отношение зависимости «bind» - класс-клиент может использовать некоторый шаблон для своей последующей Отношение ассоциацииОтношение ассоциации соответствует наличию некоторого отношения между классами. Данное отношение обозначается Отношение ассоциацииНаиболее простой случай – бинарная ассоциация. Она связывает в точности два Отношение ассоциацииТернарная ассоциация и ассоциация более высокой арности в общем случае называются Отношение агрегацииОтношение агрегации имеет место между несколькими классами в том случае, если Отношение агрегацииГрафически отношение агрегации изображается сплошной линией, один из концов которой представляет Отношение агрегацииПримером отношения агрегации может служить деление персонального компьютера на составные части: Отношение композицииОтношение композиции является частным случаем отношения агрегации. Это отношение служит для Отношение композицииГрафически отношение композиции изображается сплошной линией, один из концов которой представляет Отношение композицииВ качестве дополнительных обозначений для отношений композиции и агрегации могут использоваться Отношение обобщенияОтношение обобщения является таксономическим отношением между более общим элементом и более Отношение обобщенияНа диаграмме может указываться несколько линий для одного отношения обобщения, что Отношение обобщенияРядом со стрелкой обобщения могут указываться ограничения: {complete} – означает, что Отношение обобщения {incomplete} – означает случай, противоположный первому. Предполагается, что на диаграмме ИнтерфейсыИнтерфейсы на диаграммах классов могут изображаться с помощью специального графического символа – Диаграмма объектовОбъект (object) является отдельным экземпляром класса, который создается на этапе выполнения Запись имени объекта представляет собой строку текста «имя_объекта:имя_класса», разделенную двоеточием:Имя объекта может Диаграмма объектовАтрибуты объектов принимают конкретные значения: Шаблоны или параметризованные классыШаблон (template) или параметризованный класс (parametrized class) предназначен для Шаблоны или параметризованные классыШаблон не может быть непосредственно использован в качестве класса, Шаблоны или параметризованные классы
Слайды презентации

Слайд 2 Понятие диаграммы классов
Диаграмма классов (class diagram) служит для

Понятие диаграммы классовДиаграмма классов (class diagram) служит для представления статической структуры

представления статической структуры модели системы в терминологии классов объектно-ориентированного

программирования.
На диаграмме не указывается информация о временных аспектах функционирования системы.
Диаграмма классов является дальнейшим развитием концептуальной модели проектируемой системы.

Слайд 3 Класс
Класс (class) в языке UML служит для обозначения

КлассКласс (class) в языке UML служит для обозначения множества объектов, которые

множества объектов, которые обладают одинаковой структурой, поведением и отношениями

с объектами из других классов.
Графически класс изображается в виде прямоугольника, который дополнительно может быть разделен горизонтальными линиями на разделы или секции:

Слайд 4 Класс
Обязательным элементом обозначения класса является его имя.
На начальных

КлассОбязательным элементом обозначения класса является его имя.На начальных этапах разработки диаграммы

этапах разработки диаграммы отдельные классы могут обозначаться простым прямоугольником

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

Слайд 5 Примеры графических изображений классов:
Для класса «Прямоугольник» указаны

Примеры графических изображений классов: Для класса «Прямоугольник» указаны только его атрибуты

только его атрибуты – точки на координатной плоскости:


Для

класса «Окно» указаны только его операции:

Класс


Слайд 6 Имя класса
Имя класса должно быть уникальным в пределах

Имя классаИмя класса должно быть уникальным в пределах пакета, который описывается

пакета, который описывается некоторой совокупностью диаграмм классов (возможно, одной

диаграммой)
Рекомендуется в качестве имен использовать существительные, записанные по практическим соображениям без пробелов.
Именно имена классов образуют словарь предметной области при ООАП

Слайд 7 Абстрактный класс
Класс может не иметь экземпляров или объектов.

Абстрактный классКласс может не иметь экземпляров или объектов. В этом случае

В этом случае он называется абстрактным классом, а для

обозначения его имени используется наклонный шрифт (курсив):



В языке UML принято общее соглашение о том, что любой текст, относящийся к абстрактному элементу, записывается курсивом.

Слайд 8 Атрибуты класса
В языке UML принята стандартная запись атрибутов

Атрибуты классаВ языке UML принята стандартная запись атрибутов класса.Каждому атрибуту соответствует

класса.
Каждому атрибуту соответствует отдельная строка текста, которая состоит из

квантора видимости атрибута, имени атрибута, его кратности, типа значений атрибута и, возможно, его исходного значения.
Квантор видимости может принимать одно из трех возможных значений и отображается при помощи специальных символов:
символ «+» обозначает атрибут с областью видимости типа общедоступный (public);
символ «#» обозначает атрибут с областью видимости типа защищенный (protected);
символ «-» обозначает атрибут с областью видимости типа закрытый (private).

Слайд 9 Атрибуты класса
Пример использования кванторов видимости:



Квантор видимости может быть

Атрибуты классаПример использования кванторов видимости:Квантор видимости может быть опущен. В этом

опущен. В этом случае его отсутствие означает, что видимость

атрибута не указывается.
Эта ситуация отличается от принятых по умолчанию соглашений в традиционных языках программирования, когда отсутствие квантора видимости трактуется как public или private.

Слайд 10 Имя атрибута представляет собой строку текста, которая используется

Имя атрибута представляет собой строку текста, которая используется в качестве идентификатора

в качестве идентификатора соответствующего атрибута и должна быть уникальной

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

Атрибуты класса


Слайд 11 Атрибуты класса
Тип атрибута представляет собой выражение, семантика которого

Атрибуты классаТип атрибута представляет собой выражение, семантика которого определяется языком спецификации

определяется языком спецификации соответствующей модели.
В нотации UML тип

атрибута иногда определяется в зависимости от языка программирования, который предполагает использовать для реализации данной модели.
Примеры типов атрибутов классов:
цвет:Color – здесь цвет является именем атрибута. Color – именем типа данного атрибута;
имя_сотрудника[1..2]: String – здесь имя_сотрудника является именем атрибута, который служит для представления информации об имени (и отчестве) сотрудника;

Слайд 12 Атрибуты класса
видимость:Boolean – здесь видимость есть имя

Атрибуты класса видимость:Boolean – здесь видимость есть имя абстрактного атрибута (курсив),

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

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

Слайд 13 Атрибуты класса
Примеры исходных значений атрибутов:
цвет:Color = (255,

Атрибуты классаПримеры исходных значений атрибутов: цвет:Color = (255, 0, 0) –

0, 0) – в RGB-модели это соответствует чистому красному

цвету в качестве исходного значения для данного атрибута;
имя_сотрудника[1..2]:String = Иван Иванович
видимость:Boolean = истина – может соответствовать ситуации, когда в момент создания экземпляра класса создается видимое на экране монитора окно, соответствующее данному объекту.

Слайд 14 Атрибуты класса
Подчеркивание строки атрибута означает, что соответствующий атрибут

Атрибуты классаПодчеркивание строки атрибута означает, что соответствующий атрибут может принимать подмножество

может принимать подмножество значений.
Примером может служить задание атрибута в

виде номер_счета:Integer, что может означать для объекта Сотрудник наличие некоторого подмножества счетов, общее количество которых заранее не фиксируется.
Строка-свойство служит для указания значений атрибута, которые не могут быть изменены в программе при работе с данным типом объектов.
Например, строка-свойство в записи атрибута заработная_плата:Currency = {$500} может служить для обозначения фиксированной заработной платы.

Слайд 15 Операция
Операция представляет собой некоторый сервис, предоставляющий каждый экземпляр

ОперацияОперация представляет собой некоторый сервис, предоставляющий каждый экземпляр класса по определенному

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

класса.
Каждой операции класса соответствует строка, состоящая из:
квантора видимости операции;
имени операции;
выражения типа возвращаемого операцией значения;
строка-свойство данной операции.

Слайд 16 Операция
Для повышения производительности одни операции могут выполняться параллельно

ОперацияДля повышения производительности одни операции могут выполняться параллельно или одновременно, а

или одновременно, а другие – только последовательно.
Для указания параллельности

выполнения операции используется строка-свойство вида «{concurrency=имя}», где имя принимает следующие значения:
последовательная (sequential);
параллельная (concurrent);
охраняемая (guarded) – все обращения к данной операции должны быть строго упорядочены во времени с целью сохранения целостности объектов этого класса.

Слайд 17 Операция
Примеры записи операций:
+создать() – операция по созданию

ОперацияПримеры записи операций: +создать() – операция по созданию отдельного объекта класса,

отдельного объекта класса, которая является общедоступной и не содержит

формальных параметров;
+нарисовать(форма:Многоугольник = прямоугольник, цвет_заливки:Color = (0,0,255)) – может обозначать операцию по изображению на экране монитора прямоугольной области синего цвета;
запросить_счет_клиента(номер_счета: Integer):Currency – обозначает операцию по установлению наличия средств на текущем счете клиента банка.

Слайд 18 Отношения между классами
Базовыми отношениями между классами в языке

Отношения между классамиБазовыми отношениями между классами в языке UML являются: Отношение

UML являются:
Отношение зависимости (dependency relationship);
Отношение ассоциации (association

relationship);
Отношение обобщения (generalization relationship);
Отношение реализации (realization relationship).

Слайд 19 Отношение зависимости
Отношение зависимости в общем случае указывает некоторое

Отношение зависимостиОтношение зависимости в общем случае указывает некоторое семантическое отношение между

семантическое отношение между двумя классами, которое не является отношением

ассоциации, обобщения или реализации.
Отношение зависимости используется в ситуации, когда изменение одного элемента модели может потребовать изменение другого зависимого от него элемента модели.

Слайд 20 Отношение зависимости
Отношение зависимости графически изображается пунктирной линией между

Отношение зависимостиОтношение зависимости графически изображается пунктирной линией между соответствующими элементами со

соответствующими элементами со стрелкой на одном из ее концов.
На

диаграмме классов стрелка направлена от класса-клиента зависимости к независимому классу или классу источнику:

Слайд 21 Отношение зависимости
Стрелка может помечаться необязательным, но стандартным ключевым

Отношение зависимостиСтрелка может помечаться необязательным, но стандартным ключевым словом в кавычках

словом в кавычках и необязательным индивидуальным именем.
Для отношения зависимости

предопределены ключевые слова, которые обозначают некоторые специальные виды зависимостей (стереотипы):
«access» - служит для обозначения доступности открытых атрибутов и операций класса-источника для классов-клиентов;
«derive» - атрибуты класса-клиента могут быть вычислены по атрибутам класса-источника;
«refine» - указывает, что класс-клиент служит уточнением класса-источника в силу причин исторического характера;

Слайд 22 Отношение зависимости
«bind» - класс-клиент может использовать некоторый

Отношение зависимости «bind» - класс-клиент может использовать некоторый шаблон для своей

шаблон для своей последующей параметризации;
«import» - открытые атрибуты

и операции класса-источника становятся частью класса-клиента, как если бы они были объявлены непосредственно в нем.

Пример:

Слайд 23 Отношение ассоциации
Отношение ассоциации соответствует наличию некоторого отношения между

Отношение ассоциацииОтношение ассоциации соответствует наличию некоторого отношения между классами. Данное отношение

классами. Данное отношение обозначается сплошной линией с дополнительными специальными

символами:
имя ассоциации;
имена и кратность классов-ролей ассоциации.
Имя ассоциации является необязательным элементом ее обозначения.

Слайд 24 Отношение ассоциации
Наиболее простой случай – бинарная ассоциация.
Она

Отношение ассоциацииНаиболее простой случай – бинарная ассоциация. Она связывает в точности

связывает в точности два класса и, как исключение, класс

с самим собой.
Пример бинарной ассоциации – отношение между классами «Компания» и «Сотрудник»:

Слайд 25 Отношение ассоциации
Тернарная ассоциация и ассоциация более высокой арности

Отношение ассоциацииТернарная ассоциация и ассоциация более высокой арности в общем случае

в общем случае называются N-арной ассоциацией.
Такая ассоциация связывает некоторым

отношением три и более классов.
Бинарная ассоциация является частным случаем N-арной ассоциации, когда значение N=2, и имеет свое собственное обозначение.
Пример:

Слайд 26 Отношение агрегации
Отношение агрегации имеет место между несколькими классами

Отношение агрегацииОтношение агрегации имеет место между несколькими классами в том случае,

в том случае, если один из классов представляет собой

некоторую сущность, включающую в себя в качестве составных частей другие сущности.
Используется для описания структуры сложных систем, т.к. применяется для представления взаимосвязей типа «часть-целое».
Примером отношения агрегации является взаимосвязь между сущностью «Грузовой автомобиль» и компонентами «Двигатель», «Шасси», «Кабина», «Кузов».

Слайд 27 Отношение агрегации
Графически отношение агрегации изображается сплошной линией, один

Отношение агрегацииГрафически отношение агрегации изображается сплошной линией, один из концов которой

из концов которой представляет собой незакрашенный ромб.
Ромб указывает на

тот из классов, который представляет собой «целое». Остальные классы являются его «частями»:

Слайд 28 Отношение агрегации
Примером отношения агрегации может служить деление персонального

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

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

мышь.
Используя обозначения языка UML, компонентный состав ПК можно представить в виде диаграммы классов:

Слайд 29 Отношение композиции
Отношение композиции является частным случаем отношения агрегации.

Отношение композицииОтношение композиции является частным случаем отношения агрегации. Это отношение служит


Это отношение служит для выделения специальной формы отношения «часть-целое»,

при которой составляющие части в некотором смысле находятся внутри целого.
Специфика: части не могут выступать в отрыве от целого, т.е. с уничтожением целого уничтожаются и все его составные части.

Слайд 30 Отношение композиции
Графически отношение композиции изображается сплошной линией, один

Отношение композицииГрафически отношение композиции изображается сплошной линией, один из концов которой

из концов которой представляет собой закрашенный внутри ромб.
Этот ромб

указывает на тот из классов, который представляет собой класс-композицию или «целое»:

Слайд 31 Отношение композиции
В качестве дополнительных обозначений для отношений композиции

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

и агрегации могут использоваться дополнительные обозначения, применяемые для отношения

ассоциации: кратность, имя.
Пример:

Слайд 32 Отношение обобщения
Отношение обобщения является таксономическим отношением между более

Отношение обобщенияОтношение обобщения является таксономическим отношением между более общим элементом и

общим элементом и более частным или специальным элементом.
Данное отношение

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

Слайд 33 Отношение обобщения
На диаграмме может указываться несколько линий для

Отношение обобщенияНа диаграмме может указываться несколько линий для одного отношения обобщения,

одного отношения обобщения, что отражает его таксономический характер.
Пример: Класс

«Геометрическая_фигура_на_плоскости» (абстрактный класс) выступает в качестве суперклассов для подклассов «Прямоугольник», «Окружность», «Эллипс»:

Слайд 34 Отношение обобщения
Рядом со стрелкой обобщения могут указываться ограничения:

Отношение обобщенияРядом со стрелкой обобщения могут указываться ограничения: {complete} – означает,

{complete} – означает, что в данном отношении обобщения специфицированы

все классы-потомки, и других классов-потомков у данного класса-предка быть не может.
Пример: класс «Клиент_банка» является предком для двух классов «Физическое_лицо» и «Компания».
{disjoint} – означает, что классы-потомки не могут содержать объектов, одновременно являющихся экземплярами двух или более классов (см. предыдущий пример);

Слайд 35 Отношение обобщения
{incomplete} – означает случай, противоположный первому.

Отношение обобщения {incomplete} – означает случай, противоположный первому. Предполагается, что на

Предполагается, что на диаграмме указаны не все классы-потомки;
{overlapping}

– означает, что отдельные экземпляры классов-потомков могут принадлежать одновременно нескольким классам.
Пример изображения ограничений:

Слайд 36 Интерфейсы
Интерфейсы на диаграммах классов могут изображаться с помощью

ИнтерфейсыИнтерфейсы на диаграммах классов могут изображаться с помощью специального графического символа

специального графического символа – прямоугольника класса с ключевым словом

или стереотипом «interface»:



У интерфейсов секция атрибутов у прямоугольника отсутствует, а указывается только секция операций.

Слайд 37 Диаграмма объектов
Объект (object) является отдельным экземпляром класса, который

Диаграмма объектовОбъект (object) является отдельным экземпляром класса, который создается на этапе

создается на этапе выполнения программы.
Он имеет собственное имя

и конкретные значения атрибутов.
Диаграмма объектов не является канонической диаграммой UML, но имеет самостоятельное назначение
Для графического изображения объектов используется такой же символ прямоугольника, что и для классов.

Слайд 38 Запись имени объекта представляет собой строку текста «имя_объекта:имя_класса»,

Запись имени объекта представляет собой строку текста «имя_объекта:имя_класса», разделенную двоеточием:Имя объекта

разделенную двоеточием:



Имя объекта может отсутствовать, в этом случае предполагается,

что объект является анонимным, и двоеточие указывает на данное обстоятельство:

Диаграмма объектов


Слайд 39 Диаграмма объектов
Атрибуты объектов принимают конкретные значения:

Диаграмма объектовАтрибуты объектов принимают конкретные значения:

Слайд 40 Шаблоны или параметризованные классы
Шаблон (template) или параметризованный класс

Шаблоны или параметризованные классыШаблон (template) или параметризованный класс (parametrized class) предназначен

(parametrized class) предназначен для обозначения такого класса, который имеет

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

Слайд 41 Шаблоны или параметризованные классы
Шаблон не может быть непосредственно

Шаблоны или параметризованные классыШаблон не может быть непосредственно использован в качестве

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

в качестве шаблона выступает некоторый суперкласс, параметры которого уточняются в его классах-потомках.
Пример: Класс «Адрес» может быть получен из шаблона «Связный_список» на основе актуализации формальных параметров «S, k, l» фактическими атрибутами «улица, дом, квартира».

  • Имя файла: tema-n3-diagramma-klassov.pptx
  • Количество просмотров: 119
  • Количество скачиваний: 0