Помещение класса на диаграмму

Создание диаграммы

Основная диаграмма классов (Main) уже присутствует во снова созданной безлюдной модели, но вероятно создание дополнительных диаграмм при помощи уже привычных способов при помощи контекстного меню Logical View в окне Browse, при помощи пункта Browse в главном меню либо при помощи кнопки

Строка инструментов

При активизации диаграммы строка инструментов получает следующий вид (рис. 11.1).

Рис. 11.1.Строка инструментов для диаграммы классов

Так же как и для прошлых диаграмм не будем останавливаться на уже рассмотренных нами инструментах Selection Tool, Text Box, Note, Anchor Note to Item, каковые делают стандартные функции.

Class (класс)

Этот инструмент разрешает создать новый класс в модели и диаграмме. Понятие класса в Rational Rose подобно понятию класса в C++. Класс — это шаблона поведения и установки структуры для некоего множества настоящих объектов, каковые в будущем будут выяснены в программе на базе данного шаблона. Класс — это некая абстракция настоящего мира. В то время, когда эта абстракция принимает конкретное воплощение, она именуется объектом. Для детализации модели поведения классов создаются действий и диаграммы состояний, рассмотренные ранее.

Класс в UML нотации изображается как прямоугольник, поделённый на 3 части (рис. 11.2). В верхней части записывается наименование класса, в середине — атрибуты, в нижней части — операции.

Рис. 11.2.Изображение класса

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

Interface (интерфейс)

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

В диаграмме классов Interface в большинстве случаев отображается как значок класса со стереотипом «interface».

Unidirectional Association (однонаправленная сообщение)

Значок Unidirectional Association разрешает создать однонаправленную сообщение класса с классом либо класса с интерфейсом. Это неспециализированный и самый не сильный вид связи.

Замечание. Детально об данной и других видах связей просматривайте в теме 12.

Association Class (ассоциация класса)

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

Package (контейнер)

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

Dependency of instantiates (зависимость реализации)

Значок Dependency of instantiates разрешает создать сообщение Dependency of instantiates, наряду с этим генератор кода C++ Rational Rose формирует код класса, включающий определения зависимого класса методом генерации директивы #include. Установка этого типа связей говорит о том, что класс применяет второй класс как параметр в одном из способов.

Generalization (обобщение)

Значок Generalization разрешает создать сообщение Generalization, для которой Rational Rose формирует код наследования, другими словами создается подкласс для соединенного данной связью класса, наследуемого из родительского класса.

Realize (делать)

Значок Realize разрешает создать связь Realize между интерфейсом и классом либо между интерфейсом и компонентом. Данный тип связи употребляется чтобы продемонстрировать, что класс делает операции, предоставляемые интерфейсом.

Помещение класса на диаграмму

Для нового класса и помещения его на диаграмму классов возможно воспользоваться соответствующим значком из строчка инструментов либо меню Menu=Tools=Create=Class. Мы уже создали кое-какие классы совокупности, но не поместили их на диаграмму. Чтобы поместить уже созданный класс, к примеру, EnvironmentalController на диаграмму классов, имеется пара дорог:

  • перетащить необходимый класс мышкой из окна Browse;
  • воспользоваться Menu=Query=Add Classes и в диалоговом окне (рис. 11.3) выбрать нужные классы для включения в диаграмму.

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

Понятие «стереотип» для класса

Мы уже виделись с понятием стереотипа в других диаграммах, но для диаграммы классов нужно более подробное рассмотрение данного понятия.

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

Рис. 11.3.Добавление созданного класса в диаграмму

Кое-какие стереотипы уже выяснены в Rational Rose, но неизменно возможно добавить новые стереотипы пользователя, каковые сохраняются в файле стереотипов. Как пример применения стереотипов возможно привести следующий. Вы имеете возможность применять для классов, каковые предназначены для хранения данных, стереотип «Storage», для классов, каковые предназначены для показа данных — стереотип «View», для классов, каковые предоставляют пользователю возможность контроля за исполнением программы — «Controller».

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

На рис. 11.4 продемонстрирован пример разных вариантов визуализации стереотипов. Слева направо: None, Label, Decoration, Icon.

Рис.11.4.Демонстрация разных вариантов визуализации стереотипов

Для демонстрации в прошлом примере использован встроенный стереотип Actor.

В Rational Rose доступны следующие встроенные стереотипы:

  • Actor (исполнитель);
  • boundary (граница);
  • business actor (бизнес-исполнитель);
  • business entity (бизнес^сущность);
  • business worker (работник);
  • control (управление);
  • entity (сущность);
  • Interface (интерфейс).

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

Контекстное меню класса

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

Рис.11.5.Контекстное меню класса

Перечислим назначение отдельных пунктов:

  • Open Specifications — открытие диалогового окна заполнения спецификаций;
  • Sub Diagrams разрешает создавать к текущему классу состояний и диаграммы активности либо перейти на поддиаграммы класса;
  • New Attribute разрешает додавать новый атрибут класса;
  • New Operation разрешает додавать новую операцию для класса;
  • Select In Browser разрешает выделить класс в окне Browser;
  • Relocate разрешает переместить класс в новый контейнер либо на новое расположение;
  • Options — вызов подменю настройки значка класса;
  • Format — вызов подменю настройки шрифта, цвета, заливки диаграммы.

Меню Options (cвойства)

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

  • Automatic Resize — автоматическая настройка размера значка, чтобы вместить целый введенный текст заглавия, атрибута либо операции. Эта функция удобна для операций и названий начального заполнения атрибутов и включена по умолчанию. В будущем, в то время, когда этот класс уже связан с другими и занимает собственный место на диаграмме классов, ее возможно отключить;
  • Stereotype Display разрешает продемонстрировать либо скрыть стереотип для данного класса;
  • Show Visibility разрешает продемонстрировать тип доступа для атрибутов и операторов, таких как Public, Protected, Private, Implementation. Причем продемонстрированы эти типы доступа будут при помощи графических значков;

o Public (default) —

o Protected —

o Private —

o Implementation —

  • Show All Attributes показывает либо скрывает атрибуты класса;
  • Show All Operations показывает либо скрывает все операции класса;
  • Show Operation Signature показывает либо скрывает так именуемую сигнатуру операции, т.е. параметры и возвращаемое значение;
  • Show Compartment Stereotypes — эта установка разрешает показывать либо скрывать имя стереотипа для операции либо атрибута класса;
  • Select Compartment Items разрешает активизировать окно выбора пунктов операций либо атрибутов для показа, в том случае в случае если необходимо скрыть не все атрибуты либо операции, а лишь кое-какие. Для этого нужно активизировать окно Select Compartment Items и выбрать нужные для показа операции и атрибуты (рис. 11.6);

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

Рис.11.6.Установка нужных для операций и показа атрибутов

Замечание. Чтобы внесенные трансформации получили юридическую силу, нужно снять галочку с пунктов меню Show All Attributes и Show All Operations, и лишь затем все, не считая выбранных пунктов, будут скрыты.

  • Suppress Attributes разрешает скрыть все атрибуты, даже если они были выбраны при помощи окна Select Compartment Items. Данный пункт увлекателен тем, что при его выборе не только прячутся атрибуты, но и закрывается пункт меню Attributes, что не разрешает ввести новые;
  • Suppress Operations разрешает скрыть все операции подобно атрибутам в прошлом пункте.

Спецификации класса

Rational Rose разрешает устанавливать большое количество особенностей класса, каковые, а также, воздействуют на генерацию кода класса, исходя из этого, дабы лучше ориентироваться в предстоящих действиях, разберем вкладки окна спецификаций. Быть может, контроллер параметров среды вам уже порядком надоел, исходя из этого для разбора возможностей спецификаций заберём класс датчика температуры — TemperatureSensor.

Вкладка General (основная)

При выборе из контекстного меню датчика температуры пункта Open Specification раскрывается диалоговое окно, продемонстрированное на рис. 11.7. Спецификации класса имеют пара вкладок, и первой активизируется вкладка General (основная).

Это окно разрешает задать главные свойства класса, такие как его имя, тип, выяснить доступ и стереотип класса к нему, в то время, когда класс находится в контейнере. Так же как и во всех других диаграммах, тут возможно задать документацию к классу.

Рис. 11.7.Вкладка General спецификаций датчика температуры

Перечислим поля, каковые находятся на данной вкладке:

  • Name предназначено для задания имени класса;
  • Туре предназначено для задания типа класса. В нашем случае — это «класс», но возможно выбрать значение «метакласс», «параметризированный класс» и т.д.;
  • Stereotype задает стереотип класса;
  • Export Control рекомендован для определения доступа к классу, в то время, когда он находится в контейнере. Наряду с этим Public определяет, что элемент виден вне контейнера, в котором он выяснен и его возможно импортировать в другие части создаваемой модели; Protected — элемент доступен лишь для положенных классов, классов с типом friends и фактически в класса; Private обозначает защищенный элемент класса; Implementation — элемент виден лишь в том контейнере, в котором выяснен.

Вкладка Detail (детализация)

Вкладка Detail разрешает показывать дополнительные установки класса, такие как ожидаемое количество создаваемых объектов класса, ожидаемый расход оперативной памяти и т.д. (рис. 11.8).

Перечислим поля, каковые находятся на данной вкладке:

  • Multiplicity (множественность) разрешает задать ожидаемое количество объектов, каковые будут созданы на базе данного класса. В большинстве случаев этот параметр комфортно задавать для связанных классов;

Рис.11.8.Вкладка Detail спецификаций датчика температуры

  • Space показывает количество оперативной памяти, нужной для объекта данного класса. Поле возможно задано напрямую либо формулой, обрисовывающей требования по памяти и значение должно учитывать накладные затраты на создание объекта плюс размер всех объектов, входящих в этот;
  • Persistence определяет время судьбы объекта класса. В случае если установлен флажок Persistent, то объект должен быть дешёв в течение всей работы программы либо для доступа вторых потоков либо процессов;

Замечание. Установка Persistence для класса и для объекта должна быть однообразной. Эта установка не действует для утилит классов, параметризированных утилит классов и реализаций утилит классов.

  • Concurrency обозначает поведение элемента в многопотоковой среде. Установка для того чтобы поля в операции не должна противоречить установке в самом классе. Эта установка может принимать следующие варианты:

1. Sequential (по умолчанию) — работа класса обеспечивается лишь для одного потока. Лишь один поток возможно запущен при помощи способов класса одновременно времени;

2. Guarded — класс снабжает работу с несколькими потоками. Таковой класс снабжает сотрудничество между потоками клиентов с целью достижения непротиворечивой работы потоков, есть арбитром потоков, предоставляя работу конкретному потоку в конкретный момент времени;

3. Active — класс есть классом отдельного потока;

4. Synchronous — класс снабжает работу нескольких потоков, синхронизируя их.

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

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

  • Formal Arguments заполняется лишь для параметризированных классов и утилит классов. Для простых классов данное поле недоступно.

Вкладка Components (компоненты)

Вкладка Components отражает компоненты, с которыми ассоциирован класс (рис. 11.9).

Рис. 11.9.Вкладка Components спецификаций датчика температуры

Замечание. Вкладка Components похожа на вкладку Realize в спецификациях компонента. Тут вероятна установка связи текущего класса и компонента, а в Realize установка связи текущего компонента и класса.

На вкладке помечены красным маркером компоненты, каковые включены в текущую модель, и смогут быть продемонстрированы остальные компоненты модели. В случае если у вас не продемонстрирован компонент MFC 6.0, то либо нужно включить флажок Show all components, либо еще не была импортирована библиотека MFC.

Совет. Для стремительного импорта библиотеки MFC нужно выполнить Menu=семь дней;Tools= Visual C++=Quick Import MFC 6.0.

Из данной вкладки по двойному нажатию мыши на компоненте возможно получить доступ к его спецификациям.

Вкладки Attributes (атрибуты)

Эта вкладка разрешает додавать, удалять, редактировать атрибуты класса (рис. 11.10).

Рис. 11.10.Вкладка Attributes спецификаций датчика температуры

На данной вкладке представлен перечень атрибутов класса, что возможно редактировать при помощи контекстного меню. Флажок Show inherited разрешает скрыть либо продемонстрировать дешёвые атрибуты родительских классов.

Чтобы добавить атрибут, нужно из контекстного меню выбрать пункт Insert. По двойному нажатию мыши на атрибуте либо из контекстного меню Rational Rose предоставляет доступ к диалоговому окну спецификаций атрибутов (рис. 11.11).

Тут пользователь может поменять наименование атрибута (направляться), его тип (Туре) и стереотип (Stereotype), задать начальное значение (Initial value) и тип доступа к атрибуту (Export Control).

Рис. 11.11.Вкладка General спецификаций атрибутов класса

Дополнительная вкладка Detail спецификаций атрибутов класса (рис. 11.12) разрешает задать тип хранения атрибута в классе:

  • By Value — по значению;
  • By Reference — по ссылке;
  • Unspecified — не указано.

Кроме этого пользователь может указать, что атрибут есть Static (статическим) либо Derived (производным).

Вкладка Operations (операции)

Вкладка Operations разрешает додавать, удалять, редактировать операции класса (рис. 11.13).

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

Рис. 11.12.Вкладка Detail спецификаций атрибутов класса

Рис. 11.13.Вкладка Operations спецификаций класса

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

Вкладка Detail спецификаций операций разрешает устанавливать дополнительные особенности операции (рис. 11.14).

Рис. 11.14.Вкладка Detail спецификаций операций

Перечислим поля, представленные на данной вкладке:

  • Arguments (доводы) разрешает устанавливать перечень доводов для операции с их значениями и типами по умолчанию;
  • Protocol (протокол) разрешает задавать перечень установок, что предоставляется клиенту для вызова;
  • Qualification (квалификация) разрешает идентифицировать зависящие от языка возможности, каковые разрешают квалифицировать способ. Эта квалификация нужна, если вы используете Common Lisp Object System (CLOS);
  • Exceptions (исключения) разрешает задавать перечень исключений, каковые смогут быть позваны операцией. Тут нужно ввести имя одного либо нескольких классов, обрабатывающих необыкновенные состояния;
  • Size (размер) разрешает задать размер памяти, требуемой для исполнения операции;
  • Time (время) разрешает задать время исполнения операции;
  • Concurrency (борьба) отражает для многопотоковой программы тип исполнения операции:

1. Sequential (по умолчанию) — лишь один поток обязан выполняться в одно и также время;

2. Guarded — вероятно исполнение нескольких потоков, управляемых некоторым классом;

3. Synchronous — операции смогут идти параллельно.

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

Вкладки Preconditions, Postconditions, Semantics разрешают задавать завершения операции процессов и дополнительные описания подготовки, и описание метода операции. Не считая текстового описания тут же возможно задать имя Interaction диаграммы, которая обрисовывает указанные действия.

Вкладка Relations (связи)

Вкладка Relations разрешает додавать, удалять, редактировать связи класса (рис. 11.15).

Рис. 11.15.Вкладка Relations спецификаций класса

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

Замечание. Спецификации связей будут рассмотрены позднее для связи Unidirectional association.

Замечание. По окончании удаления связей с диаграммы, всецело удалить их возможно лишь при помощи вкладки Relations.

Вкладка VC++

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

Вкладка СОМ

Вкладка СОМ разрешает устанавливать свойства для классов, каковые предназначены для СОМ объектов в модели. Если такие объекты импортируются в модель, в них кроме этого появляется такая вкладка (рис. 11.16).

Рис. 11.16.Вкладка СОМ спецификаций класса

  • Generate — свойство, определяющее необходимость генерации исходного кода класса;
  • kind — свойство, которое идентифицирует тип объекта, что возможно следующим: coclass, enum, record, module, interface, dispin-terface, alias, union, max;
  • uuid — свойство, которое задает строчок идентификатора для класса либо библиотеки, которая идентифицирует СОМ объект в совокупности, к примеру, 11611EBF-070D-11D1-8001-OOAOC922E84A.
  • version — версия СОМ объекта;
  • helpstring, helpcontext предназначены для идентификатора файла и задания строки помощи для объекта;
  • attributes — задает Такие атрибуты для объекта как control, hidden, restricted, licensed, appobject, nonextensible либо oleautomation;
  • dllname задает имя файла DLL, в котором находится объект;
  • alias задает тип, для которого создается псевдоним.

Примерные вопросы для защиты и самопроверки

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

2. Методы создания диаграммы.

3. Инструменты, предоставляемыми для работы с диаграммой.

4. Возможности контекстного меню элемента диаграммы — класса.

5. Настройки спецификаций класса.

Литература

1. Трофимов С.А. Case-технологии: практическая работа в Rational Rose — М.: ЗАО «Издательство ДВУЧЛЕН», 2001 г. — 272 с.: ил.

UML диаграмма классов


Понравилась статья? Поделиться с друзьями: