软件系统属性包括功能属性和质量属性,软件架构重点关注的是质量属性。
软件系统质量属性 (Quality Attribute)是一个系统的可测量或者可测试的属性:
根据软件系统的开发周期,可以将软件系统分为开发时质量属性和运行时质量属性:
开发期质量属性
开发期质量属性主要指在软件开发阶段所关注的质量属性,主要包含6个方面。
易理解性:指设计被开发人员理解的难易程度。
可扩展性:软件因适应新需求或需求变化而增加新功能的能力,也称为灵活性。
可重用性:指重用软件系统或某一部分的难易程度。
可测试性:对软件测试以证明其满足需求规范的难易程度。
可维护性:当需要修改缺陷、增加功能、提高质量属性时,识别修改点并实施修改的 难易程度。
可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。
运行期质量属性 运行期质量属性主要指在软件运行阶段所关注的质量属性,主要包含7个方面。
性能是指软件系统及时提供相应服务的能力,如速度、吞吐量和容量等的要求。
安全性:指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。
可伸缩性:指当用户数和数据量增加时,软件系统维持高服务质量的能力。例如,通 过增加服务器来提高能力。
互操作性:指本软件系统与其他系统交换数据和相互调用服务的难易程度。
可靠性:软件系统在一定的时间内持续无故障运行的能力。
可用性:指系统在一定时间内正常工作的时间所占的比例。可用性会受到系统错误, 恶意攻击,高负载等问题的影响。
鲁棒性:是指软件系统在非正常情况(如用户进行了非法操作、相关的软硬件系统发 生了故障等)下仍能够正常运行的能力,也称健壮性或容错性。
常见措施
为了提升软件系统属性,常见操作如下:
系统属性 | 操作 |
---|---|
性能 |
|
可用性 |
|
可修改性 |
|
安全性 |
|
可测试性 |
|