диаграммы классов - - ИТ -информационные технологии фкн вгу 2012

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

На диаграмме классов класс задаётся в виде прямоугольника, который разбит горизонтальными чертами на , как максимум, четыре малы прямоугольника в которых (сверху вниз) записываются следующие данные о классе=
1) имя класса
2) атрибуты класса (в си шарпе - это поля и свойства)
3) операции класса (методы в си шарпе)
4) Исключения или ограничения для класса.

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

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

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

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

[кратность] : = {строка-свойство}.

-- «видимость» (visibility) — качественная характеристика характеризующая возможность других объектов модели оказывать влияние
+ – общедоступный (public)- доступен методам всех классов (объектов) программы.
# – типа защищенный (protected) - то есть к нему имеют доступ только методы данного класса и методы потомком данного класса
- – закрытый (private) - имеют доступ только методы данного класса
~ - пакетный (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)
Используется в такой ситуации, когда некоторое изменение одного элемента модели может потребовать изменения другого зависимого от него элемента - обозначается пунктирной стрелочкой от замисящего класса к тому, от которого это зависящий класс зависит.

Стереотипы отношения зависимости (название надписывается рядом со стрелочкой, изображающей определённый вид зависимости между классами) =
«access» - служит для обозначения доступности открытых атрибутов и операций класса-источника для классов-клиентов;
«bind» - класс-клиент может использовать некоторый шаблон для своей последующей параметризации;
«derive» - атрибуты класса-клиента могут быть вычислены по атрибутам класса-источника;
«import» - открытые атрибуты и операции класса-источника становятся частью класса-клиента, как если бы они были объявлены непосредственно в нем;
«refine» - указывает, что класс-клиент служит уточнением класса-источника в силу причин исторического характера, когда появляется дополнительная информация в ходе работы над проектом

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

Дополнительно характеризуют
Имя
Кратность
Роль

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

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

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

Отношение агрегации

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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