用例建模Use Case Modeling
一.用例建模的简单描述及优点
用例是从外部用户和外围系统的角度,分析和考察待开发系统的行为,并通过参与者(可能是最终用户也可能是外围系统)与系统之间的交互关系描述系统对外提供的功能特性----这种参与者与系统功能特性间的交互关系就是用例。用例分析和用例建模就是通过对软件需求的调研,从具体的功能性需求中抽象出用例模型的工作过程。用例建模主要有两个产物。第一个是用例图,第二个产物就是用例描述。
用例建模具有以下的优点:
- 提供了捕捉功能需求的工具
- 有助于将系统范围分解成更易管理的小块
- 提供了与用户以及其他关心系统功能的关联人员进行交流的工具。用例是容易被各种关联人员理解的公共语言
- 提供了确定、分配、跟踪、控制和管理系统开发活动(尤其是增量开发和迭代开发活动)的手段
- 辅助估计项目范围、投入和进度
- 为定义测试计划和测试用例提供了一个基准
- 为用户帮助系统和手册以及系统开发文档提供了一个基准
- 提供了需求跟踪的工具
- 提供了确定数据对象或实体的起点
- 提供了设计用户和系统接口的功能规格说明
- 提供了定义数据库访问需求(增加、修改、删除和读取)的手段
- 提供了驱动系统开发项目的一个框架
二、关键术语描述:
用例建模:使用业务时间、发起业务事件的人,以及系统如何相应这些事件来建模系统功能的过程
用例图:描述系统与外部其他系统以及用户之间交互的图形。用例图描述了谁将使用系统,用户希望以什么方式与系统交互
功能分解:将一个系统拆分成子构件的活动
用例描述:业务事件以及用户如何同系统交互以完成任务的文字描述
用例:一个行为上相关的步骤序列,既可以是自动的也可以是手工的 ,其目的是完成一个单一的业务任务
参与者:代表了需要同系统交互以交换信息的任何事物
时序事件:由时间触发的系统事件
三、参与者、用例之间的关系
1.关联关系 这是最常使用的关系,用带箭头的实线来描述。
2.泛化关系 一个用例可以被列举为多个子用例,这就被成为用例泛化,这与类间的泛化关系类似。在用例泛化中,子用例表示父用例的特殊形式,可从父用例处继承行为和属性。泛化关系的图形用空心实线箭头表示,箭头指向父类。
3.包含关系 包含:指的是其中一个用例(称为基础用例)的行为包含了另一个用例(称为包含用例)。基础用例包含用例并依赖包含用例的执行结果。但是二者不能访问对方的属性。包含关系的图形为虚线箭头加<>,箭头指向包含用例。
4.扩展关系 扩展用例可以被定义为:基础用例的增量扩展,它俩之间为扩展关系。简单来说,就是当某特定条件出现时,该扩展用例的行为才会被执行。扩展关系的图形为虚线箭头加上<<>>,箭头指向基础用例。
四、用例建模的系统概念
用例建模主要有两个产物。第一个是用例图,它以图形化的方式将系统描述成用例、参与者(用户)及其之间的关系。用例图在高层交流了系统必须处理的业务事件的范围。第二个产物是用例描述,填充了每个业务事件,并说明了用户如何同系统交互的细节。
用例
参与者
关系(关联关系、扩展关系、包含关系、依赖关系、继承关系)
五、建立用例模型的步骤
- 定义系统
- 确定参与者和用例
- 描述参与者和用例关系
- 确认模型
六、我的工程实践用例图
我的工程实践是物联网网关智能搜索引擎
1、抽取Abstract use case
账号管理,个人信息管理,搜索管理,收藏管理。
2、确定用例范围High level use case
账号管理:注册,登录,退出。
个人信息管理:包括修改保存个人信息,关注/取关。
搜索管理:发出搜索,返回信息、提出建议。
收藏管理:收藏网关、收藏公司网址。
3、Expanded use case
账号注销:删除当前账号信息
链接功能:根据推荐信息给出相应的网关公司链接。