关键词:
开源操作系统
软件网络
软件包依赖
网络模体
K-核
结构熵
摘要:
开源软件因其基于大规模群体协同的生产模式以及随需而变的持续演化能力已成为软件产业发展的强劲引擎。作为开源软件的一个重要分支,开源操作系统广泛应用于以金融、物流、教育、医疗、电子商务和旅游等为代表的现代服务行业。然而,其基于自组织、松耦合的开发方式使得开源操作系统的开发过程存在诸多不确定性,系统的内部结构及其交互关系随着软件规模和复杂性的剧增而逐渐超出软件开发人员的理解能力,对软件系统的质量保证以及安全性和鲁棒性造成了严重的威胁。如何有效应对开源操作系统这类复杂软件系统的挑战成为软件工程领域的重要课题。近年来,研究者们基于软件整体结构的软件网络理论,从全局角度来研究软件系统各要素之间的联系,对软件系统整体涌现特性、演化机理以及结构复杂性进行了有益探索,为防范开源软件系统缺陷,提高开源软件的安全性和可靠性取得了不少可喜成果。鉴此,本文在分析本领域国内外研究现状的基础上,基于软件网络相关理论和软件工程领域相关方法,以优麒麟操作系统为对象,首先将其软件结构抽象为由软件包及其连接关系组成的软件网络,进而从整体和全局的角度对开源操作系统复杂性及其演化机理和规律进行了多方位较深入的研究和实验分析,取得的主要成果如下:1、对开源操作系统的整体结构进行抽象,提出并分析了基于开源操作系统软件包依赖关系有向图结构的软件网络模型。将开源操作系统的组成要素——软件包作为有向图的节点,包与包之间的相互依赖关系作为有向边。软件网络的结构特征包含网络的规模、稠密性、连通性、凝聚性和异质性,通过网络的节点数和连边数、平均最短路径长度、网络直径、平均聚集系数等统计特征表示。以优麒麟操作系统软件网络为对象,对开源操作系统的软件网络进行度量与分析,为后续的研究提供基础。实验分析表明,优麒麟操作系统在演化过程中符合软件网络小世界和无尺度的结构特征,并具有明显的社团模块化特性,适用于使用软件网络理论对其进行深入分析。2、通过对开源操作系统软件包典型连接样式的抽取与分析,提出了一种基于模体的开源操作系统网络结构缺陷检测方法。模体指软件网络中由n个(通常取3-6个)节点及其连接样式数目超过某个阈值的连线组成的子网,它反映了开源操作系统的某些关键功能和常用的重用模式,因而是分析软件网络结构的基本单元。本文首先运用基于节点的抽样方法Rand_ESU,从开源操作系统的软件网络中抽取若干类典型的软件模体,然后检测模体中是否存在环状结构,即是否存在一对或一组具有相互依赖关系的节点,并对此进行必要的统计。一个完美的软件网络结构应为无环结构,一旦其中存在环状结构将意味着相应的开源软件可能存在死锁等引起系统崩溃的结构缺陷或隐患。实验分析表明,优麒麟操作系统在版本演化过程中软件网络的模体类型是比较固定的,但软件网络中出现环状结构的网络模体占比50%,这就是说,优麒麟操作系统存在较明显的结构缺陷与隐患。该实验结果已经引起优麒麟高层开发者的高度关注。3、为了重点监控开源操作系统某些结构单元的质量,提出了基于k-核分层的开源操作系统网络关键节点分析方法。运用复杂网络传播动力学中的k-核算法将开源操作系统网络进行层次划分,证实了其存在相对扁平的层次结构。通过分析开源操作系统各层之间的连接及其结构,发现网络最高层节点在整体结构中具有支配作用,这些节点对应的软件包对系统的整体结构起着关键作用。实验分析表明,优麒麟软件网络的最高层节点在版本演化过程中保持了相对的稳定状态,即每个版本最高层关键节点集基本保持一致,因此,高层开发者必须对这些节点对应的软件包的质量进行严格的把控,这些软件包的质量很大程度上决定了整个开源操作系统的质量。4、为调节和优化系统的整体结构,提出了一种基于结构熵的开源操作系统网络结构有序度的度量方法。有序性指随着时间的变化系统整体结构表现出来的秩序性和规律性,有序度越高,系统越趋于稳定和确定。本文首先借鉴信息科学中作为系统状态复杂性和有序性的一种定量描述的状态熵,根据开源操作系统软件网络中节点连接度定义结构熵,引入结构的有序度,以此量化和分析系统结构的有序程度,同时研究了开源操作系统在演化过程中有序度的变化规律。实验分析表明,优麒麟操作系统在软件版本演化过程中其结构朝着有序的方向发展。进一步研究其有序化的因素,以及演化过程中结构熵与鲁棒性和通信效率之间的关系,发现优麒麟操作系统的演化过程的有序化是通信效率和鲁棒性的共同作用达到的,即在演化过程中,为提高优麒麟操作系统结构的有序性,相应的软件网络结构的平均最短路径应该保持较小,聚集系数要维持在较高的水平。