Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 глава.docx
Скачиваний:
18
Добавлен:
15.03.2015
Размер:
89.51 Кб
Скачать

3.5 Диаграмма классов

Диаграммы классов наиболее часто используются при моделировании информационных систем. Они являются одной из форм статического описания системы с точки зрения ее проектирования, показывая ее структуру. Диаграмма классов не отображает динамическое поведение объектов изображенных на ней классов. На диаграммах классов показываются классы, интерфейсы и отношения между ними (рис. 3.5).Класс – это основной строительный блок информационной системы. Это понятие присутствует и в объектно-ориентированных языках программирования, то есть между классами UML и программными классами есть соответствие, являющееся основой для автоматической генерации программных кодов или для выполнения реинжиниринга. Каждый класс имеет название, атрибуты и операции. Класс на диаграмме показывается в виде прямоугольника, разделенного на 3 области. В верхней содержится название класса, в средней – описание атрибутов (свойств), в нижней – названия операций – услуг, предоставляемых объектами этого класса.

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

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

Для каждого атрибута класса можно задать видимость (visibility). Эта характеристика показывает, доступен ли атрибут для других классов. В UML определены следующие уровни видимости атрибутов:

Открытый (public) – атрибут виден для любого другого класса (объекта);

Защищенный (protected) – атрибут виден для потомков данного класса;

Закрытый (private) – атрибут не виден внешними классами (объектами) и может использоваться только объектом, его содержащим.

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

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

Операции класса определяются в разделе, расположенном ниже раздела с атрибутами. При этом можно ограничиться только указанием имен операций, оставив детальную спецификацию выполнения операций на более поздние этапы моделирования. Для именования операций рекомендуется использовать глагольные формы, соответствующие ожидаемому поведению объектов данного класса [4].

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

В RationalRose допустимы следующие отношения:

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

агрегацияпоказывает, что какой-либо класс является набором других классов;

обобщение, или наследование, что один класс наследует свойства, методы и события другого класса.

Рис. 3.3. Диаграмма классов

В таблицах 3.1 – 3.4 представлены описательные спецификации диаграммы классов.

Таблица 3.1

Описание структуры класса «Заказы» (Zakazi)

Наименование

Обозначение в БД

Тип данных

Идентификатор заказа

Zakazi_id

integer

Идентификатор клиента

Klient_id

integer

Идентификатор товара

Tovari_id

integer

Идентификатор сотрудника

Sotrudniki_id

integer

Дата заказа

Data_zak

data

Таблица 3.2

Описание структуры класса «Клиент» (Klient)

Наименование

Обозначение в БД

Тип данных

Идентификатор клиента

Klient_id

integer

ФИО

FIO

string

Контактные данные

kont_dan

string

Таблица 3.3

Описание структуры класса «Товары» (Tovari)

Наименование

Обозначение в БД

Тип данных

Идентификатор товара

Tovari_id

integer

Наименование товара

naim_tov

string

Стоимость

stoimost

integer

Производитель

proizv_name

string

Страна изготовления

strana_proizv

string

Таблица 3.4

Описание структуры класса «Сотрудники» (Sotrudniki)

Наименование

Обозначение в БД

Тип данных

Идентификатор сотрудника

Sotrudniki_id

integer

ФИО

FIO

string

Табельный номер

tab_nom

integer

Должность

dolzhnost

string

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]