(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Общие принципы построения модели в Rational Rose

А. Корсачев

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

Предположим, что нам поручено провести анализ бизнес-процессов у заказчика и на основе данного анализа построить модель информационной системы (ИС). Мы должны провести анализ документооборота, состав документов, роли ответственных лиц (Actors) и т.д. Задача это не простая и требует значительных аналитических усилий и опыта. Результатом этой работы должен быть список ролей в компании заказчика, четкое понимание процесса и список объектов (сущностей), участвующих в этом процессе. Все это и должно найти отражение в диаграммах RR. Кроме того, мы вместе с заказчиком должны составить список требований к ИС.

Общий подход таков: используем Use case diagram для отображения списка операций, которые должна выполнять наша система; иначе говоря, это требования к системе. Каждый Use case - это некоторый процесс (последовательность действий), поэтому мы должны использовать Sequence diagram для его детализации. На этой диаграмме мы отображаем объекты из предметной области (объекты, участвующие в бизнес-процессе); таким образом, мы получаем экземпляры некоторых классов и их взаимодействие. Sequence diagram отображает сам процесс, статическая картина взаимодействия объектов отображается с помощью Class diagram. Переходим к Class diagram , на которой изображаются классы нашей ИС. Далее классы объединяются в компоненты, которые отображаются на Component diagram , где показывается зависимость компонентов между собой. На Deployment diagram отображается размещение этих компонентов по компьютерам (узлам сети) для проектируемой ИС.

Вот и все, т.е., мы движемся от Use case diagram --> Sequence diagram --> Class diagram --> Component diagram --> Deployment diagram. Этот набор диаграмм должен присутствовать всегда в моделях RR, остальные типы диаграмм нам пригодятся для большей детализации нашей модели.

Но давайте более подробно. Итак, мы имеет список требований к ИС составленный с помощью Requisite(R Pro. составить такой список очень просто: открываете проект в Requisite (R Pro (Project --> Open) и выбираете в меню команду Document --> New. Открывается документ MS Word, где Вы в табличном виде (думаю так лучше) формируете список требований (из контекстного меню выбираете "Create Requirement…" для каждого требования).

Начнем создавать диаграмму прецедентов - Use case diagram. На Use case diagram отображаем взаимодействие между ролями (актерами) и прецедентами (т.е. это случаи использования ИС). Например, фраза "Заказчик формирует заказ на доставку товара" приводит нас к пониманию следующего: Актер - "Заказчик", прецедент - "Сформировать заказ на доставку" (прецедент обычно начинается с глагола), требование к системе - "ИС должна поддерживать операцию формирования заказа на доставку" (список требований ранее сформирован). Теперь необходимо изобразить всех актеров и те действия, которые они могут выполнять (т.е. прецеденты) на одной или нескольких Use case diagrams, а затем связать каждый прецедент с требованием, ранее сформированном в Requisite(R Pro (используйте контекстное меню на Use case: Requirement Properties --> Associate…).

Прецедент - это некоторый процесс, в котором обычно участвуют несколько объектов, т.е. "Сформировать заказ на доставку" предполагает некоторую последовательность операций: открыть бланк заказа --> заполнить реквизиты заказчика --> заполнить тип и количество товара --> отправить заказ на исполнение (или отменить заказ или еще что-то). Вот этот процесс мы и должны отобразить на Sequence diagram. На этих диаграммах слева всегда изображают одного Actor, далее стоят последовательно объекты (или ассоциированные с ними классы), а стрелочками отображается передача сообщения (или вызов метода класса).

Например, передача сообщение "Открыть бланк заказа" отображается в виде стрелки от актера "ЗАКАЗЧИК" к объекту "ЗАКАЗ" с соответствующей записью на диаграмме. Сразу заметим, что при переходе на Class diagram мы создадим класс COrder c методом NewOrder() для данного сообщения.

В общем, проведенный нами анализ бизнес-процессов у заказчика должен отобразиться в диаграммных последовательностях действий - Sequence diagrams. Мы может создать эту диаграмму для каждого прецедента (Open Specifications --> Diagrams --> Insert Sequence diagram) или общую на группу прецедентов (New --> Sequence diagram). Построить Collaboration diagrams (диаграммы взаимодействий) достаточно просто по Sequence diagrams (они также детализируют процесс взаимодействия, но не представляют его во времени): Browse --> Create Collaboration diagram (F5). Имея набор Sequence diagrams, мы можем переходить к проектированию классов и построению диаграмм классов, которые представляют статическую картину взаимодействия объектов.

Мы должны для каждого объекта создать класс, в котором будет реализовано поведение этого объекта через методы класса. Каждый объект в Sequence diagram должен быть ассоциирован с классом: откройте спецификацию объекта и укажите класс, затем для каждого сообщения на Sequence diagram замените его имя на имя метода из класса. Для проверки модели выполните Tolls --> Check Model.

Построение диаграмм классов ( Class diagrams ) является самым важным и трудоемким этапом в создании модели. Понятно, что поведение объекта не возможно встроить в один класс, поэтому необходимо создавать диаграммы классов, устанавливая связи между классами. Каждый класс имеет набор методов (Operations) и переменных (Attributes). В UML принято несколько типов связей (отношений) между классами, причем их название и интерпретация отличаются от принятых в ООП, но кратко их можно описать так:

Association - семантическая связь между классами, показывает передачу сообщений между классами, при генерации кода в определение класса добавляется переменная класса, на который направлена ассоциация;

Dependency - показывает зависимость одного класса от определений в другом классе, например, когда один класс используется как параметр в описании методов другого класса, при генерации кода не вносит изменений в описание класса;

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

Generalization - связь наследования между классами, соответствует понятию наследования классов в ООП;

По диаграмме классов мы можем провести генерацию проекта (набора, например, .h и .cpp-файлов), при этом важно настроить свойства класса, которые влияют на кодогенерацию (вкладки "C++", "MSVC" и другие). Понятно, что имплементации методов никакой не будет, только их определения.

Имея набор классов, мы может перейти к формированию компонентов ИС - физические модули ИС (DLL, EXE и другие модули). Зависимости между компонентов показываются на Component diagram . Каждый компонент ассоциирован с одним или несколькими классами, которые и определяют содержимое компонента.

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

Deployment diagram (диаграмма развертывания) построить достаточно просто, т.к. она не содержат привязки к компонентам в модели RR, т.е. не обязательно строить эту диаграмму на последнем этапе проектирования. На этой диаграмме изображаются компьютеры (Processor) и связи между ними. Чтобы отобразить задачи, которые выполняются на этих компьютерах (узлах сети) откройте спецификацию и на вкладке "Detail" для поля "Processes" введите имена задач, которые могут соответствовать именам компонентов проектируемой ИС.

Процесс построение модели завершен. Выполним проверку модели с помощью команды Tolls --> Check Model и посмотрим результаты в Log окне. Если ошибок нет, можно переходить к генерации проекта и ипмплементации ИС.

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



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 16.02.2001 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Rational ClearCase Multisite Floating User License
IBM RATIONAL Clearcase Floating User License + Sw Subscription & Support 12 Months
IBM Rational Functional Tester Floating User License
IBM RATIONAL Quality Manager Quality Professional Authorized User Single Install License + Sw Subscription & Support 12 Months
IBM RATIONAL Rose Enterprise Floating User License + Sw Subscription & Support 12 Months
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
CASE-технологии
Мир OLAP и Business Intelligence: новости, статьи, обзоры
Мастерская программиста
Каждый день новые драйверы для вашего компьютера!
Краткие описания программ и ссылки на них
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100