1江西理工大学UML实验报告UML实验指导书2目录实验一用例图..................................3实验二UML类图..........................10实验三状态图................................14实验四活动图..............................19实验五时序图与协作图..............233实验一用例图[实验目的和要求]1、掌握用例的概念。2、掌握UML用例图的组成、作用以及使用场合。3、掌握用例与用例之间的各种关系。4、学习针对具体场景使用用例图进行分析说明的方法。5、掌握用例描述的概念和基本结构,以及用例描述的作用。[实验内容和步骤]1、什么是用例,什么是场景?用例和场景之间的关系是怎样的?答:用例是外部可见的系统功能单元,这些功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。事件触发时的情景便形成了场景2、用例图中有哪些组成元素?在UML中是如何表示的?答:用例图包含6个元素,分别是:参与者、用例、关联关系、包含关系、扩展关系以及泛化关系。参与者用人形图标表示,用例图用椭圆形符号表示,连线表示它们之间的关系。3、用例与用例之间的包含关系、扩展关系和泛化关系各代表什么含义?它们之间有何区别?对以上三种关系各举一例,画出用例图,并进行说明。答:包含关系:一个用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。扩展关系:一个用例也可以被定义为基础用例的增量扩展,这称作扩展关系,扩展关系是把新的行为插入到已有用例中的方法。泛化关系:一个用例可以被特别列举为一个或多个子用例。4包含关系把几个用例的公共步骤分离成一个单独的被包含用例。被包含用例称作提供者用例,包含用例称作客户用例,提供者用例提供功能给客户使用。用例间的包含关系允许包含提供者用例的行为到客户用例的事件中。包含关系使一个用例的功能可以在另一个用例中使用。(1)如果两个以上用例有大量一致的功能,则可以将这个功能分解到另一个用例中。其他用例也可以和这个用例建立包含关系。(2)一个用例的功能太多时,可以用包含关系建模两个小用例。用例间的包含关系示例图基础用例的执行不会涉及到扩展用例,只有特定的条件发生,扩展用例才被执行。用例间的扩展关系示例用例泛化当父用例能够被使用时,任何子用例也可以被使用。子用例从父用例处继承行为和属性,还可以添加、覆盖或改变继承的行为。如果一个系统中一个或多个用例是某个一般用例的特殊化时,就需要使用用例的泛化关系。5用例间的泛化关系示例4、为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,下是一个用例模型的局部:录入房源信息确认提交信息房产经纪人修改房源信息打开房源信息页面登录信息include小李认为该模型不符合“用例建模”的思想,存在明显的错误。请用200字以内说明错误所在,并说明应该如何修改。答:用例是系统参与者与系统在交互过程中所需要完成的事务。确定参与者是房产经济人,还要分析系统所涉及的问题领域和系统运行的主要任务。根据系统的需求分析可确定:作为一个物业信息管理系统,要实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等6功能。参与者有房产经纪人,对于房产经纪人来说,系统维护操作主要包括:录入,修改房源信息而登录和确认信息是包含在登入和修改中的,包含关系的图标按钮应用虚线箭头。修改后应该是:5、阅读下面的用例图,说明该图所表达的信息。答:客户可以启动“预定座位”功能。如果预定人数多,将执行扩展用例“处理等候队列”。总台服务员可以启动“安排座位”“办理结账”功能。客户预定座位、服务员安排座位需要先“检查座位信息”。服务员“办理结账”时需要“收款”,收款时可以现金支付也可以使用银行卡,银行卡必须是银联POS系统。76、下图是一个描述保险商务系统的简单用例图。根据该用例图回答问题。a)“签订保险单”用例可能涉及到哪几个实体类?答:客户、保险员、保险单。b)现实生活中签订保单的基本流程如下:客户提出购买需求,保险员根据客户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录。如需要根据以上信息,请列举这个用例描述中可能存在扩展事件流。答:当客户不同意保险条款时,将执行扩展用例“退出签订保单”。c)保单管理用例在实际开发过程中可以泛化出若干小用例,列出可能存在的子用例,并且说明这些用例和“保单管理”用例之间应该是什么关系?答:保单查询、保单保存。泛化关系。7、在一个TelephoneSystem(电话系统)中,用户可以使用电话卡8或对方付款两种办法来打电话。1)请画出表示该场景的用例图。2)在前图的基础上,继续画出可能存在的包含用例和扩展用例。[分析与讨论]1、总结用例图的重要作用,讨论并指出哪些场合下可以使用用例图。答:用例图显示多个外部参与者以及他们与系统提供的用例之间的连接。通过用例建模可以对外部的角色以及他们所需要的系统功能建模。用例图用于系统分析阶段。讨论用例分析技术和结构化分析之间的关系和区别。答:区别:用例分析是面向对象(ObjectOriented)的开发方法。结构化系统开发方法是指把整个系统开发过程分成若干阶段,每个阶段进行若干活动,每项活动应用系统标准、规范、方法和技术,完成一个或多个任务,形成符合给定规范的软件产品。联系:它们都可以是软件的开发更容易3、在使用用例图的时候应该如何划分用例,应注意哪些问题?答:如何确定用例:a参与者需要从系统中获取哪种功能?及参与者要系统做什么?b参与者是否需要读取、产生、删除、修改或存储系统中的某种信息?c系统的状态改变是是否通知参与者?d是否存在影响系统的外部事件?e系统需要什么样的输入、输出信息?9需要注意的是:一定不要再用例图中使用两种命名方法。即在椭圆之外和椭圆之内。2、继续分析类图实验中网上书店实例,画出系统的用例图。借阅者请求服务的用例图图书馆管理员处理借书、还书的用例图系统管理员进行系统维护的用例图10实验二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、根据以下描述画出类图,并注明多重性关系:一个学生可以选修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;11一个老师可以教多门课程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每门课程可以有0或1本教材,每本教材只能用于一门课程。5、现有一系统需要对商品进行管理,包括添加,删除商品,修改商品信息三项功能,画出系统类图。(商品信息包括商品编号,商品名称,价格,生产厂商等)6、如果现在系统需求发生变化,需要能够对损坏商品进行打折,以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?7、根据下面的代码画出Invoice类的类图,要求标明各属性的类型和可见性以及类方法。publicclassInvoice{publicdoubleamount;publicDatedate=newDate();publicstringcustomer;publicstringspecification;publicstringadministrator=“unspecified”;staticprivateintnumber_of_invoices()=0;publicinvoice();{number_of_invoices++;}12publicvoidprint(){System.out.println(Thenumberofinvoicesis”+intnumber_of_invoices);}}8、下图是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正类图。OrderItemIncomeOrderProduct1111答:Orderltem与IncomeOrder的关系并不是泛化关系,而应该是包含关系。改正的类图:13[分析与讨论][分析与讨论]1、讨论类图在建模过程中的重要作用。答:类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,还包括类的内部结构。类图描述的是一种静态关系,在系统的整个生命周期中都是有效的。通过分析用例和问题域,就可以得到相关的类,然后再把逻辑上相关的类封装成包,这样可以很好的体现系统的分层结构,是得系统层次关系一目了然。2、总结在设计绘制类图的过程中应注意哪些问题。答:UML类图(ClassDiagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。UML类图是定义其他图的基础,在UML类图基础上,可以使用状态图、协作图、组件图和配置图等进一步描述系统其他方面的特性。14实验三状态图[实验目的和要求]1、掌握状态的定义和组成部分。2、掌握UML中状态的表示方法。3、掌握转换的定义及转换的5要素。4、了解触发事件、监护条件、动作的定义。5、掌握阅读和绘制状态图的方法。[实验内容和步骤]1、什么叫做状态?状态由哪五个部分组成?答:描述系统里静态事物的动态变化。状态机由状态、转换、事件、活动和动作5部分组成。状态图图标分3部分:名称、内部转换和嵌套状态图。2、什么是转换?UML中转换的5要素是什么?答:转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成特定的动作后将发生状态转变,转向另一个目标状态的状态。5要素:源状态、目标状态、触发事件、监护条件、动作。3、触发事件是什么?可以具体分为哪些事件?答:能够引起状态装换的事件。信号、调用和时间段。4、改变事件和监护条件有何异同?答:改变事件能引起动作的执行及状态的改变,改变监护条件能触发转换。5、什么叫做转换?转换可以分为哪几种?答::转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成特定的动作后将发生状态转变,转向另一个目标状态的状态。转换分为:外部转换、内部转换、完成转换、复合转15换。6、状态和对象的关系是怎样的?下面描述中哪些是对象,哪些是状态?支票已付汽车停在那儿小王正在工作答:支票是对象,已付是状态;汽车是对象,停在那儿是状态;小王是对象,正在工作是状态。7、说出下面状态的状态名和各种转换、事件。状态名:Lighting转换:eventSelfTest/defer事件:入口动作entry/turnOndo/blinkFiveTimeseventPowerOff/powerSupplySelf出口动作exit/turnoff8、说出下面状态图所表达的信息。Lightingentry/turnOndo/blinkFiveTim