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

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

健壮性与正确性

健壮性

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

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

正确性

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

可能的问题 健壮性 正确性
浏览器发出包含空格的URL 跳过空格 返回HTTP 400 Bad Request error 状态
视频文件有坏帧 跳过坏帧到下一个帧 停止播放,抛出错误
配置文件使用非法字符 忽视非法字符 终端提示配置出错
奇怪格式
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值