PIS_Zakharchenko_2015g (1)
.pdfПроблема: Как представить архитектуру |
программной системы? |
Графический
интерфейс
пользователя
Модели
бизнес
объектов
Базы данных
351
Диаграмма классов — основная логическая |
модель проектируемой системы |
Диаграмма классов (class diagram) — диаграмма,
предназначенная для представления модели статической структуры программной системы в терминологии классов объектно-ориентированного программирования
Диаграмма классов представляет собой граф, вершинами или узлами которого являются элементы типа ―классификатор‖, которые связаны различными типами структурных отношений
Классификатор (classifier) – специальное понятие, предназначенное для классификации экземпляров, которые имеют общие характеристики
352
Характеристики классификатора |
Характеристика (feature) – понятие, предназначенное для |
спецификации особенностей структуры и поведения |
экземпляров классификаторов |
Структурная характеристика (structural feature) является |
типизированной характеристикой классификатора, которая |
специфицирует структуру его экземпляров |
Характеристика поведения (behavioral feature) является |
характеристикой классификатора, которая специфицирует |
некоторый аспект поведения его экземпляров |
Класс (class) – основной элемент модели (классификатор), |
который описывает множество объектов, имеющих |
одинаковые спецификации характеристик, ограничений и |
семантики |
353 |
Класс - базовый классификатор любой |
объектно-ориентированной системы |
Класс- описание совокупности однородных объектов |
с присущими им свойствами - атрибутами, |
операциями, отношениями и семантикой. |
Атрибут - это свойство класса, которое может |
принимать множество значений. Множество |
допустимых значений атрибута образует домен. |
Операция - реализация функции, которую можно |
запросить у любого объекта класса. |
354 |
Изображение класса
Атрибут < признак видимости > < имя атрибута >: < тип данных > = < значение по умолчанию > Операция
< признак видимости > < имя операции > < (список аргументов) > |
355 |
Варианты графического изображения класса на диаграмме классов
Имя класса
Имя класса
Имя класса |
атрибуты класса |
|
Имя класса |
|
операции класса
операции класса
Видимость |
Shape |
|
|
|
Имя класса |
|
|
|
|
||||
|
|
|
|
|
|
|
|
+origin : Point |
|
|
|
Атрибуты |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
+move(p:Point) |
|
|
|
||
|
+resize(s:Scale) |
|
|
|
|
Операции |
|
+disply() |
|
|
|||
|
Сигнатура |
|||||
|
|
|
|
|||
|
#invalidateRegion() |
операции |
||||
|
|
|
|
|||
|
|
|
|
|
|
Дополнительная |
|
Responsibilities |
|
|
|
||
|
|
|
|
секция |
||
|
- - manage shape state |
|
|
|||
|
|
|
|
|||
|
- - handle basic shape |
|
|
|
||
|
transformations |
356 |
||||
|
|
|
|
|||
|
|
|
|
Основные обозначения на диаграмме классов |
||||||
|
|
|
|
|
|
Класс |
|
|
|
|
Компания |
|
|
Кратность |
Имя |
|
|
1 |
|
|
|
|
|
|
|
||
|
ассоциации |
|
Композиция |
|||
|
|
|
||||
* |
1..* |
|
|
|
|
1..* |
Отдел |
|
Местоположение |
|
Офис |
||
название : String |
* |
* |
адрес : String |
|||
0..1 |
|
|
|
|
|
телефон : |
* |
* |
|
|
Ассоциация |
Number |
|
|
|
|
||||
|
|
Ограничение |
|
|
||
|
|
|
|
|
|
|
{subset} |
|
|
Обобщение |
|
|
|
Сотрудник |
|
|
|
|
|
|
Менеджер |
|
|
||||
1..* |
1 |
|
|
|
|
Штаб-квартира |
|
|
|
|
Имя конца |
|
|
Сотрудник |
|
|
|
|
||
|
|
|
|
ассоциации |
|
|
имя : String |
|
|
|
Атрибуты |
|
|
|
|
|
|
|
|
|
фамилия : String |
|
|
Операции |
|
|
|
должность : String |
|
|
|
|
||
|
|
|
|
|
||
getPhoto(p:Photo) |
|
|
Контактная |
|||
getContactInform() |
|
|
||||
|
|
Информация |
||||
getPersonalRecords() |
|
|
||||
|
|
|
|
|
||
|
|
|
|
адрес : String |
Интерфейс |
|
|
|
|
|
|
|
|
|
|
|
|
телефон : |
|
|
|
|
|
|
Number |
|
|
Зависимость |
|
|
|
Персональное Дело |
|
|
|
|
|
|
|
|
историяРаботы : String |
|
зарплата : Curency |
357 |
|
ISecureInformation |
Разновидности классов |
Абстрактный (abstract) класс не имеет экземпляров или |
объектов, для обозначения его имени используется |
наклонный шрифт (курсив) |
|
|
|
Активный класс (active class) – класс, каждый экземпляр |
|
Имя класса |
|
|
|
|
которого имеет свою собственную нить управления |
|
|
|
|
Пассивный класс (passive class) – класс, каждый экземпляр которого выполняется в контексте некоторого другого объекта
Квалифицированное имя (qualified name) используется для того, чтобы явно указать, к какому пакету относится тот или иной класс. Для этого применяется специальный символ в качестве разделителя имени – двойное двоеточие ―::‖
Имя класса без символа разделителя называется простым
именем класса |
360 |
|