如果主角和系统的交互包含某个用例,那么主角和该用例之间存在通信关系。将“UML用例”标签页中的“通信”图标拖放到用例图中,用它来连接参与者和用例。
端点名表示通信连接两端在通信中扮演的角色。端点的多重性表示通信另一端连接的一个对象对应着本端点连接的对象的数量。右击通信连线,选择“属性”,出现“UML关联属性”对话框,可以设置连接线的两个端点的多重性,还可以设置连接线的导航方向。为了降低图表的复杂性,通常只有在例外的情况下才显示导向性。
如果不关心端点名等信息,为了在视觉效果上隐藏这些信息,右击通信连线,选择“形状显示选项”命令,进行设置即可。 (5)绘制用例之间的包含和扩展关系。
用例之间如果存在包含关系,则通过拖拽“UML用例”标签页中的“用”图标来连接两个用例;用例之间如果存在扩展关系,则通过拖拽“UML用例”标签页中的“扩展”图标来连接两个用例。
用例图作为一种UML模型元素,也必须用包来组织。本例中将两个用例图都放到了用例模型顶层包中,还可以用注释元素对用例图作简单说明。
6.对每个用例进行用例描述。 为了便于以后对用例进行细化,每个用例都要提供用例描述。一个用例是多个场景组成的,对每个用例的场景进行场景描述,写入Word文档中。
【思考问题】
1.绘制用例图的步骤是什么?
2.结合网上选课系统的用例图设计实例,总结一下用例图在系统分析过程中所起的作用。
实验三 类图设计
【实验目的】
掌握在Visio下类图的设计。 【实验要求】
1. 通过网上选课系统学习识别类的方法。
2. 通过网上选课系统学习识别类之间关系的方法。 3. 学习使用Visio绘制类图。 【实验步骤】 一.识别类 1.通过实验二中用例图的设计,我们找到了四个参与者:管理员Registrar,学生Student,学生和管理员的父类People,数据库Database。这些参与者都可以作为类图中的类。
2.识别选课系统中其他的类。
在选课系统中,还能找出哪些类?这些类有哪些属性和操作? 二.绘制类图 1.绘制类
在“模型资源管理器”中,双击“分析模型”中“顶层包”下的静态结构图,此时在绘图区中显示的则是此静态结构图。按照实验一中给出的方法绘制这四个类,包括这些类的属性和操作。
2.绘制类之间的关系
确定类之间是否有关系以及有什么关系。
如果存在“关联”关系,则将“形状”窗口中“UML静态结构”标签页中的“二元关
6
联”图标拖到绘图区,来连接两个类;如果存在“泛化”关系,则将“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.结合网上选课系统的状态图设计实例,总结一下状态图在系统分析设计过程中所起的作用。
7
实验五 顺序图设计
【实验目的】
掌握在Visio下顺序图的设计。 【实验要求】
1. 学习根据用例描述绘制顺序图的方法。 2.学习使用Visio绘制顺序图。 【实验步骤】
下面我们以Select Course(选课)用例为例来设计和制作顺序图。 一.识别对象
首先,查找Select Course用例的用例描述,从事件流中发现涉及以下对象: 1.界面 2.课程
3.对于业务层的操作,也应该有对象进行处理。 4.事件流中涉及的参与者有:学生、数据库。 二.识别对象之间的交互
分析对象、参与者之间交互的消息。本用例主要有以下交互: 1.学生通过界面发送选课命令。 2.界面向控制对象请求课程信息。
3.控制对象向数据库发送查询数据信息。 4.控制对象暂存数据库的查询结果。
5.界面对象从控制对象中取得所有的课程信息。 6.在界面上显示所有的课程信息。
7.界面对象发送命令要求控制对象删除课程信息。 8.学生选择课程。
9.界面对象要求学生输入学号。
10.界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。 11.控制对象从数据库中查询关联信息。 12.控制对象判断是否可以选课。
13.如果可以选课,则向数据库中添加关联信息。 14.向界面对象返回信息。 三.绘制Select Course顺序图
1.在“模型资源管理器”的“分析模型”中,右击“顶层包”,选择“新建”|“序列图”,这时会新建一个名为“序列-1”的空白序列图,右击新建的空白序列图节点,选择“重命名”,可对序列图重新命名。
2.在“形状”窗口的“UML序列”标签页中,拖拽“对象生命线”到绘图区,在绘图区中双击此对象生命线,出现“UML分类器角色属性”对话框,在“名称”栏输入名字,在“分类器”栏中选择所属的类。单击“确定”按钮。
要想显示出分类器名字,可以右击此对象生命线,选择“形状显示选项”,打开“UML形状显示选项”对话框,选中“分类器名称”项,单击“确认”即可。
3.绘制对象间的通信。
在 “UML序列”标签页中,拖拽“消息”图标到绘图区,连接对象的生命线。双击“消
8
息”,打开“UML消息属性”对话框,进行消息的属性设置。通过拖拽“激活”图标到绘图区的生命线上,来表示该对象正在执行某个操作。
四.绘制其他用例的顺序图
按照上述例子的方法,画出网上选课系统中其他用例的顺序图。 【思考问题】
1.总结绘制顺序图的步骤。
2.结合网上选课系统的顺序图设计实例,总结一下顺序图在系统分析设计过程中所起的作用。
实验六 协作图设计
【实验目的】
掌握在Visio下协作图的设计。 【实验要求】
1. 学习根据用例描述绘制协作图的方法。 2.学习使用Visio绘制协作图。 【实验步骤】
下面我们以Select Course(选课)用例为例来设计和制作协作图。 一.识别对象
首先,查找Select Course用例的用例描述,从事件流中发现涉及以下对象: 1.界面 2.课程
3.对于业务层的操作,也应该有对象进行处理。 4.事件流中涉及的参与者有:学生、数据库。 二.识别对象之间的交互
分析对象、参与者之间交互的消息。本用例主要有以下交互: 1.学生通过界面发送选课命令。 2.界面向控制对象请求课程信息。
3.控制对象向数据库发送查询数据信息。 4.控制对象暂存数据库的查询结果。
5.界面对象从控制对象中取得所有的课程信息。 6.在界面上显示所有的课程信息。
7.界面对象发送命令要求控制对象删除课程信息。 8.学生选择课程。
9.界面对象要求学生输入学号。
10.界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。 11.控制对象从数据库中查询关联信息。 12.控制对象判断是否可以选课。
13.如果可以选课,则向数据库中添加关联信息。 14.向界面对象返回信息。 三.绘制Select Course协作图
1.在“模型资源管理器”的“分析模型”中,右击“顶层包”,选择“新建”|“协作图”,这时会新建一个名为“协作-1”的空白序列图,右击新建的空白序列图节点,选择“重
9
命名”,可对协作图重新命名。
2.在“形状”窗口的“UML协作”标签页中,拖拽“分类器角色”到绘图区,在绘图区中双击此分类器角色,出现“UML分类器角色属性”对话框,在“名称”栏输入名字,在“分类器”栏中选择所属的类。单击“确定”按钮。
要想显示出分类器名字,可以右击此分类器角色,选择“形状显示选项”,打开“UML形状显示选项”对话框,选中“分类器名称”项,单击“确认”即可。
3.绘制对象间的通信。
在 “UML序列”标签页中,拖拽“关联角色”图标到绘图区,连接对象。双击此关联角色,打开“UML关联角色属性”对话框,进行属性设置。
四.绘制其他用例的协作图
按照上述例子的方法,画出网上选课系统中其他用例的协作图。 【思考问题】
1.总结绘制协作图的步骤。
2.结合网上选课系统的协作图设计实例,总结一下协作图在系统分析设计过程中所起的作用。
实验七 活动图设计
【实验目的】
掌握在Visio下活动图的设计。 【实验要求】
1. 学习根据用例描述绘制活动图的方法。 2.学习使用Visio绘制活动图。 【实验步骤】
下面我们以Add Course(添加课程)用例为例来设计和制作活动图。 一.识别活动
针对Add Course用例的用例描述,因为管理员密码验证过程可以抽取出来,作为通用的流程,所以将管理员输入课程信息作为起始的活动。内容如下: (1)管理员输入信息。
(2)系统验证是否和已有课程冲突。 A:有冲突。
(3)系统添加新课程,提示课程添加成功。 (4)系统重新进入管理主界面,显示所有课程。 (5)用例结束。 其他事件流: A:有冲突
(1)系统提示冲突,显示冲突课程信息。 (2)用户重新输入。
(3)继续验证直到无冲突。
(4)进入添加课程事件流第(3)步。
根据以上描述并进一步细化,能识别出哪些活动? 二.识别负责活动的角色
在绘制活动图的时候,要对角色可视化,需要画出泳道。所以我们要识别出负责每个活动的角色。
10
三.绘制活动图
1.在“模型资源管理器”的“用例模型”中,右击“顶层包”,选择“新建”|“活动图”进行创建。这时会新建一个名为“活动-1”的空白活动图,右击新建的空白活动图节点,选择“重命名”,可对活动图重新命名。
2.在“形状”窗口的“UML活动”标签页中,分别拖动“初始状态”图标和“最终状态”图标到绘图区。
3.添加泳道。
在“UML活动”标签中,将“泳道”图标拖到绘图区来添加泳道。双击泳道,可以打开“UML分区属性”对话框,进行分区属性的设置。
4.添加状态。
在“UML活动”标签中,将“动态状态”或“状态”图标拖到绘图区来添加活动。双击图标可以打开属性对话框,进行属性的设置。
动作状态表示对象正在执行一个不可中断的原子操作。状态可以被分解成其他动作状态或状态,因此如有必要,可用一个单独的活动图描述状态。
5.添加转换。
在“UML活动”标签中, “判定”图标来表示在某一点做出判定。“转换(分叉)”和“转换(连接)”图标来描述并发的活动,此时包含多个控制流。“控制流”描述单个控制的简单转换。双击图标可以在相应的属性对话框中进行属性设置。
四.绘制其他用例的活动图
按照上述例子的方法,画出网上选课系统中其他用例的活动图。 【思考问题】
1.总结绘制活动图的步骤。
2.结合网上选课系统的活动图设计实例,总结一下活动图在系统分析设计过程中所起的作用。
11