
《可视化建模与UML》实验指导书[共33页].doc
33页可视化建模与UML实验指导书信息学院目 录实验一 UML建模基础 3实验二 用例图 4实验三 类图 8实验四 对象图 10实验五 面向对象设计基本原则 11实验六 包图 14实验七 交互图 16实验八 活动图 20实验九 交互概述图 22实验十 状态图 23实验十一 构件图 27实验十二 需求建模实例与分析 29实验十三 设计建模实例与分析 30实验十四 数据库建模实例与分析 31实验一 UML建模基础[实验目的和要求]1、 熟悉UML建模工具Visual Paradigm和Rational Rose的基本菜单及操作2、 掌握UML的三大组成部分及各部分作用3、 掌握UML规则和相关机制4、 掌握UML的可见性规则和构造型的作用[实验内容和步骤]1、 练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改2、 认识各种UML关系及可见性符号,并用工具表示出来[分析与讨论]1、总结UML在软件工程中的作用以及使用UML建模的必要性实验二 用例图[实验目的和要求]1、 掌握用例与场景的概念2、 掌握UML用例图的组成、作用以及使用场合3、 掌握用例与用例之间的各种关系。
4、 学习针对具体场景使用用例图进行分析说明的方法5、 掌握用例描述的概念和基本结构,以及用例描述的作用[实验内容和步骤]1、 什么是用例,什么是场景?用例和场景之间的关系是怎样的?答:用例是用户希望系统具备的功能,它定义了系统的行为特征2、 用例图中有哪些组成元素?在UML中是如何表示的?答:用例图的组成元素有参与者、用例、关系、系统3、 用例与用例之间的包含关系、扩展关系和泛化关系各代表什么含义?它们之间有何区别?对以上三种关系各举一例,画出用例图,并进行说明答:用例与用例之间的包含关系实际上就是面向对象语言中对象之间的调用关系,扩展关系实际上就是一种依赖的关系,泛化关系实际上就是面向对象中的继承关系4、 为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,下是一个用例模型的局部:小李认为该模型不符合“用例建模”的思想,存在明显的错误。
请用200字以内说明错误所在,并说明应该如何修改答:用例图是用来显示多个外部参与者以及他们与系统提供的用例之间的联系是用户从系统外部观察系统的功能5、 阅读下面的用例图,说明该图所表达的信息答:客户预定座位,首先检查座位信息,若座位未满则处理等候的队列;若座位已满则不处理等候队列 总台检查座位信息,安排座位 总台通过收款(收取现金或刷银联行卡)办理结账6、 下图是一个描述保险商务系统的简单用例图根据该用例图回答问题a) “签订保险单”用例可能涉及到哪几个实体类? 答:客户、保险员、保险单三个实体类b) 现实生活中签订保单的基本流程如下:客户提出购买需求,保险员根据客户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录如需要根据以上信息,请列举这个用例描述中可能存在扩展事件流 答:a.客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录b.客户阅读保险条款,不同意其中的条款c) 保单管理用例在实际开发过程中可以泛化出若干小用例,列出可能存在的子用例,并且说明这些用例和“保单管理”用例之间应该是什么关系?答:这些用例和保单管理用例是泛化关系。
保单管理可能存在的子用例是保单查询、保单保存 [分析与讨论]1、 总结用例图的重要作用,讨论并指出哪些场合下可以使用用例图答:用例图显示多个外部参与者以及他们与系统提供的用例之间的连接通过用例建模可以对外部的角色以及他们所需要的系统功能建模用例图用于系统分析阶段2、 讨论用例分析技术和结构化分析之间的关系和区别答:区别:结构化系统开发方法是指把整个系统开发过程分成若干阶段,每个阶段进行若干活动,每项活动应用系统标准、规范、方法和技术,完成一个或多个任务,形成符合给定规范的软件产品用例分析是面向对象(Object Oriented)的开发方法联系:它们都可以是软件的开发更容易3、 在使用用例图的时候应该如何确定用例,应注意哪些问题?答:如何确定用例:a 参与者需要从系统中获取哪种功能?及参与者要系统做什么?b 参与者是否需要读取、产生、删除、修改或存储系统中的某种信息?c 系统的状态改变是是否通知参与者?d 是否存在影响系统的外部事件?e 系统需要什么样的输入、输出信息?需要注意的是:一定不要再用例图中使用两种命名方法即在椭圆之外和椭圆之内实验三 UML类图[实验目的和要求]1、 掌握类的定义,类的3要素,UML中类的表示方法。
2、 掌握类与类之间的各种关系代表的含义及表示方法3、 实体类,边界类,控制类,关联类的概念和表示方法4、 接口和抽象类的概念和表示方法 类的多重性关系5、 对一个类图进行相关的描述[实验内容和步骤]1、 简述类的定义,以及类的三要素答:类是对一组具有相同属性、操作、关系和语义事物的描述类的三要素是:类的名称、属性、操作2、 类的属性和方法的可见性有哪些?UML中如何表示?答:类的属性和方法的可见性有protect(符号“#”),private(符号“-”),public(符号“+”)3、 已知三个类A.B和C.其中类A由类B的一个实类和类C的1个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图.答:4、 根据以下描述画出类图,并注明多重性关系:一个学生可以选修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;一个老师可以教多门课程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每门课程可以有0或1本教材,每本教材只能用于一门课程5、 现有一系统需要对商品进行管理,包括添加,删除商品,修改商品信息三项功能,画出系统类图商品信息包括商品编号,商品名称,价格,生产厂商等)6、 如果现在系统需求发生变化,需要能够对损坏商品进行打折,以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?7、 根据下面的代码画出Invoice类的类图,要求标明各属性的类型和可见性以及类方法。
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("The number of invoices is”+ int number_of_invoices);}}8、 下图是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息请指出模型中的错误,说明原因并改正类图[分析与讨论]1、 讨论类图在建模过程中的重要作用2、 总结在设计绘制类图的过程中应注意哪些问题实验四 对象图[实验目的和要求]1、 掌握对象的概念,对象的三大特征,对象的表示方法。
2、 掌握类与对象的关系[实验内容和步骤]1、 什么是对象,对象的三大特征是什么?2、 UML中对象的表示方法有哪些?3、 在下图中最上面的对象的名称是什么?该图表示的意思是什么?请绘制出与其相应的类图4、 说明对象图的适用场景以及它的优缺点[分析与讨论]1、 思考类与对象之间的关系是怎样的?各举几个实例,说明哪些是类,哪些是对象2、 思考在具体场景中应该如何区分类与对象3、 找一段源程序,并绘制出与其相应的对象图实验五 面向对象设计的基本原则[实验目的和要求]1、 掌握面向对象设计的核心思想2、 掌握面向对象设计中的五大原则:单一职责原则、开闭原则、Liskov替换原则、依赖倒置原则和接口隔离原则3、 掌握各原则所代表的具体含义4、 培养对具体案例运用五大原则进行分析和设计的能力[实验内容和步骤]1、 面向对象设计的核心思想是什么,并对其进行说明2、 根据Liskov替换原则,子类可以取代父类出现在任何需要父类的地方下面的类图中,只要可以使用Engine类型的对象,就可以使用SportsEngine类型的对象即Car类的对象可以使用SportsEngine类型的对象但实际情况中,为了避免出现普通汽车使用跑车引擎或者普通引擎被跑车使用的情况,请问如何改进这个类图,使得只有SportsCar类型的对象才能使用SportsEnginee类型的对象?画出改进后的类图。
3、 如下图所示的设计图,员工根据工种可以分为全职(FullTime)和兼职(PartTime)两种,根据工作项目可以分为软件员工和硬件员工在初始设计中,整个类图层次结构缺乏灵活性,如果需要增加一个新的工作项目,则在全职员工和兼职员工下都要增加子类,提高了工作量如何修改原始设计以便更轻松的增加工作项目或者新的工种?画出改进后的类图4、 下图设计是否符合面向对象设计原则?应如何改进?[分析与讨论]1、 总结在面向对象设计中灵活运用五大原则有何重要意义2、 讨论在实际运用五大原则时应注意哪些问题3、 现拟建立一个网上售书系统客户对网站的描述如下,要求网站必须具备以下的功能l 顾客可注册个人信息和申请个人账号l 顾客可浏览书籍信息(包括作者,出版社,目录,摘要,价格,库存情况等),可按作者和书名分别进行搜索l 顾客可把书籍加入购物车,也可删除购物车中书籍l 购物车物品确认后顾客可提交购物信息,进行支付(暂时只提供银行卡支付一种手段),并可在订单物品被发出之前取消或再编辑订单l 顾客可查看历史交易记录l 网站设有管理员和工作人员其中网站管理员负责管理客户信息,网站的维护,以及网站信息的更新和管理。
工作人员负责处理客户订单,并通知发货单位(可能是网站仓库,也可能是其他供应商)发送货物。
