Диаграммы классов часть 1-ая 2012 ИТ ФКН ВГУ

Класс (class) — абстрактное описание множества однородных объектов, имеющих одинаковые атрибуты, операции и отношения с объектами других классов.

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

  • 1) имя класса
  • 2) атрибуты класса (в си шарпе - это поля и свойства)
  • 3) операции класса (методы в си шарпе)
  • 4) Исключения или ограничения для класса.

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

Класс

Конкретный класс (concrete class) — класс, на основе которого могут быть непосредственно созданы экземпляры или объекты
Абстрактный класс (abstract class) — класс, который не имеет экземпляров или объектов

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

Атрибут
(attribute) — содержательная характеристика класса, описывающая множество значений, которые могут принимать отдельные объекты этого класса.

<квантор видимости>  <имя атрибута>  [кратность] : <тип атрибута> = <исходное значение> {строка-свойство}

-- «видимость» (visibility) — качественная характеристика характеризующая возможность других объектов модели оказывать влияние

  1. + – общедоступный (public)- доступен методам всех классов (объектов) программы.
  2. # – типа защищенный (protected) - то есть к нему имеют доступ только методы данного класса и методы потомком данного класса
  3. - – закрытый (private) - имеют доступ только методы данного класса
  4. ~ - пакетный (package). Атрибут с этой областью видимости недоступен или невиден для всех классов за пределами пакета, в котором определен класс-владелец данного атрибута.

------------------
Кратность(multiplicity) (определят момент типа "один-к одному" "один -ко многим" и т.д.)

[нижняя граница .. верхняя граница]
[0..1]
[0..*]
[1..*]
[1..3,7..*]
1=[1..1]
*=[0..*]

---------------------------

Тип атрибута представляет собой выражение, семантика которого определяется языком спецификации соответствующей модели
цвет: Соlоr
имя_сотрудника [1..2] : String
видимость:Boolean
форма:Многоугольник = прямоугольник

Подчеркивание означает, что атрибут может принимать подмножество значений из области его значений
{Строка-свойство} – служит для указания значений атрибута, которые не могут быть изменены в программе
заработная_плата:Currency = {$500}

-----------------------------

Операция или метод (operation) представляет собой некоторый сервис, предоставляющий каждый экземпляр класса по определенному требованию.
(список параметров): {строка-свойство}

Параметр

<вид параметра><имя параметра>:<выражение типа>=<значение параметра по умолчанию> 

Вид (направление) параметра — есть одно из ключевых слов in, out или inout
Строка-свойство
Запрос {query}
последовательная (sequential)
параллельная (concurrent) - может выполняться параллельно с другими операциями в системе, при этом параллельность должна поддерживаться на уровне реализации модели.
охраняемая (guarded) - все обращения к данной операции должны быть строго упорядочены во времени, при этом могут быть приняты дополнительные меры по контролю исключительных ситуаций на этапе ее выполнения.
abstract
signal (Аналог message)
------------------
Точка зрения

Концептуальная (понятия предметной области)
Спецификации (интерфейсы программной системы)
Реализации (классы реализации)

---------------------------------------------

Расширение языка UML

Управляющий класс (control class)
Класс-сущность (entity class)
Граничный класс (boundary class)

-------------------------------
Типы отношений

  • Отношение зависимости (dependency relationship)
  • Отношение ассоциации (association relationship) (здесь - ассоциация, агрегация, композиция)
  • Отношение обобщения (generalization relationship)
  • Отношение реализации (realization relationship)

Отношение зависимости (dependency relationship)
Используется в такой ситуации, когда некоторое изменение одного элемента модели может потребовать изменения другого зависимого от него элемента - обозначается пунктирной стрелочкой от замисящего класса к тому, от которого это зависящий класс зависит.

Стереотипы отношения зависимости (название надписывается рядом со стрелочкой, изображающей определённый вид зависимости между классами) =

  1. «access» - служит для обозначения доступности открытых атрибутов и операций класса-источника для классов-клиентов;
  2. «bind» - класс-клиент может использовать некоторый шаблон для своей последующей параметризации;
  3. «derive» - атрибуты класса-клиента могут быть вычислены по атрибутам класса-источника;
  4. «import» - открытые атрибуты и операции класса-источника становятся частью класса-клиента, как если бы они были объявлены непосредственно в нем;
  5. «refine» - указывает, что класс-клиент служит уточнением класса-источника в силу причин исторического характера, когда появляется дополнительная информация в ходе работы над проектом


Отношение ассоциации

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

Дополнительно характеризуют

  1. Имя
  2. Кратность
  3. Роль

+++++++++++++++++++++++++++++++++++
N-арная ассоциация

Ассоциация-класс – класс, реализующий ассоциацию
Конец ассоциации

XOR-ассоциация
-то есть ассоциация исключающего то есть например сущность "счёт" в банке может быть ассоциирована одновременно с двумя типа владельцев ( наприимер = 1)"частное лицо" или 2)"коммерческая организация" ) с помощью xor-ассоциации - такая ассоциация показывает что владельцем счёта единовременно может выступать либо частное лицо, либо коммерческая организация.
_____________________________________
Отношение агрегации

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

Ассоциация<-Агрегация<-Композия

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

Агрегация на схеме обозначается сплошной прямой линией соединяющей агрегирующий объект (определение - агрегирующий объект - это тот, который присоединяет более простую сущность - анрегирУЕМУЮ к более сложной сущности) с агрегируемым (определение -агрегирУЕМЫЙ ОБЪЕКТ - это такой объект, который присоединяется АГРЕГИРУЮЩИМ ОБЪЕКТОМ к сущности , представленной самим агреГИРУЮЩИМ объектом -которая является более сложной , чем сущность, которую представляет агрегИРУЮЩИЙ объект) - стрелка в начале - с точке прикосновения к прямоугоьлнику агргирующего объекта начинается с с незакращенного ромбика (+ в некоторых вариантах диаграмм в точке соприкосновениия линиb с агрегируемым объектом(который является часть целого) рисуется стрелка -но в этих лекциях стрелка не рисовалась )


Отношение композиции

В отношение композиции части не могут выступать в отрыве от целого, т. е. с уничтожением целого уничтожаются и все его составные части - различие в обозначении от обозначения агрегации только в том , что ромбие закрашивается...
++++++++++++++++++++++++++++++++++++++

Отношение обобщения

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

Ограничения отношения обобщения

строка текста, указывающая на некоторые дополнительные свойства этого отношения

  1. {complete} -- определены все классы- потомки
  2. {disjoint} -- классы-потомки не содержат объектов, одновременно являющихся экземплярами двух или более классов
  3. {incomplete}
  4. {overlapping} -- экземпляры классов-потомков могут принадлежать одновременно нескольким классам

На диаграмме ограничение отношения обозначается в виде черты, которая перпендикулярно пересекает лининию , проведённую между потомками и родителем (см. выше обычное обозначение отношения обобщения) - рядом с чертой, которая пересает связь отношения обобщения надписывается вид ограничения отношения обобщения (см. в качестве примера список выше- например - overlapping)

------------------
Интерфейс

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

-------------------

ОБЪЕКТЫ

у объектов на диаграммах ,в отличии от классов название (то, что написано в в верхнем из , максимум, 4-ёх прямоугольников, составляющих один большой прямоугольник полностью описывающий объект , взятый сам по себе) подчёркивается

Задание объектов (имён объектов) =
'/':.

  1. о : C – объект с собственным именем о, экземпляр класса С.
  2. : C – анонимный объект, экземпляр класса С.
  3. о :(или просто о) — объект-сирота с собственным именем о.
  4. о / R : C — объект с собственным именем о, экземпляр класса С, играющий роль R.
  5. / R : C — анонимный объект, экземпляр класса С, играющий роль R.
  6. о / R — объект-сирота с собственным именем о, играющий роль R.
  7. / R — анонимный объект и одновременно объект-сирота, играющий роль R.

__________________________________
Рекомендации

  1. Использование классов, ассоциаций, атрибутов, отношений и ограничений решает 90% всех задач моделирования.
  2. Сконцентрировать внимание только на важных аспектах проблемы
  3. Выбор точки зрения должен соответствовать определенному этапу работы: концептуальный, спецификации, реализации)

--------------------
собрано = Евгений Михайлович Михайлов
дополнено = нами.