《UML统一建模语言实验报告 2.docx》由会员分享,可在线阅读,更多相关《UML统一建模语言实验报告 2.docx(27页珍藏版)》请在三一办公上搜索。
1、目录实验一UML建模基础及用例图实验二类图与对象图实验三 序列图与协作图实验四状态图实验五活动图实验(一)UML建模基础及用例图实验目的1、熟悉UML建模工具Rational Rose的基本菜单及操作。2、掌握UML的可见性规则和构造型的作用。3、掌握用例的概念;掌握UML用例图的组成及作用。4、掌握用例与用例之间的各种关系。实验内容1、练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改。3、什么是用例?用例图中有哪些组成元素?在UML中是如何表示的?答:用例是对系统功能的描述,是向参与者提供重要价值的操作序列。用例图有:用例、参与者、关联(系统边界)等元素。用来显示在系统或其他实
2、体内的用例与系统参与者之间的关系。主要使 用场合:需求获取、定义、分析4、用例与用例之间的包含关系、扩展关系和泛化关系各代表什么含义?它 们之间有何区别?对以上三种关系各举一例,画出用例图,并进行说明。(1)包含关系:基本用例的行为包含另一用例的行为。基本用例描述在多个 用例中都有的公共行为。包含关系是本质上比较特殊的依赖关系,它比一般 的依赖关系多了一些语义。在包含关系中箭头的放向是从基本用例到包含用 例的。维护人员修改资源(2)扩展关系:扩展关系的基本含义和泛化关系相似,但在扩展关系中, 对于扩展用例有更多的规则限制。孝本用例必须声明扩展点,而扩展用例只 能在扩展点上增加新的行为和含义。O
3、(3)泛化关系:代表一般与特殊的关系。UML用例图中泛化关系的意思和 面向对象程序设计中的继承的概念是类似的。不同的是继承使用在实施阶 段,泛化使用在分析、设计阶段。在泛化关系中子用例继承了父用例的行为 和含义,子用例也可以增加新的行为和含义或者覆盖父用例中的行为和含 义。息管理系统的用例图。画出课后习题101页第4题。6、为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分 析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户 资料信息管理、客户委托(出删除出售都赁I鼠买)信息管理、业务线索 生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询 等功能。
4、该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的 用例模型的开发,下是一个用例模型的局部:修改房源信息小李认为该模型不符合“用例建模”的思想,存在明显的错误。请用 200字以内说明错误所在,并说明应该如何修改。答:用例图是用来显示多个外部参与者以及他们之间与系统提供的用例 之间的联系。是用户从系统外部观察系统的功能。用例是系统参与者与系统 在交互过程中所需要完成的事务。确定参与者是房产经济人,还要分析系统 所涉及的问题领域和系统运行的主要任务。根据系统的需求分析可确定:作 为一个物业信息管理系统,要实现客户资料信息管理、客户委托(出租、出 售、租赁、购买)信息管理、业务线索生成与管理
5、、房源状态自动更新、权 限管理、到期用户管理、房源组合查询等功能。参与者有房产经纪人,对于 房产经纪人来说,系统维护操作主要包括:录入,修改房源信息而登录和确 认信息是包含在登入和修改中的,包含关系的图标按钮应用虚线箭头。修改后应该是:房产经纪人确认提交信息7、阅读下面的用例图,说明该图所表达的信息。参与者是客户和服务人员。主要关系是包含和扩展。首先有客户来预订座位,如果前面与别的客户,他就等待,服务人员进行作为信息查询,把空 闲的座位分给客户,然后办理结账,有两种方式可以供客户选择,要不现金 结账要不就是银行卡结账,然后收款。8、下图是一个描述保险商务系统的简单用例图。根据该用例图回答问题。
6、保险商务系统客户资料管理a) “签订保险单”用例可能涉及到哪几个实体类?答:客户和保险员两个实体类b) 现实生活中签订保单的基本流程如下:客户提出购买需求,保险员根据客户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据, 客户签字并支付保金,保单开始生效,保险员做相关系统纪录。如需要根据 以上信息,请列举这个用例描述中可能存在扩展事件流。答:客户阅读保险条款,同意后可签字并支付保金,否则就不签订保单。c)保单管理用例在实际开发过程中可以泛化出若干小用例,列出可能存在 的子用例,并且说明这些用例和“保单管理”用例之间应该是什么关系?答:单查询和保单保存可能是存在的子用例,这些用例和“
7、保单管理” 用例之间是泛化关系。9、在一个TelephoneSystem (电话系统)中,用户可以使用电话卡或对方 付款两种办法来打电话。1)请画出表示该场景的用例图。O才电话卡付款用户 J冬2)在前图的基础上,继续画出可能存在的包含用例和扩展用例。Ooo查找联系人对方支付碘电话卡分析与讨论1、总结UML在软件工程中的作用以及使用UML建模的必要性。答:UML为面向对象开发系统的产品进行说明、可视化和编制文档的一 种标准语言。UML展现了一系列最佳工程实践,这些最佳实践在对大规模, 复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML可以 贯穿软件开发周期中的每一个阶段。最适于数据
8、建模,业务建模,对象建模UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它 溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面 向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。使用 UML可以对已有的用各种方法建立的模型进行描述,并比原来的方法描述得 更好。在软件开发的生命期方面,UML对于开发的要求具有无缝性。开发过 程的不同阶段可以采用相同的一套概念和表示法,在同一个模型中它们可以 混合使用。在开发的不同阶段,不必转换概念和表示。这种无缝性对迭代式 的、增量式软件开发是至关重要的。在应用领域方面,UML适用于各种应用 领域的建模,包括大型的、复杂的
9、、实时的、分布式的、集中式数据或计算。2、总结用例图的重要作用,指出哪些场合下可以使用用例图。答:用例图显示多个外部参与者以及他们与系统提供的用例之间的链接。 通过用例建模可以对外部的角色以及他们所需要的系统功能建模。用例图用 于系统的分析阶段。3、讨论用例分析技术和结构化分析之间的关系和区别。答:联系:他们都可以使软件开发更容易。区别:结构化开发系统方法是指把整个系统开发过程分成若干阶段, 每个阶段进行若干活动,每一项活动应用系统标准、规范、方法和技术,完 成一个或是多个任务,形成符合给定规定的软件产品。4、在使用用例图的时候应该如何划分用例,应注意哪些问题?答:(1)确定用例参与者需要从系
10、统中获得那些功能?参与者要系统 作些什么?(2)参与者是否需要读取、产生、删除、修改果实存储系统中的某些 信息。(3)系统状态的改变是否通知参与者。(4)是否存在印象系统的外部事件?(5)系统需要什么样的输入输出信息?指导教师批阅:实验(二)类图与对象图实验目的1、掌握对象的概念,对象的表示方法,掌握类与对象的关系。2、掌握时序图(顺序图)与协作图(通信图)这两种交互图的概念及作用。3、掌握UML中静态图形和动态图形的区别和联系。4、掌握UML时序图与协作图的基本图形,了解它们各自的组成元素、特定 作用和适用场合。5、重点掌握时序图的画法以及其中元素所代表的意义。实验内容1、类的属性和方法的可
11、见性有哪些? UML中如何表示?答:类的属性和方法的可见性有protect(符号“#”),private(符号“一”), public(符号 “ + ” )2、已知三个类A.B和C.其中类A由类B的一个实类和类C的1个或多个实 类构成.请画出能够正确表示类A,B和C之间关系的UML类图。主机.n下描述画出类图,并注 程,也可能没有任何课程;一门课程可多重性关系:一个学生可以选修多门课 毛以被多个学生选修;一个老师可以教 多晤程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每门课程可以有0或1本教材,每本教材只能用于一门课程。4、现有一系统需要对商品进行管理,包括添加,删除商品,修改
12、商品信息 三项功能,画出系统类图。(商品信息包括商品编号,商品名称,价格,生 产厂商等)5、商品number:intname:charprice:charmannufactory:charaddQ:voidQdeleteQ:voidQ上题is如果现在系统需求生变化,需要能够对损坏商品进行打折,以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?pociuc:tisbad:booleanID:charname:charshape:charcolor:charprice:charfactory: charaddQ:voidQdeleteQ:voidQ类的类图,要求标明各属性的类型和可见6
13、、根据下面的代码画出 Invoicl性以及洲法叩呻叩。findCchar.charYcharO .public class Invoicepublic 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+; publi
14、c void print ()System.out.println(The number of invoices is”+ int number_of_invoices);7、下图是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单, Orderitem是指入库中的每一项,Product则是产品信息。请指出模型中的 错误,说明原因并改正类图。答:Orderitem与IncomeOrder的关系并不是泛化关系,而应该是包含关 系。改正的类图:8、在下图中最上面的对象的名称是什么?该图表示的意思是什么?China:County/ fuJian:Province siChuan:Pr
15、ovince答:Country、Province 是类,而 china、fujian 和 sichuan 分别是这两 个类中的对象。分析与讨论1、讨论类图在建模过程中的重要作用。答:类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间 的联系,还包括类的内部结构。类图描述的是一种静态关系,在系统的整个 生命周期中都是有效的。通过分析用例和问题域,就可以得到相关的类,然 后再把逻辑上相关的类封装成包,这样可以很好的体现系统的分层结构,是 得系统层次关系一目了然。2、总结在设计绘制类图的过程中应注意哪些问题。答:UML类图(Class Diagram)是描述类、接口、协作以及它们之间关 系
16、的图,用来显示系统中各个类的静态结构UML类图是定义其他图的基础, 在UML类图基础上,可以使用状态图、协作图、组件图和配置图等进一步描 述系统其他方面的特性。3、说明对象图的适用场景以及它的优缺点。答:对系统的设计视图建模时,可以使用一组类图完整地描述抽象的语义 以及它们之间的关系。但是使用对象图不能完整地描述系统的对象结构 指导教师批阅:实验(三)序列图与协作图实验目的1、掌握序列图(时序图)与协作图的概念及作用。2、掌握UML中静态图形和动态图形的区别和联系。3、掌握UML时序图与协作图的基本图形,了解它们各自的组成元素、特定 作用和适用场合。4、重点掌握时序图的画法以及其中元素所代表的
17、意义。实验内容1、UML中的序列图与协作图之间各有什么区别和联系?答:(1)序列图用来描述对象之间消息发送的先后次序,阐明对象之间 的交互过程以及在系统执行过程中的某一具体时刻将会发生什么事件。 序列图是一种强调时间顺序的交互图,其中对象沿横轴排列,消息沿纵 轴按时间顺序排列。序列图中的对象生命线是一条垂直的虚线,他表示 一个对象在一段时间内存在。协作图也是一种交互图,它强调收发消息的对象的组织结构。协作图和 序列图是同样的,它们可以相互转换。在多数情况下,协作图主要用来 对单调的、顺序的控制流建模,但它也可以用来对包括迭代和分支在内 的复杂控制流进行建模。(2)两者都是表示交互的方式,但时序
18、图描述时间交互的各种信息,协 作图描述的是和对象结构相关的信息。2、在顺序图和协作图中,应如何表示“循环”,“判断”等结构?答:整个信息的传递过程就形成了一个完整的序列,因此通过在每个信 息的前面加上一个冒号隔开的顺序号来表示其顺序。3、什么是消息?消息在交互中扮演什么角色?答:对象之间某种形式的通信,可以激发某个操作,唤起信号或者导致 目标对象的创建或撤销。两个对象之间的单路通信。4、交互图中有哪几种消息?它们之间具体有何分别?应如何表示?答:绘制两个对象之间的异步消息、在两个对象之间绘制消息、绘制反 身消息、显示过程调用返回的消息、绘制两个对象之间的过程调用。消 息用箭头表示,箭头的类型表
19、示了消息的类型。5、已知某一个用例实现的类图如下,下面四个选项中的时序图(图中省略 了消息编号、名称和返回消息),画出一个能和该类图对应的时序图。6、假设有一系统得协作图局部如图所示,print方法的功能是将传入的参数的值打印在屏幕上,fact方法是计算阶乘,如果test的初值为1,那么最终将打印出什么?(写出计算过程)2: *i=1.3 1.1: test=test+fact(test)分析与讨论1、讨论并总结在建模过程中运用交互图的重要作用及意义。答:能准确地描述各个对象之间的关系及各种消息。交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系。类元是对在系统内交互 关系中起特定
20、作用的一个对象的描述,这使它区别于同类的其他对象。交互 视图显示了跨越多个对象的系统控制流程。交互视图可用两种图来表示:顺序图和协作图,它们各有不同的侧重点 顺序图的一个用途是用来表示用例图中的行为顺序。当执行一个用例行为 时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的出发事 件。协作图的一个用途是表示一个类操作的实现。协作图可以说明类操作中 用到的参数和局部变量以及操作中的永久链。当实现一个行为时,消息编号 对应了程序中嵌套调用结构和信号传递过程。2、继续前面的网上书店实例,为该实例中涉及的系统交互设计交互图。实验四状态图实验目的1、掌握状态的定义和组成部分及表示方法。2、掌握转
21、换的定义及转换的要素。3、了解触发事件、监护条件、动作的定义。4、掌握阅读和绘制状态图的方法。实验内容1、什么叫做状态?状态由哪五个部分组成?答:描述系统里静态事物的动态变化。状态机由状态、转换、事件、活动 和动作5部分组成。状态图图标分3部分:名称、内部转换和嵌套状态图。2、什么是转换? UML中转换的要素是什么?答:转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态 下的对象在完成特定的动作后将发生状态转变,转向另一个目标状态的状 态。转换要素:源状态、目标状态、触发事件、监护条件、动作。3、触发事件是什么?可以具体分为哪些事件?答:能够引起状态装换的事件。信号、调用和时间段。4
22、、什么叫做转换?转换可以分为哪几种?答:转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态 下的对象在完成特定的动作后将发生状态转变,转向另一个目标状态的状 态。转换分为:外部转换、内部转换、完成转换、复合转换。5、状态和对象的关系是怎样的?下面描述中哪些是对象,哪些是状态? 支票已付汽车停在那儿 小王正在工作答:支票是对象,已付是状态;汽车是对象,停在那儿是状态;小王是对 象,正在工作是状态。6、说出下面状态的状态名和各种转换、事件。Lighting】 entry / turnOn do / blinkFiveTimes eventPowerOff / powerSupplySel
23、f exit / turnoff eventSelfTest / defer根据类图,完成上面状态图中A,B,C,D,E,F处的内容。答:A 是 0,B 是 timeout,C 是 goToFloor2,D 是 Motor.moveDown(),E 是 Motor.moveUp(),F 是 Motor.stop()11、某销售POS机工作流程如下:当客户到收银台后,收银员逐一输入用 户购买的商品,然后计算总金额,等待用户付款,确定支付成功之后,完成 收银,等待下一个用户。请为其画出对应的状态图。2、思考什么样的情况下适合引入状态图进行建模。答:系统分析人员在对系统进行建模时,最先考虑的是基于状
24、态之间的控 制流,因为系统对象中的状态变化最易发现和理解。这样的情况下引入状态 图进行建模比较好指导教师批阅实验五活动图实验目的1、掌握活动的概念以及表示方法。2、掌握活动图中各个元素表示的意义和表示方法。3、掌握分支、监护条件、分岔、汇合和泳道的概念。4、掌握阅读和绘制活动图的方法。画法见教材。实验内容1、什么是活动? UML中如何表示活动?答:活动是一个或多个动作组成的行动。2、活动图中包括哪些元素?分别如何表示?答:动作状态、活动状态、组合活动、分叉与结合、分支与合并、泳道、 对象流。(1)动作状态使用平滑的圆角矩形表示,动作状态表示的动作写在矩形 内部。(单击鼠标)动作状态(2)活动状
25、态是平滑的圆角矩形,在图标中给出入口动作和出口动作等 信息。/ Name (entiy/do something exit/do something J活动世态示例(3)组合活动在一幅图中展示所有的工作流程细节。(4)分叉与结合(5)分支与合并僭阅者图书弟工作人鼠制作调查表发放调查表填写调查表(7)对象流状态表示活动中输入或输出的对象。对输出值而言,从活动指如果活动入箭头指虚线箭头旨向活动。向对象流状态。对输入值而言,虚线箭头从对象流状态指有多个输出值或后继控制流,那么箭头背向分叉符号。同样,多输号。向结合符号。NewNewState、上交调查表NewActivilyl 3、分岔和I答:分叉用
26、于将动作流笠描述并发转换都可1分支有什么区别创建对象流V U适用于什么样的建模目标?个或者多个并发运行的分支,分叉可以用来两个或多个输出转换,每个线程,每个分叉可以有一个输入转换和以是独立的控制流。用黑粗线表示意图 分支一般用于表示对象类所具有的条件行为。在活动图中分支用空心小菱形表示。分支有一个入转换和两个带条件的出转换,出转换的条件应当是互斥的。4、活动图中监护条件和改变事件分别有何作用?两者间的区别是什么?答:活动状态的转换可以包括动作和监护条件。监护条件:在分支的每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换。改变事件则是对事件进行的修改,转换是在要求改变事件时直接执行的。区别在于是否是满足某一个特定的情况。5、说明下面网上书店系统某一活动图所表达的信息。:商-乌:修改订雨)历/乓raoS. ! 进入网店后,用户下订单,生成送货单和用户选择支付方式同时1户选择支付方式时,根据判断条件(用户取消订单和 任何一种情况,订单取消:如果两种情况都没发生,运行,在用一单超时),如果发生. “商收款并生成送货单,然后供应商发货,货物一旦发出,订单的状态不断更新,“最后货物到达顾客手中,订单完成。6、用活动图表示for (i=0; i9;i+)循环。最大可能的并发线程数是4个。分析与讨论Activity循环结束