UML实验指导书要点.docx

上传人:b****7 文档编号:15687289 上传时间:2023-07-06 格式:DOCX 页数:26 大小:712.64KB
下载 相关 举报
UML实验指导书要点.docx_第1页
第1页 / 共26页
UML实验指导书要点.docx_第2页
第2页 / 共26页
UML实验指导书要点.docx_第3页
第3页 / 共26页
UML实验指导书要点.docx_第4页
第4页 / 共26页
UML实验指导书要点.docx_第5页
第5页 / 共26页
UML实验指导书要点.docx_第6页
第6页 / 共26页
UML实验指导书要点.docx_第7页
第7页 / 共26页
UML实验指导书要点.docx_第8页
第8页 / 共26页
UML实验指导书要点.docx_第9页
第9页 / 共26页
UML实验指导书要点.docx_第10页
第10页 / 共26页
UML实验指导书要点.docx_第11页
第11页 / 共26页
UML实验指导书要点.docx_第12页
第12页 / 共26页
UML实验指导书要点.docx_第13页
第13页 / 共26页
UML实验指导书要点.docx_第14页
第14页 / 共26页
UML实验指导书要点.docx_第15页
第15页 / 共26页
UML实验指导书要点.docx_第16页
第16页 / 共26页
UML实验指导书要点.docx_第17页
第17页 / 共26页
UML实验指导书要点.docx_第18页
第18页 / 共26页
UML实验指导书要点.docx_第19页
第19页 / 共26页
UML实验指导书要点.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

UML实验指导书要点.docx

《UML实验指导书要点.docx》由会员分享,可在线阅读,更多相关《UML实验指导书要点.docx(26页珍藏版)》请在冰点文库上搜索。

UML实验指导书要点.docx

UML实验指导书要点

江西理工大学UML实验报告

 

UML

实验指导书

 

 

 

实验一用例图

[实验目的和要求]

1、掌握用例的概念。

2、掌握UML用例图的组成、作用以及使用场合。

3、掌握用例与用例之间的各种关系。

4、学习针对具体场景使用用例图进行分析说明的方法。

5、掌握用例描述的概念和基本结构,以及用例描述的作用。

[实验内容和步骤]

1、什么是用例,什么是场景?

用例和场景之间的关系是怎样的?

答:

用例是外部可见的系统功能单元,这些功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。

事件触发时的情景便形成了场景

2、用例图中有哪些组成元素?

在UML中是如何表示的?

答:

用例图包含6个元素,分别是:

参与者、用例、关联关系、包含关系、扩展关系以及泛化关系。

参与者用人形图标表示,用例图用椭圆形符号表示,连线表示它们之间的关系。

3、用例与用例之间的包含关系、扩展关系和泛化关系各代表什么含义?

它们之间有何区别?

对以上三种关系各举一例,画出用例图,并进行说明。

答:

包含关系:

一个用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。

扩展关系:

一个用例也可以被定义为基础用例的增量扩展,这称作扩展关系,扩展关系是把新的行为插入到已有用例中的方法。

泛化关系:

一个用例可以被特别列举为一个或多个子用例。

包含关系把几个用例的公共步骤分离成一个单独的被包含用例。

被包含用例称作提供者用例,包含用例称作客户用例,提供者用例提供功能给客户使用。

用例间的包含关系允许包含提供者用例的行为到客户用例的事件中。

包含关系使一个用例的功能可以在另一个用例中使用。

(1)如果两个以上用例有大量一致的功能,则可以将这个功能分解到另一个用例中。

其他用例也可以和这个用例建立包含关系。

(2)一个用例的功能太多时,可以用包含关系建模两个小用例。

用例间的包含关系示例图

基础用例的执行不会涉及到扩展用例,只有特定的条件发生,扩展用例才被执行。

用例间的扩展关系示例

用例泛化当父用例能够被使用时,任何子用例也可以被使用。

子用例从父用例处继承行为和属性,还可以添加、覆盖或改变继承的行为。

如果一个系统中一个或多个用例是某个一般用例的特殊化时,就需要使用用例的泛化关系。

 

用例间的泛化关系示例

4、为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。

主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。

该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,下是一个用例模型的局部:

小李认为该模型不符合“用例建模”的思想,存在明显的错误。

请用200字以内说明错误所在,并说明应该如何修改。

答:

用例是系统参与者与系统在交互过程中所需要完成的事务。

确定参与者是房产经济人,还要分析系统所涉及的问题领域和系统运行的主要任务。

根据系统的需求分析可确定:

作为一个物业信息管理系统,要实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。

参与者有房产经纪人,对于房产经纪人来说,系统维护操作主要包括:

录入,修改房源信息而登录和确认信息是包含在登入和修改中的,包含关系的图标按钮应用虚线箭头。

修改后应该是:

5、阅读下面的用例图,说明该图所表达的信息。

 

答:

客户可以启动“预定座位”功能。

如果预定人数多,将执行扩展用例“处理等候队列”。

总台服务员可以启动“安排座位”“办理结账”功能。

客户预定座位、服务员安排座位需要先“检查座位信息”。

服务员“办理结账”时需要“收款”,收款时可以现金支付也可以使用银行卡,银行卡必须是银联POS系统。

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

根据该用例图回答问题。

a)“签订保险单”用例可能涉及到哪几个实体类?

答:

客户、保险员、保险单。

b)现实生活中签订保单的基本流程如下:

客户提出购买需求,保险员根据客户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录。

如需要根据以上信息,请列举这个用例描述中可能存在扩展事件流。

答:

当客户不同意保险条款时,将执行扩展用例“退出签订保单”。

c)保单管理用例在实际开发过程中可以泛化出若干小用例,列出可能存在的子用例,并且说明这些用例和“保单管理”用例之间应该是什么关系?

答:

保单查询、保单保存。

泛化关系。

7、在一个TelephoneSystem(电话系统)中,用户可以使用电话卡或对方付款两种办法来打电话。

1)请画出表示该场景的用例图。

2)在前图的基础上,继续画出可能存在的包含用例和扩展用例。

 

[分析与讨论]

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

答:

用例图显示多个外部参与者以及他们与系统提供的用例之间的连接。

通过用例建模可以对外部的角色以及他们所需要的系统功能建模。

用例图用于系统分析阶段。

讨论用例分析技术和结构化分析之间的关系和区别。

答:

区别:

用例分析是面向对象(ObjectOriented)的开发方法。

结构化系统开发方法是指把整个系统开发过程分成若干阶段,每个阶段进行若干活动,每项活动应用系统标准、规范、方法和技术,完成一个或多个任务,形成符合给定规范的软件产品。

联系:

它们都可以是软件的开发更容易

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

答:

如何确定用例:

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

及参与者要系统做什么?

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

c系统的状态改变是是否通知参与者?

d是否存在影响系统的外部事件?

e系统需要什么样的输入、输出信息?

需要注意的是:

一定不要再用例图中使用两种命名方法。

即在椭圆之外和椭圆之内。

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

借阅者请求服务的用例图

 

图书馆管理员处理借书、还书的用例图

系统管理员进行系统维护的用例图

实验二UML类图

[实验目的和要求]

a)掌握类的定义,类的3要素,UML中类的表示方法。

b)掌握类与类之间的各种关系代表的含义及表示方法。

c)实体类,边界类,控制类,关联类的概念和表示方法。

d)接口和抽象类的概念和表示方法。

类的多重性关系。

e)对一个类图进行相关的描述。

[实验内容和步骤]

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

答:

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

类的三要素是:

类的名称、属性、操作。

2、类的属性和方法的可见性有哪些?

UML中如何表示?

答:

类的属性和方法的可见性有:

公有public(符号“+”)、私有private(符号“-”)和受保护protected(符号“#”),

3、已知三个类A.B和C.其中类A由类B的一个实类和类C的1个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图.

 

4、根据以下描述画出类图,并注明多重性关系:

一个学生可以选

修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;

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

 

5、现有一系统需要对商品进行管理,包括添加,删除商品,修改商品信息三项功能,画出系统类图。

(商品信息包括商品编号,商品名称,价格,生产厂商等)

6、如果现在系统需求发生变化,需要能够对损坏商品进行打折,以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?

7、根据下面的代码画出Invoice类的类图,要求标明各属性的类型和可见性以及类方法。

 

publicclassInvoice

{

publicdoubleamount;

publicDatedate=newDate();

publicstringcustomer;

publicstringspecification;

publicstringadministrator=“unspecified”;

staticprivateintnumber_of_invoices()=0;

publicinvoice();

{

number_of_invoices++;

}

publicvoidprint()

{

System.out.println("Thenumberofinvoicesis”+intnumber_of_invoices);

}

}

8、下图是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。

请指出模型中的错误,说明原因并改正类图。

答:

Orderltem与IncomeOrder的关系并不是泛化关系,而应该是包含关系。

改正的类图:

[分析与讨论]

[分析与讨论]

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

答:

类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,还包括类的内部结构。

类图描述的是一种静态关系,在系统的整个生命周期中都是有效的。

通过分析用例和问题域,就可以得到相关的类,然后再把逻辑上相关的类封装成包,这样可以很好的体现系统的分层结构,是得系统层次关系一目了然。

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

答:

UML类图(ClassDiagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。

UML类图是定义其他图的基础,在UML类图基础上,可以使用状态图、协作图、组件图和配置图等进一步描述系统其他方面的特性。

实验三状态图

[实验目的和要求]

1、掌握状态的定义和组成部分。

2、掌握UML中状态的表示方法。

3、掌握转换的定义及转换的5要素。

4、了解触发事件、监护条件、动作的定义。

5、掌握阅读和绘制状态图的方法。

[实验内容和步骤]

1、什么叫做状态?

状态由哪五个部分组成?

答:

描述系统里静态事物的动态变化。

状态机由状态、转换、事件、活动和动作5部分组成。

状态图图标分3部分:

名称、内部转换和嵌套状态图。

2、什么是转换?

UML中转换的5要素是什么?

答:

转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成特定的动作后将发生状态转变,转向另一个目标状态的状态。

5要素:

源状态、目标状态、触发事件、监护条件、动作。

3、触发事件是什么?

可以具体分为哪些事件?

答:

能够引起状态装换的事件。

信号、调用和时间段。

4、改变事件和监护条件有何异同?

答:

改变事件能引起动作的执行及状态的改变,改变监护条件能触发转换。

5、什么叫做转换?

转换可以分为哪几种?

答:

转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成特定的动作后将发生状态转变,转向另一个目标状态的状态。

转换分为:

外部转换、内部转换、完成转换、复合转换。

6、状态和对象的关系是怎样的?

下面描述中哪些是对象,哪些是状态?

支票已付

汽车停在那儿

小王正在工作

答:

支票是对象,已付是状态;汽车是对象,停在那儿是状态;小王是对象,正在工作是状态。

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

 

状态名:

Lighting

转换:

eventSelfTest/defer

事件:

入口动作entry/turnOn

do/blinkFiveTimes

eventPowerOff/powerSupplySelf

出口动作exit/turnoff

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

 

答:

状态开始,状态1:

关闭,事件1没水,打开放水,事件2烧水,状态2打开,事件3水开了关闭,回到状态1.分支1烧水时烧坏了,状态结束。

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

 

答;状态开始,状态1注册课程,状态2课程评价,嵌套状态图1:

开始,状态实验1,进入实验室,事件1完成实验,实验2,完成实验。

嵌套状态2:

实验室团队项目,事件项目完成,结束。

嵌套状态3:

开始,状态考试,事件1考试及格,事件2考试不及格,课程不通过,补考。

3个嵌套状态后,课程通过。

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

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

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

答:

A是0,B是timeout,C是goToFloor<2,D是Motor.moveDown(),E是Motor.moveUp(),F是Motor.stop()

11、某销售POS机工作流程如下:

当客户到收银台后,收银员逐一输入用户购买的商品,然后计算总金额,等待用户付款,确定支付成功之后,完成收银,等待下一个用户。

请为其画出对应的状态图。

 

[分析与讨论]

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

答;状态图一般用于对系统中的某些对象,比如类,用例和系统的行为建模。

它通过建立类对象的生存周期模型来描述对象随时间变化的动态行为。

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

答:

系统分析人员在对系统进行建模时,最先考虑的是基于状态之间的控制流,因为系统对象中的状态变化最易发现和理解。

这样的情况下引入状态图进行建模比较好。

 

实验四活动图

[实验目的和要求]

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

2、掌握活动图中个元素表示的意义和表示方法。

3、掌握分支、监护条件、分岔、汇合和泳道的概念。

4、掌握阅读和绘制活动图的方法。

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

[实验内容和步骤]

1、什么是活动?

UML中如何表示活动?

答:

活动是某件事情正在进行的状态既可以是现实生活中正在进行的某一项工作,也可以是软件系统某个类对象的一个操作。

活动图用圆角椭圆表示。

 

2、活动图中包括哪些元素?

分别如何表示?

答:

分支与合并、分叉与汇合等模型元素。

分支与合并用实线箭头表示,分叉与汇合用一条加粗的线段表示。

图形元素

表示方法

动作状态

平滑的圆角矩形

活动状态

平滑的圆角矩形

动作流

带箭头的直线

分支与合并

空心小菱形

分叉与汇合

加粗的水平线

泳道

垂直实线,分隔的区域就是泳道

对象流

带箭头的虚线

3、分岔和分支有什么区别,分别适用于什么样的建模目标?

答;分叉可以用来描述并发线程,每一个分叉可以有一个输入转换和两个或多个输出转换,每一个转换都可以是独立的控制流。

分支在软件系统流程中很常见,它一般用于表示对象类所具有的条件行为。

4、活动图中监护条件和改变时间分别有何作用?

两者间的区别是什么?

答:

控制活动的处理过程,控制系统的行为。

监护条件是决定执行与否,改变时间是决定什么时候执行。

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

 

答:

用户下订单后系统生成送货单,用户选择支付方式,判断用户是否取消订单或订单超过时限,如果是,则取消订单,如果否,则进行收款。

之后供应商送货,修改订单项状态,然后判断是否所有订单已送货完毕。

如果是,那么订单完成。

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

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

答:

五个

[分析与讨论]

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

答:

UML是一种功能强大的,面向对象的可视化系统分析的建模语言,它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠,更完善的系统模型.从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性.。

建立模型可以帮助开发者更好地了解正在开发的系统。

便于开发人员展现系统,提供指导开发人员构造系统的模板,记录开发人员的决策。

每个项目可以从建模中受益。

甚至在自由软件领域,模型可以帮助开发小组更好地规划系统设计更快地开发。

2、分小组讨论利用“支付宝”进行网上购物的活动过程,并画出活动图,关于支付宝的相关说明可以登录

答:

挑选宝贝—确认订单-支付宝支付-支付成功

 

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

 

实验五时序图与协作图

[实验目的和要求]

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

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

3、掌握UML时序图与协作图的基本图形,了解它们各自的组成元素、特定作用和适用场合。

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

[实验内容和步骤]

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

答:

主要元素都是消息和类角色。

相同点:

(1)规定责任

(2)支持消息(3)衡量工具

区别:

协作图的重点是将对象的交互映射到它们之间的链上,即协作图以对象图的方式绘制各个参与对象,并且将消息和链平行放置。

时序图可以描述对象的创建和撤销的情况。

而在协作图中,对象要么存在要么不存在,除了通过消息描述或约束,没有其他的方法可以表示对象的创建或结束。

时序图还可以表现对象的激活和去激活情况但对于协作图来说,由于没有对时间的描述,除了对消息进行解释,它无法清晰地表示对象的激活和去激活情况。

2、在顺序图和协作图中,应如何表示“循环”,“判断”等结构?

答:

通过对象的链符号,即一条连接两个角色的实线路径进行循环,增加消息进行判断。

3、什么是消息?

消息在交互中扮演什么角色?

答:

对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。

4、交互图中有哪几种消息?

它们之间具体有何分别?

应如何表示?

答:

绘制两个对象之间的异步消息、在两个对象之间绘制消息、绘制反身消息、显示过程调用返回的消息、绘制两个对象之间的过程调用。

消息使用箭头表示,箭头的类型表示了消息的类型。

在两个对象之间绘制消息

绘制两个对象之间的过程调用

绘制两个对象之间的异步消息

显示过程调用返回的信息

绘制反身消息

5、已知某一个用例实现的类图如下,下面四个选项中的时序图(图中省略了消息编号、名称和返回消息),画出一个能和该类图对应的时序图。

 

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

(写出计算过程)

答:

打印出28.1、test=1+1=2,2、test=2+2*1=4,3:

test=4+4*3*2*1=28

[分析与讨论]

1、讨论并总结在建模过程中运用交互图的重要作用及意义

答:

能准确地描述各个对象之间的关系及各种消息。

交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系。

类元是对在系统内交互关系中起特定作用的一个对象的描述,这使它区别于同类的其他对象。

交互视图显示了跨越多个对象的系统控制流程。

交互视图可用两种图来表示:

顺序图和协作图,它们各有不同的侧重点顺序图的一个用途是用来表示用例中的行为顺序。

当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

协作图的一个用途是表示一个类操作的实现。

协作图可以说明类操作中用到的参数和局部变量以及操作中的永久链。

当实现一个行为时,消息编号对应了程序中嵌套调用结构和信号传递过程。

2、继续前面的网上书店实例,为该实例中涉及的系统交互设计交互图。

 

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

用例描述:

基本事件流:

用户在ShoppingCart页面上修改购物车中商品数量,然后单击Update按钮。

系统存储新的数量,然后计算并显示该商品的新价格。

用户单击ContinueShopping按钮。

系统将控制权返回给浏览商品用例。

扩展事件流:

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

用户点击Delete按钮,系统从购物车中删除该商品

用户点击CheckOut按钮,系统将控制权转到结账用例。

用户点击ClearCart按钮,系统将购物车内所有商品删除。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2