UML和模式读书笔记:Use Case部分
Use Case:
总结和明确需求是项目开发后期成果的基础,并对其后续的评估、规划与实现等环节产生重要影响
Notation:Use Case不仅仅局限于使用Case图;实际上它以文本描述为核心并将Use Case Diagram作为可选内容
理解三个定义:Actor,Scenarios,Use Cases。
Use Case Model:
Use Case Model不仅仅只是需求分析成果物的一部分,在需求分析过程中产生的成果物还包括其他部分, 例如Supplementary specification, Glossary, Vision和business Rules等。这些内容的具体产生和使用将根据项目的具体情况而有所不同。
在进行Use Case建模的过程中,并不需要采用OO(面向对象)的思想;其核心在于从用户的立场出发,在对用户与系统交互过程进行描述的基础上揭示出用户的最终目标以及系统的具体任务;主要关注于功能需求与行为需求;明确系统应遵循的操作规范以及与用户的交互方式;这种情况下,在一定程度上可以说它类似于一种功能说明书;如果必须完成这项工作的话,则可以选择借助功能式样书来辅助说明;前提条件是该Use Case的内容必须详尽无遗;对于无法涵盖的部分,则可以通过补充说明文档来进行详细阐述
Use Case的三种格式:
- Brief
在建模初期阶段开展分析工作,在短时间内迅速获取系统与用户交互的场景及视图,并大致预计完成所需时间
- Casual
非正式化的段落安排,在各个段落对应不同的场景下展开讨论的同时,在前期分析阶段进行搭建
- Fully dressed
所有场景与视图均经过详尽阐述,并包含支撑部分以及前置条件等要素。对于用户与系统之间的交互流程及其可能出现的状态变化进行了详尽阐述
| Use Case Section**** | Comment**** |
|---|---|
| Use Case Name | Start with a verb. |
| Scope | The system under design. |
| Level | "user-goal" or "subfunction" |
| Primary Actor | Calls on the system to deliver its services. |
| Stakeholders and Interests | Who cares about this use case, and what do they want? |
| Preconditions | What must be true on start, and worth telling the reader? |
| Success Guarantee | What must be true on successful completion, and worth telling the reader. |
| Main Success Scenario | A typical, unconditional happy path scenario of success. |
| Extensions | Alternate scenarios of success or failure. |
| Special Requirements | Related non-functional requirements. |
| Technology and Data Variations List | Varying I/O methods and data formats. |
| Frequency of Occurrence | Influences investigation, testing, and timing of implementation. |
| Miscellaneous | Such as open issues. |
包含了许多项目,并非所有项目均为必需项。除了基础性项目的范畴之外,则有一些具有重要意义的关键性项目值得在对应的Use Case中进行展示。“Stakeholders and Interests实机”说明的是该Use Case的重要程度这一指标值会对项目的后续规划产生重大影响,尤其是在采用迭代开发模式时,这一指标值的变化会直接影响整个项目的进度安排。“user-goal”则直接指出了系统的功能定位,即描述系统与客户之间的交互关系,而“subfunction”则是实现上述目标所需设计的具体模块化组件.
Use Case建模的指导原则:
- 早期Use Case建模避免与UI相关联:
在需求分析初期阶段,在进行Use Case建模时,则会经常考虑诸如UI界面之类的东西;Case描述通常建立在这些界面基础之上,并以操作如 login 等为例来进行说明。这些都是为了达成目标的方法手段,并非以用户的视角与具体目的为基础来展开;因此,在这种情况下,则应在描述中突出用户的最基本动机与意图。
同样建议,在初期阶段应尽量避免构建具体的应用用例模型。应当着重关注核心内容,而非过分关注用户界面设计。
- 建模时,使用简洁的语言:
任何时候,在使用简明扼要的语言来表达问题方面都应该得到认可;去掉那些复杂且可能导致理解混淆的术语。
- 基于黑盒创建Use Case
黑盒创建Use Case即不描述系统工作的中间环节,组件或者与设计相关
