软件构造学习记录(引1)

本文探讨了软件产品的两个核心质量属性——正确性和健壮性。正确性确保软件按照规约精确执行任务,而健壮性则保证软件在异常情况下仍能稳定运行,避免灾难性后果。文章强调了规约内外的界限,以及如何通过测试、防御式编程和形式化方法来保障软件质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正确性和健壮性

正确性

  正确性是软件产品按照事先定义好的“规约”执行它们精确的任务的能力。正确性是最重要的质量指标。在合作时,我们通常只能保证自己的正确性,同时假设自己工作的下层是正确的。
  正确性的保障手段:
  1.测试和调试;
  2.防御式编程:意味着从编写程序的最开始就保持程序的正确性,而不是时候通过手段1来进行修正;
  形式化方法:使用数学语言去形式化地检验规约是否被很好执行。

健壮性

  健壮性是软件系统正确应对异常状况地能力。健壮性是对正确性的补充。健壮性针对出现在规约定义之外的状况。
  健壮性意味着保证当异常情况出现后,系统不会出现灾难性的后果;程序应该产生合适的错误信息,并且简洁地终止执行,或者进入一个所谓的“优雅的终止”模式。

  注意,未被规约覆盖的情况被认为是异常,异常的概念是主观的而不是客观的,所谓的异常取决于规约的范畴。

  健壮性与“异常状况”紧密关联,这意味着正常和异常的概念总是相对于某一个特定的规约的。
  如果你拓展了规约的内容,那么有一些例子会从异常变为正常,即使这些例子和一些如你认为不会出现的错误的用户输入对应。
  在这个情境下“正常的”不意味着“可取的”,而是简单地意味着“在软件设计中被计划到的”
  尽管第一眼看上去错误的输入会被称为一个正常的例子的现象是自相矛盾的,然而其它的想法需要依赖主观标准,由此是无用的。

总结

  规约内部是正确性应该关注的范畴,规约外部的一部分是健壮性关注的范畴。我们使用的用例的正常与否仅仅与规约有关,只要在规约中,即使是错误的样例,我们也依然称之为“正常的样例”。以上体现了保证正确性的手段中的-----“保证与规约一致,保证本层内容正确而假设下面一层的内容是正确的。”方法。

声明:引用部分翻译自课程文档的英文部分,侵删

以上,致礼

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值