UML建模实验指导书.docx
- 文档编号:6889698
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:15
- 大小:44.69KB
UML建模实验指导书.docx
《UML建模实验指导书.docx》由会员分享,可在线阅读,更多相关《UML建模实验指导书.docx(15页珍藏版)》请在冰豆网上搜索。
UML建模实验指导书
UML及其工具实验指导书
实验一熟悉UML开发工具MicrosoftVisio2007
【实验目的】
熟悉UML开发工具MicrosoftVisio2007。
【实验要求】
1.熟悉Visio的UML建模绘图界面。
2.通过绘制类图学习Visio的使用方法。
3.通过绘制对象图学习Visio的使用方法。
4.通过绘制顺序图学习Visio的使用方法。
【实验步骤】
一.熟悉Visio的UML建模绘图界面
1.进入Visio的UML建模绘图界面
通过“开始”|“程序”,运行MicrosoftOfficeVisio2007,出现MicrosoftVisio界面。
在左侧的“类别”区域中单击“软件”,然后在右侧的“模板”中单击“UML模型图”,则进入Visio的UML建模绘图界面。
2.熟悉UML建模绘图界面
在Visio的UML建模绘图界面中,最大的白色区域就是绘图区。
左上方的“形状”窗口就是Visio的UML元素调板,它由很多的标签页组成。
每个标签页提供了一个特定的UML图标。
左下方的“模型资源管理器”就是Visio的字典,字典就是所创建的所有元素及其属性的记录的集合。
当Visio打开并准备开始UML绘图的时候,“UML静态结构”标签页就会激活,我们就可以创建类图和对象图了。
二.绘制类图
下面我们使用Visio来绘制一个如图1所示的行星系统的类模型。
图1一个行星系统的类图
1.从“UML静态结构”标签页中选择“类”图标并把它拖放到绘图区中。
双击绘图区中的类图标,出现“UML类属性”窗口。
在“名称”字段中输入“PlanetarySystem”来重新命名这个类。
单击“确定”按钮回到绘图界面。
我们可以通过控制工具栏中“缩放”按钮的显示比例,使界面中的类图标显示合适的大小。
采用同样的方法添加Planet类。
在“模型资源管理器”中反映出了增加的新类。
2.下面我们为Planet类添加两个属性和一个操作,并把它设置为一个抽象类。
在Planet类上双击打开“UML类属性”对话框。
选中“IsAbstract”复选框,然后,从左边的“类别”区域选择“特性”,在右边的对话框中打开“特性”表。
单击“新建”按钮,则在“特性”表中添加了一行,在“特性”表项中输入diameter。
采用同样的方式加入distanceFromStar属性。
然后从“类别”区域选择“操作”,打开“操作”表,单击“新建”按钮,则在“操作”表中添加了一行,在“操作”表项中输入“receiveLight”。
单击“确定”按钮,赋予抽象类Planet相应的属性和操作。
3.注意每个属性左边的减号和每个操作左边的加号,它们表示可见性。
为了使图显得比较简单,我们可以在图中去掉它们。
只需要在Planet类上右击,打开弹出式菜单,选择“形状显示选项”,打开“UML形状显示选项”对话框。
去掉“可见性”复选框,单击“确定”按钮,则Planet类的属性和操作前面不再显示可见性。
4.我们把其他的类拖拽到大图中,然后添加组成关系。
首先是组成关系。
从“UML静态结构”标签页中把“聚合”图标拖拽到绘图区,实心菱形一端连接到PlanetarySystem,另一端(尾端)连接到Star。
在图中,我们可以看到组成关系的每一段都有多重关系、可见性和缺省名。
为了在图中去掉缺省名和可见性,在组成关系上右击,在弹出菜单中选择“形状显示选项”。
这次,在“UML形状显示选项”对话框中,去掉“第一个端名”、“第二个端名”和“端的可见性”选项,单击“确定”按钮。
现在我们来关注一下Star类的多重关系。
双击组成关系图标,打开“UML关联属性”对话框。
在“关联端”表格中,选择“结束2”一行“多重性”列的单元格。
单击这个单元格中的下拉列表框,显示出“结束2”的可能多重性关系的一个列表。
选择“1”并单击“确定”按钮,我们将在图中得到所选多重性的表示。
采用同样的方式拖拽“聚合”图标,先把菱形箭头的一端连在“PlanetarySystem”,然后再把尾端连接到Planet类,并进行多重性等相关设置。
5.向图中添加继承关系。
从“UML静态结构”标签页中将“泛化”符号拖拽到绘图区,把三角形的一端连接到Planet,尾端连接到HabitablePlanet。
重复拖拽一个“泛化”符号,把三角形的一端连接到Planet,尾段连接到NonHabitablePlanet。
完成这些操作后,绘图区中就是完整的类图。
三.绘制对象图
下面我们使用Visio绘制一个如图2所示的Earth和Sun的对象模型。
图2Earth和Sun的对象图
1.在“模型资源管理器”中“顶层包”的文件夹上右击,从弹出菜单中选择“新建”|“静态结构图”,则创建并打开了一个新的静态结构图。
从“形状”的“UML静态结构”标签页中选择“对象”图标,拖拽到绘图区。
2.在对象图标上双击打开“UML对象属性”对话框。
在“名称”字段中输入“theSun”替代缺省名字。
我们还需要表明theSum是Star类的一个实例,为此,选择“类”字段并单击下拉列表。
从类列表中选择“顶层包:
:
Star”,然后单击“确定”按钮。
3.用相同的一系列步骤创建HabitablePlanet类的一个earth对象。
双击打开“UML对象属性”对话框。
从“类别”区域选择“特性值”打开“AttributeValues”表。
在这张表中,我们可以填入diameter和distanceFromTheStar属性的值,这两个属性是HabitablePlanet继承自Planet的。
在“值”列赋值,单击“确定”按钮。
4.在对象之间添加连接。
从“UML静态结构”标签页中拖动“链接”符号到绘图区,将其两端分别和对象连接起来。
完成这个步骤后,“结束1”和“结束2”的名字就出现了,在连接上右击,并通过“形状显示选项”可以从图中移除它们。
四.绘制顺序图
下面我们使用Visio绘制一个如图3所示的示意theSun和Earth之间的一个交互的顺序图(简化的图形,只有一条消息)。
图3示意theSun和earth之间的一个交互的顺序图
1.在“模型资源管理器”的“顶层包”图标上右击,从弹出菜单上选择“新建”|“序列图”,则打开一个新的绘图区。
2.从“UML序列”标签中,拖拽一个“对象生命线”图标并把它放入到绘图区。
双击图标打开“UML分类器角色属性”对话框,在“名称”区域命名对象以后,在“分类器”区域从你创建的类列表中选定对象所属的类,单击“确定”按钮。
3.右击新添加的对象生命线,单击“UML形状显示选项”,通过选择“分类器名称”复选框可以显示类名。
4.通过一系列类似的步骤,创建另一个表示Earth的对象生命线图标。
5.创建从sun对象到earth对象的消息。
从“UML序列图”中选择“消息”图标,并把它拖拽到绘图区,把它的尾部连接到sun对象的生命线,把它的头部连接到earth对象的生命线。
要改变消息的缺省标记,双击消息图标打开“UML消息属性”对话框。
由于只有一个可能的操作,名字和来自earth对象的消息所请求的操作都已经被选好了。
单击“确定”按钮,则把操作放到消息之上。
6.从“UML序列”标签中,拖拽一个“激活条”图标完成顺序图。
【思考问题】
1.对于本实验中创建的类图和对象图能在两个不同的绘图文件中分别创建吗?
类图和顺序图呢?
为什么?
2.本实验中创建的顺序图是在“顶层包”下新建的序列图中创建的,请问顺序图能在静态结构图中创建吗?
为什么?
实验二用例图设计
【实验目的】
掌握在Visio下用例图的设计。
【实验要求】
1.针对网上选课系统掌握识别参与者和用例的方法。
2.学习通过Visio绘制用例图的方法。
3.掌握如何对每个用例进行用例描述。
【实验步骤】
一.网上选课系统需求分析
某学校的网上选课系统主要包括如下功能:
1.管理员通过系统管理界面进入,建立本学期要开的各种课程,将课程信息保存在数据库中并可以对课程进行改动和删除。
2.学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:
查询已选课程、选课以及付费。
同样,通过业务层,这些操作结果存入数据库中。
二.在Visio中设置全局属性
1.添加四个模型
单击Visio界面上菜单栏中的“UML”菜单,选择其下拉菜单中的“模型”,则打开了“UML模型”窗口。
单击“新建”按钮,在“模型”表项中输入模型的名字。
依次添加4个模型:
用例模型、分析模型、设计模型和实现模型。
下面简要介绍一下四个模型的功能。
(1)用例模型:
用例贯穿于建模的整个过程,因为软件和顶层包的价值就在于实现用例,从而为用户提供期望的功能。
用例细化可使用活动图、顺序图等。
(2)分析模型:
识别分析类,利用分析类实现用例,是用例模型中用例细化活动的延伸。
主要使用顺序图和协作图实现用例。
(3)设计模型:
将分析模型转化为解决方案。
分析类转化为一个或多个设计类、接口、类(和接口)的操作、类的特性都被完整的定义。
根据解决问题的需要,可能会引入一些包,这些包提供了诸如数据库访问、异常处理、分布式通信等基础服务。
通常有两种途径获得设计类:
1)将分析类转化一个或多个设计类;
2)通过引入基础服务获得设计类。
用设计类实现用例:
使用顺序图和协作图。
设计系统原型:
通过它验证解决方案的正确性,并为实现者提供指南。
(4)实现模型:
将设计模型转化可执行代码的过程。
关键的活动有:
代码编写、测试、部署。
使用构件图来描述系统的静态实现视图,使用部署图来描述系统的动态实现视图。
2.将UML系统改名为SelectCourseSystem
在“模型资源管理器”窗口下,右击顶层节点,选择“属性”命令。
在“UML子系统属性”对话框的“名称”文本框中输入新的名称“SelectCourseSystem”。
在“文档”文本框中可以输入一些说明消息。
3.设置模型的数据类型
在默认情况下,UML中可以使用的数据类型有4个包。
本例中将目标语言绑定为C++,所以仅保留C++数据类型包。
单击Visio界面上菜单栏中的“UML”菜单,选择其下拉菜单中的“选项”,则打开了“UML选项”窗口。
在“UML文档”选项卡中选择C++数据类型。
三.实现用例模型
1.识别参与者
本系统涉及的用户包括管理员Registrar和学生Student,他们是用例图的参与者,他们的主要特征相似,都具有姓名和学号等信息,所以可以抽象出“基”参与者人People,而Registrar和Student则从People统一派生。
数据库管理系统Database是另外一个参与者。
2.识别用例
识别、详述用例是用例建模过程中最重要的活动。
顺着参与者出发,通过考虑参与者和系统的交互,可以识别出主要用例。
(1)与Students参与者相关的用例有哪些?
(2)与Registrar参与者相关的用例有哪些?
(3)哪些用例与Database参与者相关?
3.绘制参与者以及参与者之间的关系
(1)在“模型资源管理器”中,右击“用例模型”下的“顶层包”,选择“新建”|“主角”命令,出现“UML主角属性”对话框。
将主角命名为“Registrar”,然后在“文档”栏中输入一些描述管理员主角职责的文字。
其中的完整路径显示了主角在UML模型中所处的位置。
单击“确定”按钮,则在“用例模型”的“顶层包”下新增了一个名为“Registrar”的主角。
重复上面操作,在用例模型的顶层包中添加上所有主角。
(2)下面绘图角色之间的关系。
双击“用例模型”“顶层包”下的“静态结构图”,这时会在绘图画板中打开。
分别将Registrar角色、Student角色、People角色拖放到绘图画板,然后将“UML静态结构”标签页中的“泛化”图标拖放到绘图画板,并用它来连接两个角色。
4.绘制用例以及用例之间的泛化关系
(1)在“模型资源管理器”中,右击“用例模型”下的“顶层包”,选择“新建”|“用例”命令,出现“UML用例属性”对话框。
在“名称”框中输入一个你所找到用例名,单击“确定”按钮。
重复上面操作,在用例模型的顶层包中添加上所有用例。
(2)用例之间如果存在泛化关系,则拖拽“UML静态结构”标签页中的“泛化”图标到静态结构图中,来连接两个用例。
5.绘制用例图
(1)在“模型资源管理器”中,右击“用例模型”下的“顶层包”,选择“新建”|“用例图”,这时会新建一个名为“用例-1”的空白用例图,右击新建的空白用例图节点,选择“重命名”,可对用例图重新命名。
(2)在“形状”中的“UML用例”标签页中,将“系统边界”形状拖放到用例图中,双击系统边界形状,可进行重新命名。
(3)在“模型资源管理器”中“用例模型”下,选中“Registrar”、“Student”和“Database”主角,拖放到用例图的系统边界之外。
将“用例模型”下创建的用例拖放到用例图的“系统边界”内。
(4)绘制参与者与用例之间的关联。
如果主角和系统的交互包含某个用例,那么主角和该用例之间存在通信关系。
将“UML用例”标签页中的“通信”图标拖放到用例图中,用它来连接参与者和用例。
端点名表示通信连接两端在通信中扮演的角色。
端点的多重性表示通信另一端连接的一个对象对应着本端点连接的对象的数量。
右击通信连线,选择“属性”,出现“UML关联属性”对话框,可以设置连接线的两个端点的多重性,还可以设置连接线的导航方向。
为了降低图表的复杂性,通常只有在例外的情况下才显示导向性。
如果不关心端点名等信息,为了在视觉效果上隐藏这些信息,右击通信连线,选择“形状显示选项”命令,进行设置即可。
(5)绘制用例之间的包含和扩展关系。
用例之间如果存在包含关系,则通过拖拽“UML用例”标签页中的“用”图标来连接两个用例;用例之间如果存在扩展关系,则通过拖拽“UML用例”标签页中的“扩展”图标来连接两个用例。
用例图作为一种UML模型元素,也必须用包来组织。
本例中将两个用例图都放到了用例模型顶层包中,还可以用注释元素对用例图作简单说明。
6.对每个用例进行用例描述。
为了便于以后对用例进行细化,每个用例都要提供用例描述。
一个用例是多个场景组成的,对每个用例的场景进行场景描述,写入Word文档中。
【思考问题】
1.绘制用例图的步骤是什么?
2.结合网上选课系统的用例图设计实例,总结一下用例图在系统分析过程中所起的作用。
实验三类图设计
【实验目的】
掌握在Visio下类图的设计。
【实验要求】
1.通过网上选课系统学习识别类的方法。
2.通过网上选课系统学习识别类之间关系的方法。
3.学习使用Visio绘制类图。
【实验步骤】
一.识别类
1.通过实验二中用例图的设计,我们找到了四个参与者:
管理员Registrar,学生Student,学生和管理员的父类People,数据库Database。
这些参与者都可以作为类图中的类。
2.识别选课系统中其他的类。
在选课系统中,还能找出哪些类?
这些类有哪些属性和操作?
二.绘制类图
1.绘制类
在“模型资源管理器”中,双击“分析模型”中“顶层包”下的静态结构图,此时在绘图区中显示的则是此静态结构图。
按照实验一中给出的方法绘制这四个类,包括这些类的属性和操作。
2.绘制类之间的关系
确定类之间是否有关系以及有什么关系。
如果存在“关联”关系,则将“形状”窗口中“UML静态结构”标签页中的“二元关联”图标拖到绘图区,来连接两个类;如果存在“泛化”关系,则将“UML静态结构”标签页中的“泛化”图标拖到绘图区,来连接类;如果存在“聚集”或“组成”关系,则将“UML静态结构”标签页中的“复合”图标拖到绘图区,来连接类;如果存在“依赖”关系,则将“UML静态结构”标签页中的“依赖关系”图标拖到绘图区,来连接类。
在绘图区中双击这些关系图标,可以打开它们的属性对话框来修改属性。
具体操作可参考实验一。
【思考问题】
1.绘制类图的步骤是什么?
2.结合网上选课系统的用例图设计实例,总结一下类图在系统分析过程中所起的作用。
实验四状态图设计
【实验目的】
掌握在Visio下状态图的设计。
【实验要求】
1.通过网上选课系统学习识别对象状态的方法。
2.通过网上选课系统理解对象状态的转换。
3.学习使用Visio绘制状态图。
【实验步骤】
一.识别课程类(对象)的状态
我们考察一个课程类(对象)(Course)的状态变化过程。
课程对象被创建、添加到数据库中。
管理员可以删除、修改课程信息,在某个学期,开设该课程,如果选修人数超过指定人数,就不再允许学生选这门课程。
学期结束,课程的状态终止。
通过上述需求描述,我们能够识别出课程类(对象)的哪些状态?
二.绘制状态图
1.在“模型资源管理器”的“分析模型”中,右击“课程”类,选择“新建”|“状态图”,这时会新建一个名为“状态图-1”的空白状态图,右击新建的空白状态图节点,选择“重命名”,可对状态图重新命名。
2.在“形状”窗口的“UML状态图”标签页中,选中“初始状态”图标并拖拽到绘图区,选中“最终状态”图标并拖拽到绘图区。
3.在“UML状态图”标签页中,选中“状态”图标并拖拽到绘图区,来添加一个状态。
双击此状态,打开“UML状态属性”对话框,进行相应的设置。
4.在“UML状态图”标签页中,选中“复合状态”图标并拖拽到绘图区,来添加一个复合状态。
双击此状态,打开“UML复合状态属性”对话框,进行相应的设置。
在“模型资源管理器”中,单击此复合状态前的“+”号,可以看到此复合状态下有一个新的状态图,可以通过双击此状态图,在绘图区中进行此状态图的绘制。
5.在“UML状态图”标签页中,选中“转换”图标并拖拽到绘图区,来添加状态到状态间的转换。
双击转换图标,进入“UML转换属性”对话框,进行相应设置。
【思考问题】
1.总结绘制状态图的步骤。
2.结合网上选课系统的状态图设计实例,总结一下状态图在系统分析设计过程中所起的作用。
实验五顺序图设计
【实验目的】
掌握在Visio下顺序图的设计。
【实验要求】
1.学习根据用例描述绘制顺序图的方法。
2.学习使用Visio绘制顺序图。
【实验步骤】
下面我们以SelectCourse(选课)用例为例来设计和制作顺序图。
一.识别对象
首先,查找SelectCourse用例的用例描述,从事件流中发现涉及以下对象:
1.界面
2.课程
3.对于业务层的操作,也应该有对象进行处理。
4.事件流中涉及的参与者有:
学生、数据库。
二.识别对象之间的交互
分析对象、参与者之间交互的消息。
本用例主要有以下交互:
1.学生通过界面发送选课命令。
2.界面向控制对象请求课程信息。
3.控制对象向数据库发送查询数据信息。
4.控制对象暂存数据库的查询结果。
5.界面对象从控制对象中取得所有的课程信息。
6.在界面上显示所有的课程信息。
7.界面对象发送命令要求控制对象删除课程信息。
8.学生选择课程。
9.界面对象要求学生输入学号。
10.界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。
11.控制对象从数据库中查询关联信息。
12.控制对象判断是否可以选课。
13.如果可以选课,则向数据库中添加关联信息。
14.向界面对象返回信息。
三.绘制SelectCourse顺序图
1.在“模型资源管理器”的“分析模型”中,右击“顶层包”,选择“新建”|“序列图”,这时会新建一个名为“序列-1”的空白序列图,右击新建的空白序列图节点,选择“重命名”,可对序列图重新命名。
2.在“形状”窗口的“UML序列”标签页中,拖拽“对象生命线”到绘图区,在绘图区中双击此对象生命线,出现“UML分类器角色属性”对话框,在“名称”栏输入名字,在“分类器”栏中选择所属的类。
单击“确定”按钮。
要想显示出分类器名字,可以右击此对象生命线,选择“形状显示选项”,打开“UML形状显示选项”对话框,选中“分类器名称”项,单击“确认”即可。
3.绘制对象间的通信。
在“UML序列”标签页中,拖拽“消息”图标到绘图区,连接对象的生命线。
双击“消息”,打开“UML消息属性”对话框,进行消息的属性设置。
通过拖拽“激活”图标到绘图区的生命线上,来表示该对象正在执行某个操作。
四.绘制其他用例的顺序图
按照上述例子的方法,画出网上选课系统中其他用例的顺序图。
【思考问题】
1.总结绘制顺序图的步骤。
2.结合网上选课系统的顺序图设计实例,总结一下顺序图在系统分析设计过程中所起的作用。
实验六协作图设计
【实验目的】
掌握在Visio下协作图的设计。
【实验要求】
1.学习根据用例描述绘制协作图的方法。
2.学习使用Visio绘制协作图。
【实验步骤】
下面我们以SelectCourse(选课)用例为例来设计和制作协作图。
一.识别对象
首先,查找SelectCourse用例的用例描述,从事件流中发现涉及以下对象:
1.界面
2.课程
3.对于业务层的操作,也应该有对象进行处理。
4.事件流中涉及的参与者有:
学生、数据库。
二.识别对象之间的交互
分析对象、参与者之间交互的消息。
本用例主要有以下交互:
1.学生通过界面发送选课命令。
2.界面向控制对象请求课程信息。
3.控制对象向数据库发送查询数据信息。
4.控制对象暂存数据库的查询结果。
5.界面对象从控制对象中取得所有的课程信息。
6.在界面上显示所有的课程信息。
7.界面对象发送命令要求控制对象删除课程信息。
8.学生选择课程。
9.界面对象要求学生输入学号。
10.界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。
11.控制对象从数据库中查询关联信息。
12.控制对象判断是否可以选课。
13.如果可以选课,则向数据库中添加关联信息。
14.向界面对象返回信息。
三.绘制SelectCourse协作图
1.在“模型资源管理器”的“分析模型”中,右击“顶层包”,选择“新建”|“协作图”,这时会新建一个名为“协作-1”的空白序列图,右击新建的空白序列图节点,选择“重命名”,可对协作图重新命名。
2.在“形状”窗口的“UML协作”标签页中,拖拽“分类器角色”到绘图区,在绘图区中双击此分类器角色,出现“UML分类器角色属性”对话框,在“名称”栏输入名字,在“分类器”栏中选择所属的类。
单击“确定”按钮。
要想显示出分类器名字,可以右击此分类器角色,选择“形状显示选项”,打开“UML形状显示选项”对话框,选中“分类器名称”项,单击“确认”即可。
3.绘制对象间的通信。
在“UML序列”标签页中,拖拽“关联角色”图标到绘图区,连接对象。
双击此关联角色,打开“UML关联角色属性”对话框,进行属性设置。
四.绘制其他用例的协作图
按照上述例子的方法,画出网上选课系统中其他用例的协作图。
【思考问题】
1.总结绘制协作图的步骤。
2.结合网上选课系统的协作图设计实例,总结一下协作图在系统分析设计过程中所起的作用。
实验七活动图设计
【实验目的】
掌握在Visio下活动图的设计。
【实验要求】
1.学习根据用例描述绘制活动图的方法。
2.学习使用Visio绘制活动图。
【实验步骤】
下面我们以AddCourse(添加课程)用例为例来设计和制作活动图。
一.识别活动
针对AddCourse用例的用例描述,因为管理员密码验证过程可以抽取出来,作为通用的流程,所以将管理员输入课程信息作为起始的活动。
内容如下:
(1)管理员输入信息。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 建模 实验 指导书