知识卡片

用例技术族四种技术的用途定位

结构图卡

内容

“用例模型”不是一种单一技术,而是把用例图、用例简述、用例规约、用例实现四种性质不同的技术笼统地打包在一起的说法,把它们不加区分地混用,既不利于学习也不利于实践——按”需求层次论”(业务需求、用户需求、行为需求)来定位,四者的用途各不相同。用例图描述软件系统为用户或外部系统提供的服务,最重要的元素是参与者(Actor,与系统交互的角色或系统)和用例(Use Case),用例名称须从参与者角度描述、以动词开头(如”柜员开户”),用例图确定了与系统交互的角色、并可视化地明确了系统功能范围(Scope)内的所有功能——它反映的是用户需求。用例简述是通过简短文字对用例功能做描述的”轻量级”用例说明技术,一般包含成功场景的简单描述,很多敏捷方法(如XP的用户故事卡、FDD的特征)本质上采用的都是类似技术——它是行为需求的简化描述。用例规约是对用例的详细描述,包含简要说明、主事件流、备选事件流、前置条件、后置条件、优先级,目的是界定软件系统的行为需求——相比用例简述,用例规约是行为需求的”规格级”详述,属于”重”量级技术。用例实现(用例实现=协作)用鲁棒图建模,刻画为实现某个用例定义的功能需要哪些类、类之间如何交互——它已经不是需求而是初步设计,是从功能需求向设计方案过渡的思维纽带。

结构图

flowchart LR
    A["用例图\n(用户需求)"] --> B["用例简述\n(行为需求·简化描述)"]
    B --> C["用例规约\n(行为需求·规格级详述)"]
    C --> D["用例实现/鲁棒图\n(初步设计,非需求)"]

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第6章《用例与需求》"6.1 用例技术族"及"6.1.5 4种技术的关系"节(源文件:_epub-src/OEBPS/text00009.html) - 结论依据:原文说明"用例图从总体上反映了【用户需求】;用例简述是【行为需求】的简化描述;用例规约也描述系统的【行为需求】,但属'规格级'详述;至于鲁棒图(用例实现)已属于设计范畴,确切地讲是【初步设计】",直接支撑本卡片结论与结构图。 - 原始内容:用例技术是多种技术组成的"技术族",不应该一概而论,那种把所有这些技术一股脑儿称为"用例模型"的做法,不利于学习,也不利于实践……用例实现=协作。