想要完成用户的需求分析,一般需要用例图、用例说明文档、活动图、顺序图、用户界面原型的相互配合。用例图描述系统具有哪些功能,谁使用这些功能;用例说明文档解释用例的场景、使用者、触发条件等内容;活动图描述业务处理流程;顺序图描述参与活动的对象之间的消息交互机制;用户界面是描述用户的操作方式和界面元素。本篇文章主要讲解用例图、活动图和顺序图。
给大家推荐一个工具:StarUML是一款开源、免费得UML开发工具。可绘制9款UML图:用例图、类图、序列图、状态图、活动图、通信图、模块图、部署图以及复合结构图等。StarUML可以依据类图的内容生成Java、C++、C#代码,也能够读取Java、C++、C#代码反向生成类图。反向工程有两个主要用途,其一是旧有的源码反转成图之后,可以构建UML模型的方式继续将新的设计添加上去;另一项用途是想要解析源码时,可以通过反转的类图来理解,不再需要查看一行又一行的代码,这将节省大量的时间和精力。StarUML接受XMI 1.1、1.2和1.3版的导入导出。StarUML可以读取Rational Rose生成的文件。
1.用例图
用例图由一组用例、参与者以及它们之间关系所组成。一个系统的用例图反映了整个系统提供的外部可见服务和工作范围。
用例:
它是对一组动作序列的描述,使用椭圆形的表示符号,其中应该有编号和名称。用例是软件开发的核心,需求是由用例来表示的。界面是为用例而设计的,分析类是根据用例发现和组织的,测试数据是根据用例生成的,整个开发的管理和任务分配也是根据用例来组织的。所以说用例很重要。
角色:
它指与系统交互的人或事物。包括4中类型:系统的使用者、外部系统(某外部系统与正在建模的系统进行交互)、时间(如:按照时间触发系统中的某个事件)、硬件设备(不同的设备具有的特性和处理方式不同)。在实际的操作中可以采用:先列出应用系统的角色清单,然后根据角色找出对应的用例清单。
关系:
它包括关联关系、扩展关系、包含关系、泛化关系。
关联关系:描述角色和用例之间的关系,使用没有箭头的直线连接着相互关联的角色与用例。
包含关系:基本用例与公共用例之间的关系。该基本用例一定使用该公共用例。例如在ATM机上,取钱、查询、更改密码等功能都需要验证用户密码。此时,就可以将密码验证功能独立出来作为一个公共用例。使用带箭头的虚线和<<include>>表示
扩展关系:基本用例与特殊用例之间的关系。该基本用例在某些条件下使用该特殊用例。例如在图书管理系统中,“读者还书”是一个基本用例,“到书通知”是一个特殊用例(有人预定某图书,在该图书被还回来时,发出到书通知信息)。很显然,特殊用例依赖于基本用例,针对某一本被预定的图书而言,“读者还书”是“到书通知”执行的前提条件。在UML中使用带箭头的虚线和<<extend>>表示。
泛化关系:角色之间或用例之间存在的一种继承关系。例如身份认证可以细分为密码认证和指纹认证。使用带箭头的实线表示。
2.活动图
它是UML中用于对系统动态活动建模的图形,反映系统中一个活动到另一个活动的流程,常常用于描述业务过程和并行处理过程。活动图中包括泳道、活动开始、活动结束、活动、对象、分支、消息等图形符号。
泳道将一个活动图中的活动划分为不同的组,每个组分别对应不同角色的操作。活动图描述多个角色之间的协作处理非常有效。
一张活动图可以有多个开始状态和结束状态。
一个活动可以与多个实体对象相关(相关指的是一种访问操作)。
分支用在有多条路径可选的流程中,针对不同的路径进行不同的分支处理。
对象作为活动的参与者通常也包含在活动图中,活动可以创建对象(添加图书借阅记录到图书借阅表)、撤销对象(在图书预定表中撤销读者预定图书的记录)、访问对象(为了检查读者的有效性可以查阅读者信息表和借书记录表)或修改对象(读者成功借阅图书,会将该读者总的借阅图书数量进行更新)。下面是图书馆读者借书过程的活动图。
活动图的走向可以是横向的也可以是纵向的,根据个人喜好而定。下面的这个销售订单处理活动图重点展示的是并发处理符号,它反映多个活动可以同时并发处理,并发结束后,又转变为顺序处理。
3.顺序图(时序图)
它描述了一组对象间的交互方式,表示完成某一个行为的对象和相关其他对象之间传递消息的时间顺序。顺序图由对象、对象生命线、激活框、消息等组成。“对象生命线”是一条垂直的虚线,表示对象存在的时间;“激活框”是一个细长的矩形,表示对象执行一个操作所经历的时间;“消息”是对象之间的一条水平箭头线,表示对象之间的消息通信,在消息的矩形框中可以填写方法调用名或调用说明,它会显示在消息线的上方。下面是顺序图的一个例子。
参考资料:《软件工程实例教程》吴洁明 方英兰 编著 清华大学出版社