软件可信性是一个反映软件质量状态的、复杂的、综合性的概念,除了可靠性,它还包含可用性、防危性、安全性、可维护性等特征,而且还在不断地延伸和扩充。
软件的可信性指的是系统在规定的时间与环境内可交付可信服务的能力。
那么,如何来评价软件的可信性呢?这里介绍一个软件可信性评估模型——QUEST模型。这个模型共有五层,分别是:软件可信性、可信属性、子属性、可信度量、度量指标。如下图所示:
其中软件可信性被分解为可用性、效能性、可靠性、安全性、实时性、可维护性、可生存性等七个可信属性;然后,每个可信属性又被分解为若干可信子属性;接着,将每个可信子属性分解为若干可信度量;最后,为每个可信度量设计若干可信度量指标,而每个度量指标可以定性或定量地度量。
定性度量的度量指标可以通过专家归一化的打分来转化为定量的度量。
在收集可信性度量数据的时候,应与软件开发生存周期结合起来,在软件需求分析阶段、软件设计阶段、编码实现阶段、软件测试阶段等各阶段分别进行产品和过程两个方面的可信性数据采集。
在采集到大量的原始的评估数据后,采用适合的数据分析和推理方法(评估方法),最终得到软件可信性评估结果。
软件可信性使用下面的数学模型进行评估:
Y=W*R
其中Y为评估得分,W为权值矩阵,R为各可信子属性度量数据。
当考虑软件全生命周期,以及过程的可信性评估时,最终的Y是各阶段的可信性评估值与过程可信性评估值的乘积之和。
具体的评估方法主要包括三个方面的内容:
权值矩阵W通过基于知识发现的权值获取技术获得。首先利用经验数据库,根据软件特性和软件开发人员能力确定技术复杂度和管理复杂度,再由经验数据库,根据复杂度确定可信属性和可信子属性的权值。
如:
技术复杂度 | 可用性 | 效能性 | 安全性 | 可靠性 | 可生存性 | 实时性 | 可维护性 |
---|---|---|---|---|---|---|---|
1 | 0.27 | 0.16 | 0.11 | 0.16 | 0.08 | 0.16 | 0.03 |
2 | 0.24 | 0.15 | 0.12 | 0.17 | 0.10 | 0.15 | 0.07 |
3 | 0.23 | 0.16 | 0.11 | 0.18 | 0.09 | 0.16 | 0.07 |
4 | 0.20 | 0.16 | 0.12 | 0.18 | 0.16 | 0.10 | 0.08 |
5 | 0.19 | 0.17 | 0.13 | 0.17 | 0.09 | 0.17 | 0.09 |
基于效用统一的信息融合技术将定性和定量的、多类型多量纲的原始度量数据在统一的置信度上归一化;
基于层次模型的证据推理技术先将每个阶段所有度量数据融合计算进行可信度分配,在基于所有阶段的融合成果,计算总的融合后可信度分配,最终得到定量的软件可信性评估结果。
这正是:
可信评估有多难,数学模型不一般
好在已有前行者,学习使用还好办
参考书目:软件可信性定量评估:模型、方法与实施,作者:张卫祥,刘文红,吴欣,出版社:清华大学出版社
联系客服