随着互联网技术的发展及普及,软件也从传统的单机软件发展到具有网络通信功能的多机软件,同时大型软件系统也发展成由多个可以独立运行又具有交互特征的软件个体组成。互联网模式下,软件之间的交互日益频繁,具有交互特征的软件逐渐形成群体,其个体行为不断地影响着群体的特性。目前,软件系统在各行各业得到普遍运用,成为行业发展的重要组成部分,怎样确保软件系统稳定高效地运转,提高软件系统的维护效率成为重要的研究课题。软件群体稳定性是保障经济高效发展的重要基石,分析软件群体特征,进行关键特征识别,进而进行群体稳定性度量成为维护软件群体的重要手段。本文从软件网络及软件交互模式的角度,研究了软件网络中关键节点、关键模式、稳定性等软件群体中的特征分析方法,具体内容如下。 首先,利用软件群体中软件之间相互调用的特征构建了基于时序及具有交互权值的软件群体网络模型。研究了软件群体的交互特征,特别是软件之间的类库依赖、数据交换、相互调用、数据共享等关系,定义了软件群体。根据软件之间的相互调用具有时序等特征,提出了软件交互权值来衡量交互关系的重要程度。为了提高软件群体的维护效率,获取软件群体网络中的兴趣度也即是用户感兴趣的程度更高的的关键节点,提出了一种在软件群体网络社团中发现关键节点的算法SG-CPMining。基本流程是首先在软件群体网络中获取软件社团,提出了一种软件群体网络中社团发现算法SG-GroupMining,得到软件群体网络中有影响力的子网络。同时,为了得到兴趣度更高的社团,提出了社团支持度与边介数阈值两种修剪策略。而后,在软件社团中发现有影响力的软件节点,提出了一种基于节点度的关键节点发现算法SG-CPMining。 其次,为了得到软件群体中具有重要交互关系的软件及软件组,提出了一种基于软件交互序列的关键模式挖掘算法SG-FIP。利用软件之间数据交换,数据共享,互相调用的交互行为信息流建立时序交互序列模型。在软件交互模型的基础上,定义了一种基于时间段及交互次数的序列权重,提升了交互模式的兴趣度。提出了一种软件群体中基于交互序列的关键模式挖掘算法SG-FIP,获取具有频繁交互特征的软件个体及软件组。为了得到更精简和更高兴趣度的挖掘结果,定义了基于挖掘结果的约束系数ISPe。在预定义的滑动时间段内执行SG-FIP算法得到针对性更强、实时性更高的关键交互序列模式。 再次,鉴于软件交互关系具有随时间间隔和时间推移其重要程度不断变化的特征,提出了一种基于时间间隔权重和模式衰减的关键模式挖掘算法KPM-SINStream。将软件的交互序列流定义为连续的并且数量无限的软件之间的交互信息流。随着时间窗口的滑动挖掘得到各个滑动窗口内的软件交互的关键模式。基于连续滑动窗口建立了软件交互模式衰减挖掘模型。同时考虑到不同时间间隔的重要程度不同设计了时间间隔权重。进而利用KPM-SINStream算法在动态软件群体网络中挖掘关键交互模式。 最后,提出了一种度量群体网络稳定性的算法SG-StaMea。为了提高交互数据量大的情况下交互模式挖掘的效率,提出了一种分布式频繁交互模式的挖掘算法HFIS-Mine。定义了软件群体交互项、带权交互序列、频繁交互序列、关键节点、群体稳定性破坏力等。引入了Hadoop及Spark框架,基于交互模式、带权交互序列的定义,挖掘得到关键节点和关键交互项。在HFIS-Mine算法的基础上,基于去掉关键节点和关键边对群体网络造成的连通性损失提出了一种度量群体网络稳定性的算法SG-StaMea。并通过实验验证了各个算法的可行性,并与现有的算法做了对比。 关键词:软件群体特征;关键节点;关键模式;软件稳定性;分布式挖掘
With the development and popularization of Internet technology, software has also developed from traditional single-machine software to multi-machine software with network communication function. At the same time, large-scale software system has also developed into multiple software individuals that can run independently and have interactive features. In the Internet mode, the interaction between software becomes more and more frequent. Software with interactive characteristics gradually forms a group, and its individual behavior continuously affects the characteristics of the group. At present, the software system is widely used in all walks of life and has become an important part of the development of the industry. How to ensure the software system to run stably and efficiently has become an important research topic. The stability of software group is important cornerstones to ensure economic efficient development. Analysis of software group characteristics, identification of key features, and then group stability measurement become an important means to maintain software group. From the view of software network and software interactive pattern, the characteristic analysis methods of key nodes, key patterns and stability in software group are studied. The main content of this paper is as follows. Firstly, a complex software group network model based on time series and interactive weight is constructed by using the feature of mutual calls among software in the software group. The interactive characteristics of software group, especially the dependence of class libraries, data exchange, mutual invocation and data sharing among software group, are studied, and software group is defined. According to the characteristics of time series of software invocation, software interactive weight is proposed to measure the importance of interaction. In order to improve the maintenance efficiency of software group and obtain more interested key nodes in software group network, an algorithm SG-CPMining is proposed to discover key nodes in the network community of software group. The basic process is to first acquire software communities in the software group network. A community discovery algorithm SG-GroupMing is proposed to obtain influential child network in software group network. At the same time, two pruning strategies, community support and edge betweenness threshold, are designed to obtain communities with higher interest. In order to find influential software nodes in the software community, a key node discovery algorithm SG-CPMining based on node degree is proposed. Secondly, to obtain software and software group with important interactions in software group, this paper proposes a key pattern mining algorithm SG-FIP based on interactive sequences in a software group. A sequential interactive sequence model is established by using the information flow of data exchange, data sharing and mutual calling among software. On the basis of the software interactive model, a sequence weight based on a time period and interaction quantity is defined to enhance the interest of interactive patterns. A key pattern mining algorithm SG-FIP based on interactive sequences in software group is put forward to get key software and software groups with frequent interactive characteristic. In order to obtain a higher interest and leaner mining results, the pruning factor ISPe is designed. The SG-FIP algorithm is executed within a predefined sliding time period to obtain a more targeted and real-time key interactive sequence pattern. Thirdly, in view of the fact that software interaction has the characteristics of changing importance with time interval and time lapse, a key pattern mining algorithm called KPM-SENStream based on time-interval weight and pattern decay in the network stream of software interaction is put forward in this paper. The interactive sequence stream of software is clearly defined as continuous and the infinite number of interactive information flows between software with time stamps. The key patterns of software interaction are mined with the time window sliding. The mining model of pattern decay is built based on the continuous sliding windows. Considering the different importance with various time-intervals, the time-interval weight is designed. The KPM-SENStream algorithm is adopted to obtain key interactive patterns in the dynamic software group network. Finally, in order to improve mining efficiency of interactive patterns under the condition of large amount of interactive data, a distributed frequent interactive pattern mining algorithm HFIS-Mine is proposed. The software group interactive items, weighted interactive sequences, frequent interactive sequences, key nodes, and the destructive power of group stability are defined. Hadoop and Spark framework are introduced. Based on the definition of interactive pattern and weighted interactive sequence, key nodes and key interactive items are mined. Based on HFIS-Mine algorithm, an algorithm SG-StaMea is proposed to measure group stability based on the loss of connectivity caused by removing key nodes and key edges from the group network. The feasibility of each algorithm is verified through experiments, and it is compared with the existing algorithms. Keywords: software group characteristics; key nodes; key pattern; software stability; distributed mining