《UML》实验指导书吐血推荐史上最全精华版.docx
《《UML》实验指导书吐血推荐史上最全精华版.docx》由会员分享,可在线阅读,更多相关《《UML》实验指导书吐血推荐史上最全精华版.docx(78页珍藏版)》请在冰豆网上搜索。
《UML》实验指导书吐血推荐史上最全精华版
UML
实验指导书
适用专业:
软件技术
执笔人:
周辉奎
南昌工学院信息学院编
二〇一一年六月
目录
实验项目一熟悉UML开发工具MicrosoftVisio20071
实验项目二绘制UML各种模型的符号6
实验项目三绘制UML常见的关系图10
实验项目四类图16
实验项目五对象图29
实验项目六包图32
实验项目七用例图35
实验项目八交互图46
实验项目九活动图51
实验项目十状态机图58
实验项目十一构件图62
实验项目十二部署图64
实验项目十三需求建模实例与分析66
实验项目十四设计建模实例与分析67
实验项目十五数据库建模实例与分析68
实验项目一熟悉UML开发工具MicrosoftVisio2007
一、实验目的和要求:
(一)目的:
1、掌握UML开发工具MicrosoftVisio2007的安装方法。
2、熟悉UML开发工具MicrosoftVisio2007的使用方法。
(二)要求:
1、认真做好实验前的各项准备工作,熟悉实验内容和机器操作流程。
2、遵守实验室规章制度和实验课堂教学纪律。
3、认真完成实验任务,填写实验报告。
4、熟悉MicrosoftVisio2007的UML建模绘图界面。
二、实验时数:
2学时
三、实验器材:
方正电脑、MicrosoftVisio2007
四、实验内容或步骤:
(一)内容:
MicrosoftVisio2007的安装、熟悉建模绘图环境。
绘图窗体介绍
Visio2007的主界面由标题栏、菜单栏、工具栏、工作区和状态栏以及右边的在线帮助等组成。
分别介绍如下:
●绘图页面:
可以在该区域生成并编辑图形。
●绘图窗口:
可放置绘图页面及其它组件的平台。
●标题栏:
标题栏用来显示当前正在编辑的模型名称
●控制按钮:
用来控制最大/最小化或关闭Visio2007窗口。
●滚动条:
可实现绘图页的水平或垂直滚动。
●标尺:
每个绘图页面的水平或垂直滚动。
●网格:
在绘图时对图形的位置进行校正,而在打印时并不显示出来。
●状态栏:
随时反映出当前操作和当前绘图页面的一些重要信息。
●绘图标签:
显示了该绘图页面的名称
●模具:
是集中存放各种图件的仓库。
●图件:
也称为形状,是Visio2007中核心元素之一。
●任务窗格、菜单栏、工具栏等。
(二)步骤:
1、进入Visio的UML建模绘图界面
通过“开始”|“程序”,运行MicrosoftOfficeVisio2007,出现MicrosoftVisio界面。
方法一:
在左侧的“类别”区域中单击“软件和数据库”,然后在右侧的“特色模板”中单击“UML模型图”,则进入Visio的UML建模绘图界面。
模板类别
特色模板
方法二:
单击菜单“文件”|“新建”|“软件和数据库”|“UML模型图”。
2、熟悉UML建模绘图界面
在Visio的UML建模绘图界面中,最大的白色区域就是绘图区。
左上方的“形状”窗口就是Visio的UML元素调板,它由很多的标签页组成。
每个标签页提供了一个特定的UML图标。
左下方的“模型资源管理器”就是Visio的字典,字典就是所创建的所有元素及其属性的记录的集合。
当Visio打开并准备开始UML绘图的时候,“UML静态结构”标签页就会激活,我们就可以创建UML模型(如类图、对象图、包图、用例图、交互图、活动图等等)。
UML建模绘图界面
“形状”窗口(UML图的类型)
“模型资源管理器”
绘图区(将需要的图件用鼠标拖动到绘图区)
将所有的图件选好,然后通过联系组成UML图形
五、注意事项:
1、注意安装过程中的选择。
六、练习项目及思考题:
1、在安装过程中如何选择?
2、实验回去自行安装MicrosoftVisio2007。
实验项目二绘制UML各种模型的符号
一、实验目的和要求:
(一)目的:
1、掌握UML基本图形的绘制;
2、熟悉VISIO使用环境。
(二)要求:
1、认真做好实验前的各项准备工作,熟悉实验内容和机器操作流程。
2、遵守实验室规章制度和实验课堂教学纪律。
3、认真完成实验任务,填写实验报告。
4、熟悉MicrosoftVisio2007的UML建模绘图界面。
二、实验时数:
2学时
三、实验器材:
方正电脑、MicrosoftVisio2007
四、实验内容或步骤:
(一)内容:
UML基本图形的绘制。
(二)步骤:
1、进入Visio的UML建模绘图界面
通过“开始”|“程序”,运行MicrosoftOfficeVisio2007,出现MicrosoftVisio界面。
方法一:
在左侧的“类别”区域中单击“软件和数据库”,然后在右侧的“特色模板”中单击“UML模型图”,则进入Visio的UML建模绘图界面。
模板类别
2、UML基本图形的绘制
●类图
●对象图
●用例
●参与者
●节点
●状态
●包
●注解(注释)
●UML图中有多种关系
关联:
连接(connect)模型元素及链接(link)实例。
依赖:
表示一个元素以某种方式依赖于另一种元素。
泛化:
表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化。
聚合:
表示整体与部分的关系。
聚合关系
组合关系
泛化关系
实现关系
扩展关系
关联关系
五、注意事项:
要绘制一个外观整洁的图,您应该避免:
1、大小不一的框
2、对角线
3、交叉线
4、曲线
5、混乱的图
6、不必要的细节,过度美化
实验项目三绘制UML常见的关系图
一、实验目的和要求:
(一)目的:
1、掌握UML常见关系图形的绘制;
2、熟悉VISIO使用环境。
(二)要求:
1、认真做好实验前的各项准备工作,熟悉实验内容和机器操作流程。
2、遵守实验室规章制度和实验课堂教学纪律。
3、认真完成实验任务,填写实验报告。
4、熟悉MicrosoftVisio2007的UML建模绘图界面。
二、实验时数:
2学时
三、实验器材:
方正电脑、MicrosoftVisio2007
四、实验内容或步骤:
(一)内容:
UML常见关系图形的绘制。
(二)步骤:
1、进入Visio的UML建模绘图界面
通过“开始”|“程序”,运行MicrosoftOfficeVisio2007,出现MicrosoftVisio界面。
方法一:
在左侧的“类别”区域中单击“软件和数据库”,然后在右侧的“特色模板”中单击“UML模型图”,则进入Visio的UML建模绘图界面。
模板类别
2、UML常见关系图形的绘制
●泛化关系
●实现关系
●扩展关系
●包含关系
●扩展、包含关系举例
书店借书系统
订餐预约系统的用例模型
3、UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下列描述的()中。
①用例及其协作之间是(A)关系。
②类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是(C)关系。
③在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是(B)关系。
④森林和树木之间是(E)关系。
⑤在MFC类库中,Window类和DialogBox类之间是(D)关系。
A实现B关联C依赖D泛化E聚合
五、注意事项:
要绘制一个外观整洁的图,您应该避免:
1、大小不一的框
2、对角线
3、交叉线
4、曲线
5、混乱的图
6、不必要的细节,过度美化
实验项目四类图
一、实验目的和要求:
(一)目的:
1、掌握类的定义,类的3要素,UML中类的表示方法。
2、掌握类与类之间的各种关系代表的含义及表示方法。
3、关联类、模板类、主动类、嵌套类的概念和表示方法。
4、接口和抽象类的概念和表示方法,类的多重性关系。
5、对一个类图进行相关的描述。
(二)要求:
1、认真做好实验前的各项准备工作,熟悉实验内容和机器操作流程。
2、遵守实验室规章制度和实验课堂教学纪律。
3、认真完成实验任务,填写实验报告。
二、实验时数:
4学时
三、实验器材:
安装有UML建模工具MicrosoftVisio2007软件的PC机一台。
四、实验内容或步骤:
1、简述类的定义,以及类的三要素。
答:
类是对一组具有相同属性、操作、关系和语义事物的描述。
类的三要素是:
类的名称、属性、操作。
2、类的属性和方法的可见性有哪些?
UML中如何表示?
答:
类的属性和方法的可见性有protect(符号“#”),private(符号“-”),public(符号“+”)
3、指出下图中类图,回答问题?
a.图中类的名字是:
b.类中的成员属性是:
c.类中的成员属性的访问可见性是:
d.类中的行为(方法)是:
e.类中的成员行为(方法)的访问可见性是:
答:
a.类的名字是Login,
b.类中的成员属性是sName、sPass,
c.类中的成员属性是私有
d.类中的行为(方法)是checkUser()
e.类中的成员行为(方法)的访问可见性是公共
4、已知三个类A.B和C.其中类A由类B的一个实类和类C的1个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图.
答:
5、根据以下描述画出类图,并注明多重性关系:
一个学生可以选修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;一个老师可以教多门课程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每门课程可以有0或1本教材,每本教材只能用于一门课程。
答:
6、现有一系统需要对商品进行管理,包括添加,删除商品,修改商品信息三项功能,画出系统类图。
(商品信息包括商品编号,商品名称,价格,生产厂商等)
答:
7、如果现在系统需求发生变化,需要能够对损坏商品进行打折,以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?
答:
8、根据下面的代码画出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、请为下面这段编译正确的代码,绘制类图。
pulicclassStudent{
privateStringname;
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetName(){
returnthis.name;
}
}
9、下图是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。
请指出模型中的错误,说明原因并改正类图。
答:
根据题意和模型不难得知,一个入库单是由多个入库单项(OrderItem)组成的,因此不可能只涉及一个产品,合理的方式应该是入每个入库单项(OrderItem)与产品一对一关联。
即应该绘制为:
10、创建一个类图。
下面给出创建类图所需的信息。
●学生(student)可以是在校生(undergraduate)或者毕业生(graduate)。
●在校生(undergraduate)可以是助教(tutor)。
●一名助教(tutor)指导一名学生(student)。
●教师(Teacher)和教授(Professor)属于不同级别的教员(Instructor)。
●一名教师助理(TeacherAssistant)可以协助一名教师(Teacher)和一名教授,一名教师(Teacher)只能有一名教师助理(TeacherAssistant),一名教授(Professor)可以有5名教师助理(TeacherAssistant)。
●教师助理(TeacherAssistant)是毕业生(graduate)。
创建类图的步骤如下:
(1)将学生可以是在校生或者毕业生建模为3个类:
Student、UnderGraduate和Graduate,其中,后两个类是Student类的子类。
(2)为“在校生可以是助教的一种”建立模型,即建立UnderGraduate类的另一个超类Tutor。
(3)通过创建从Tutor到Student的关联(名为tutors),建立一名助教指导一名学生的模型。
(4)将“教师和教授属于不同级别的教员”建模为3个类:
Instructor、Teacher和Professor,其中,后两个类是Instructor类的子类。
(5)建立“一名教师助理可以协助一名教师和一名教授,一名教师只能有一名教师助理,一名教授可以有5名教师助理”的模型。
创建TeacherAssistant类,并使其与Teacher类和Professor类都建立关联。
(6)将TeacherAssistant类建模为Graduate类的派生类。
11、按如下描述画出一个自治机器人的类图。
这张图的焦点是聚集在那些让机器人在路上行走的机制所对应的类上。
你可以发现一个虚类Motor和两个从它派生出来的类:
SteeringMotor和MainMotor。
这两个类都从它的父亲Motor继承了五个方法:
move()、stop()、resetCounter()、statues()、distance()。
这两个类又是另一个类Driver的一部分。
类PathAgent和Driver有一个1对1的关系,和CollisionSensor有1对n的关系。
12、请参考下图,回答问题(超纲):
图中的实体类为_____________________
图中的控制类为______________________
图中的边界类为_____________________
“借书界面”类中的成员属性有____________________
1)书籍、书目
2)书籍管理
3)借书界面
4)sUserName、sPass
13、“一个研究生在软件学院做助教(teachingassistant),同时还在校园餐厅打工做收银员(cashier)。
也就是说,这个研究生有3种角色:
学生、助教、收银员,但在同一时刻只能有一种角色。
”
根据上面的陈述,下面哪个设计是最合理的?
(B)
14、2006年上半年软件设计师下午试题试题二(15分)
阅读下列说明以及UML类图,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。
[说明]
某客户信息管理系统中保存着两类客户的信息:
(1)个人客户。
对于这类客户,系统保存了其客户标识(由系统生成)和基本信息(包括姓名、住宅电话和email)。
(2)集团客户。
集团客户可以创建和管理自己的若干名联系人。
对于这类客户,系统除了保存其客户标识(由系统生成)之外,也保存了其联系人的信息。
联系人的信息包括姓名、住宅电话、email、办公电话以及职位。
该系统除了可以保存客户信息之外,还具有以下功能:
(1)向系统中添加客户(addCustomer);
(2)根据给定的客户标识,在系统中查找该客户(getCustomer);
(3)根据给定的客户标识,从系统中删除该客户(removeCustoner);
(4)创建新的联系人(addContact);
(5)在系统中查找指定的联系人(getContact);
(6)从系统中删除指定的联系人(removeContact)。
该系统采用面向对象方法进行开发。
在面向对象分析阶段,根据上述描述,得到如表2-1所示的类,
表2-1
类名
说明
CustomerlnformationSystem
客户信息管理系统
IndividualCustomer
个人客户
InstitutionalCustomer
集团客户
Contact
联系人
描述该客户信息管理系统的UML类图如图2-1所示。
图2-1客户信息管理系统的UML类图
[问题1](3分)
请使用说明中的术语,给出图2-1中类Customer和类Person的属性。
[问题2](6分)
识别关联的多重度是面向对象建模过程中的一个重要步骤。
根据说明中给出的描述,完成图中的
(1)~(6)。
[问题3](6分)
根据说明中的叙述,抽象出如表2-2所示的方法,请指出图2-1中的类CustomerlnformationSystem和InstitutionalCustomer应分别具有其中的哪些方法。
表2-2
功能描述
方法名
向系统中添加客户
addCustomer
根据给定的客户标识,在系统中查找该客户
getCustomer
根据给定的客户标识,从系统中删除该客户
removeCustomer
创建新的联系人
addContact
在系统中查找指定的联系人
getContact
从系统中删除指定的联系人
removeContact
参考答案:
[问题1]
Customer的属性:
客户标识
Person的属性:
姓名、住宅电话、email、办公电话以及职位
[问题2]
(1)1
(2)0..*(3)1(4)1(5)1(6)1..*
[问题3]
CustomerInformationSystem的方法:
addCustomer,getCustomer,removeCustomer。
InstitutionalCustomer的方法:
addContact,getContact,removeContact。
15、绘制类图
五、注意事项:
1、注意实验操作过程,严格安装操作流程来完成。
六、练习项目及思考题:
1、讨论类图在建模过程中的重要作用。
2、总结在设计绘制类图的过程中应注意哪些问题。
实验项目五对象图
一、实验目的和要求:
(一)目的:
1、掌握对象的概念,对象的三大特征,对象的表示方法。
2、掌握类与对象的关系。
(二)要求:
1、认真做好实验前的各项准备工作,熟悉实验内容和机器操作流程。
2、遵守实验室规章制度和实验课堂教学纪律。
3、认真完成实验任务,填写实验报告。
二、实验时数:
2学时
三、实验器材:
安装有UML建模工具MicrosoftVisio2007软件的PC机一台。
四、实验内容或步骤:
1、什么是对象,对象的三大特征是什么?
答案:
状态、行为和标识。
2、UML中对象的表示方法有哪些?
答案:
3、在下图中最上面的对象的名称是什么?
该图表示的意思是什么?
请绘制出与其相应的类图。
答案:
China。
该图的意思是福建、四川等省份组成中国。
4、说明对象图的适用场景以及它的优缺点。
答案:
对象图适用于论证类模型的设计以及对源代码进行分析和说明。
其优点是能够直观理解出系统运行时的实时状态,缺点是比较复杂,工作量大。
5、绘制教材59页的图4-2。
某建筑平面图
6、绘制教材62页的图4-3。
五、注意事项:
1、注意实验操作过程,严格安装操作流程来完成。
六、练习项目及思考题:
1、思考类与对象之间的关系是怎样的?
各举几个实例,说明哪些是类,哪些是对象。
2、思考在具体场景中应该如何区分类与对象。
3、找一段源程序,并绘制出与其相应的对象图。
实验项目六包图
一、实验目的和要求:
(一)目的:
1、掌握UML包的概念和作用。
2、掌握包与包之间的各种依赖关系的区别。
3、掌握建立包与包之间依赖关系的方法。
4、掌握建立包图过程中需遵循的原则。
(二)要求:
1、认真做好实验前的各项准备工作,熟悉实验内容和机器操作流程。
2、遵守实验室规章制度和实验课堂教学纪律。
3、认真完成实验任务,填写实验报告。
二、实验时数:
2学时
三、实验器材:
安装有UML建模工具MicrosoftVisio2007软件的PC机一台。
四、实验内容或步骤:
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)
9、绘制包图
五、注意事项:
1、注意实验操作过程,严格安装操作流程来完成。
六、练习项目及思考题:
1、结合一个具体例子,分析UML建模过程中包图所起的作用。
实验项目七用例图
一、实验目的和要求:
(一)目的:
1、掌握用例与场景的概念。
2、掌握UML用例图的组成、作用以及使用场合。
3、掌握用例与用例之间的各种关系。
4、学习针对具体场景使用用例图进行分析说明的方法。
5、掌握用例描述的概念和基本结构,以及用例描述的作用。