正确性和健壮性
正确性
正确性是软件产品按照事先定义好的“规约”执行它们精确的任务的能力。正确性是最重要的质量指标。在合作时,我们通常只能保证自己的正确性,同时假设自己工作的下层是正确的。
正确性的保障手段:
1.测试和调试;
2.防御式编程:意味着从编写程序的最开始就保持程序的正确性,而不是时候通过手段1来进行修正;
形式化方法:使用数学语言去形式化地检验规约是否被很好执行。
健壮性
健壮性是软件系统正确应对异常状况地能力。健壮性是对正确性的补充。健壮性针对出现在规约定义之外的状况。
健壮性意味着保证当异常情况出现后,系统不会出现灾难性的后果;程序应该产生合适的错误信息,并且简洁地终止执行,或者进入一个所谓的“优雅的终止”模式。
注意,未被规约覆盖的情况被认为是异常,异常的概念是主观的而不是客观的,所谓的异常取决于规约的范畴。
健壮性与“异常状况”紧密关联,这意味着正常和异常的概念总是相对于某一个特定的规约的。
如果你拓展了规约的内容,那么有一些例子会从异常变为正常,即使这些例子和一些如你认为不会出现的错误的用户输入对应。
在这个情境下“正常的”不意味着“可取的”,而是简单地意味着“在软件设计中被计划到的”
尽管第一眼看上去错误的输入会被称为一个正常的例子的现象是自相矛盾的,然而其它的想法需要依赖主观标准,由此是无用的。
总结
规约内部是正确性应该关注的范畴,规约外部的一部分是健壮性关注的范畴。我们使用的用例的正常与否仅仅与规约有关,只要在规约中,即使是错误的样例,我们也依然称之为“正常的样例”。以上体现了保证正确性的手段中的-----“保证与规约一致,保证本层内容正确而假设下面一层的内容是正确的。”方法。