Материал: 03. Объектно ориентированное моделирование

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Центр дистанционного обучения

online.mirea.ru

26

Центр дистанционного обучения

Назначение и состав диаграммы классов

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

атрибуты классов, операции классов и ограничения,

которые накладываются на связи между классами. Вид и интерпретация диаграммы классов существенно зависит от

точки зрения (уровня абстракции): классы могут

представлять сущности предметной области (в процессе анализа) или элементы программной системы

(в процессах проектирования и реализации).

online.mirea.ru

27

Центр дистанционного обучения

Видимость отображается с помощью следующих символов:

-"+" – общедоступный атрибут (англ. public) – доступен для чтения и модификации из объектов любого класса;

-"#" – защищенный атрибут (англ. protected) – доступен только объектам описываемого класса и его потомкам при наследовании;

-"–" – закрытый атрибут (англ. private) – доступен только объектам описываемого класса;

-"~" – пакетный атрибут (англ. package) – доступен только объектам классов, входящих в тот же пакет.

Видимость (англ. visibility) характеризует возможность чтения и модификации значения атрибута объекта описываемого класса, из объектов других классов. Модификация значения

возможна лишь при условии, что атрибут не является

 

константой.

Стереотип классов – это механизм, позволяющий

 

разделять классы на категории. В языке UML определены

 

три основных стереотипа классов: entity, boundary,

 

control.

 

В примере на рисунке каждый Товар имеет сколь угодно

 

Записей в накладной, но каждая Запись в накладной

 

обязательно один Товар.

online.mirea.ru

28

Центр дистанционного обучения

При разработке диаграммы следует придерживаться следующих правил:

1.За основу диаграммы классов при ее разработке берется диаграмма классов анализа.

2.Для классов должны быть определены и специфицированы все атрибуты и методы. Их спецификация, как правило, выполняется с

учетом выбранного языка программирования.

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

4.Детальное проектирование граничных классов, как правило, не требуется. Большинство современных средств разработки

поддерживает визуальную разработку интерфейса системы – меню, диалоговых форм, элементов диалоговых окон, панелей инструментов и

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

которые возникают при диалоге пользователя с системой. Граничные классы, определяющие интерфейс взаимодействия с другими системами, требуют детального проектирования.

5. Для проектирования классов-сущностей можно применять подходы, используемые при проектировании БД, особенно в том случае,

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

состав и структуру БД.

6. Несмотря на то, что каждому объекту при выполнении программы автоматически назначается уникальный идентификатор,

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

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

д.

8. Управляющие классы следует проектировать только в случаях крайней необходимости – управления сложным взаимодействием

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

 

online.mirea.ru

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

29

 

Центр дистанционного обучения

В третьей секции указывается перечень операций класса. Можно выделить шесть основных типов операций:

1.конструктор – метод, создающий и инициализирующий объект. В Java имя конструктора совпадает с именем класса;

2.деструктор – метод, уничтожающий объект. В некоторых языках программирования (в частности в Java) определение деструкторов не требуется, так как очистка памяти от неиспользуемых объектов (сборка мусора) выполняется автоматически;

3.модификатор – метод, который изменяет состояние объекта (значения атрибутов). Имена модификаторов начинаются, как правило, со слова set (англ. – установить). Например, установить атрибуту Name новое значение setName (newName : String);

4.селектор – метод, который может только считывать значения атрибутов объекта, но не изменяет их. Имена селекторов начинаются, как правило, со слов get (англ. – получить) или is при возврате логического результата. Например, считать значение атрибута Name – getName() или определить видимость на экране элемента графического интерфейса – isVisible();

5.итератор – метод, позволяющий организовать доступ к элементам объекта. Например, для объекта, представляющего собой множество Set или список List, это могут быть методы перехода к первому элементу first(), следующему next(), предыдущему previous() и т. п.;

6.событие – метод, запускаемый на выполнение автоматически при соблюдении определенных условий.

online.mirea.ru

30

Источник: https://studfile.net/preview/16480616/