系统架构设计师:软件质量属性

        软件属性包括功能属性和质量属性,但是,软件架构重点关注的是质量属性,在大量可能的结构中,可以使用不同的结构来实现同样的功能性。

        即,功能性在很大程度上是独立于结构的,架构设计师面临着决策(对结构的选择)。

       架构设计师追求质量属性常常陷入“鱼和熊掌”的两难境地。

一、运行期质量属性

1.性能:指软件系统及时提供相应服务的能力,包括速度、吞吐量和持续高速性等几个方面。

2.安全性:指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。

3.易用性:指软件系统易于被使用的程度。

4.可伸缩性:指当用户数和数据量增加时,软件系统维持高服务质量的能力。

5.互操作性:指软件系统与其他系统交换数据和相互调用服务的难易程度。

6.可靠性:指软件系统在一定的时间内无故障运行的能力。

7.持续可用性:指软件系统长时间无故障运行的能力。

8.鲁棒性:指软件系统在一些非正常情况下,仍然能够正常运行的能力。

二、开发期质量属性

1.易理解性:指软件系统被开发人员理解的难易程度。

2.可扩展性:指软件系统适应新需求或者需求变化而增加新功能的能力。

3.可重用性:指软件系统可以重用的难易程度。

4.可测试性:指对软件系统测试以证明其满足需求规范的难易程度。

5.可维护性:当需要修改缺陷、增加功能、提高质量时,定位修改点并实施修改的难易程度。

6.可移植性:将软件系统从一个运行环境转移到另外一个不同的运行环境的难易程度。

三、质量属性的关系矩阵

如下表所示:

实际工作中,设计师往往面临着矛盾的质量需求:

1.项目经费低,那就不可能速度快和质量好;

2.直接使用遗留系统,速度快,马上看到原型,同时也面临着可扩展性、可移植性,需求变化怎么办

3.客户需求、业务需求、用户需求,往往也存在矛盾,如何取舍

4.安全性与互操作性也是矛盾

猜你喜欢

转载自blog.csdn.net/aganliang/article/details/82818067