Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компьютерная техника (конспектировать ).docx
Скачиваний:
69
Добавлен:
05.11.2018
Размер:
1.56 Mб
Скачать

3 Диаграмма класса

3.1 Назначение

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

3.2 Символика Класс

Класс, представляемый на диаграмме класса, изображается квадратом или прямоугольником, обозначенным и именем класса, как показано на рис.3.2.1. Этот графический элемент называется блоком класса. Если класс абстрактный (отсроченный класс в Eiffel [3]), то аннотируют блок класса, как показано на рис.3.2.2.

Логические компоненты

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

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

Общедоступные операции

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

Общедоступные операции класса могут быть разделены на две категории.

Рис.3.2.1. Диаграмма класса. Этот рисунок иллюстрирует наиболее часто используемые элементы нотации.

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

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

Нотации операций с экземплярами и классами отличаются по двум причинам:

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

2. В Smalltalk базируемые на классах и экземплярах операции формируют отдельные иерархии наследования. Так как диаграмма класса используется как основа для диаграммы наследования (см. 7-й раздел), разграничение базируемых на экземплярах и на классах операций устанавливается на диаграмме класса.