Datahub
数据改变生活

【软件工程】用例模型概念与建立

发表时间:2022-10-28 23:24

**为什么需要⽤例建模**——**描述系统的功能性需求**


• 关联干系人需要以及软件需求


• 确认与系统交互的人或对象(参与者)


• 定义系统的边界


• 捕捉和传达系统的理想行为(用例)


• 验证或确认需求


• 规划工具


*参与者(**Actor***


与系统交互的人或外部系统


*用例(**Usecase***


系统为参与者提供的有价值的服务功能


*关联(**Associa,on***


用例与参与者之间的交互关系


用例:定义**系统**的一系列**行为** 。通过此可为**参与者**提供**有价值****可观测**的结果。


**⽤例包含软件系统需求**


• 用例


• 定义一个参与者要用到的系统功能


• 描述系统为实现参与者价值所开展的行为序列


• 对参与者与系统之间的交互活动进行建模


• 从特定的用户角度出发,是完整的,实现特定用户价值的事件流


**参与者的定义:关注⾓⾊**


• 与系统交互的人


• 与系统交互的硬件组件


• 或者其他的外部系统


• 关注的重点是所承担的“角色”


• 参与者的名要明确定义其角色


**交互**——**关联(**Association****


• 参与者与用例之间的交互通道


• 用一条直线表示交互——关联


• 有箭头的关联指出是谁发起的交互


• 没有箭头则表明双方都可以发起交互


**构建用例模型的步骤**


• 第一步:找到所有的参与者和用例

• 识别出参与者并做简单的描述

• 识别出用例并做简单的介绍


• 第二步:编写用例

• 列出用例

• 给用例事件流程划分重要等级

• 按照重要程度排序详细描述事件流程


**参与者建模的检查项**


• 是否找全所有的参与者?是否对系统环境中所有的角色进行了描述和建模?


• 每个参与者是否至少与一个用例发生了交互?


• 是否可以为每一个角色找到至少两个实例?


• 不同参与者与系统的交互是否一致,扮演的角色是否相似?如果有,则应该要合并这些参与者作为同一种角色


**识别用例**


• 每个参与者的目标是什么?

• 为什么参与者要使用这个系统?

• 参与者是否需要对系统中数据进行创建,存储,更改,删除或者读取的操作?为什么?

• 参与者是否需要将外部事件或发生的改变告知系统?

• 参与者是否需要知道系统内部发生的事件或改变?


• 系统是否能够应对业务中所有的正确行为与操作?


**用例的命名**


• 表明参与者的目标或者作用


• 使用主动语态:用动词起始


• 设计一系列操作流程(to-do list)


• 几种表达:

• Register for Courses

• Registering for Courses

• Acknowledge Registration

• Course Registration


**用例建模过程中的检查项**


• 用例建模是为了表示系统的行为。通过模型可以很容易理解系统进行的操作


• 应该识别出所有的用例,用来表达所有的需求。


• 系统的任何一个特性都可以找到对应的用例


• 用例模型并不包含多余的行为;所有的用例可以追溯到系统的功能性需求作为验证。


• 去掉所有的**CRUD 类的用例**


**创建(C**reate), 查找(**R**etrieve), 更新(**U**pdate), 删除(**D**elete)


**构建用例模型的步骤**


• 第一步:找到所有的参与者和用例

• 识别出参与者并做简单的描述

• 识别出用例并做简单的介绍


• 第二步:编写用例

• 找出用例

• 给用例事件流程划分重要等级

• 按照重要程度排序详细描述事件流程


**寻找用例的方法**


• 和用户交互


• 基本策略:把自己当作actor,与设想中的系统进行交互。


考虑:


• 系统交互的目的是什么?


• 需要向系统输入什么信息?


• 希望由系统进行什么处理并从它得到何种结果?


注意:确定Use Case和确定actor不能截然分开


**总结:**Use Case**模型的建立步骤**


(1) 找出系统外部的参与者和外部系统,确定系统的边界和范围;


(2) 确定每一个参与者所期望的系统行为;


(3) 把这些系统行为命名为Use Case;


(4) 使用泛化、包含、扩展等关系处理系统行为的公共或变更部分;


(5) 编制每一个Use Case的脚本;


(6) 绘制Use Case图;


(7) 区分主事件流和异常情况的事件流,可以把表示异常情况的事件流作为单独的Use Case处理;


(8) 细化Use Case图,解决Use Case间的重复与冲突问题。



文章分类: 软件工程
分享到:
QQ:258506508                                     联系电话:020-000000    000-000000                                   联系邮箱:xxx@.co.m                                     联系地址:XXX省XXX市XXX县XXX路