内部质量指标对于开发者而言,外部质量指标对于用户而言。
外部质量指标:
1. 正确性:程序要按照预先定义的规约执行,是首要的质量指标
2. 健壮性:健壮性是针对异常情况的处理,出现在规约定义之外的情形的时候,软件要做出恰当的反应。
3. 可扩展性:指软件易于调整以适应变化的能力,规模越大的软件越难以扩展,软件是易变的,所以需要可扩展性,简单的体系比复杂的体系更容易适应变化。
4. 可复用性:发现软件功能的共性,利用共性,一次开发,多次使用,避免重复实现。
5. 兼容性:指软件元素易于与其他的结合,指不同软件系统之间能够容易的集成。提高兼容性要保持设计的同构性,更通用的方法是通过协议实现兼容性。
6. 性能/效率:对硬件资源尽可能少的需求的能力,但不可以过早优化。
7. 可移植性:软件产品可以转移到各种硬件、操作系统、软件环境中。
8. 易用性:用户使用软件简单方便,容易学、好安装、操作简单、容易监控。
9. 功能性:增加功能性的同时要避免程序设计中一种不适宜的趋势,即软件开发者增加越来越多的功能,企图跟上竞争,其结果是程序极为复杂、不灵活、占用过多的磁盘空间。过多的新功能容易带来一致性的缺失,影响易用性。
10. 及时性:指软件能够在用户需要时或者需要之前发布。
11. 其他质量指标:经济型、完整性等
内部质量指标:
例如圈复杂度、耦合度、可读性、易理解性、清晰度、复杂性、体积等等。
软件配置管理SCM:
SCM的任务是追踪和控制软件中的变化,实际任务是版本控制和建立基线。
软件配置项SCI:软件中发生变化的基本单元(如文件)。
版本控制系统VCS:
分为:本地版本控制系统、集中式版本控制系统、分布式版本控制系统。