软件的质量属性分为:运行期质量属性和开发期质量属性
运行期质量属性:
性能(Performance):
性能是指软件及时提供相应服务的能力。具体而言,性能包括速度、吞吐量和持续高速性三方面的要求:
- 速度往往通过平均响应时间来度量;
- 吞吐量通过单位时间处理的交易数来度量;
- 持续高速性是指保持高度处理速度的能力。
安全性(Security):
指软件同时兼顾向合法用户提供服务,以及阻止非授权使用软件及资源的能力。
易用性(Usability):
易用性是指用户使用软件的容易程度。软件的易用性要让用户来评价。
持续可用性(Availability):
指系统长时间无故障运行的能力
可伸缩性(Scalability):
指的是软件在运行期间水平和垂直方向的伸缩能力,比如:能否把数据库服务器独立出来,做水平集群等,不需要度软件系统本身进行编程级的修改
互操作性(Interoperability):
指本软件与其他系统交换数据和相互调用服务用以协同运作的难易程度
可靠性(Reliability):
软件系统在一定的时间内无故障运行的能力。
鲁棒性(Robustness):
也称健壮性、容错性。鲁棒性是指软件系统在以下情况中仍能够正常运行的能力:用户进行了非法操作;相连的软硬件系统发生了故障,以及其他非正常情况
开发期的质量属性:
易理解性(Understandability):
理解和使用系统的难易程度,尤其指设计被开发人员理解的难易程度
可扩展性(Extensibility):
反映软件适应“变化”的能力。调整、修改或改进正在运行的软件系统以适应新需求、变化了的需求的难易程度。经常也叫做灵活性
可重用性(Reusability):
重用软件或其中一部分的难易程度
可测试性(Testability):
对软件测试以证明其满足需求规约的难易程度。
可维护性(Maintainability):
为修改Bug、增加功能、提高质量而诊断并修改软件的难易程度。
可移植性(Portability):
软件不经修改或稍加修改就可以运行于不同软硬件环境的难易程度,主要体现为代码的可移植性