软件工程用例模型分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
参与者(Actor) 关系(Relationship) 系统(System)



一个用例是可以被行为 者感受到的、系统的一 use case 个完整的功能。 参与者是指在系统之 外,透过系统边界与系 Actor 统交互的任何事物,代 表外部实体。可能是人、 用例之间的关系有:扩 另外一个系统、时间的 展关系、使用关系和泛 流逝等。 化关系。 系统是提供用例的黑盒 子。其边界用矩形框表 示,用例图中也可不画 系统边界。
面向对象方法引论—用例模型
信息工程学院
参与者的泛化

参与者之间也可以象类一样存在泛化或者依 赖关系。
用户 登录系统
选课
学生
教师
安排教学计划
面向对象方法引论—用例模型
信息工程学院
识别用例时需要思考的问题



每个参与者的任务是什么 由参与者将要创建、存储、改变、删除或读取系统中 的信息吗 什么用例会创建、存储、改变、删除、或读取这个信 息 参与者需要通知系统外部的变化吗 需要通知参与者系统中正在发生的事情吗 什么用例将支持和维护系统 所有的功能需求都能被用例执行吗
信息工程学院
面向对象方法引论—用例模型
例1:识别参与者

寻呼台系统:用户如果预定了天气预报,系 统每天定时给他发天气消息;如果当天气温 高于35度,还要提醒用注意防暑;
在这个叙述里,谁是寻呼台系统的Actor?
面向对象方法引论—用例模型
信息工程学院
预定天气预报
用户
发送天气预报
时间
提醒防暑
温度
寻呼台系统用例图
<<extend>>
面向对象方法引论—用例模型
信息工程学院
使用(Include)

即在一个用例中重用另一个用例中的步骤。
<<include>>
下订单 检索客户信息
面向对象方法引论—用例模型
信息工程学院
包含关系的误用!
<<include>> <<include>> 验证注册信息充分 <<include>> 潜在会员 注册 <<include>> 生成用户名和密码 填写注册信息

“四轮马车”



C(Create) R(Read) U(Update) D(Delete) 所有业务最终对会成为 CRUD? CRUD能为Actor提供价值? CRUD掩盖业务,锐变成关 系数据库的建模:

增加用户
修改用户
管理员

“系统就是数据的增删改 查” 关心数据的存储和维护, 反而忽略了用户的目的
面向对象方法引论—用例模型
信息工程学院
要点:用户观点而非系统观点
订票 旅客 查看今日航班
处理订票
旅客 显示今日航班
用户观点
系统观点
面向对象方法引论—用例模型
信息工程学院
要点:用例的命名

执行者视角:

(状语)动词+(定语+ )宾语
面向对象方法引论—用例模型
信息工程学院
要点:用例的粒度(1)

最常犯错误:粒度过细,陷入功能分解。过细 的粒度,一般都会导致技术语言的描述,而不 再是业务语言。
例2:识别用例

Email服务器,A在北京发邮件给上海的B, 系统提醒B你有“新邮件”,B收邮件。
面向对象方法引论—用例模型
信息工程学院
时间
邮件服务器用例图
面向对象方法引论—用例模型
信息工程学院
识别用例间的关系

用例之间的关系有三种:扩展关系、使用关系 和泛化关系。
<<include>>
Include Extend Generalization
信息工程学院
面向对象方法引论—用例模型
识别用例的注意事项

注意事项:





可观测→用例止于系统边界 结果值→用例是有意义的目标 系统执行→结果值由系统生成 由参与者观测→业务语言、用户观点 命名规则 粒度大小
面向对象方法引论—用例模型
信息工程学院
要点:用例止于系统边界
描述交互,而不是内在的系统活动
面向对象方法引论—用例模型
用例模型
用例模型 简介
用例建模 技术
用例模型 (use case modul)
在UML中,一个用例模型由若干个用例图(use case diagram)描述。 用例图是用于显示一组用例、参与者以及它 们之间关系的图。
面向对象方法引论—用例模型
信息工程学院
用例图的组成

用例(Use Case)
面向对象方法引论—用例模型
信息工程学院
面向对象方法引论—用例模型
用例模型
用例模型 简介
用例建模 技术
用例建模技术
识别参与者 识别用例 识别用例间的关系
用例阐述
练习
面向对象方法引论—用例模型
信息工程学院
识别参与者时需要思考的问题






谁使用系统的主要功能 谁改变系统的数据 谁从系统获取信息 谁需要系统的支持以完成日常工作任务 谁负责日常维护、管理并保证系统正常运行 系统需要应付(处理)那些硬设备 系统需要和那些外部系统交互 谁(或什么)对系统运行产生的结果(值)感兴 趣 时间、气温等内部外部条件
面向对象方法引论—用例模型
信息工程学院
要点:用例的粒度(1)

把步骤当用例
会员
输入用户名
<<include>>
会员
登录
验证用户名和密码

把系统活动当用例
查询订单
<<include>> 建立数据库连接 <<include>>
执行SQL语句
面向对象方法引论—用例模型
信息工程学院
要点:用例的粒度(2)
查询用户
删除用户
面向对象方法引论—用例模型
信息工程学院
要点:用例的粒度(2)

如果确实是CRUD? 如果CRUD不涉及复杂的交互,一个用例“管理××”即可

不管是C、R、U、D,都是为了完成“管理”目标 甚至很多种的基本数据管理都可以用一个用例表示
管理员
管理用户
面向对象方法引论—用例模型
信息工程学院
面向对象方法引论—用例模型
信息工程学院
要点:有意义的目标
设定查询条件
会员 选择零件
会员
检索零件
面向对象方法引论—用例模型
信息工程学院
要点:结果值由系统生成
会员
检索零件
系统需要处理的,由系统生成
面向对象方法引论—用例模型
信息工程学院
要点:业务语言而非技术语言

用户词汇,而不是技术词汇

如:发票,商品,洗衣机 而不是:记录,字段,COM,C++等
信息工程学院
面向对象方法引论—用例模型
用例图的应用

用例图是从用户的角度来描述对软件产 品的需求,分析产品的功能和外部可见 行为。

借助用例图,用户可以参与前期的系统 分析与设计。
面向对象方法引论—用例模型
信息工程学院
用例图对开发的意义
需求 分析和设计 实现 测试
Use Cases 把所有这些过程绑到一起
相关文档
最新文档