UML实验指导 - 图文 下载本文

(18) 关闭框图。

下面的实验是要求掌握如何寻找类属性和操作,再增加类属性和操作的细节,接着要在Class框图中显示属性和操作。最后要求在Interaction框图中将操作映射到消息。

属性

属性是与类相关联的信息。例如Company类可能有属性Name、Address和Number of Employees。Rose中可以对模型中的每个类加进一个或几个属性。

寻找属性

属性的来源有许多。首先可以查阅使用案例文档,寻找事件流中的名词。有些名词是对象或类;有些是角色;有些则是属性。例如,从下列事件流:“The user enters the employee’s name, address, social security number, and phone number”可以看出,Employee类有属性Name、Address、SSN、Phone。另一个来源是查看需求文档。需求中可能会介绍系统要收集哪些信息。收集的信息就是类的属性。最后,可以检查数据库结构。

增加属性

每个属性有三条主要信息:属性名、数据类型和初始值。

增加属性的方法有三种,可以直接将属性加进Class框图,用浏览器增加属性或用类规范窗口增加属性。

删除属性

Rose中删除属性的最简单方法是通过浏览器,但也可以用Class框图删除。

任务9:设置

1.复选Show Visibility框、Show Stereotypes框、Show Operation Signatures框、Show

All Attributes和Show All Operations框;

2.确保Suppress Attributes和Suppress Operations框没有被选中; 3.选择Notations标签,确保取消Visibility as Icons框;

任务10:增加操作

1.在浏览器中找到Add Item to Shopping Cart类框图。

2.对CartInterface类,增加新操作:AddItem(ItemNo: Long): Boollean 3.重复第2步,将下列操作加进相应类中:

? 在CartMgr中增加AddItem(ItemNo: Long): Boollean ? 在ProductMgr中增加GetProduct(ItemNo: Long): Product ? 在CartCollection中增加AddItem(NewItem: Product): Boolean

?在ProductCollection(FindProduct)中增加FindProduct(ItemNo: Long): Product

任务11:增加属性

对Product类输入新属性:productID: Long、productDescription: string、productUnitPrice: Double。

任务12:保存结果

Lab5.mdl。

【扩展练习】

在选课系统中设计了以下类:

(1) 界面FormObject;

(2) 控制对象ControlObject; (3) 课程Course。

设计了以下角色:

(1) 学生Student; (2) 管理员Registrar;

(3) 学生和管理员的父类People; (4) 数据库Database。

这些类和角色之间的关系如下:

(1) 角色Student和Register从People派生;

(2) 学生、管理员在与系统交互时,都有一个界面与之对应; (3) 一个界面可能和课程相关(0-多门);

(4) 控制对象负责课程的处理,处理结果显示在界面上; (5) 控制对象完成对数据库的操作; (6) 界面请求控制对象的服务。

任务一:根据以上分析,绘制出系统的简略类图。

任务二:对绘制的简略类图,添加类的属性和操作,绘制出系统的详细类图。

[实验分析与讨论]

1、 总结在面向对象设计中灵活运用五大原则有何重要意义。 2、 讨论在实际运用五大原则时应注意哪些问题。

3、 如下图所示的设计图,员工根据工种可以分为全职(FullTime)

和兼职(PartTime)两种,根据工作项目可以分为软件员工和硬件员工。在初始设计中,整个类图层次结构缺乏灵活性,如果需要增加一个新的工作项目,则在全职员工和兼职员工下都要增加子类,提高了工作量。如何修改原始设计以便更轻松的增加工作项目或者新的工种?画出改进后的类图。

EmployeeFullTimeEmpPartTimeEmpSoftwareFullTimeHardwareFullTimeSoftwarePartTimeHardwarePartTime实验六 数据建模与正逆向工程

【实验目的】

(1) 掌握如何创建数据库对象; (2) 学习为关系数据库创建模式; (3) 掌握创建域包; (4) 学习创建数据模型图; (5) 学习创建表;

(6) 实现对象模型和数据模型的相互转换。

【实验性质】

设计性实验。

【实验要求】

(1) (2) (3) (4) (5) (6)

在Component 视图中创建数据库对象;

在Logical 视图中创建模式,并选定目标数据库; 在Logical 视图中创建包和域; 在模式下创建数据模型图; 创建表;

实现对象模型和数据模型的相互转换。

【实验内容】

本次实验要求对象模型和数据模型的相互转换。

【实验结果】:(Lab6-1.mdl和lab9-2.mdl)创建正向工程和逆向工程。 【实验导读】

任务1:正向工程(对象模型转换为数据模型)

用类表示数据库表:

1.右键单击浏览器中的Component 视图;

(1) 选择DataModeler/New/Database; (2) 新数据库取名为TestDB;

(3) 双击TestDB,在Target中选中Microsoft SQL Server 2000.x; 这时在Logical视图中自动生成了Global Data Types和Schemas两个包。

图6-1 选择数据库

2.右键单击浏览器中的Logical 视图;

3.选择DataModeler/New/Schema,这时在Schemas中生成了<>s-1;