第一章:软件构建的视图和质量目标
第二节:软件构造的质量目标
问题一:影响软件质量的因素
1.外部质量因素
2.内部质量因素
- 外部质量因素影响用户
- 内部质量因素影响软件本身和它的开发者
- 外部质量取决于内部质量
问题二:外部质量因素包括什么
1.Correctness 正确性
含义:正确性是软件产品按照其规范定义的执行其精确任务的能力。
- 至高无上的质量目标
- 软件的行为要严格的符合规约中定义的行为
- 测试和调试: 发现不正确 消除不正确
- 防御式编程:在写程序的时候就保证正确性
- 形式化方法:通过形式验证发现问题
2.Robustness 健壮性
含义:健壮性是软件系统对异常情况作出适当反应的能力
- 针对异常情况的处理
- 出现规约定义之外的情形的时候,软件要做出恰当的反应
- spec:软件合约
含义:可扩展性是使软件容易适应变更的能力。
- scale 规模越大 ,扩展起来越不容易
- 扩展的目的:应对变化
- 如何提高可扩展性:简约主义设计、分离主义设计
含义:可复用性是软件元素服务于构建许多不同的应用程序的能力(一次开发,多次使用)
5.Compatibility 兼容性
含义:兼容性是不同的软件系统之间相互可容易的集成
- 实现兼容性的关键是产品标准化
6.Efficiency 性能
含义:效率是软件系统尽可能少地对硬件资源进行处理的能力,例如处理器时间、内部和外部存储器占用的空间、通信设备中使用的带宽。
- 如果没有正确性,性能将毫无意义
- 对性能的关注要与其他质量属性进行折中
- 过度优化导致软件不再适应变化和复用
7.Portability 可移植性
含义:软件可方便的在不同的技术环境之间移植的能力。
8.Ease of use 易用性
含义:易用性是容易的,不同背景和资历的人可以学习使用的软件产品和应用它们解决问题。(容易学、安装、操作、监控)