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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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


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

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

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

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

 


 

Лабораторная работа №7 1. Генерации программного кода в среде IBM Rational Rose 2003 1. Подготовка модели для генерации программного кода. 2. Проверка модели и создание компонентов для реализации классов. 3. Отображение классов на компоненты и выбор языка программирования. 4. Редактирование свойств генерации программного кода. 5. Примеры генерации кода по диаграмме классов модели банкомата на языке программирования ANSI C++.
Подготовка модели для генерации программного кода Одним из наиболее важных свойств программы IBM Rational Rose 2003 является возможность генерации программного кода на нескольких языках программирования, которая может быть использована разработчиком после построения модели. Для этой цели в среде IBM Rational Rose 2003 присутствует достаточно большой выбор языков программирования и схем баз данных. Однако возможность генерации текста программы на том или ином языке программирования зависит от установленной версии IBM Rational Rose 2003. Общая последовательность действий, которые необходимо выполнить для генерации программного кода в среде IBM Rational Rose 2003, состоит из следующих этапов:
  1. Проверка модели на отсутствие ошибок.
  2. Создание компонентов для реализации классов.
  3. Отображение классов на компоненты.
  4. Выбор языка программирования для генерации текста программного кода.
  5. Установка свойств генерации программного кода.
  6. Выбор класса, компонента или пакета.
  7. Генерация программного кода.
Особенности выполнения каждого из этапов могут изменяться в зависимости от выбора языка программирования или схемы базы данных. В среде IBM Rational Rose 2003 предусмотрено задание достаточно большого числа свойств, характеризующих как отдельные классы, так и проект в целом. Для определенности в качестве языка реализации проекта целесообразно выбрать язык программирования ANSI C++, который не требует инсталляции дополнительных программ и поставляется практически во всех конфигурациях IBM Rational Rose 2003. Рассмотрим особенности выполнения каждого из указанных выше этапов для языка реализации модели ANSI C++. Поскольку язык ANSI С++ не допускает использование символов кириллицы в качестве имен классов, атрибутов и операций, необходимо соответствующим образом модифицировать диаграмму классов. После изменения имен классов, атрибутов и операций диаграмма классов модели банкомата будет иметь следующий вид (рис. 14.1). Рис. 14.1. Диаграмма классов модели банкомата после преобразования имен классов, их атрибутов и операций Проверка модели независимо от выбора языка генерации кода В общем случае проверка модели может выполняться на любом этапе работы над проектом. Однако после завершения разработки графических диаграмм она является обязательной, поскольку позволяет выявить целый ряд ошибок разработчика. К числу таких ошибок и предупреждений относятся, например, не используемые ассоциации и классы, оставшиеся после удаления отдельных графических элементов с диаграмм, а также операции, не являющиеся именами сообщений на диаграммах взаимодействия. Для проверки модели следует выполнить операцию главного меню: Tools Check Model (Инструменты Проверить модель). Результаты проверки разработанной модели на наличие ошибок отображаются в окне журнала. Прежде чем приступить к генерации текста программного кода разработчику следует добиться устранения всех ошибок и предупреждений, о чем должно свидетельствовать чистое окно журнала (рис. 14.2). Рис. 14.2. Вид журнала при отсутствии ошибок по результатам проверки модели Создание компонентов для реализации классов и отображение классов на компоненты По существу данные этапы выполняются в ходе разработки диаграммы компонентов. Хотя программа IBM Rational Rose 2003 позволяет генерировать программный код на языке ANSI C++ для каждого класса модели без предварительного построения диаграммы компонентов, имеет смысл воспользоваться разработанной ранее диаграммой компонентов. Применительно к разрабатываемому проекту желательно переименовать компоненты, задав им англоязычные имена. В этом случае соответствующая диаграмма компонентов модели банкомата будет иметь вид, представленный на рис. 14.3. Рис. 14.3. Диаграмма компонентов модели банкомата после преобразования имен компонентов Для отображения классов на компоненты можно воспользоваться окном спецификации свойств компонента, открытого на вкладке Realizes (Реализует). Для включения реализации класса в данный компонент следует выделить требуемый класс на этой вкладке и выполнить для него операцию контекстного меню Assign (Назначить). В результате перед именем класса на этой вкладке появится специальная отметка. Применительно к модели банкомата для компонента MainATM.exe выберем для генерации программного кода классы ATMTransaction и ATMController (рис. 14.4). Рис. 14.4. Диалоговое окно настройки свойств реализации классов в компоненте MainATM.exe Подобная операция должна быть выполнена для всех классов модели, которые предполагается реализовывать на выбранном языке программирования. Имеется и другой способ установления реализации классов на компоненте. А именно, можно просто выделить класс в браузере проекта и перетащить его на нужный компонент диаграммы компонентов. Выбор языка программирования и редактирование свойств генерации программного кода Для выбора языка ANSI C++ в качестве языка реализации модели следует выполнить операцию главного меню: Tools Options (Инструменты Параметры), в результате чего будет вызвано диалоговое окно настройки параметров модели. Далее на вкладке Notation (Нотация) в строке Default Language (Язык по умолчанию) из вложенного списка следует выбрать язык - ANSI C++. Если по какой-то причине языка ANSI C++ не оказалось во вложенном списке, то следует убедиться в том, что этот язык программирования установлен в качестве расширения IBM Rational Rose 2003. Для этого следует открыть окно установленных расширений, выполнив операцию главного меню: Add-Ins Add-In Manager (Расширения Менеджер расширений), и убедиться в том, что выставлена отметка в строке с именем языка ANSI C++. Если ее нет, то ее следует добавить, после чего появится группа доступных операций ANSI C++ в главном меню Tools. После выбора языка программирования по умолчанию следует изменить язык реализации каждого из компонентов модели. С этой целью следует изменить язык в строкеLanguage (Язык) на вкладке General (Общие) окна спецификации свойств компонента, для чего из вложенного списка следует выбрать язык - ANSI C++ (рис. 14.5). Рис. 14.5. Окно спецификации свойств компонента MainATM.exe при выборе языка его реализации Следует заметить, что после выбора языка программирования следует привести в соответствие типы атрибутов, типы аргументов и возвращаемых значений операций. С этой целью нужно просмотреть все классы диаграммы классов и изменить те типы данных, которые не являются синтаксически допустимыми в выбранном языке программирования. Применительно к языку ANSI C++ следует заменить тип Integer на int, Boolean на bool, Currency на float. В противном случае соответствующие исправления придется выполнять вручную после генерации программного кода. Редактирование общих свойств генерации программного кода возможно в специальном диалоговом окне, которое может быть открыто в результате выполнения операции главного меню: Tools ANSI C++ Open ANSI C++ Specification (Инструменты Язык ANSI C++ Открыть спецификацию языка ANSI C++). Дополнительные свойства генерации программного кода отдельного класса можно специфицировать в диалоговом окне, которое может быть открыто в результате выполнения операции контекстного меню: ANSI C++ Class Customization (Язык ANSI C++ Настройка свойств класса). При этом соответствующий класс должен быть выделен в браузере проекта. При генерации программного кода на языке ANSI C++ для модели банкомата значения свойств, предлагаемых средой IBM Rational Rose 2003 по умолчанию, первоначально можно оставить без изменения. Выбор класса или компонента и генерация для него программного кода Выбор класса или компонента для генерации программного кода означает выделение соответствующего элемента модели в браузере проекта. Применительно к рассматриваемой модели системы управления банкоматом для генерации программного кода на языке ANSI C++ выберем компонент с именем MainATM.exe. Генерация программного кода в среде IBM Rational Rose 2003 возможна для отдельного класса или компонента. Для этого нужный элемент модели предварительно следует выделить в браузере проекта и выполнить операцию контекстного меню: ANSI C++ Generate Code_ (Язык ANSI C++ Генерировать код). В результате этого будет открыто диалоговое окно с предложением выбора классов для генерации программного кода на выбранном языке программирования (рис. 14.6). После выбора соответствующих классов и нажатия кнопки OK программа IBM Rational Rose 2003 выполняет кодогенерацию. Рис. 14.6. Окно выбора классов для генерации программного кода Для просмотра и редактирования созданных файлов с текстом программного кода на языке ANSI C++ предназначен встроенный текстовый редактор, который можно открыть с помощью операции контекстного меню: ANSI C++ Browse Header_ (Язык ANSI C++ Просмотреть заголовочный файл) или ANSI C++ Browse Body_ (Язык ANSI C++ Просмотреть файл реализации) для выбранного класса в браузере проекта. После генерации программного кода для компонента MainATM.exe каждому классу, реализованному в данном компоненте, будет соответствовать 2 файла с текстом кода на языке ANSI C++. Так, например, для класса ATMTransaction будет сгенерирован заголовочный файл с расширением «h» (рис. 14.7) и файл реализации с расширением «cpp» (рис. 14.8). Рис. 14.7. Вид встроенного текстового редактора с загруженным в него заголовочным файлом ATMTransaction.h Рис. 14.8. Вид встроенного текстового редактора с загруженным в него заголовочным файлом ATMTransaction.cpp Как видно из рассмотрения полученного заголовочного файла, в нем содержится объявление в соответствии с правилами синтаксиса языка ANSI C++ всех операций и атрибутов класса ATMTransaction. При этом информация о документировании операций и атрибутов помещается в комментарии перед соответствующими элементами программы. В файле реализации содержится заготовка для реализации всех операций класса ATMTransaction в соответствии с правилами синтаксиса языка ANSI C++. При этом каждая из операций имеет пустое тело реализации, которое следует написать дополнительно, исходя из функциональных требований модели и синтаксиса языка программированияANSI C++. Данную работу удобнее выполнять в выбранной интегрированной среде программирования, например, MS Visual C++ или Borland C++. При использовании интегрированной среды кроме компиляции, отладки и тестирования исходных модулей программы разработчик получает возможность дополнить приложение графическим интерфейсом, необходимым для взаимодействия с пользователем. Следует заметить, что при установленной на компьютер разработчика интегрированной среды сгенерированные файлы с текстом программного кода автоматически открываются в этой среде после двойного щелчка на пиктограмме этих файлов. Тем не менее, лучше копировать содержимое этих файлов в предварительно созданные программные проекты для полного контроля в этих средах процесса программирования и отладки приложений. Сгенерированные программой IBM Rational Rose 2003 файлы с текстом программного кода содержат минимум информации. Для включения дополнительных элементов в программный код следует изменить свойства генерации программного кода, установленные по умолчанию. Сгенерировать файлы с текстом программного кода при различных значениях свойств выбранного языка программирования предлагается читателям самостоятельно в качестве упражнения. В заключение следует отметить, что эффект от использования средства IBM Rational Rose 2003 проявляется при разработке масштабных проектов в составе команды или проектной группы. Действительно, при рассмотрении модели системы управления банкоматом может сложиться впечатление того, что написать и отладить соответствующую программу гораздо проще непосредственно в той или иной интегрированной среде программирования. Однако ситуация покажется не столь тривиальной, когда станет необходимо выполнить проект с несколькими десятками вариантов использования и сотней классов. Именно для подобных проектов явно выявляется преимущество использования средства IBM Rational Rose 2003 и нотации языка UML для документирования и реализации соответствующих моделей.

 

Список литературы

1. Крэг Ларман, «Применение UML и шаблонов проектирования». М.: «Вильямс», 2002.

2. Грэйди Буч, Джеймс Рамбо, Айвар Джекобсон, «Язык UML Руководство пользователя». СПб.: ДМК Пресс, 2004.

3. М. Богс, У. Богс, «UML и Rational Rose». М.: «Лори», 2001.

4. А. Леоненков, «Самоучитель UML». СПб.: «BHV-СПб», 2000.

5. Л. Мацяшек, «Анализ требований и проектирование систем. Разработка информационных систем с использованием UML». М.: «Вильямс», 2002.

6. Терри Кватрани, «Rational Rose 2000 и UML. Визуальное моделирование». М.: ДМК Пресс, 2001.

7. А.М. Вендров, «Проектирование программного обеспечения ЭИС.». М.: «Финансы и статистика», 2000.



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2017-01-25; просмотров: 713; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.184.237 (0.017 с.)