健壮性和正确性的辨析

在评价一个软件的功能好坏时,我们首先看重的指标就是健壮性和正确性,由于这两个性质的定义过于相似,所以难于辨析。在这片博客中,我来辨析一下健壮性与正确性的异同。

1.正确性

正确性是指软件产品执行其规范所定义的精确任务的能力,需要软件可以按照预先定义的“规约”执行,正确性是最重要的质量指标

2.健壮性

健壮性指的是软件针对异常情况的处理的能力,健壮性是对正确性的补充,希望出现异常时不要“崩溃”

3.二者区分

正确性:软件的行为要严格的符合规约中定义的行为
健壮性:出现规约定义之外情形的时候,软件要做出恰当的反应
健壮性和正确性的辨析_第1张图片
未被specification覆盖的情况即为“异常情况”,正确性倾向于让软件符合规约中的条件,而健壮性倾向于处理当软件超出规约时的情况
正确性倾向于直接报错(error),健壮性则倾向于容错(fault-tolerance)

4.二者的实现

实现正确性,对程序员的要求更低,用户输
入错误,即不满足precondition的调用,直接结束。
而实现健壮性,对程序员提出了更高的要求。有一个Postel法则,要程序员总是假定用户恶意、假定自己的代码可能失败,把用户想象成白痴,可能输入任何东西,返回给
用户的错误提示信息要详细、准确、无歧义,考虑到所有最极端的情况,没有不可能。

所以,对外的接口,倾向于健壮;对内的实现,倾向于正确
可靠性=鲁棒性+正确性

你可能感兴趣的:(软件构造,哈工大,学习笔记,java,软件框架)