引言
鲁棒性分析最初由伊瓦尔·雅各布森的Objectory方法提出,但后来被排除在统一建模语言(UML)之外,是软件工程中一种有价值的实践。该方法涉及剖析用例的叙述性文本,以识别参与这些用例的主要对象集合,并根据其角色对这些对象进行分类。通过这种方式,鲁棒性分析促进了用例与领域类之间的无缝连接,有效地契合了模型-视图-控制(MVC)软件架构。
需要注意的是,鲁棒性分析并非UML的固有组成部分,但需要使用构造型才能有效应用。让我们深入探讨鲁棒性分析图中使用的几个关键符号:

1. 边界对象(或接口对象): 这些是参与者与系统交互的通信通道。
2. 实体对象: 通常代表领域模型中的对象,这些实体用于存储和管理系统数据。
3. 控制对象: 作为边界对象与实体对象之间的“粘合剂”,控制对象在协调系统功能方面发挥着关键作用。在MVC的背景下,它们类似于控制器。
鲁棒性分析图概述
为了进一步说明这一概念,让我们考虑一个简单的用例描述文本格式:
“从学生详情页面,教师点击‘添加课程’按钮,系统显示课程列表。教师选择一门课程的名称并按下‘注册’按钮。系统将学生注册到该课程。”
这一叙述可以转化为一个清晰的鲁棒性分析图:

此外,您可以在鲁棒性分析图的右侧添加一个文本标签,附上用例描述,以增强清晰度和上下文。

鲁棒性分析图的四个连接规则
为确保一致性和遵循最佳实践,必须牢记鲁棒性分析图的以下四个基本连接规则:
- 参与者只能与边界对象交互。
- 边界对象只能与控制器和参与者通信。
- 实体对象只能与控制器交互。
- 控制器可以与边界对象、实体对象和其他控制器通信,但不能直接与参与者通信。

这些规则确保了结构化且高效的系统设计,与模型-视图-控制模式的原则保持一致。
迪米特法则
鲁棒性分析与“迪米特法则”(LoD)相一致,强调松耦合,并尽量减少软件单元之间的知识传递。该法则提倡以下原则:
- 每个单元对其他单元的知识应有限,主要限于那些密切相关的单元。
- 单元应仅与其直接的“朋友”(直接合作者)进行通信,避免与无关或遥远的单元交互。
- 对象应尽可能少地假设其他对象的结构或属性,以促进信息隐藏。
这些原则有助于实现模块化和可维护的软件设计。
创建鲁棒性分析的五个步骤
- 分析用例文本:首先逐句剖析用例文本。
- 识别对象:根据文本的上下文绘制参与者、边界对象、实体对象和控制器。
- 创建连接:在图示元素之间建立连接。
- 保持清晰:确保任何审阅图示的人都能轻松将其与用例文本对应起来。
- 优化用例文本:根据需要修改用例文本,以消除歧义,并明确引用边界对象和实体对象。
健壮性分析起到了桥梁作用,将用例描述与可视化图示连接起来,促进对系统功能的深入理解。
使用MVC序列图开发用例场景
在健壮性分析的基础上,你可以使用一组遵循MVC格式的相关序列图,创建正常和替代的用例场景。在MVC序列图中:
- 实体代表系统数据。
- 边界作为与系统参与者交互的接口。
- 控制在边界和实体之间协调交互,指挥命令的执行。
MVC序列图中的控制器通常对应特定的用例场景,并可通过生命线上的构造型进行视觉区分。

结论
健壮性分析是系统设计中的宝贵工具,有助于将用例高效地转化为清晰且结构化的软件架构。当与MVC序列图结合使用时,它提供了一种全面的软件开发方法,促进模块化和可维护性。通过遵循这些实践,你可以确保软件开发过程更加顺畅,并提升项目整体质量。











