《Visual Modeling and UML》实验指导.docx
《《Visual Modeling and UML》实验指导.docx》由会员分享,可在线阅读,更多相关《《Visual Modeling and UML》实验指导.docx(22页珍藏版)》请在冰豆网上搜索。
《VisualModelingandUML》实验指导
VisualModelingandUML
实验指导
目录
实验1UML建模基础1
实验2用例图2
实验3类图6
实验4对象图8
实验5面向对象设计基本原则9
实验6包图12
实验7交互图14
实验8活动图18
实验9交互概述图20
实验10状态图21
实验11构件图25
实验12需求建模实例与分析27
实验13设计建模实例与分析28
实验14数据库建模实例与分析29
实验1UML建模基础
[实验目的和要求]
1、熟悉UML建模工具VisualParadigm和RationalRose的基本菜单及操作。
2、掌握UML的三大组成部分及各部分作用。
3、掌握UML规则和相关机制。
4、掌握UML的可见性规则和构造型的作用。
[实验内容和步骤]
1、练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改。
2、认识各种UML关系及可见性符号,并用工具表示出来。
[分析与讨论]
1、总结UML在软件工程中的作用以及使用UML建模的必要性。
实验2用例图
[实验目的和要求]
1、掌握用例与场景的概念。
2、掌握UML用例图的组成、作用以及使用场合。
3、掌握用例与用例之间的各种关系。
4、学习针对具体场景使用用例图进行分析说明的方法。
5、掌握用例描述的概念和基本结构,以及用例描述的作用。
[实验内容和步骤]
1、什么是用例,什么是场景?
用例和场景之间的关系是怎样的?
2、用例图中有哪些组成元素?
在UML中是如何表示的?
3、用例与用例之间的包含关系、扩展关系和泛化关系各代表什么含义?
它们之间有何区别?
对以上三种关系各举一例,画出用例图,并进行说明。
4、为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。
主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。
该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,下是一个用例模型的局部:
小李认为该模型不符合“用例建模”的思想,存在明显的错误。
请用200字以内说明错误所在,并说明应该如何修改。
5、阅读下面的用例图,说明该图所表达的信息。
6、下图是一个描述保险商务系统的简单用例图。
根据该用例图回答问题。
a)“签订保险单”用例可能涉及到哪几个实体类?
b)现实生活中签订保单的基本流程如下:
客户提出购买需求,保险员根据客户需求选择相应的保险服务,客户阅读保险条款,同意后打印保单样据,客户签字并支付保金,保单开始生效,保险员做相关系统纪录。
如需要根据以上信息,请列举这个用例描述中可能存在扩展事件流。
c)保单管理用例在实际开发过程中可以泛化出若干小用例,列出可能存在的子用例,并且说明这些用例和“保单管理”用例之间应该是什么关系?
7、在一个TelephoneSystem(电话系统)中,用户可以使用电话卡或对方付款两种办法来打电话。
1)请画出表示该场景的用例图。
2)在前图的基础上,继续画出可能存在的包含用例和扩展用例。
[分析与讨论]
1、总结用例图的重要作用,讨论并指出哪些场合下可以使用用例图。
2、讨论用例分析技术和结构化分析之间的关系和区别。
3、在使用用例图的时候应该如何划分用例,应注意哪些问题?
4、继续分析类图实验中网上书店实例,画出系统的用例图。
实验3UML类图
[实验目的和要求]
1、掌握类的定义,类的3要素,UML中类的表示方法。
2、掌握类与类之间的各种关系代表的含义及表示方法。
3、实体类,边界类,控制类,关联类的概念和表示方法。
4、接口和抽象类的概念和表示方法。
类的多重性关系。
5、对一个类图进行相关的描述。
[实验内容和步骤]
1、简述类的定义,以及类的三要素
2、类的属性和方法的可见性有哪些?
UML中如何表示?
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则是产品信息。
请指出模型中的错误,说明原因并改正类图。
[分析与讨论]
1、讨论类图在建模过程中的重要作用。
2、总结在设计绘制类图的过程中应注意哪些问题。
实验4对象图
[实验目的和要求]
1、掌握对象的概念,对象的三大特征,对象的表示方法。
2、掌握类与对象的关系。
[实验内容和步骤]
1、什么是对象,对象的三大特征是什么?
2、UML中对象的表示方法有哪些?
3、在下图中最上面的对象的名称是什么?
该图表示的意思是什么?
请绘制出与其相应的类图。
4、说明对象图的适用场景以及它的优缺点。
[分析与讨论]
1、思考类与对象之间的关系是怎样的?
各举几个实例,说明哪些是类,哪些是对象。
2、思考在具体场景中应该如何区分类与对象。
3、找一段源程序,并绘制出与其相应的对象图。
实验5面向对象设计的基本原则
[实验目的和要求]
1、掌握面向对象设计的核心思想。
2、掌握面向对象设计中的五大原则:
单一职责原则、开闭原则、Liskov替换原则、依赖倒置原则和接口隔离原则。
3、掌握各原则所代表的具体含义。
4、培养对具体案例运用五大原则进行分析和设计的能力。
[实验内容和步骤]
1、面向对象设计的核心思想是什么,并对其进行说明。
2、根据Liskov替换原则,子类可以取代父类出现在任何需要父类的地方。
下面的类图中,只要可以使用Engine类型的对象,就可以使用SportsEngine类型的对象。
即Car类的对象可以使用SportsEngine类型的对象。
但实际情况中,为了避免出现普通汽车使用跑车引擎或者普通引擎被跑车使用的情况,请问如何改进这个类图,使得只有SportsCar类型的对象才能使用SportsEnginee类型的对象?
画出改进后的类图。
3、如下图所示的设计图,员工根据工种可以分为全职(FullTime)和兼职(PartTime)两种,根据工作项目可以分为软件员工和硬件员工。
在初始设计中,整个类图层次结构缺乏灵活性,如果需要增加一个新的工作项目,则在全职员工和兼职员工下都要增加子类,提高了工作量。
如何修改原始设计以便更轻松的增加工作项目或者新的工种?
画出改进后的类图。
4、下图设计是否符合面向对象设计原则?
应如何改进?
[分析与讨论]
1、总结在面向对象设计中灵活运用五大原则有何重要意义。
2、讨论在实际运用五大原则时应注意哪些问题。
3、现拟建立一个网上售书系统。
客户对网站的描述如下,要求网站必须具备以下的功能。
●顾客可注册个人信息和申请个人账号。
●顾客可浏览书籍信息(包括作者,出版社,目录,摘要,价格,库存情况等),可按作者和书名分别进行搜索。
●顾客可把书籍加入购物车,也可删除购物车中书籍。
●购物车物品确认后顾客可提交购物信息,进行在线支付(暂时只提供银行卡支付一种手段),并可在订单物品被发出之前取消或再编辑订单。
●顾客可查看历史交易记录。
●网站设有管理员和工作人员。
其中网站管理员负责管理客户信息,网站的维护,以及网站信息的更新和管理。
工作人员负责处理客户订单,并通知发货单位(可能是网站仓库,也可能是其他供应商)发送货物。
●销售货品都需进行记录,管理员可查询所有记录。
●客户可选择打印电子收据。
试找出系统中的类,确定各个类的属性,并画出类图。
实验6包图
[实验目的和要求]
1、掌握UML包的概念和作用。
2、掌握包与包之间的各种依赖关系的区别。
3、掌握建立包与包之间依赖关系的方法。
4、掌握建立包图过程中需遵循的原则。
[实验内容和步骤]
1、包属于UML中的何种事物?
有何作用?
2、UML中包的表示方法有哪几种?
3、包与包之间存在哪几种关系?
4、包与包之间的依赖关系有何特点?
5、如何避免包与包之间出现循环依赖关系?
各举一例。
6、建立包图应注意哪些问题?
7、根据下图判断下面哪句话正确的说明了包之间的依赖关系。
A)对Package1包中的元素做了修改后,需检查Package2包中的元素和Package3包中的元素是否要做相应修改。
B)对Package1包中的元素做了修改后,需检查Package2包中的元素是否需要做相应修改,如果是,则需继续检查是否Package3包中元素也要做相应修改。
C)对Package3包中的元素做了修改后,需检查Package2包中的元素是否需要做相应修改,如果是,则需继续检查是否Package1包中元素也要做相应修改。
D)对Package3包中的元素做了修改后,需检查Package2包中的元素和Package1包中的元素是否要做相应修改。
8、下面包图设计中是否存在问题?
应如何改进。
A)
B)
[分析与讨论]
1、结合一个具体例子,分析UML建模过程中包图所起的作用。
实验7交互图
[实验目的和要求]
1、掌握交互图的概念及作用。
2、掌握UML中静态图形和动态图形的区别和联系。
3、掌握UML交互图中的三种具体图形:
时序图,通信图和定时图,了解它们各自的组成元素、特定作用和适用场合。
4、重点掌握时序图的画法以及其中元素所代表的意义。
5、掌握结合鲁棒分析方法设计交互图的过程。
[实验内容和步骤]
1、什么是交互?
请举出2~3个交互的实例。
2、UML中定义了哪几种交互图?
它们之间各有什么区别和联系?
3、在顺序图和通信图中,应如何表示“循环”,“判断”等结构?
4、什么是消息?
消息在交互中扮演什么角色?
5、交互图中有哪几种消息?
它们之间具体有何分别?
应如何表示?
6、已知某一个用例实现的类图如下,下面四个选项中的时序图(图中省略了消息编号、名称和返回消息),画出一个能和该类图对应的时序图。
7、假设有一系统得协作图局部如图所示,print方法的功能是将传入的参数的值打印在屏幕上,fact方法是计算阶乘,如果test的初值为1,那么最终将打印出什么?
(写出计算过程)
8、根据一下JAVA源代码绘制出相应的顺序图和通信图。
publiceclassSale{
privatelistlineItems=newArrarList();
publicMoneygetTotal()
{
Moneytotal=newMoney();
Moneysubtotal=null;
for(SalesLineItemlineItem:
lineItems)
{
subtotal=lineItem.getSubtotal();
total.add(Subtotal);
returntotal;
}
}
}
[分析与讨论]
1、讨论并总结在建模过程中运用交互图的重要作用及意义。
2、继续前面的网上书店实例,为该实例中涉及的系统交互设计交互图。
上图是购物网站的“编辑购物车”用例中的部分的类图
用例描述:
基本事件流:
用户在ShoppingCart页面上修改购物车中商品数量,然后单击Update按钮。
系统存储新的数量,然后计算并显示该商品的新价格。
用户单击ContinueShopping按钮。
系统将控制权返回给浏览商品用例。
扩展事件流:
用户将商品数量改为0,则系统从购物车中删除该商品
用户点击Delete按钮,系统从购物车中删除该商品
用户点击CheckOut按钮,系统将控制权转到结账用例。
用户点击ClearCart按钮,系统将购物车内所有商品删除。
请根据给出的类图,在下面的顺序图上画出“编辑购物车”用例内各个事件流(注意消息和类图提供的方法保持一致)。
实验8活动图
[实验目的和要求]
1、掌握活动的概念以及表示方法。
2、掌握活动图中个元素表示的意义和表示方法。
3、掌握分支、监护条件、分岔、汇合和泳道的概念。
4、掌握阅读和绘制活动图的方法。
5、掌握UML的可见性规则和构造型的作用。
[实验内容和步骤]
1、什么是活动?
UML中如何表示活动?
2、活动图中包括哪些元素?
分别如何表示?
3、分岔和分支有什么区别,分别适用于什么样的建模目标?
4、活动图中监护条件和改变时间分别有何作用?
两者间的区别是什么?
5、说明下面活动图所表达的信息。
6、用活动图表示for(i=0;i<9;i++)循环。
7、对于如下图所示的活动图,最大可能的并发线程数是几个?
[分析与讨论]
1、总结UML在软件工程中的作用以及使用UML建模的必要性。
2、分小组讨论利用“支付宝”进行网上购物的活动过程,并画出活动图,关于支付宝的相关说明可以登录
3、针对前面的网上书店系统,画出用户购书,商家发货等过程的活动图。
实验9交互概述图
[实验目的和要求]
1、熟悉交互概述图的概念及作用。
2、掌握交互概述图的组成。
3、掌握交互概述图的阅读和绘制方法。
[实验内容和步骤]
1、交互概述图是由哪两种UML图形结合而成的?
2、为什么要引入交互概述图?
它的使用场合是什么?
3、交互概述图有哪两种形式?
各举一例并进行比较,说出每个形式的适用场合。
[分析与讨论]
1、结合一个具体的实例讨论是否有必要引入交互概述图,为什么?
实验10状态图
[实验目的和要求]
1、掌握状态的定义和组成部分。
2、掌握UML中状态的表示方法。
3、掌握转换的定义及转换的5要素。
4、了解触发事件、监护条件、动作的定义。
5、掌握阅读和绘制状态图的方法。
[实验内容和步骤]
1、什么叫做状态?
状态由哪五个部分组成?
2、什么是转换?
UML中转换的5要素是什么?
3、触发事件是什么?
可以具体分为哪些事件?
4、改变事件和监护条件有何异同?
5、什么叫做转换?
转换可以分为哪几种?
6、状态和对象的关系是怎样的?
下面描述中哪些是对象,哪些是状态?
支票已付
汽车停在那儿
小王正在工作
7、说出下面状态的状态名和各种转换、事件。
8、说出下面状态图所表达的信息。
9、说出下面状态图所表达的信息,并指出蓝色部分代表的含义。
10、根据下面状态图回答问题。
、
上图是一个表示电梯系统的状态图,该系统中Controller类和Motor类的详细定义如下图所示:
根据类图,完成上面状态图中A,B,C,D,E,F处的内容。
11、某销售POS机工作流程如下:
当客户到收银台后,收银员逐一输入用户购买的商品,然后计算总金额,等待用户付款,确定支付成功之后,完成收银,等待下一个用户。
请为其画出对应的状态图。
[分析与讨论]
1、讨论思考状态图在UML建模中可以起到什么样的作用。
2、思考什么样的情况下适合引入状态图进行建模。
实验11构件图
[实验目的和要求]
1、掌握构件的概念,了解引入构件的原因。
2、掌握构件的要素,构件和类的比较。
3、掌握UML中构件的表示方法。
4、掌握阅读和绘制构件图的方法。
5、了解构件图的应用。
[实验内容和步骤]
1、什么是构件?
构件有何作用?
2、构件的五个要素是什么?
3、构件和类的关系是怎样的?
它们有何异同之处?
4、UML中构件有哪些表示方法,分别代表什么含义?
5、构件有哪两种接口?
分别如何表示?
6、下图是对某源代码建模后的构件图,请说出其表达的信息。
7、在一张基本构件图中,构件之间最常见的关系是什么?
[分析与讨论]
1、讨论构件图适用于哪些建模需求。
实验12需求建模实例与分析
[实验目的和要求]
1、了解软件工程的开发过程
2.掌握需求和需求分析的概念
3.掌握需求分析的过程
4.掌握需求分析的要点和误区
5.学习如何用UML对需求建模
6.分析需求建模实例
[实验内容和步骤]
1、软件工程的开发过程分为哪几部分?
2、什么是需求?
需求包括哪几个方面?
3、什么是需求分析?
需求分析有何重要意思?
需求分析可以分为哪几个步骤?
4、进行需求分析的时候要注意哪些要点和误区?
5、需求建模实例分析(具体内容见PPT)
[分析与讨论]
1、有人说:
需求分析类的各种文档在某种意义上来说是文档体系中最没有存在必要的。
你同意么?
为什么?
2、讨论:
如何把所学的UML知识运用到需求建模的过程中去?
实验13设计建模实例与分析
[实验目的和要求]
1、了解设计建模的内容
2、学习掌握架构建模的定义和实施。
3、学习掌握构件建模的定义和实施。
4、学习使用UML进行设计建模。
5、设计建模实例分析。
[实验内容和步骤]
1、什么是设计建模?
2、在RUP中,设计工作流主要包括哪些活动?
简要说明这些活动的内容以及将产生的结果。
3、以下关于架构建模的描述中,哪些说法不正确?
并改正。
(1)根据RUP的建议,架构设计应该包括逻辑视图和物理视图。
(2)架构设计的主要工作就是确定类与类之间的关联关系。
(3)分层模式是最常见的架设模式。
4、构件建模主要应从哪两个角度进行设计?
5、说明网状模式的特点,并说明它使用的领域。
6、设计建模实例。
(见相关PPT)
[分析与讨论]
1、讨论总结设计建模和架构建模的重要意义。
2、小组讨论:
如果你要开发一个类似于“新浪点点通”的应用系统,那么采用哪种架构模式比较理想?
说明并阐述理由。
实验14数据库建模实例与分析
[实验目的和要求]
1、掌握数据库模型的基本概念。
2、掌握数据库模型的三种形式。
3、掌握数据库模型与类模型之间的关系。
4、掌握概念模型建模,逻辑模型建模,物理模型建模的基本内容和步骤。
5、数据库建模实例分析
[实验内容和步骤]
1、什么是数据库模型?
数据库模型有何作用?
2、简单说明数据库模型与类模型的异同点。
3、以下关于数据模型三种形式的说法是否正确?
应如何改正?
(1)数据库建模中的逻辑数据模型和面向对象软件开发中的概念模型十分类似。
(2)在逻辑模型中,一般只标识出数据实体,而不考虑实体之间的关系。
(3)只有在物理模型中才会列出数据实体的属性。
(4)除了概念模型之外,另外两种模型都是与具体的数据库管理系统相关的。
(5)对于实体属性的数据类型和数据长度,一般只在物理模型中体现。
4、数据库建模实例分析(见PPT)
[分析与讨论]
1、讨论数据库建模的场合以及需要注意的相关问题。
2、结合数据库建模的例子,说说数据库建模在软件建模中的重要作用及意义。