论文部分内容阅读
复杂系统通常具有节点众多、节点之间交互关系复杂、体系结构随时间不断演化等特征,具有这些特征的复杂系统广泛地存在于自然界及人类社会中。而复杂网络作为复杂系统的抽象表示方式之一在复杂系统的研究中发挥着重要的作用,复杂网络的演化过程中通常会出现由于某个组件或某个子系统的失效而导致整个网络出现级联故障乃至整体崩溃的现象,这种现象体现出复杂系统所具有的脆性。脆性是复杂系统的内在属性,它不随复杂系统的演化或系统内外因素的影响而消失。本文将复杂系统、复杂网络及脆性的相关内容应用于对软件系统的分析与研究中,探究软件体系结构(Software Architecture,简称SA)的复杂性并对激发软件系统脆性的异常点进行分析及判断。具体而言,本文所涉及到的研究内容如下:●将软件系统作为复杂系统进行相关的分析与研究,并将脆性的概念引入到对软件系统崩溃的研究中。结合蚁群算法对特定的软件体系结构进行仿真实验,得出软件系统崩溃时的最大崩溃路径、平均路径长度等相关统计量。具体而言,该过程主要是通过对软件体系结构风格的比较,选择“管道—过滤器”体系结构风格作为研究对象,并给出该体系结构的脆性图、脆性路径、Hamilton通路等相关定义;通过将具体的软件体系结构转化为对应的复杂网络并以图的方式进行表示,进一步揭示出软件体系结构各组件之间的相互关系;同时结合蚁群算法并通过实验方法找出激发软件系统脆性的最大崩溃路径、平均路径长度等相关统计量;最后通过改变算法的相关运行参数发现该算法对相关统计量的计算具有较好的鲁棒性。●对具有时间演化特性复杂网络的整体特征进行度量并分析出激发所对应复杂系统产生级联故障及崩溃的脆性源。结合具体的复杂系统ASCAIDA,采用信息领域中熵的概念,通过对该复杂系统122幅网络演化图的分析,将系统运行过程中所具有的熵值作为衡量系统整体特征的标度,以此来发现该复杂系统在运行过程中产生异常的位置,进而针对所检测出不同位置处所对应的系统异常图,基于节点的度中心性并结合GROD(Gradually Remove Outlier Detection)异常点检测算法,通过依次移除系统中度值最大的若干节点,并对移除节点之后系统中的最大社团规模、剩余链接数目等反映系统崩溃特征的统计量进行比较,从而确定出导致复杂系统崩溃的脆性源。●将复杂系统的规模进行扩大,并从不同的侧面对复杂系统的整体特征及脆性点进行分析与判定。以大型时间演化复杂系统AS-Oregon为研究对象,采用一般矩阵分解的方法,将系统所对应的复杂网络邻接矩阵的迹作为衡量系统整体特征的标度;引入节点的中心性度量,包括节点的度中心性degree、介数中心性betweenness、k-shell等,通过对这些节点中心性指标的比较及相关操作,可以得出结论:k-shell在判定复杂系统节点的角色重要性及激发复杂系统脆性中的作用比其它指标具有更加显著的作用。●针对软件系统的脆性提出了软件体系结构的级联故障模型(Cascading Failure Model of Software Architecture,简称CFMoSA),通过该模型可以清晰地了解软件系统发生故障的原因及故障的传播机制,为软件系统的设计、运行及维护提供相关的指导;引入了软件体系结构的复杂性理论研究框架(Complexity Research Framework of Software Architecture,简称CRFoSA),分别从软件体系结构的脆性描述语言、体系结构的演化、同步控制等方面对软件体系结构的复杂性进行了相关的描述,该模型旨在提出一个软件体系结构的统合性研究平台,为软件体系结构的脆性分析奠定基础。●对渗流理论在复杂系统中的研究成果进行了总结。渗流理论及爆炸性渗流的研究内容可以被用于解释复杂系统在运行过程中所发生的级联故障、系统崩溃等突变现象,并有助于分析复杂系统所具有的脆性。具体而言,首先对各种爆炸渗流模型,例如ER模型、BFW模型及无标度网络渗流等模型的相关特征进行了总结,接着介绍了爆炸渗流所引发复杂系统所产生的一级相变、二级相变及相变的连续性等问题;最后叙述了爆炸性渗流的理论研究成果在实际系统中的应用。