Смекни!
smekni.com

Методические указания к лабораторным работам по дисциплине “Системы автоматизации проектирования программного обеспечения” (стр. 9 из 22)

Продолжая разработку модели приложения для АИС «Трудоустройство», в качестве сквозного примера проекта, построим для этой модели следующую диаграмму классов. С этой целью следует изменить предложенное по умолчанию имя диаграммы Main на - Диаграмма классов «Трудоустройство», а имя добавленного на диаграмму класса - на «Matrix» (см. рис. 4.1).

Рисунок 4.1 - Диаграмма классов после добавления на нее класса «Matrix»

Для класса «Matrix» можно уточнить его назначение в модели с помощью указания стереотипа и пояснительного текста в форме документации. С этой целью двойным щелчком левой кнопкой мыши на изображении этого класса на диаграмме или в браузере проекта следует открыть диалоговое окно спецификации свойств этого класса (рис. 4.2) и на вкладке General (Общие) выбрать из вложенного списка Stereotype стереотип.

Рисунок 4.2 - Диалоговое окно спецификации свойств класса

Для отдельного класса можно уточнить также и другие его свойства, доступные для редактирования на вкладке Detail (Подробно) окна спецификации свойств этого класса. Например, на этой вкладке с помощью вложенного списка Multiplicity (Кратность) можно задать количество объектов или экземпляров данного класса, для чего следует выбрать строку с буквой n. Данное значение означает, что у класса может быть любое конечное число экземпляров (рис. 4.3). Поле ввода с именем Space (Пространство) служит для указания объема абсолютной или относительной памяти, которая требуется, по оценке разработчика, для реализации каждого объекта данного класса. Применительно к рассматриваемой модели это поле можно оставить пустым.

Рисунок 4.3 - Диалоговое окно спецификации свойств класса

Далее можно задать устойчивость классов в группе выбора Persistence. При этом выбор свойства Persistent (Устойчивый) означает, что информация об объектах данного класса должна быть сохранена в системе. Выбор свойства Transient (Временный) означает, что нет необходимости сохранять информацию об объектах данного класса в системе после завершения работы программного приложения. Применительно к рассматриваемой модели следует выбрать свойство Persistent.

В группе выбора Concurrency (Параллельность) можно специфицировать условия на возможность реализации объектов данного класса в параллельных потоках управления. Для выбора могут быть использованы следующие свойства:

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

Guarded (Безопасный) - означает, что при наличии нескольких потоков управления объекты класса будут вести себя ожидаемым от них образом. Для этого объекты в различных потоках должны взаимодействовать друг с другом для того, чтобы гарантировать отсутствие конфликта между ними.

Active (Активный) - означает, что класс должен иметь свой собственный поток управления.

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

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

2.1.2 Добавление и редактирование атрибутов классов

Из всех графических элементов среды IBM Rational Rose 2003 класс обладает максимальным набором свойств, главными из которых являются его атрибуты и операции.

Добавить атрибут к созданному ранее классу можно одним из следующих способов:

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

- с помощью операции контекстного меню: New

Attribute (Новый
Атрибут) для класса, выделенного в браузере проекта. В этом случае активизируется курсор ввода текста в области иерархического представления класса в браузере проекта под именем соответствующего класса.

- с помощью операции контекстного меню Insert (Вставить), вызванного при позиционировании курсора в области открытой вкладки атрибутов в диалоговом окне свойств Class Specification соответствующего класса.

После добавления атрибута к классу по умолчанию ему присваивается имя name и некоторый квантор видимости (рис. 4.4).

Рисунок 4.4 - Диалоговое окно спецификации свойств

класса после добавления нового атрибута

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

Таблица 4.2 - Пиктограммы видимости атрибутов классов

Графическое изображение

Текстовый аналог

Назначение пиктограммы

Public Общедоступный или открытый. В нотации языка UML такому атрибуту соответствует знак «+»
Protected Защищенный. В нотации языка UML такому атрибуту соответствует знак «#»
Private Закрытый. В нотации языка UML такому атрибуту соответствует знак «-»
Implementation Реализация. В нотации языка UML такому атрибуту соответствует знак «∼»

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

Рисунок 4.5 - Диалоговое окно спецификации свойств атрибута

2.1.4 Добавление и редактирование операций классов

Функционирование любой системы основано на выполнении отдельными его элементами тех или иных действий. В нашей модели все действия представляются с помощью операций классов. Таким образом, следующий этап разработки диаграммы классов связан со спецификацией операций классов.

Добавить операцию к созданному ранее классу можно одним из следующих способов:

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

- с помощью операции контекстного меню: New

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

- с помощью операции контекстного меню Insert (Вставить), вызванного при позиционировании курсора в области открытой вкладки операций в диалоговом окне свойств Class Specification соответствующего класса.

После добавления операции к классу по умолчанию ей присваивается имя opname и некоторый квантор видимости. Видимость операций на диаграмме классов также изображается в форме специальных пиктограмм. Используемые пиктограммы видимости изображаются перед именем соответствующей операции и имеют следующий смысл (табл. 4.3).

Таблица 4.3 - Пиктограммы видимости операций классов

Графическое изображение

Текстовый аналог

Назначение пиктограммы

Public Общедоступный или открытый. В нотации языка UML такому атрибуту соответствует знак «+»
Protected Защищенный. В нотации языка UML такому атрибуту соответствует знак «#»
Private Закрытый. В нотации языка UML такому атрибуту соответствует знак «-»
Implementation Реализация. В нотации языка UML такому атрибуту соответствует знак «∼»

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