知识卡片
可靠性评估的三种模型及其局限
内容
架构质量属性研究由于对模型要求严格、数据采集难度大,目前集中在可维护性和可靠性两方面。可靠性评估在给定时间内、特定环境下衡量信息系统无错运行的概率,主要有三种模型,各自依赖的假设不同、也各自有相应的局限。基于操作剖面的模型:根据用户使用软件的操作习惯及频率定义”操作剖面”,通过统计不同组件在运行过程中的使用概率、概括组件使用情况和组件迁移概率、计算不同剖面出现概率来得到系统可靠性;其不足在于操作剖面本身难以确定,这直接影响可靠性评估的准确性——换句话说,这类模型的精度上限,取决于你多准确地知道”用户到底会怎么用这个系统”,而这件事本身往往很难预先掌握。基于状态的模型:通常假设各组件间的控制转移具有Markov性质(下一状态只依赖当前状态、与历史无关),用控制流图描述架构,但实际软件系统中很难满足Markov模型所要求的”组件独立性”假设——组件之间几乎总是存在某种历史依赖或共享状态,这与Markov性质的核心前提直接冲突。基于路径的模型:假设组成系统的组件是独立运行的,通过计算各路径上组件间的迁移概率来计算各路径可靠性,进而得到系统可靠性;同样依赖”组件独立运行”这一在真实系统中往往不成立的假设。三种模型的共同弱点揭示了一个规律:可靠性建模天然需要对”组件如何相互影响”做出简化假设(操作剖面的静态频率、Markov性质、组件独立性),而这些简化假设恰恰是真实复杂系统最容易违反的地方——这也是为什么可靠性度量至今没有一种被广泛认可为”足够准确”的主流方法,模型的实用性和它对现实的简化程度之间始终存在张力。
参考来源
- 位置:《软件架构理论与实践》第13章《软件架构度量和评估》"13.1.1 单版本的软件架构度量和评估"节之"2.质量属性度量方法"(源文件:_epub-src/OEBPS/text00104.html)
- 结论依据:原文说明"基于操作剖面的模型……其不足在于操作剖面难以确定,影响可靠性评估的准确性。基于状态的模型通常假设各个组件间的控制转移具有Markov性质……然而在实际软件系统中很难满足Markov模型的组件独立性假设",直接支撑本卡片结论。
- 原始内容:通常软件架构的可靠性评估主要有三种方法:基于操作剖面的模型、基于状态的模型和基于路径的模型……基于路径的模型通常假设组成系统的组件是独立运行的,通过计算各个路径上其组件间的迁移概率来计算各个路径的可靠性。