第一章--第二节:软件构造的质量目标(软件构造学习笔记)

第一章:软件构建的视图和质量目标

第二节:软件构造的质量目标


问题一:影响软件质量的因素

            1.外部质量因素

            2.内部质量因素

  • 外部质量因素影响用户
  • 内部质量因素影响软件本身和它的开发者
  • 外部质量取决于内部质量

问题二:外部质量因素包括什么

1.Correctness 正确性

    含义:正确性是软件产品按照其规范定义的执行其精确任务的能力。

  • 至高无上的质量目标
  • 软件的行为要严格的符合规约中定义的行为
  • 测试和调试: 发现不正确 消除不正确
  • 防御式编程:在写程序的时候就保证正确性
  • 形式化方法:通过形式验证发现问题

2.Robustness 健壮性

    含义:健壮性是软件系统对异常情况作出适当反应的能力

  • 针对异常情况的处理
  • 出现规约定义之外的情形的时候,软件要做出恰当的反应
  • spec:软件合约
3. Extendibility  可扩展性

    含义:可扩展性是使软件容易适应变更的能力。

  • scale 规模越大 ,扩展起来越不容易
  • 扩展的目的:应对变化
  • 如何提高可扩展性:简约主义设计、分离主义设计
4.Reusability 可复用性

    含义:可复用性是软件元素服务于构建许多不同的应用程序的能力(一次开发,多次使用)

5.Compatibility 兼容性

    含义:兼容性是不同的软件系统之间相互可容易的集成

  • 实现兼容性的关键是产品标准化

6.Efficiency 性能

    含义:效率是软件系统尽可能少地对硬件资源进行处理的能力,例如处理器时间、内部和外部存储器占用的空间、通信设备中使用的带宽。

  • 如果没有正确性,性能将毫无意义
  • 对性能的关注要与其他质量属性进行折中
  • 过度优化导致软件不再适应变化和复用

7.Portability 可移植性

    含义:软件可方便的在不同的技术环境之间移植的能力。

8.Ease of use 易用性

    含义:易用性是容易的,不同背景和资历的人可以学习使用的软件产品和应用它们解决问题。(容易学、安装、操作、监控)

  • 给用户提供详细的指南

9.其他外部特性

    :功能性、及时性、可验证性、完整性、可修复性、经济性

问题三:内部质量因素包括什么

1.LOC(Lines of Code):代码行数

2.圈复杂度

3.耦合、凝聚力

4.可读性

5.可理解性

6.清晰度

7.大小

问题四:质量属性之间如何权衡

折中。

  • 正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设计决策和标准明确的写下来。
  • 虽然需要折中,但“正确性”绝不能与其他质量因素折中。

问题五:最重要的几个质量因素

1.正确性和健壮性--(可靠性)

2.可拓展性和可复用性--(模块化)

易于理解(Easy to understand)

第一章--第二节:软件构造的质量目标(软件构造学习笔记)_第1张图片

开发成本低(Cheap for develop)

第一章--第二节:软件构造的质量目标(软件构造学习笔记)_第2张图片

可应对变化(Ready for change)

第一章--第二节:软件构造的质量目标(软件构造学习笔记)_第3张图片

程序安全(Safe from bugs)

第一章--第二节:软件构造的质量目标(软件构造学习笔记)_第4张图片

运行效率高(Efficient to run)

第一章--第二节:软件构造的质量目标(软件构造学习笔记)_第5张图片




            

          

你可能感兴趣的:(第一章--第二节:软件构造的质量目标(软件构造学习笔记))