UML实验指导书

更新时间:2024-05-07 06:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

UML

实验指导书

第 1 页 共 26 页 1

目录

实验一 UML建模基础 ................................................................................................. 3 实验二 用例图 ................................................................................................................. 4 实验三 UML类图 ........................................................................................................... 9 实验四 对象图 ............................................................................................................... 13 实验五 包图 ................................................................................................................. 14 实验六 状态图 ............................................................................................................... 17 实验七 活动图 ............................................................................................................. 21 实验八 时序图与协作图 ............................................................................................. 22 实验九 组件图 ............................................................................................................... 26

第 2 页 共 26 页 2

实验一 UML建模基础

[实验目的和要求]

1、 熟悉UML建模工具Rational Rose的基本菜单及操作。 2、 掌握UML的三大组成部分及各部分作用。 3、 掌握UML规则和相关机制。

4、 掌握UML的可见性规则和构造型的作用。

[实验内容和步骤]

1、 练习使用建模工具建立各种UML图形,并对图形进行相应编辑

和修改。

2、 认识各种UML关系及可见性符号,并用工具表示出来。

[分析与讨论]

1、总结UML在软件工程中的作用以及使用UML建模的必要性。

第 3 页 共 26 页 3

实验二 用例图

[实验目的和要求] 1、 掌握用例的概念。

2、 掌握UML用例图的组成、作用以及使用场合。 3、 掌握用例与用例之间的各种关系。

4、 学习针对具体场景使用用例图进行分析说明的方法。 5、 掌握用例描述的概念和基本结构,以及用例描述的作用。

[实验内容和步骤]

1、 什么是用例,什么是场景?用例和场景之间的关系是怎样的?

用例是用户希望系统具备的功能,它定义了系统的行为特征。

2、 用例图中有哪些组成元素?在UML中是如何表示的?

用例图的组成元素有参与者、用例、关系、系统。 3、 用例与用例之间的包含关系、扩展关系和泛化关系各代表什么

含义?它们之间有何区别?对以上三种关系各举一例,画出用例图,并进行说明。

用例与用例之间的包含关系实际上就是面向对象语言中对

象之间的调用关系,扩展关系实际上就是一种依赖的关系,泛化关系实际上就是面向对象中的继承关系。

4、 为了满足物业中介行业的信息化要求,甲公司基于详尽的需求

调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,下是一个用例模型的局部:

第 4 页 共 26 页

4

打开房源信息页面<>登录信息房产经纪人录入房源信息确认提交信息修改房源信息

小李认为该模型不符合“用例建模”的思想,存在明显的错误。请用200字以内说明错误所在,并说明应该如何修改。 用例图是用来显示多个外部参与者以及他们与系统提供的用例之间的联系。是用户从系统外部观察系统的功能。 5、 阅读下面的用例图,说明该图所表达的信息。

第 5 页 共 26 页

5

客户预定座位,首先检查座位信息,若座位未满则处理等

候的队列;若座位已满则不处理等候队列。

总台检查座位信息,安排座位。

总台通过收款(收取现金或刷银联行卡)办理结账。

6、 下图是一个描述保险商务系统的简单用例图。根据该用例图回

答问题。

第 6 页 共 26 页 6

a) “签订保险单”用例可能涉及到哪几个实体类? 客户、保险员、保险单三个实体类。

b) 现实生活中签订保单的基本流程如下:客户提出购买需求,保险员根据客 户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录。如需要根据以上信息,请列举这个用例描述中可能存在扩展事件流。

a.客户阅读保险条款,同意后打印保单样据,客户签字并支付

保金,保单开始生效,保险员做相关系统纪录。 b.客户阅读保险条款,不同意其中的条款。

c) 保单管理用例在实际开发过程中可以泛化出若干小用例,列出可

能存在的子用例,并且说明这些用例和“保单管理”用例之间应该是什么关系?

这些用例和保单管理用例是泛化关系。保单管理可能存

在的子用例是保单查询、保单保存。

7、在一个TelephoneSystem(电话系统)中,用户可以使用电话卡

第 7 页 共 26 页

7

或对方付款两种办法来打电话。 1)请画出表示该场景的用例图。

2)在前图的基础上,继续画出可能存在的包含用例和扩展用例。 [分析与讨论]

1、 总结用例图的重要作用,讨论并指出哪些场合下可以使用用例

用例图显示多个外部参与者以及他们与系统提供的用例之间的连接。通过用例建模可以对外部的角色以及他们所需要的系统功能建模。用例图用于系统分析阶段。 2、 讨论用例分析技术和结构化分析之间的关系和区别。 区别:结构化系统开发方法是指把整个系统开发过程分成

若干阶段,每个阶段进行若干活动,每项活动应用系统标准、规范、方法和技术,完成一个或多个任务,形成符合给定规范的软件产品。用例分析是面向对象(Object Oriented)的开发方法。

联系:它们都可以是软件的开发更容易。

3、 在使用用例图的时候应该如何划分用例,应注意哪些问题? 如何确定用例:

a 参与者需要从系统中获取哪种功能?及参与者要系统做什么?

b 参与者是否需要读取、产生、删除、修改或存储系统中的某种信息?

c 系统的状态改变是是否通知参与者? d 是否存在影响系统的外部事件? e 系统需要什么样的输入、输出信息?

需要注意的是:一定不要再用例图中使用两种命名方法。即在椭圆之外和椭圆之内。

第 8 页 共 26 页

8

4、 继续分析类图实验中网上书店实例,画出系统的用例图。

[实验目的和要求]

1、 掌握类的定义,类的

实验三 UML类图

3要素,UML中类的表示方法。

第 9 页 共 26 页 9

2、 掌握类与类之间的各种关系代表的含义及表示方法。 3、 实体类,边界类,控制类,关联类的概念和表示方法。 4、 接口和抽象类的概念和表示方法。 类的多重性关系。 5、 对一个类图进行相关的描述。

[实验内容和步骤]

1、 简述类的定义,以及类的三要素

类是对一组具有相同属性、操作、关系和语义事物的描述。

类的三要素是:类的名称、属性、操作。

类的属性和方法的可见性有哪些?UML中如何表示?

类的属性和方法的可见性有protect(符号“#”),private(符号“-”),public(符号“+”)

2、 已知三个类A.B和C.其中类A由类B的一个实类和类C的1个

或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图。

3、 根据以下描述画出类图,并注明多重性关系:一个学生可以选

修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;一个老师可以教多门课程或者不教课;每门课程至少有

第 10 页 共 26 页

10

一个老师,也可以有多个老师任教;每门课程可以有0或1本教材,每本教材只能用于一门课程。

4、 现有一系统需要对商品进行管理,包括添加,删除商品,修改

商品信息三项功能,画出系统类图。(商品信息包括商品编号,商品名称,价格,生产厂商等)

5、 如果现在系统需求发生变化,需要能够对损坏商品进行打折,

以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?

6、 根据下面的代码画出Invoice类的类图,要求标明各属性的类

型和可见性以及类方法。

第 11 页 共 26 页

11

public class Invoice

{

public double amount;

public Date date = new Date(); public string customer; public string specification;

public string administrator = “unspecified”; static private int number_of_invoices()=0; public invoice(); {

number_of_invoices++; }

public void print() {

System.out.println(\number of invoices is”+ int number_of_invoices); } }

7、 下图是一个仓库管理系统的类模型局部,其中IncomeOrder是

指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正类图。

第 12 页 共 26 页 12

IncomeOrder11ProductOrderItem

[分析与讨论]

1、 讨论类图在建模过程中的重要作用。

2、 总结在设计绘制类图的过程中应注意哪些问题。

实验四 对象图

[实验目的和要求]

1、 掌握对象的概念,对象的三大特征,对象的表示方法。2、 掌握类与对象的关系。

[实验内容和步骤]

第 13 页 共 26 页

13

1、 什么是对象,对象的三大特征是什么? 2、 UML中对象的表示方法有哪些?

3、 在下图中最上面的对象的名称是什么?该图表示的意思是什

么?请绘制出与其相应的类图。

China:CountryfuJian:ProvincesiChuan:Province

4、 说明对象图的适用场景以及它的优缺点。

[分析与讨论]

1、 思考类与对象之间的关系是怎样的?各举几个实例,说明哪些

是类,哪些是对象。

2、 思考在具体场景中应该如何区分类与对象。 3、 找一段源程序,并绘制出与其相应的对象图。

实验五 包图

[实验目的和要求]

1、 掌握UML包的概念和作用。

2、 掌握包与包之间的各种依赖关系的区别。 3、 掌握建立包与包之间依赖关系的方法。

第 14 页 共 26 页

14

4、 掌握建立包图过程中需遵循的原则。

[实验内容和步骤]

1、 包属于UML中的何种事物?有何作用? 2、 UML中包的表示方法有哪几种? 3、 包与包之间存在哪几种关系? 4、 包与包之间的依赖关系有何特点?

5、 如何避免包与包之间出现循环依赖关系?各举一例。 6、 建立包图应注意哪些问题?

7、 根据下图判断下面哪句话正确的说明了包之间的依赖关系。

A) 对Package1包中的元素做了修改后,需检查Package2包中

的元素和Package3包中的元素是否要做相应修改。 B) 对Package1包中的元素做了修改后,需检查Package2包中

的元素是否需要做相应修改,如果是,则需继续检查是否Package3包中元素也要做相应修改。

C) 对Package3包中的元素做了修改后,需检查Package2包中

的元素是否需要做相应修改,如果是,则需继续检查是否Package1包中元素也要做相应修改。

D) 对Package3包中的元素做了修改后,需检查Package2包中

的元素和Package1包中的元素是否要做相应修改。

8、 下面包图设计中是否存在问题?应如何改进。

第 15 页 共 26 页 15

A)

[分析与讨论]

1、结合一个具体例子,分析

B)

UML建模过程中包图所起的作用。第 16 页 共 26 页 16

实验六 状态图

[实验目的和要求]

1、 掌握状态的定义和组成部分。 2、 掌握UML中状态的表示方法。 3、 掌握转换的定义及转换的5要素。 4、 了解触发事件、监护条件、动作的定义。 5、 掌握阅读和绘制状态图的方法。

[实验内容和步骤]

1、 什么叫做状态?状态由哪五个部分组成? 2、 什么是转换?UML中转换的5要素是什么? 3、 触发事件是什么?可以具体分为哪些事件? 4、 改变事件和监护条件有何异同? 5、 什么叫做转换?转换可以分为哪几种?

6、 状态和对象的关系是怎样的? 下面描述中哪些是对象,哪些是

状态?

支票已付 汽车停在那儿 小王正在工作

7、 说出下面状态的状态名和各种转换、事件。

第 17 页 共 26 页 17

Lighting entry / turnOn do / blinkFiveTimes eventPowerOff / powerSupplySelf exit / turnoff eventSelfTest / defer

8、 说出下面状态图所表达的信息。

9、 说出下面状态图所表达的信息,并指出蓝色部分代表的含义。

10、根据下面状态图回答问题。

第 18 页 共 26 页

18

UPrequest(floor,direction)[ floor>0 ]entry/ CloseDoordo/ Eexit/ motor.stop()GFloortimeout[ getNextFloor()> A ]arrive()arrive()request(floor,direction)[ floor==0 ]WaitingForFloorNumtimeout[ getNextFloor()==-1&¤tFloor==0 ] / closeDoorentry/ openDoorgoToFloor(n)Returnentry/ closeDoordo/ motor.moveDown()exit/ FB[ C ]Downentry/ closeDoordo/ Dexit/ motor.stop()arrive()

上图是一个表示电梯系统的状态图,该系统中Controller类和Motor类的详细定义如下图所示:

根据类图,完成上面状态图中A,B,C,D,E,F处的内容。

11、 某销售POS机工作流程如下:当客户到收银台后,收银员逐一输入用户购买的商品,然后计算总金额,等待用户付款,确定支付成功之后,完成收银,等待下一个用户。请为其画出对应的状态图。 [分析与讨论]

第 19 页 共 26 页

19

讨论思考状态图在UML建模中可以起到什么样的作用。

思考什么样的情况下适合引入状态图进行建模。

第 20 页 共 26 页 20

1、

2、

实验七 活动图

[实验目的和要求]

1、 掌握活动的概念以及表示方法。

2、 掌握活动图中个元素表示的意义和表示方法。 3、 掌握分支、监护条件、分岔、汇合和泳道的概念。 4、 掌握阅读和绘制活动图的方法。 5、 掌握UML的可见性规则和构造型的作用。

[实验内容和步骤]

1、 什么是活动?UML中如何表示活动? 2、 活动图中包括哪些元素?分别如何表示?

3、 分岔和分支有什么区别,分别适用于什么样的建模目标? 4、 活动图中监护条件和改变时间分别有何作用?两者间的区别

是什么?

5、 说明下面活动图所表达的信息。

第 21 页 共 26 页

21

6、 用活动图表示for(i=0;i<9;i++)循环。 7、

8、 对于如下图所示的活动图,最大可能的并发线程数是几个?

Activity1Activity2Activity3Activity4Activity5Activity6

[分析与讨论]

1、 总结UML在软件工程中的作用以及使用UML建模的必要性。 2、 分小组讨论利用“支付宝”进行网上购物的活动过程,并画出

活动图,关于支付宝的相关说明可以登录看。

3、 针对前面的网上书店系统,画出用户购书,商家发货等过程的

活动图。

http://www.alipay.com/查

实验八 时序图与协作图

[实验目的和要求]

第 22 页 共 26 页

22

1、 掌握时序图与协作图的概念及作用。

2、 掌握UML中静态图形和动态图形的区别和联系。

3、 掌握UML时序图与协作图的基本图形,了解它们各自的组成元

素、特定作用和适用场合。

4、 重点掌握时序图的画法以及其中元素所代表的意义。

[实验内容和步骤]

1、 UML中的时序图与协作图之间各有什么区别和联系?

2、 在顺序图和协作图中,应如何表示“循环”,“判断”等结构? 3、 什么是消息?消息在交互中扮演什么角色?

4、 交互图中有哪几种消息?它们之间具体有何分别?应如何表

示?

5、 已知某一个用例实现的类图如下,下面四个选项中的时序图(图

中省略了消息编号、名称和返回消息),画出一个能和该类图对应的时序图。

6、 假设有一系统得协作图局部如图所示,print方法的功能是将传入的参数的值打印在屏幕上,fact方法是计算阶乘,如果test的初值为1,那么最终将打印出什么?(写出计算过程)

第 23 页 共 26 页

23

1: print(test)2: *[i=1..3] 1.1: test=test+fact(test):A:B

[分析与讨论]

1、 讨论并总结在建模过程中运用交互图的重要作用及意义。 2、 继续前面的网上书店实例,为该实例中涉及的系统交互设计交

互图。

上图是购物网站的“编辑购物车”用例中的部分的类图 用例描述:

第 24 页 共 26 页

24

基本事件流:

用户在Shopping Cart页面上修改购物车中商品数量,然后单击Update按钮。系统存储新的数量,然后计算并显示该商品的新价格。

用户单击Continue Shopping按钮。系统将控制权返回给浏览商品用例。

扩展事件流:

用户将商品数量改为0,则系统从购物车中删除该商品 用户点击Delete 按钮,系统从购物车中删除该商品

用户点击Check Out按钮,系统将控制权转到结账用例。 用户点击Clear Cart按钮,系统将购物车内所有商品删除。

请根据给出的类图,在下面的顺序图上画出“编辑购物车”用例内各个事件流(注意消息和类图提供的方法保持一致)。

:Customer1: update:ShoppingCartPage:Item:ShoppingCart2: ContinueShopping3: checkOut4: clearPass to Check Out Use Case

第 25 页 共 26 页 25

实验九 组件图

[实验目的和要求]

1、 掌握组件的概念,了解引入组件的原因。 2、 掌握组件的要素,组件和类的比较。 3、 掌握UML中组件的表示方法。 4、 掌握阅读和绘制组件图的方法。 5、 了解组件图的应用。

[实验内容和步骤]

1、 什么是组件?组件有何作用? 2、 组件的要素是什么?

3、 组件和类的关系是怎样的?它们有何异同之处? 4、 UML中组件有哪些表示方法,分别代表什么含义? 5、 组件中的接口有哪些?分别如何表示?

6、 在一张基本组件图中,组件之间最常见的关系是什么?

[分析与讨论]

1、 讨论组件图适用于哪些建模需求。

第 26 页 共 26 页 26

实验九 组件图

[实验目的和要求]

1、 掌握组件的概念,了解引入组件的原因。 2、 掌握组件的要素,组件和类的比较。 3、 掌握UML中组件的表示方法。 4、 掌握阅读和绘制组件图的方法。 5、 了解组件图的应用。

[实验内容和步骤]

1、 什么是组件?组件有何作用? 2、 组件的要素是什么?

3、 组件和类的关系是怎样的?它们有何异同之处? 4、 UML中组件有哪些表示方法,分别代表什么含义? 5、 组件中的接口有哪些?分别如何表示?

6、 在一张基本组件图中,组件之间最常见的关系是什么?

[分析与讨论]

1、 讨论组件图适用于哪些建模需求。

第 26 页 共 26 页 26

本文来源:https://www.bwwdw.com/article/5b5g.html

Top