Практическая работа №14

Лабораторная работа №14

Практическая работа 14.

Разработка диаграммы компонентов и редактирование свойств ее элементов

Особенности разработки диаграммы компонентов в среде IBM Rational Rose

Диаграмма компонентов служит частью физического представления модели, играет важную роль в процессе ООАП и является необходимой для генерации программного кода. Для разработки диаграмм компонентов в браузере проекта предназначено отдельное представление компонентов ( Component View ), в котором уже содержится диаграмма компонентов с пустым содержанием и именем по умолчанию Main (Главная).

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

· Щелкнуть на кнопке с изображением диаграммы компонентов на стандартной панели инструментов.

· Раскрыть представление компонентов в браузере ( Component View ) и дважды щелкнуть на пиктограмме Main (Главная).

· Через пункт меню Browse Component Diagram (Браузер Диаграмма компонентов ).

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

Таблица 1. Назначение кнопок специальной панели инструментов диаграммы компонентов
Графическое изображение | Всплывающая подсказка | Назначение кнопки
| Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме
| Text Box | Добавляет на диаграмму текстовую область
| Note | Добавляет на диаграмму примечание
| Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы
| Component | Добавляет на диаграмму компонент
| Package | Добавляет на диаграмму пакет
| Dependency | Добавляет на диаграмму отношение зависимости
| Subprogram Specification | Добавляет на диаграмму спецификацию подпрограммы
| Subprogram Body | Добавляет на диаграмму тело подпрограммы
| Main Program | Добавляет на диаграмму главную программу
| Package Specification | Добавляет на диаграмму спецификацию пакета
| Package Body | Добавляет на диаграмму тело пакета
| Task Specification | Добавляет на диаграмму спецификацию задачи
| Task Body | Добавляет на диаграмму тело задачи
| Generic Subprogram | Добавляет на диаграмму типовую подпрограммы(по умолчанию отсутствует)
| Generic Package | Добавляет на диаграмму типовой пакет (по умолчанию отсутствует)
| Database | Добавляет на диаграмму базу данных (по умолчанию отсутствует)

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

Программа IBM Rational Rose не поддерживает графические стереотипы, и предлагает целый ряд собственных стереотипов. Графическое изображение этих стереотипов и их краткая характеристика приводятся в следующей таблице (табл. 2). При этом каждому из компонентов, как правило, соответствует отдельный файл исходной сборки программного приложения.

Таблица 2. Графическое изображение стереотипов компонентов и их характеристика
Графическое изображение и имя по умолчанию | Название стереотипа | Характеристика стереотипа компонента
| Subprogram Specification | Спецификация подпрограммы. Содержит описание переменных, процедур и функций и не содержит определений классов
| Subprogram Body | Тело подпрограммы. Содержит реализацию процедур и функций, не относящихся к каким-то классам, при этом не содержит определений классов или реализаций операций других классов
| Main Program | Главная программа. Реализует базовую логику работы программного приложения и содержит ссылки на другие компоненты модели
| Package Specification | Спецификация пакета. Содержит определение класса, его атрибутов и операций. В языке программирования С++ спецификации пакета соответствует отдельный файл с расширением "h"
| Package Body | Тело пакета. Содержит код реализации операций класса. В языке программирования С++ спецификации пакета соответствует отдельный файл с расширением "cpp"
| Task Specification | Спецификация задачи. Может содержать определение класса, его атрибутов и операций, которые предполагается использовать в независимом потоке управления
| Task Body | Тело задачи. Может содержать реализацию операций класса, которые имеют независимый поток управления.
| Generic Subprogram | Типовая подпрограмма. Содержит описание переменных, процедур и функций, которые могут быть использованы в нескольких программных приложениях. При этом типовая подпрограмма не содержит определений классов
| Generic Package | Типовой пакет. Содержит определение класса, его атрибутов и операций, которое может быть использовано в нескольких программных приложениях
| Database | База данных. Содержит определение одного или нескольких классов, их атрибутов и, возможно, операций. При этом соответствующие классы могут быть реализованы в форме одной или нескольких таблиц базы данных

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

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

Для добавления компонента на диаграмму компонентов нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы компонента на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. Добавить компонент на диаграмму можно также с помощью операции главного меню: Tools Create Component или с помощью операции контекстного меню: New Component, предварительно выделив представление компонентов в браузере проекта.

В результате этих действий на диаграмме появится изображение компонента с маркерами изменения его геометрических размеров и предложенным средой именем по умолчанию, которое разработчику следует изменить. Продолжая разработку модели системы управления банкоматом, построим для нее диаграмму компонентов. С этой целью изменим имя диаграммы, предложенное по умолчанию Main, на Диаграмма компонентов АТМ, а для первого добавленного компонента зададим имя MainATM.exe (рис. 1).

Рис. 1. Диаграмма компонентов после добавления компонента MainATM.exe

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

Рис. 2. Диалоговое окно спецификации свойств компонента MainATM.exe

В частности, для компонента MainATM.exe можно выбрать стереотип <<EXE>> из предлагаемого вложенного списка, поскольку применительно к разрабатываемой модели предполагается реализация этого компонента в форме исполнимого файла. При этом на вкладке Realizes (Реализует) содержатся все классы, включая и актеров, которые на данный момент присутствуют в модели (рис. 3). Следует заметить, что классы будут показаны в этом окне только при выбранном свойстве Show all classes (Показать все классы).

Рис. 3. Диалоговое окно спецификации свойств компонента MainATM.exe, открытое на вкладке Realizes (Реализует)

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

Добавление отношения зависимости и редактирование его свойств

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

Применительно к диаграмме компонентов модели банкомата рассмотренным способом следует добавить отношение зависимости от компонента с именем MainATM.exe к компоненту с именем MainBank. В дополнение к этому для наглядности можно указать в форме примечаний те классы модели, которые предполагается реализовать в данных компонента х (рис. 4).

Рис. 4. Диаграмма компонентов после добавления отношения зависимости между компонентами MainATM.exe и MainBank

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

Окончательное построение диаграммы компонентов модели банкомата

Для завершения построения диаграммы компонентов рассматриваемого примера следует описанным выше способом добавить оставшиеся компоненты и зависимости. С этой целью следует выполнить следующие действия:

1. Добавить компонент с именем: Устройства Банкомата, для которого задать стереотип Task Specification.

2. Добавить компоненты с именами: Устройство чтения карточки, Клавиатура Банкомата, Принтер Банкомата, Экран Банкомата, Устройство выдачи наличных, для которых задать стереотип Task Body.

3. Добавить зависимость от компонента с именем MainATM.exe к компоненту с именем Устройства Банкомата.

4. Добавить зависимость от компонента с именем Устройство чтения карточки к компоненту с именем Устройства Банкомата.

5. Добавить зависимость от компонента с именем Клавиатура Банкомата к компоненту с именем Устройства Банкомата.

6. Добавить зависимость от компонента с именем Принтер Банкомата к компоненту с именем Устройства Банкомата.

7. Добавить зависимость от компонента с именем Экран Банкомата к компоненту с именем Устройства Банкомата.

8. Добавить зависимость от компонента с именем Устройство выдачи наличных к компоненту с именем Устройства Банкомата.

Построенная таким образом диаграмма компонентов будет иметь следующий вид (рис. 5).

Рис. 5. Окончательный вид диаграммы компонентов разрабатываемой модели управления

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

Лабораторная работа 14.

Разработка диаграммы развертывания и редактирование свойств ее элементов

Особенности разработки диаграммы развертывания в среде IBM Rational Rose

Диаграмма развертывания является второй составной частью физического представления модели и разрабатывается, как правило, для территориально распределенных систем. Для разработки диаграмм компонентов в браузере проекта предназначено отдельное представление развертывания ( Deployment View ), в котором уже содержится диаграмма развертывания с пустым содержанием и без собственного имени.

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

· Щелкнуть на кнопке с изображением диаграммы развертывания на стандартной панели инструментов.

· Дважды щелкнуть на пиктограмме представления развертывания ( Deployment View ) в браузере проекта.

· Выполнить операцию главного меню: Browse Deployment Diagram (Обзор Диаграмма развертывания).

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

Таблица 1. Назначение кнопок специальной панели инструментов диаграммы развертывания
Графическое изображение | Всплывающая подсказка | Назначение кнопки
| Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме
| Text Box | Добавляет на диаграмму текстовую область
| Note | Добавляет на диаграмму примечание
| Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы
| Processor | Добавляет на диаграмму процессор
| Connection | Добавляет на диаграмму отношение соединения
| Device | Добавляет на диаграмму устройство

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

Добавление узла на диаграмму развертывания и редактирование его свойств

Для добавления узла на диаграмму развертывания нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы требуемого узла ( процессора или устройства ) на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. Добавить процессор на диаграмму развертывания можно также с помощью операции главного меню: Tools Create Processor или с помощью операции контекстного меню: New Processor, предварительно выделив представление развертывания в браузере проекта. Аналогично добавить устройство на диаграмму можно также с помощью операции главного меню: Tools Create Device или с помощью операции контекстного меню: New Device, предварительно выделив представление развертывания в браузере проекта.

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

Продолжая разработку модели системы управления банкоматом, построим для нее диаграмму развертывания. С этой целью в качестве первого узла выберем тип процессор и зададим ему имя Банкомат №1, для которого в форме примечания укажем помеченное значение: {адрес = ул. Садовая, д.5}. Это значение служит для спецификации конкретного адреса одного из банкоматов системы (рис. 1).

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

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

Рис. 2. Диалоговое окно спецификации свойств узла Банкомат № 1

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

Рис. 3. Диалоговое окно спецификации свойств узла Банкомат № 1, открытое на вкладке Detail (Подробно)

Характеристики процессора, такие как его быстродействие и объем оперативной памяти, могут быть записаны в форме текста в многостраничное поле с именем Characteristics. В поле Processes (Процессы) можно задать некоторый процесс, который предполагается реализовать на данном процессоре. С этой целью необходимо выполнить операцию контекстного меню Insert (Вставить) и ввести текст имени процесса. Далее можно задать приоритет процесса, введя некоторое число в соответствующее поле ввода.

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

· Preemptive (С приоритетом) - определяет процедуру планирования, при которой процесс с большим приоритетом будет иметь преимущество при использовании ресурсов процессора по сравнению с менее приоритетными процессами.

· Non preemptive (Без приоритета) - определяет процедуру планирования, при которой все приоритеты процессов игнорируются. При этом текущий процесс выполняется до своего завершения, после чего может быть начато выполнение следующего процесса.

· Cyclic (Циклический) - определяет процедуру планирования, при которой приоритеты процессов также игнорируются. Все процессы выполняются циклически по кругу, при этом каждому из них выделяется фиксированное время на выполнение, по прошествии которого управление передается следующему процессу.

· Executive (Исполнительный) - определяет процедуру планирования, для которой существует некоторый алгоритм, предназначенный для управления отдельными процессами.

· Manual (Вручную) - определяет процедуру планирования, при которой планирование выполнения процессов осуществляется пользователем.

Для отображения информации о процессах, выполняемых на отдельных процессорах, представленных на диаграмме развертывания, следует выполнить операцию контекстного меню Show Processes (Показать процессы). Для отображения информации о процедуре планирования отдельных процессов на выбранном процессоре следует выполнить операцию контекстного меню Show Scheduling (Показать планирование).

Продолжая разработку диаграммы развертывания для модели банкомата, следует добавить второй узел типа устройство ( Device ) с именем Сеть, для которого задать стереотип <<закрытая сеть>>. При этом для задания стереотипа следует ввести его текст без угловых кавычек в строку с именем Stereotype.

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

Рис. 4. Диалоговое окно спецификации свойств устройства Сеть, открытое на вкладке Detail (Подробно)

Добавление соединения и редактирование его свойств

Для добавления соединения между двумя узлами нужно с помощью левой кнопки мыши нажать кнопку с изображением соединения на специальной панели инструментов, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении одного из узлов на диаграмме и отпустить ее на изображении другого узла. Добавить соединения на диаграмму развертывания можно также с помощью операции главного меню: Tools Create Connection.

В результате этих действий на диаграмме появится изображение соединения в форме линии без стрелок, соединяющей два выбранных узла. Применительно к диаграмме развертывания модели банкомата одним из рассмотренных способов следует добавить соединение для узлов с именами Банкомат №1 и Сеть (рис. 5).

Рис. 5. Диаграмма развертывания после добавления соединения между узлами Банкомат № 1 и Сеть

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

Окончательное построение диаграммы развертывания модели банкомата

Для завершения построения диаграммы развертывания рассматриваемого примера следует описанным выше способом добавить оставшиеся узлы и соединения. С этой целью следует выполнить следующие действия:

1. Добавить процессор с именем: Банкомат №2, для которого задать помеченное значение в форме примечания: {адрес = ул. Парковая, д.7}, а на вкладке свойств Detail определить новый процесс и выбрать для него имя MainATM из вложенного списка.

2. Добавить процессор с именем: Банкомат №3, для которого задать помеченное значение в форме примечания: {адрес = ул. Лесная, д.9}, а на вкладке свойств Detail определить новый процесс и выбрать для него имя MainATM из вложенного списка.

3. Добавить процессор с именем: Сервер Банка, для которого на вкладке свойств Detail определить новый процесс с именем MainBank.

4. Добавить соединение для узлов с именами Банкомат №2 и Сеть.

5. Добавить соединение для узлов с именами Банкомат №3 и Сеть.

6. Добавить соединение для узлов с именами Сервер Банка и Сеть.

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

Рис. 6. Окончательный вид диаграммы развертывания разрабатываемой модели управления банкоматом

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

Дальнейшая работа с моделью зависит от целей выполнения проекта. Если проект не предполагает программную реализацию, то можно ограничиться формированием проектной документации. С этой целью следует выполнить операцию главного меню: Report SoDA Report_ (Отчет Отчет с помощью SoDA), в результате чего будет открыто диалоговое окно свойств для выбора шаблонов генерации отчета. После выбора шаблонов будет автоматически сгенерирован отчет о разрабатываемой модели в формате MS Word с использованием специального средства IBM Rational SoDA, если оно доступно в системе после инсталляции IBM Rational Rose .

Если проект предполагает программную реализацию, то целесообразно воспользоваться возможностями генерации программного кода в среде IBM Rational Rose.