将scenario定义为use case的实例是否存在问题?
关于将scenario定义为use case实例的合理性与问题说明
这种定义方式并非完全错误,但存在非常明确的适用边界,泛化使用会出现严重的概念混淆问题,具体可以从三个维度判断:
定义成立的窄语境
在UML规范、传统软件工程需求建模的小范围语境下,这个定义是自洽的:
- use case本质是对参与者与系统交互达成特定目标的抽象行为模板,描述的是某一类交互的所有可能路径、约束和规则
- 这种语境下的scenario对应的就是use case的某一个具体运行实例,比如「用户登录」这个use case,就可以对应「输入正确账号密码成功登录」「输错2次密码后输入正确登录」「输错3次密码触发账号临时锁定」等多个具体scenario
泛化使用的核心问题
一旦跳出上述窄语境,这个定义就不成立,主要问题包括:
- 跨领域适配性为0:在城市规划、公共政策、服务设计、社会学等大量用到scenario概念的领域,根本不存在use case的对应概念,scenario本身指的是对未来情境、事件发展脉络的完整假设,和软件工程领域的定义完全无关
- 软件工程领域内部也存在定义冲突:不少需求工程流派的研究中,scenario是比use case层级更高的概念,use case反而是为了落地scenario中的目标拆解出来的具体交互单元,二者是包含与被包含的关系,而非实例与模板的关系;还有部分定义中scenario是包含上下文环境、参与者、外部约束、交互流程、最终结果的完整集合,use case只是其中的交互环节部分
- 容易引发概念歧义:如果没有提前明确研究语境和概念边界就直接使用这个定义,会导致不同研究背景的读者对概念的理解出现偏差,甚至出现逻辑矛盾
正确的使用前提
如果你研究的是UML标准下的需求建模、传统软件系统的需求分析,且在研究开篇明确标注你采用的是该窄语境下的概念定义,这个用法是完全可行的;其余场景下不建议直接使用该定义,需要先明确你研究领域中对两个概念的通用界定。
内容的提问来源于stack exchange,提问作者TP-O
相关产品推荐
相关产品推荐

