也许你会问:"为什么叫'鲁棒'图?它和'鲁棒性'有什么关系?"
答案是:词汇相同,含义不同。
软件系统的"鲁棒性(Robustness)"也经常被翻译成"健壮性",同时它和"容错性(Fault Tolerance)"含义相同。具体而言,鲁棒性指当如下情况发生时依然具有正确运行功能的能力:非法输入数据、软硬件单元出现故障、未预料到的操作情况。例如,若机器死机,"本字处理软件"下次启动应能恢复死机前5分钟的编辑内容。再例如,"本3D渲染引擎"遇到图形参数丢失的情况时,应能够以默认值方式呈现,从而将程序崩溃的危险度减小为渲染不正常的危险度。
而"鲁棒图(Robustness Diagram)"的作用有两点,除了初步设计之外,就是检查用例规约是否正确和完善。"鲁棒图"正是因为第2点作用而得名的--所以严格来讲"鲁棒图(Robustness Diagram)"所指的不是"鲁棒性(Robustness)"。
从Doug Rosenberg在《用例驱动的UML对象建模应用》的描述中,也可得到上述结论:
在ICONIX过程中,鲁棒分析扮演了多个必不可少的角色。通过鲁棒分析,您将改进用例文本和静态模型。
有助于确保用例文本的正确性,且没有指定不合理或不可能的系统行为(基于要使用的一组对象),从而提供了健康性检查(Sanity Check)。这种改进使用例文本的特性从纯粹的用户手册角度变为对象模型上下文中的使用描述。
有助于确保用例考虑到了所有必需的分支流程,从而提供了完整性和正确性检查。经验表明,为实现这种目标,并编写出遵循某些定义良好的指南的文本,而在绘制鲁棒图上花费的时间,将在绘制时序图时3~4倍地节省下来。
有利于发现对象,这一点很重要,因为在域建模期间肯定会遗漏一些对象。您还可以发现对象命名冲突的情况,从而避免进一步造成严重的问题。另外,鲁棒分析有利于确保我们在绘制时序图之前确定大部分实体类和边界类。
如前所述,它缩小了分析和详细设计之间的鸿沟,从而完成了初步设计。