APP下载

水电运行仿真软件网络结构特征的度量

2018-02-07鹤,赵

计算机工程与应用 2018年3期
关键词:度值网络拓扑水电

田 鹤,赵 海

1.辽宁科技学院 工程实践中心,辽宁 本溪 117004

2.东北大学 计算机科学与工程学院,沈阳 110004

1 引言

我国的水力资源丰富,水电作为可再生资源具有综合开发利用效益,水电产业的发展异军突起。水力发电丰满水电站是中国最早建成的大型水电站,作为东北电网的中流砥柱,被誉为“中国水电之母”。实验室自主研发的水电运行仿真系统Wemade[1]已在中国丰满水力发电站投入使用。目前,水电运行仿真系统Wemade2.0版本是丰满水电技术学校和丰满水电厂的教学和培训的辅助工具,用于学生的实践学习和员工的技能实训。水电运行仿真软件的开发应用,不但能够发现一些在实际水电运行中的问题,研究那些触发成本极高的情况,同时为发掘水电运行时所有可能存在的缺陷,并为预测实际系统的运行状态提供了一个良好的计算平台,从而使水电站的自动化管理得到进一步的完善和推广。

Wemade通过仿真模型真实地描述了水电厂中各种操作控制流程以及系统机电设备的运行情况,这也决定了这样的软件系统模型非常复杂,是一个庞大的工程。水电站的运行情况常常不可预测,这就需要精确而健壮的监控运行设备来维护水电站的日常工作。对水电运行仿真系统结构的度量来指导软件结构的再设计势在必行。

随着信息技术的迅猛发展,各学科理论的渗透融合成为一种趋势。自“小世界”效应[2]和“无标度”特性[3]开创复杂网络的新纪元以来,复杂网络理论已经成为当前网络科学的前沿,包括对网络中节点特性[4]、二分网络[5]以及网络传播[6]等热点问题,且广泛应用到社会学[7]、生物学[8]和管理学[9]等领域科学。将复杂网络和软件工程理论交叉研讨,结合面向对象的软件分析方法,把开源软件的类级软件结构抽象成软件网络模型[10-11],利用网络拓扑特征参数研究软件结构是软件度量体系的又一分支,抽取出来的软件网络可以更加清晰地了解软件结构的特性,在此基础上能更有效地对软件进行更新和重构,从而提高软件质量。

本文通过软件网络模型,利用软件网络拓扑特征参数来分析水电运行仿真系统Wemade的结构特性,结合软件内部结构来分析各个单元模块的设计是否合理,对不足之处还需在后续版本中作进一步更改。分析水电运行仿真系统的现有版本的特性,评估软件系统的性能,旨在对软件进化过程中优化软件结构。

2 水电运行仿真软件Wemade

2.1 Wemade软件系统结构

水电运行仿真软件系统从整体结构来看分为两大部分,一是硬件部分,如盘台、计算机等硬件设备,二是计算机软件部分[12-13]。由硬件和一些通用设备组成仿真机,用软件通过界面操作控制流程。将整个水电站的控制中心仿真成后台,现场的硬件设备仿真成前台,传感器信息采集功能同样用相应软件模块仿真,通过I/O接口实现后台与前台的对接,利用通信进程来获取和发送后台对前台的监控过程中的数据。如图1所示为水电运行仿真系统的平面图。

图1 水电运行仿真系统的平面图

整个软件系统的开发目标就是要真实地模拟水电的运行情况,监控运行环境,实时调试系统的运行,这就需要用软件把全部功能仿真出来。水电运行仿真软件系统有7大部分功能系统模块组成,包括主机系统、前台系统、多媒体播放系统、教学辅助系统、故障事故系统、电气系统和辅机系统。每个系统模块由许多分支功能模块组成,各个模块系统协作调度共同实现仿真运行功能。

水电运行仿真系统的源文件以及各类文档都比较完整,文档质量也比较高。在软件得到广泛应用的同时,仍然是一个典型的软件网络研究平台,实验室继续在这个平台上探索着大规模软件网络拓扑结构的特征规律和软件度量方法,适时地度量和修改使Wemade软件系统能更好地进化生长[14],适应实际的应用需求。

2.2 Wemade软件网络的提取

将面向对象的开源软件的源代码文件作为研究对象[15-16],提取过程如下:

步骤1将源代码解析成XML文件。首先获取开源软件的源代码,然后利用Doxygen软件进行解析,得到一些关于源代码中的类、结构体和接口的XML文件,XML文件中包含了类名、变量和各类之间的关系等信息。

步骤2解析XML文件。利用XMLParser解析器从XML文件中解析出软件的类、结构体和接口以及它们之间的关系,把它们分别看作网络中的节点和连接边,并保存到数据库中。

步骤3生成.net文件。从数据库中获取软件网络中节点和连接边的相关信息,并保存到.net文件中。

步骤4根据得到的.net文件构造软件网络,建立类级软件结构的软件网络模型。

如图2所示,这里*VerticesN表示总节点数,下面记录了所有节点的序号、名称和类型,*Arcs下面记录了节点间的作用边。用这样的方法同样可以抽取水电运行仿真软件网络模型,以此分析软件结构特征。

图2 软件网络结构文件

2.3 特征参数

定义1(平均最短路径[17])指网络中连接两个节点的最短路径的边数的平均值,用公式表示为:

定义2(结构洞[18])表示网络中间连接的、拥有互补资源或信息的个体之间所存在的空隙,通常用约束系数来量化,说明网络中某个节点与其他节点的依赖程度,计算公式为:

pij是节点i与j之间的最短路径长度同i与其所有相邻节点最短路径长度总和之比。k是节点i的邻接节点。约束系数越小,结构洞越多,节点间依赖性越小[19]。

定义3(中心度[20-21])指某节点与网络中所有其他节点最短路径之和的倒数与节点总数N-1的乘积,用公式表示为:

其中dij是节点i到节点j的最短路径长度。

定义4(同配系数)描述网络中一条边的两端节点的度分布特性的匹配混合性。计算公式为:

其中ji和ki分别是第i条边的两个顶点的度,E为网络中边的数目。这里-1≤r≤1。若同配系数r>0,则是同配网络;若r<0,则为异配网络;若r=0,则为随机网络[22]。

3 特征分析及度量

3.1 Wemade的复杂网络特征

大型水电仿真软件是一个复杂的开源软件系统,相应的被抽象出来的网络拓扑结构也具有复杂网络的一些特征。以Wemade2.0版本为例,计算其软件网络拓扑特征值,实验数据如表1所示。

表1 Wemade2.0版本的软件网络拓扑全局特征

表1中,N为节点数,M为边数,D为网络直径,<d>为网络平均最短路径长度,<E>为软件网络的平均聚集系数,<k>为网络节点的平均度值,γ为度分布系数(幂率分布)。从表中数据看到Wemade三个版本的软件网络的平均路径长度都非常小,相对于软件规模来说网络聚集系数远远大于O(N-1),说明Wemade软件网络具有较小的平均路径长度和较大的网络聚集系数,展现出复杂网络的“小世界”特性。度分布系数2<γ<3,且P(k)~k-r,服从幂律分布[23],具有无尺度特性。Wemade软件网络呈现的“小世界、无尺度”特征说明其软件网络具有复杂网络特征。软件网络是一种典型的复杂网络。

将Wemade软件系统抽象出网络拓扑图,如图3所示。从图中可直观地看出Wemade软件网络具有明显的复杂网络特征。网络中节点具有很强的聚类性,密切地集中在一定区域,这是由软件特性决定的,整个软件系统大约有100多个基本的计算单元类、电器元件类和机械元件类等,其他功能类通过引用这些基本单元来实现相应的功能。软件网络拓扑结构决定着网络所拥有的特性,而网络特征参数的属性可以准确地反映软件的结构特征。

图3 水电运行仿真软件网络拓扑生成图

3.2 特征分析

3.2.1 结构洞的特征

自“结构洞”一词从社会学中提出以来,在社会网络中很好地解释了人际关系的复杂性,即关系越亲密,越不容易得到异质信息[24],而在流行病传播的复杂网络中,感染个体总是感染它们的邻居,通常容易聚集成大群体[25],造成网络分布不均匀,使网络中的节点“组团”并伴随结构洞的产生。然而,个体增加传播速度却可使网络传播趋向均匀[26],这又不同于一般的复杂网络。软件网络作为复杂网络的实例,同样存在着大量的结构洞,在信息传播的过程中主要考虑节点传播信息的能力和效率,以此来分析节点间的关联程度和调用方式。与社交网络和生物网络不同,软件网络中的信息传播并不会发生均匀传播现象,也不会随机传播,节点有自身的属性和作用关系,度指标刻画了一个节点与其相邻节点的连接性,度值的大小反映了与此节点直接相连的节点数目的多少。结构洞反映了节点间的依赖程度,结构洞越少,某个节点对其他节点的依赖性越强。研究节点度与结构洞关系能够说明局部区域网络中节点间的连接程度,指导软件系统内部结构的设计。

以Wemade2.0为研究对象,去掉孤立节点并进行曲线拟合,图4为双对数坐标下结构洞与节点度的相关性。

图4 Wemade2.0软件网络的节点度与约束系数的分布

在双对数据坐标下,节点度与约束系数能够拟合成直线。说明节点度与结构洞呈幂律相关,拟合的幂函数曲线方程为:

其中X为节点度的值。也就是说,在水电运行仿真软件网络中,随着节点度值的变大,约束系数变小,结构洞增多。节点度值的增大会使局部网络连接增多,节点产生的结构洞会很多,如果这些节点的约束系数很小,势必会使网络更加复杂,不符合软件的设计原则。节点的度值无限逼近于0或为0的节点,其约数系数趋近于1或为1,这样的现象说明了这些节点不存在结构洞,它们是孤立节点,在软件内部模块中不发生作用关系。度值为1和3的节点是封闭网络结构,也不存在结构洞。结构洞的约束系数与度的幂律分布相关性充分说明了水电运行仿真软件结构的层次性和模块化特征。

3.2.2 中心度的特征

中心度是用来衡量网络中节点的中心化程度,展现中心节点的位置,反映了节点在网络中的影响力。研究节点度与中心度的关系,有助于从全局的角度来分析软件结构的复杂性。同样以Wemade2.0软件版本为例,如图5所示。

图5 Wemade2.0软件网络的节点度与中心度的分布

从图5中可以看到,水电运行仿真软件网络中节点度与中心度并没有明显的相关性,图中呈现出来的分布关系与其他开源软件有很大不同。在一个比较小的范围内,有一部分节点的中心度随着度值的增大而急剧变大,但相应的度值并不一定很大,另有一部分节点度值很小,中心度也不高,这些节点大多数分布在网络的边缘。对于中心度高的节点,说明它们是中心节点,支撑着整个网络,这样的中心节点一般都非常少,分布图中恰好说明了这点。

3.3 度量结果分析

基于软件网络拓扑特征参数的定义,以及对水电运行仿真系统Wemade2.0软件网络中特征值的分析,可以用度指标来度量水电运行仿真软件结构局部类模块的连接情况,研究类模块间直接调用关系。结构洞从节点之间依赖程度的角度来分析类模块间的作用关系,弥补度指标在软件结构度量中的不足。但是它们都不能体现重要节点的位置,中心度指标能准确地予以指出,并且从全局来度量软件结构。

在水电运行仿真系统Wemade2.0软件内共有312个类,对应软件网络中共有312个节点。针对Wemade2.0软件网络特征参数的分析,查找提取出来的开源软件.net文件里各类节点的序号、名称,进一步对水电运行仿真软件系统结构进行有效地评估。

(1)研究节点度与结构洞的关系可以说明网络中节点间的局部连通性和依赖关系。度值越小越靠近网络的边缘,度值为0的节点不存在结构洞,也就是孤立节点。查找源代码数据文件分析发现Wemade2.0软件网络内孤立节点大多为Windows的线程、消息等系统级调用以及在软件的调试、维护时添加的冗余类或失效类。当节点度值很大时,节点的复用性很高,节点间具有很强的依赖性,网络出现的结构洞会很多,在水电运行仿真软件系统结构内,复用频繁的类是RD类、XJ类、LP类,度值排在前三名,它们分别是熔断器、信号继电器、联片。这些类都是一些基本控制类模块,同时也是组成子控制回路和机械控制的最小单元。在仿真系统中各个基类被大量调用,这是由系统功能和应用领域决定的。系统总线模块中的通信和数据处理类CCmanddatap的结构洞非常大,此类通常连接各个收发数据模块和数据库等。仿真系统通常采用分布式结构,数据通过连接在系统传递交换。但是CCmanddatap类有明确的分工,该类只处理前台和后台的数据,这样广泛的依赖关系使它的结构洞很大,但在系统最大协作模块中并不是关键类。

(2)研究节点度和中心度的相关性有助于分析软件内各类模块的复杂性。Wemade2.0软件网络的特别之处也体现在节点度与中心度的分布关系上。中心节点往往承担着软件的主要功能的实现。水电运行仿真软件系统内部各类模块间的联系比较密切,软件系统主要通过共享变量空间相互作用,由节点度与中心度分布关系图说明软件工程中的单元复用性高于单元复杂性的特点在Wemade2.0软件结构内并不明显,大多数节点都不与其相似度值的节点相连接,说明了Wemade2.0软件结构中层次较少。这也暴露了Wemade2.0软件版本的缺陷,需要对软件结构内一部分类模块修改和重新布局,平衡各类单元模块的复杂度和重用度。

分布关系图中展现了一部分度和中心度都较小的节点,说明这些节点在整个软件网络中处于边缘地带。如果对Wemade2.0软件结构内各类模块修改,可以在适当的程度上增加这些类模块的复杂性。

4Wemade软件系统的进化

开发至今,根据实际需求的变化,水电运行仿真软件系统已更新三个版本。研究软件的进化有助于认识和理解软件结构的变化过程,指导开发人员对软件进行重构和维护。

分析水电运行仿真软件Wemade三个版本的同配系数(r)、平均最短路径长度(<d>)、网络中心度(<c>)、网络约束系数(<h>)和判定系数(R),如图6所示。

图6 Wemade软件网络进化中的特征值

基于Wemade在进化过程中的一些网络拓扑特征值的变化,进一步讨论对Wemade软件系统的影响。

(1)同配系数大于0说明水电运行仿真软件网络是同配网络,即网络中节点倾向与自身节点类型相似的其他节点优先连接。随着软件的进化,Wemade软件网络的同配系数逐渐变大,平均最短路径逐渐减小,说明在Wemade十余年的开发过程中,软件系统结构内模块化程度越来越高。然而,软件结构的模块化并不是越高越好,高度模块化势必会使模块的内聚性过高,这样软件结构会变得复杂。因此,在Wemade的后续版本的改进过程中要综合考量软件系统的模块内聚性和模块间的耦合性。

(2)Wemade三个版本的软件网络中心度呈上升趋势,说明在软件进化过程中加入的新增节点优先连接高中心度的节点,这样网络的中心节点区域越来越密集,新增节点的中心性相对较高。而中心度高的节点通常密切关联着软件的核心结构,实现软件的主要功能,对中心节点的不断补充说明软件的核心结构还不够成熟,需要在进化过程中不断地修改和完善。

(3)随着Wemade软件的进化,结构洞与度的判定系数逐渐增大,幂律相关性越来越明显。但是,判定系数并没有很大跨度,即使变化也是很小的,说明每一次的软件版本的更新,只是对软件内局部结构功能扩充,或者对内部模块函数的改动不多,程序的协作关系并没有被破坏。软件进化过程中的网络约数系数虽然有所增加,但变化不大,说明整个软件网络的结构洞有所减少,节点间的连接性较强,同时还要考虑软件规模和复杂度的情况而分析是否对影响网络结构,如果结构洞变化呈上下波动且非常小,那么软件的内核并没有变动。

5 结束语

水电运行仿真软件系统是对水电站实时运行的模拟,测量并计算各个分支系统的参数,在监控台上显示所有机组中的实时数据、分析数据和生成图等,通过界面可以对各种系统模块操作,具有与实际水电站一样的逻辑功能。为了有效地度量软件,使Wemade能稳定的在水电站运作,对Wemade维护和改进十分必要。

本文首先介绍了水电运行仿真系统Wemade的组成及设计结构。在此基础上结合软件网络相关知识,将Wemade软件结构抽象成网络,利用软件网络拓扑特征参数对水电运行仿真软件Wemade的结构特性进行度量及分析,得到在Wemade软件网络中,节点度和结构洞呈幂律相关,而节点度与中心度却没有明显的相关性,说明了Wemade软件结构具有模块性,同时软件结构层次较少。

水电运行仿真软件系统Wemade已更新了三个版本,在弥补之前版本不足的同时Wemade并没有进化到完美。通过对三个版本的软件网络拓扑特征的量化对比分析得出:同配系数的增大和最短路径长度的减小说明网络的同配性和聚集性不断增强;网络中心度的值相对来看有上升趋势,说明模块之间相互关联过于紧密使软件结构非常复杂,不利于软件的更新和再设计;结构洞与度的幂律相关性虽有微小的增大幅度,开发人员依然倾向模块化设计。综合分析来看,对Wemade的后续研究中,要适当地把握模块间的聚类和耦合。

[1]赵海,韩叙东,宋纯贺,等.水电仿真系统中故障处理的规则引擎实现[J].东北大学学报:自然科学版,2008,29(6):811-814.

[2]Wattts D J,Strongatz S H.Collective dynamics of‘smallworld’networks[J].Nature,1998,393(6684):440-442.

[3]Barabási A L,Albert R.Emergence of scaling in random networks[J].Science,1999,286(5439):509-512.

[4]Wang X Y,Qin X M.Asymmetric intimacy and algorithm for detecting communities in bipartite networks[J].Physica A,2016,462(15):569-578.

[5]Cui Y Z,Wang X Y.Detecting one-mode communities in bipartite networks by bipartite clustering triangular[J].Physica A,2016,457(1):307-315.

[6]Zhou W J,Wang X Y.Inhomogeneity of epidemic spreading with entropy-based infected clusters[J].Chaos,2013,23(4):755-764.

[7]许文文,时鹏,于留宝,等.一种在线社交网络的自适应观点引导模型及实现[J].电子学报,2016,44(7):1714-1720.

[8]Wang X Y,Zhao T F,Qin X M.Model of epidemic control based on quarantine and message delivery[J].Physica A,2016,458(15):168-178.

[9]孙军艳,傅卫平,王雯.基于复杂网络理论的B2C电商供应链网络分析[J].西安理工大学学报,2015,31(4):385-393.

[10]Li H,Zhao H,Cai W,et al.A modular attachment mechanism for software network evolution[J].Physica A,2013,392(9):2025-2037.

[11]张锡哲,罗实,印莹,等.面向软件执行网络的行为拓扑分析研究[J].计算机科学,2011,38(10A):242-248.

[12]张浩华,赵海,赵明.大型水电仿真系统的模型驱动架构设计[J].计算机工程与应用,2009,45(4):72-75.

[13]蔡巍,赵海.软件总线研究及其在水电仿真系统中的应用[J].系统仿真学报,2007,19(12):2710-2715.

[14]Lin Z P.Understanding and simulating software evolution[C]//The 2013 International Conference on Software,2013:1411-1414.

[15]Li P,Zhao H,Qiao Y,et al.A platform of software network measurement design and implement[C]//The 2nd IEEE International Conference on Advanced Computer Control,2010,27(2):334-337.

[16]Benjamin D,Vinitha H S,Joseph E,et al.Formal specification for real-time object oriented systems with UML design[J].International Journal of Digital Information and Wireless,2012,2(4):53-65.

[17]韩言妮,李德毅,陈桂生.软件网络的多粒度拓扑特性分析及应用[J].计算机学报,2013,39(5):243-247.

[18]苏晓萍,宋玉蓉.利用领域”结构洞”寻找社会网络中最具影响力节点[J].物理学报,2015,64(2):1-11.

[19]Li H,Zhang H.Research on structural holes and closenessofmulti-granularity software networks[J].Journal of Software,2013,8(2):337-343.

[20]陈国强,陈亮.一种基于资源分配策略的复杂网络中心性测度[J].计算机科学,2011,38(8):42-52.

[21]张慧.多粒度软件网络的特性研究与演化分析[D].沈阳:沈阳工业大学,2013.

[22]李静,张洪欣,王小娟,等.确定度分布条件下可变同配系数的算法构造与影响分析[J].物理学报,2016,65(9):168-177.

[23]Gu Qing,Xiong Shijie,Chen Daoxu.Correlations between characteristics of maximum influence and degree distributions in software network[J].Science China:Information Sciences,2014,57(7):1-12.

[24]Li B,Zhao H,Cai W,et al.A new metric methodimproved structural holes researches on software networks[C]//The International Conference on Software and Intelligent Information,2012.

[25]Liu Z Z,Wang X Y,Wang M G.Inhomogeneity of epidemic spreading[J].Chaos,2010,20(2):023128.

[26]Ren G M,Wang X Y.Epidemic spreading in time-varying community networks[J].Chaos,2014,24(2):023116.

猜你喜欢

度值网络拓扑水电
探讨公路项目路基连续压实质量检测技术
基于通联关系的通信网络拓扑发现方法
能量高效的无线传感器网络拓扑控制
央企剥离水电资产背后
水电:全力消纳富余水电 更重生态环保
劳斯莱斯古斯特与魅影网络拓扑图
无线传输中短码长喷泉码的度分布优化算法*
微博网络较大度值用户特征分析
基于多任务异步处理的电力系统序网络拓扑分析
长江水电之歌