软件构造(2)- 软件构造的质量指标
一.软件系统的质量属性
- External quality factors (外部质量因素)
(1) 正确性:最重要的质量指标
按照预先定义的规约执行
确保正确性的方式:
① Conditional(分层):每一层保证自己的正确性,同时假设其下层是正确的
② 测试和调试:发现不正确,消除不正确
③ 防御式编程:在写程序的时候就确保正确性
④ 形式化方法:通过形式化验证发现问题
(2) 健壮性:针对异常情况的处理
健壮性是对正确性的补充
正确性:软件的行为要严格的符合规约中定义的行为
健壮性:出现规约定义之外的情形的时候,软件要做出恰当的反应,出现异常时不要崩溃
未被specification覆盖的情况即为“异常情况”,所谓的“异常”,取决于spec的范畴
(3) 可扩展性:对软件的规约进行修改,以适应变化。
规模越大,扩展越不容易。
(4) 可复用性:一次开发,多次使用
要点:发现共性。
(5) 兼容性:不同的软件系统之间相互可容易的集成
(6) 性能:对性能的关注要与其他质量属性进行折中
(7) 可移植性:软件可方便的在不同的技术环境之间移植
(8) 易用性
(9) 函数性(Functionality):每增加一小点功能,都确保其他质量属性不受到损失
(10) 及时性:
可验证性,完整性,可修复性,经济性…
- Internal quality factors(内部质量因素)
(1) 圈复杂度:用来衡量一个模块判定结构的复杂程度 。
(2) 耦合度:设计中追求高内聚和低耦合。
可阅读性,可理解性,清晰度,大小…
- Tradeoff between quality properties (折中)
虽然需要折中,但“正确性”绝不能与其他质量因素折中。
最重要的几个质量因素:
正确性和健壮性:可靠;
可扩展性和可复用性:模块化;
二.五个软件构造中关键的目标
优美的代码:易于理解
面向复用的设计:开发成本低
低复杂度:易于修改和扩展
健壮性和正确性:避免bug
表现和效率:高效运行
可理解性:
可复用性:可维护性和适应性:
健壮性:
性能:
三.总结
软件系统的质量属性:
- 内部、外部质量因素
- 重要的外部质量因素
- 质量因素间的折中
软件构造的五个关键目标:易于理解、易于改变、开发成本低、避免BUG、高效运行