软件构造-6.1健壮性与正确性

本文探讨了软件构造中的健壮性和正确性。健壮性关注系统在异常输入或环境下的稳定运行,强调处理错误并提供有用的错误信息。正确性则保证程序按规范执行,避免给用户错误结果。两者之间存在一定的权衡,健壮性倾向于容忍错误,而正确性主张严格报错。在设计时,通常对外接口注重健壮性,对内实现强调正确性。衡量健壮性可参考平均故障间隔时间(MTBF),而正确性则可通过残余缺陷率来评估。

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

健壮性与正确性

健壮性

健壮性:系统在不正常输入或不正常外部环境下仍能够表现正常的程度。面向健壮性的编程主要有以下特点:

  • 处理未期望的行为和错误终止
  • 即使终止执行,也要准确/无歧义的向用户展示全面的错误信息
  • 错误信息有助于进行debug
    面向健壮性的编程总是假定用户是恶意的,可能对输入的东西进行任意情况的输入,因此可能对程序造成影响,如果健壮性没有做好的话,程序甚至可能会直接崩溃。健壮性的原则是Postel’s Law:对别人宽容点,对自己狠一点。也就是说对自己的代码要保守,对用户的行为要开放。
    健壮性的编程要求程序员封闭实现细节,限定 用户的恶意行为。并且在实现代码的过程中考虑极端情况,没有“不可能”。

正确性

正确性:程序按照spec加以执行的能力,是最重要 的质量指标!正确性和健壮性相比较而言,正确性永不给用户错误的结果,健壮性尽可能保持软件运行而不是总是退出,两者在一定程度上而言是存在矛盾的。正确性倾向于直接报错(error),健壮性则倾向于容错(fault-tolerance)。

可能的问题 健壮性 正确性
浏览器发出包含空格的URL 跳过空格 返回HTTP 400 Bad Request error 状态
视频文件有坏帧 跳过坏帧到下一个帧 停止播放,抛出错误
配置文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值