软件工程-用例图基础杂记

主要元素

参与者:(描述与系统交互的人或物,代表外部实体(如用户、硬件设备或其它软件系统))

用例: (用例即是执行者与计算机一次典型交互,代表系统某一完整功能。)

用例图基本示范

软件工程-用例图基础杂记_第1张图片

建立用例模型

发现执行者

  1. 谁使用该系统;
  2. 谁改变系统的数据;
  3. 谁从系统获取信息;
  4. 谁需要系统的支持以完成日常工作任务;
  5. 谁负责维护、管理并保持系统正常运行;
  6. 系统需要应付那些硬件设备;
  7. 系统需要和那些外部系统交互;
  8. 谁对系统运行产生的结果感兴趣。

获取用例

  1. 向执行者提出问题获取用例
  2. 执行者需获取何种功能,需要作什么;
  3. 执行者需读取、产生、删除、修改或存储系统中某种信息;
  4. 系统发生事件和执行者间是否需要通信。

这里需要注意的是用户的观点并不是系统观点
软件工程-用例图基础杂记_第2张图片
同时也需要注意用例的粒度以及不要在用例中描述系统的活动
软件工程-用例图基础杂记_第3张图片

用例图的三种关系

泛化关系

如下图所示,一般行为的检查用户可惜泛化出见检查用户密码、检查用户视网膜
软件工程-用例图基础杂记_第4张图片
同样的参与者的也可以进行泛化
软件工程-用例图基础杂记_第5张图片

扩展

允许一个用例扩展另一用例提供的功能,与泛化关联类似,有更多规则限制
软件工程-用例图基础杂记_第6张图片

包含关系

包含关系指两个用例之间的关系,其中一个用例(即基本用例)的行为包含了另一个用例(即包含用例)的行为。

软件工程-用例图基础杂记_第7张图片

小结

包含关系

使用场合
1. 如果两个以上用例有大量一致的功能,则可以将这个功能分解到另一个用例中,其他用例可以和这个用例建立包含关系。
2. 一个用例的功能太多时,可以使用包含关系建立若干个更小的用例。
意义
它有助于将来实现系统时,确定哪些功能可以重用,在编写代码时就可以实现代码的重用,缩短开发周期。
注意:执行基用例时,每次都必须调用被包含用例。

扩展

用一个用例(可选)扩展另一个用例(基本例)的功能。
使用场合
对扩展用例的限制规则:将一些常规的动作放在一个基本用例中,将可选的或只在特定条件下才执行的动作放在它的扩展用例中。

用例的描述

概述

用例采用自然语言描述参与者与系统进行交互时双方的行为,不追求形式化的语言表达

用例描述的内容

用例的目标
用例是怎么启动的
参与者和用例之间的消息是如何传送的
用例中除了主路径外,其他路径是什么
用例结束后的系统状态
其他需要描述的内容

编写原则

只书写“可观测”的
使用主动语句
句子必须以执行者或系统作为主语
每一句都要朝目标迈进
分支和循环
不要涉及界面细节

常见错误和正确范例

软件工程-用例图基础杂记_第8张图片
软件工程-用例图基础杂记_第9张图片
软件工程-用例图基础杂记_第10张图片

常见错误

只描述系统的行为,没有描述参与者的行为
只描述参与者的行为,没有描述系统的行为
在用例描述中就设定对用户界面设计的详细要求
描述过于冗长

例题1

建立一航空公司的机票预定系统,让客户通过电话或网络买票、改变订票、取消订票、预定旅馆、租车等等。

软件工程-用例图基础杂记_第11张图片

例题2

  1. 对考生送来的报名单进行检查
  2. 对合格的报名单进行编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站
  3. 对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者
  4. 制作考生通知单(含合格或不合格标志)送给考生
  5. 按地区进行成绩分类统计和试题难度分析,产生统计分析表

软件工程-用例图基础杂记_第12张图片

你可能感兴趣的:(软件工程,python,java,linux,大数据,编程语言)