论文部分内容阅读
当今社会,计算机信息科学与技术在高速发展,软件系统的规模在不断扩大,复杂性在不断增强,由此致使系统内部更多缺陷的产生,想要设计高可靠性的软件系统就变得更加困难。可靠性是任何高质量软件系统的关键特性,软件的可靠性是指在特定条件下的某一时间内系统不会出现故障的概率,因此可靠性对软件系统故障的反应起着关键作用。如何根据软件系统内部结构间关系去建立可靠性模型并准确评估软件系统的可靠性在软件工程领域中已经成为一个新的研究方向。本文结合复杂网络的相关理论知识,将复杂软件系统抽象成为软件加权网络拓扑图,根据该拓扑结构图,在网络层次基础上建立一个基于复杂拓扑结构的软件系统可靠性模型,并对软件系统的可靠性进行评估。本文的主要工作如下:(1)本文将复杂网络的理论知识应用到复杂软件系统的分析研究,建立了复杂软件系统的有向加权软件网络拓扑图。结合已有的复杂软件网络研究方法,把复杂软件系统开源代码作为研究对象,将代码中的粒度单元(如函数,类等)抽取成软件网络中的结点,这些单元粒度间的相互关系(如调用,继承等)抽取为网络中结点间的边,建立一个有向加权软件网络拓扑结构模型,该模型为后续软件结构的优化和软件可靠性的研究等提供了比较好的基础。(2)本文提出了软件系统中复杂结构的可靠性分析方法,将软件系统内部不符合Markov性质的复杂结构体系根据相应的映射算法进行转换以便使其符合Markov性质,并分析了将大多数复杂软件系统中具有的基本复杂结构体系转化为Markov性质的状态结构的转化机制。传统的基于结构的可靠性模型大部分都假设软件系统的内部结构都具有独立失效这一特征,然而实际软件系统内部结构并不是这样,如果直接根据基于离散时间马尔可夫链(Discrete Time Markov Chain,DTMC)的结构可靠性方法去评估软件系统的可靠性就会不准确,因此本文针对这种问题,提出了软件系统中复杂结构的可靠性分析方法。通过一个实际软件系统说明了复杂结构体系的处理过程,处理之后使其成为随机马尔可夫过程(Semi-Markov Process,SMP)这一类结构体系,之后根据此复杂结构的分析方法评估另一个实际复杂软件系统模块的可靠性,与传统的直接基于结构可靠性计算结果进行对比,说明了此复杂结构处理方法的有效性和准确性。(3)本文提出了一个基于拓扑结构的复杂软件可靠性分析模型,该模型将操作剖面这一影响可靠性的因素考虑进来,最终能够应用基于DTMC的结构可靠性方法去准确评估软件系统的可靠性。在本文前面章节对于复杂软件系统抽象成为有向加权软件网络拓扑结构这一基础上,结合软件系统中复杂结构的可靠性分析方法,同时考虑运行剖面的影响,建立一个基于复杂结构的软件可靠性模型,该模型能够有效解决以往模型没有考虑操作剖面对软件可靠性的影响和软件系统中复杂结构不符合Markov性质这些问题。最后通过实验结果证明,本文提出的模型能准确有效的计算软件系统的可靠性。