Главная страница

Лабораторные по UML в среде Rational Rose+RoseDelphiLink. Руководство по выполнению лабораторных работ


Скачать 3.07 Mb.
НазваниеРуководство по выполнению лабораторных работ
АнкорЛабораторные по UML в среде Rational Rose+RoseDelphiLink.doc
Дата29.12.2017
Размер3.07 Mb.
Формат файлаdoc
Имя файлаЛабораторные по UML в среде Rational Rose+RoseDelphiLink.doc
ТипРуководство
#13431
КатегорияИнформатика. Вычислительная техника
страница9 из 9
1   2   3   4   5   6   7   8   9

Лабораторная работа 14. Построение диаграммы размещения


В этом упражнении создается диаграмма Размещения для системы обработки заказов.



Рис. 18 Диаграмма размещения для модельной задачи

Этапы выполнения упражнения

Добавление узлов к диаграмме Размещения


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

2. Нажмите кнопку Processor (Процессор) панели инструментов.

3. Щелкнув мышью на диаграмме, поместите туда процессор.

4. Введите имя процессора "Сервер базы данных".

5. Повторив шаги 2—4, добавьте следующие процессоры:

-Сервер приложения

- Клиентская рабочая станция №1

- Клиентская рабочая станция №2

6. На панели инструментов нажмите кнопку Devices (Устройство).

7. Щелкнув мышью на диаграмме, поместите туда устройство.

8. Назовите его "Принтер".

Добавление связей


1. Нажмите кнопку Connection (Связь) панели инструментов.

2. Щелкните мышью на процессоре "Сервер базы данных".

3. Проведите линию связи к процессору "Сервер приложения".

4. Повторив шаги 1 — 3, добавьте следующие связи;

- От процессора "Сервер приложения" к процессору "Клиентская рабочая станция №1"

- От процессора "Сервер приложения" к процессору "Клиентская рабочая станция №2"

- От процессора "Сервер приложения" к устройству "Принтер"
Добавление процессов

1. Щелкните правой кнопкой мыши на процессоре "Сервер приложения" в браузере.

2. В открывшемся меню выберите пункт New > Process (Создать > Процесс),

3. Введите имя процесса — OrderServerExe.

4. Повторив шаги 1 —- 3, добавьте процессы:

- Процесс OrderclientExe на процессоре "Клиентская рабочая станция №1"

- Процесс ATMClientExe на процессоре "Клиентская рабочая станция №2"
Показ процессов на диаграмме

1. Щелкните правой кнопкой мыши на процессоре "Сервер приложения".

2. В открывшемся меню выберите пункт Show Process (Показать процессы).

3. Повторив шаги 1 и 2, покажите процессы на следующих процессорах:

- Клиентская рабочая станция №1

- Клиентская рабочая станция №2
Заключение.
В результате выполнения лабораторных работ обучающийся должен понять последовательность работ при проектировании информационной системы и освоить программную среду Rational Rose. Начинать надо с Use Case диаграммы, остальные диаграммы должны служить декомпозицией вариантов использования первой диаграммы. Логические и физические разделы модели Rose с помощью кодогенерации преобразуются в программный код Delphi. Изменения в модели Rose, путем нажатия нескольких кнопок , сразу соответствующим образом изменяют программный код. Тем самым проиллюстрировано основная идея CASE технологий- автоматизированная поддержка информационной системы на всех этапах ее жизненного цикла.
Рекомендуемая литература
1 У.Боггс, М. Богс UML и Rational Rose. Из-во «ЛОРИ», 2000 г., 580 с
2. М. Фаулер, К. Скотт UML в кратком изложении. Применение стандартного языка объектного моделирования: Пер. с англ. – М.: Мир, 1999.- 191 с.,с ил.
Приложение А. Таблица законов кодогенерации из Rose в Delphi

Элемент модели: Category

Наименование св-ва

Описание

ClassDiagram

The name of diagram to add classes to when reverse engineering. Defaults to "Overview". If "", then no diagram is created.

Элемент модели: Class

Наименование св-ва

Описание

Kind

One of "", "class" (default), "interface", "dispinterface", "object". The class stereotype is also set to "Interface" if the kind is "interface" or "dispinterface".

Элемент модели: ProcedureType

Наименование св-ва

Описание

<>

Delphi Procedure Types are modelled in Rose as classes with a stereotype "ProcType"

ProcedureType_ofObject

True or False (default), true if procedure type references a method of an instance object.


Элемент модели: Component

Наименование св-ва

Описание

ComponentKind

One of "unit", "library", "program", or "package". Library or program components describe as projects, package components are ignored (their referenced units are in the RDL view anyway).


Элемент модели: Attribute

Наименование св-ва

Описание

Published

True or False (default). If the attribute is public and published is true, then the attribute gets generated to code in a published visibility section.

Элемент модели: Role

Наименование св-ва

Описание

Published

True or False (default). If the role is public and published is true, then the role gets generated to code in a published visibility section.

Array_Range

If not "" (default), then the role is generated to code as an array with the specified range. If "", then the role's cardinality is used to determine it the role is an array.

Элемент модели: Operation

Наименование св-ва

Описание

Published

True or False (default). If the operation is public and published is true, then the operation gets generated to code in a published visibility section.

Operation_Abstract

True or False (default). If true, then the operation is generated to code with an "abstract" directive.

Operation_Binding

One of "" (default), "virtual", "dynamic", "override", "reintroduce". If not "", then the operation is generated to code with the specified binding.

Operation_CallingConvention

One of "" (default), "register", "pascal", "cdecl", "stdcall", "safecall". If not "", then the operation is generated to code with the specified calling convention.

Operation_Message

"" (default) or a message expression. If not "", then the operation is generated to code with a "message" directive having the specified value.

Operation_Overload

True or False (default). If true, then the operation is generated to code with a "overload" directive.

Operation_Kind

The kind of the operation. One of "procedure" (default), "function", "constructor", "destructor", "class procedure", "class function".

Элемент модели: Property

Наименование св-ва

Описание

<>

Delphi properties are modelled in rose as operations with a stereotype of "Property".

Published

True or False (default). If the property is public and published is true, then the property gets generated to code in a published visibility section.

Property_Index

"" (default) or index expression. If not "", then the property is generated to code with a "index" specifier having the specified value.

Property_Read

"" (default) or read expression. If not "", then the property is generated to code with a "read" specifier having the specified value.

Property_ReadOnly

True or False (default). If true,then the property is generated to code with a "readonly" specifier. .

Property_Write

"" (default) or write expression. If not "", then the property is generated to code with a "write" specifier having the specified value.

Property_WriteOnly

True or False (default). If true,then the property is generated to code with a "writeonly" specifier.

Property_Stored

"" (default) or storage expression. If not "", then the property is generated to code with a "stored" specifier having the specified value.

Property_DefaultSpecifier

One of "" (default), "nodefault", or "default". If not "", then the property is generated to code with a default value specifier. If "default", the value is obtained from the Property_DefaultValue model property.

Property_DefaultValue

"" (default) or constant expression. The value used for the "default" specifier.

Property_Implements

"" (default) or implements expression. If not "", then the property is generated to code with a "implements" specifier having the specified value.

Property_IsDefaultProperty

True or False (default). If true, then the property is generated to code with a "default" property directive. Only relevant for array properties.

Элемент модели: Parameter

Наименование св-ва

Описание

Mode

One of "" (default), "const", "var", "out". If not "", then the parameter is generated to code with the specified mode.


Приложение Б. Модели кодогенерации при настройке по типу Default


Type SampleClass1 = class

(BaseClass, SampleInterface)

    {...}

end;






type SampleClass2 = class private

    AnAttribute : Integer;

    ARole : SupplierClass1;

Public

    procedure AnOperation (arg : Integer);   

property AProperty : Integer

index 2

    read AnAttribute         write AnOperation;

end;



Property specifiers are stored in the code generation properties of the associated rose operation.




type SampleClass3 = class

private

     ArrayRole1 : array of SupplierClass2;

     ArrayRole2 : array [1..10] of SupplierClass5;

     ArrayRole3 : array [SampleRange] of SupplierClass3;

     ArrayRole4 : TItems;

end;



ArrayRole3 range 'SampleRange' is stored in the Array_Range code gen property.

To specify your own collection type, instead of using arrays, add a ':' and the collection type to the role name.

type SampleRecord = record

          attr1 : Integer;

          attr2 : Real;

     end;



type SampleEnum = ( value1, value2, value3 );



type ProcedureTypeSample = function( arg : Integer ) : Integer;



A procedure type maps to a Rose class, with a ProcType stereotype, and a single operation 'signature' which represents the procedure type signature

type SampleRange = 1..10;



A subrange is represented as a Rose class with 'Range' stereotype, and 2 attributes named Low and High. The initial value of these attributes are the low and high values of the range

type TOldType = class

     end;

 

type SampleTypeId1 = TOldType;

type SampleTypeId2 = Integer;



A type id is represented as a Rose class with a 'TypeId' stereotype. If the type being renamed is a standard delphi type (such as Integer) an attribute is used to model this type. Otherwise, an inheritance relationship is used.

type SampleClassRef = class of TObject;

 

type SamplePointer = ^TOtherType;

 

type SampleFile = file of Integer;

 

type SampleArray = array of array of Integer;



Delphi pointer types, class references, array types, set types, and file types are represented as Rose classes with stereotypes. If the delphi type references another user-defined type, this is shown with a dependency. If the delphi type references a basic delphi type (Integer) or is complex (i.e. nested arrays) the reference is modeled with an attribute.

Unit SampleUnit;

 

interface

 

type SampleClass1 = class {…} end;

 

implementation

end;





A unit maps to a component and a category. Its member classes are the component’s assigned classes.


Приложение В Результаты кодогенерации проекта в Delphi.

Модуль NewProect.dpr (Корневая папка)
program NewProject;

uses

OrderClientExe in 'OrderClientExe.pas',

OrderServerExe in 'OrderServerExe.pas',

OrderDetail_ in 'Baundary\OrderDetail_.pas',

OrderOptions_ in 'Baundary\OrderOptions_.pas',

TransactionMgr_ in 'Control\TransactionMgr_.pas',

OrderMgr_ in 'Control\OrderMgr_.pas',

Order_ in 'Entity\Order_.pas',

OrderItem_ in 'Entity\OrderItem_.pas';
begin

end.
Модуль OrderDetail_.pas (Папка Baundary)
unit OrderDetail;

interface

uses

OrderMgr;

var theOderMgr : OderMgr;

procedure Open;

procedure SubmitinfoXX;

procedure Save;
implementation

procedure Open;

begin

end;

procedure SubmitinfoXX;

begin

end;
Модуль OrderOptions_.pas (Папка Baundary)
unit OrderOptions_;

interface

uses

OrderDetail_;

type

OderOptions = class;

OderOptions = class

public

theOrderDetail : OrderDetail;

procedure Create;

end;

implementation

procedure OderOptions.Create;

begin

end;

end.
Модуль OrderMgr_.pas (Папка Control)
unit OrderMgr;

interface

uses

Order,

TransactionMgr;

type

OderMgr = class;

OderMgr = class

public

theOrderCollection : array of Order;

theTransactionMgr : TransactionMgr;

procedure SaveOrder;

end;

implementation

procedure OderMgr.SaveOrder;

begin

end;
end.
Модуль TransactionMgr _.pas (Папка Control)
unit TransactionMgr;

interface

uses

Order,

OrderItem;

var theOrderCollection : array of Order;

var theOrderItemCollection : array of OrderItem;

procedure SaveOrder;

procedure CommitXX;

implementation

procedure SaveOrder;

begin

end;

procedure CommitXX;

begin

end;

end.
Модуль Order_.pas (Папка Entity)
unit Order_;

interface

uses

OrderItem_;

type

Order = class;

Order = class

public

theOrderItemCollection : array of OrderItem;

procedure Create;

procedure SetInfo;

procedure GetInfo;

end;

implementation

procedure Order.Create;

begin

end;

procedure Order.SetInfo;

begin

end;

procedure Order.GetInfo;

begin

end;

end.
Модуль OrderItem_.pas (Папка Entity)

unit OrderItem_;

interface

type

OrderItem = class;

OrderItem = class

public

procedure GetInfo;

procedure Create;

procedure SetInfo;

end;

implementation

procedure OrderItem.GetInfo;

begin

end;

procedure OrderItem.Create;

begin

end;

procedure OrderItem.SetInfo;

begin

end;

end.
Модуль OrderClientExe.pas (Корневая папка)
unit OrderClientExe;

interface

implementation

end.
Модуль OrderServerExe.pas (Корневая папка)

unit OrderServerExe;

interface

implementation

end.




1   2   3   4   5   6   7   8   9


написать администратору сайта