UML实验报告Word文件下载.docx
《UML实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《UML实验报告Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
UML建模基础实验一
实验二用例图
实验三UML类图
实验四对象图
图实验五包
实验六动态模型图
中南民族大学管理学院学生实验报告
实验
(一)UML建模基础
实验时间:
实验目的
1.熟悉UML建模工具RationalRose的基本菜单及操作。
2.掌握UML的三大组成部分及各部分作用。
3.掌握UML的可见性规则和构造型的作用。
实验内容
1.练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改。
2.认识各种UML关系及可见性符号,并用工具表示出来。
答:
各种UML关系如下:
UM关表示方
关联关系
依赖关系
泛化关系
实现关系
表示方法可见性
“Public公有()+”Private私有()“—””#“)Protected受保护(.
分析与讨论
1.总结UML在软件工程中的作用以及使用UML建模的必要性。
统一建模语言(UML)是用来对软件密集系统进行可视化建模的一种语言,也是为面向对象开发系统的产品进行说明、可视化、构造和编制文档的一种语言。
UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。
当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。
UML可以贯穿软件开发周期中的每一个阶段,最适于数据建模、业务建模、对象建模、组件建模。
UML展现了一系列最佳工程实践,这些最佳实践在对大规模、复杂系统进行建模方面,特别是在软件架构层次方面已经被验证有效。
UML是一种功能强大的,面向对象的可视化系统分析的建模语言,它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠,更完善的系统模型,从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性。
指导教师批阅:
实验
(二)用例图
1.掌握用例的概念、UML用例图的组成、作用以及使用场合。
2.掌握用例与用例之间的各种关系。
3.用RationalRose工具练习教材中的用例图。
1.用例图中有哪些组成元素?
在UML中是如何表示的?
用例图有:
用例、参与者、关联、(系统边界)等元素;
用来显示在系统(或其它实体)内的用例与系统参与者之间的关系;
主要用于需求获取、定义和分析。
2.用例与用例之间的包含关系、扩展关系和泛化关系各代表什么含义?
它们之间有何区别?
对以上三种关系各举一例,画出用例图,并进行说明。
包含关系:
用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。
基本用例描述在多个用例中都有的公共行为。
包含关系本质上是比较特殊的依赖关系,它比一般的依赖关系多了一些语义。
在包含关系中箭头的方向是从基本用例到包含用例。
扩展关系:
在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展用例,原有的用例叫做基础用例,从扩展用例到基础用例的关系就是扩展关系。
扩展关系的基本含义和泛化关系类似,但在扩展关系中,对于扩展用例有更多的规则限制,基本用例必须声明扩展点,扩展用例只能在扩展点上增加新的行为和含义。
泛化关系:
用例的泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。
3.为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。
主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、
业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。
该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,
(1)画出上述系统的用例图;
(2)下是一个用例模型的局部:
打开房源信息页<
<
include>
登录信房产经纪录入房源信确认提交信息修改房源信息
小李认为该模型不符合“用例建模”的思想,存在明显的错误。
请说明错误所在,并说明应该如何修改。
用例是系统参与者与系统在交互过程中所需要完成的事务。
确定参与者是房产经济人,还要分析系统所涉及的问题领域和系统运行的主要任务。
根据系统的需求分析可确定:
作为一个物业信息管理系统,要实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。
参与者有房产经纪人,对于房产经纪人来说,系统维护操作主要包括:
录入,修改房源信息而登录和确认信息是包含在登入包含关系的图标按钮应用虚线箭头。
修改后应该和修改中的,是:
4.阅读下面的用例图,说明该图所表达的信息。
参与者是客户和服务人员。
主要关系有包含关系和拓展关系。
当有客户来预定座位时,如果前面有别的客户,他就进行等待,服务人员进行信息查询,把空闲座位分配给客户,然后办理结账,有现金结账和银行卡(必须是银联POS系统)结账两种方式供客户选择,然后收款。
5.下图是一个描述保险商务系统的简单用例图。
根据该用例图回答问题。
(1)“签订保险单”用例可能涉及到哪几个实体类?
有客户和保险员两个实体类。
(2)现实生活中签订保单的基本流程如下:
客户提出购买需求,保险员根据客户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录。
如需要根据以上信息,请列举这个用例描述中可能存在扩展事件流。
客户阅读保险条款,同意后客户签字并支付保金,否则不同意就不签订保单。
(3)保单管理用例在实际开发过程中可以泛化出若干小用例,列出可能存在的子用例,并且说明这些用例和“保单管理”用例之间应该是什么关系?
单查询和保单保存可能是存在的子用例,这些用例和“保单管理”用例之间应该是泛化关系。
6.在一个TelephoneSystem(电话系统)中,用户可以使用电话卡或对方付款两种办法来打电话。
(1)请画出表示该场景的用例图。
(2)在前图的基础上,继续画出可能存在的包含用例和扩展用例。
1.总结用例图的重要作用,讨论并指出哪些场合下可以使用用例图。
用例图显示多个外部参与者和它们与系统提供的用例之间的链接。
通过用例建模可以对外部的角色以及它们所需要的系统功能建模。
用例图可视化地表达了系统的需求,具有直观、规范等优点,克服了纯文字性说明的不足。
用例图可用于系统的分析阶段。
2.在使用用例图的时候应该如何划分用例,应注意哪些问题?
确定用例:
1)参与者需要从系统中获取哪些功能及参与者要求系统做些什么?
2)参与者是否需要读取、产生、删除、修改或是存储系统中的某些信息?
3)系统状态的改变是否通知参与者?
4)是否存在影响系统的外部事件?
5)系统需要什么样的输入、输出信息?
需注意,在用例图中,一定不要使用两种命名的方法,即在椭圆之内命名又在椭圆之外命名。
3.扩展练习如下:
需求描述如下:
某学校的网上选课系统主要包括如下功能:
管理员通过系统界面进入,建立本学期要开的各种课程,将课程信息保存在数据库中并可以对课程进行改动和删除。
学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:
查询已选课程、选课以及付费。
同样,通过业务层,这些操作结果存入数据库中。
根据以上描述,绘制系统的用例图。
用例“修改课程”的描述
用例名称修改课程
UC0001
标识符
课程管理员接到通知后修改已有课程信息用例描述课程管理员参与者
1优先级通过审查状态
前置条件课程管理员登录课程,课程已存在
系统修改已有课程信后置条课程管理员录入课程基本操作流
系统检查该课程是否已存在
系统显示该课程信息系统修改已有课程信息可选操作流系统检查该课程不存在,系统修改已有课被泛化的用被包含的用被扩展的用,定义基本操作流程年月修改历史记201
指导教师批阅:
实验(三)UML类图
1.掌握类的定义,类的3要素,UML中类的表示方法。
掌握类与类之间的各种关系代表的含义及表示方法。
2.
实体类,边界类,控制类,关联类的概念和表示方法。
3.
接口和抽象类的概念和表示方法。
类的多重性关系。
4.
对一个类图进行相关的描述。
5.
1.类的属性和方法的可见性有哪些?
UML中如何表示?
类中属性的可见性主要有三种,分别是公有类型(public)、受保护类型(protected)和私有类型(private),在RationalRose2003中,类的操作设置中添加了实现类型(Implementation)。
在UML中公有类型用“+”表示,私有类型用“—”表示,受保护类型用“#”表示。
2.已知三个类A.B和C.其中类A由类B的一个实类和类C的1个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图。
3.根据以下描述画出类图,并注明多重性关系:
一个学生可以选修多门课程,也可能没有任何课程;
一门课程可以被多个学生选修;
一个老师可以教多门课程或者不教课;
每门课程至少有一个老师,也可以有多个老师任教;
每门课程可以有0或1本教材,每本教材只能用于一门课程。
4.现有一系统需要对商品进行管理,包括添加,删除商品,修改商品信息三项功能,画出系统类图。
(商品信息包括商品编号,商品名称,价格,生产厂商等)
5.如果现在系统需求发生变化,需要能够对损坏商品进行打折,以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?
6.根据下面的代码画出Invoice类的类图,要求标明各属性的类型和可见
性以及类方法。
publicclassInvoice
{
publicdoubleamount;
publicDatedate=newDate();
publicstringcustomer;
publicstringspecification;
publicstringadministrator=“unspecified”;
staticprivateintnumber_of_