1.2 软件构造的质量目标
一. 软件系统的质量特性
外部质量因素:质量,如速度或易用性,其存在或不存在于软件产品中可能被其用户检测到。(外部质量因素影响用户)
内部质量因素:模块化或可读性等,只有能够访问实际软件文本的开发人员才能察觉。(内部质量因素影响软件本身和它的开发者)
最终,只有外部因素起作用。但是,实现这些外部因素的关键在于内部因素:为了让用户享受可见的质量,设计者和实现者必须应用内部技术来确保隐藏的质量。
二. 外部质量因素
2.1 正确性
软件产品执行它们的准确任务的能力,这是由它们的规范定义的。软件需要按照预先定义的“规约”执行。
正确性是最重要的质量指标。
假设软件系统是分层开发的。
每一层都保证它的正确性,前提是它的下层也是正确的。
确保正确性的手段:
- 测试和调试:发现不正确、消除不正确
- 防御式编程:如类型和断言。在写程序的时候就确保正确性,而不是将其调试成正确的。
- 形式化方法:通过形式化验证发现问题
2.2 健壮性
健壮性是软件系统对异常情况做出适当反应的能力。
- 健壮性是对正确性的补充
- 正确性:软件的行为要严格的符合规约中定义的行为
- 健壮性:出现规约定义之外的情形的时候,软件要做出恰当的反应
- 健壮性:出现异常时不要“崩溃”;它应该生成适当的错误消息,干净地终止执行&#