基于小型类粒度软件网络的拓扑结构分析

来源 :中国地质大学(武汉) | 被引量 : 0次 | 上传用户:qiuyujie
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件开发者对于日趋复杂的软件系统的理解和控制越来越困难,传统软件工程正接近其复杂性和可扩展性的极限.复杂性使软件开发困难,质量难以保证。以较低的代价、在规定的时间内生产出高质量的软件产品是所有软件工程方法努力实现的目标。经过长期的工程实践,软件开发者认识到对于大规模的复杂软件系统而言,软件的结构与其功能、质量之间的关系十分密切。因此,系统设计时如何构建软件良好的结构、系统维护时如何对软件的结构进行优化,一直都是软件工程领域研究的重要问题。复杂系统和复杂网络研究的成果为探索大规模软件系统的结构特性和行为特征提供了有力支持。通过软件工程与复杂系统的学科交叉研究,从复杂系统和复杂网络的角度来重新审视软件,形成软件网络的概念:复杂软件系统可以分解成一系列软件实体(组成元素)的集合,如类、子程序、构件等。通过这些实体的交互,实现需要(预期)的计算功能。如果将系统中类、子程序、构件等元素视为节点,元素间的相互关系表示为节点间的(有向)边,软件结构实质上表现为一种内容互连的复杂网络拓扑的形态。将软件系统抽象为一类(人工)复杂网络来进行研究,从整体和全局的角度来探索和发现复杂软件系统的结构特性、演化规律和由此产生的行为特征,将有助于科学、工程地认识和理解软件的本质特征;同时,随着规模的剧增,软件的“网络化”趋势越来越明显(即软件系统可以表示为抽象的复杂网络模型),如何分析和探索其独有的网络结构特性和(演化)规律成为研究人员关注的焦点。目前,国内外关于软件网络的拓扑结构分析研究还刚刚起步,相关工作已经通过建立软件网络模型,揭示了软件网络的一些普遍的拓扑特性。但是现有的软件网络模型也存在着一些问题,比如忽略了软件组成元素之间的一些重要关系,因此无法提供软件的完整视图。例如,面向对象软件中类之间的依赖关系的差别就没有包含在已有的软件模型中,而依赖关系是软件重用的重要指标,应当考虑使用加权有向网络来描述面向对象软件系统的拓扑结构。另外,在现有的研究中,软件系统通常使用无向或者无权有向网络模型表示,网络中节点的属性往往被忽视,而单个类自身的属性、动力学行为对整个系统结构的影响是不容忽视的。在这种研究背景下,本文针对现有的java面向对象软件系统源码,通过扫描编译后的中间结果(.class或jar文件),并解析这些中间结果来获得软件的网络模型。借鉴复杂网络的相关理论和方法,以软件系统结构的特征分析为切入点,借助一整套流程,开展一系列的关于软件系统结构的研究,并结合软件工程中的相关原理进行阐述,希望能对软件网络的拓扑结构分析研究有所贡献。具体的研究工作在以下几个方面取得结果:(1)通过工具DependecyFinder,抽取出各面向对象软件系统中类间的关系(建立面向对象软件系统的类层次有向网络模型)。在所建立的网络模型上计算反映网络拓扑特征的参数,验证了面向对象软件系统的类级网络具有“小世界”和“无尺度”的复杂网络特性,分析主要围绕类级软件网络的平均最短路径长度、聚集系数和度分布展开。并从对象软件系统开发的过程模型来解释面向对象软件系统的结构特征产生的原因,认为面向对象软件构造过程所遵循的鼓励重用原则、以及必须考虑的功能约束是面向对象软件系统最终体现出“小世界”和“无尺度”的复杂网络特性的原因。(2)通过工具Pajek绘制出了4个开源系统的类粒度的全局软件网络结构图,从视觉的角度直观的分析整个软件系统的结构网络。并罗列出每个软件网络中的用于内部交互的核心节点。软件依赖网络中存在较高的聚类系数和较小的平均距离(即小世界特性),说明软件在设计实现时存在大量团体,它们遵循高内聚低耦合的原则,团体内部成员之间联系紧密,而团体之间的联系比较松散。连接不同团体的节点作为软件内部交互的核心,很可能就是软件的骨架,即软件体系结构的核心实现。从拓扑结构出发,寻找并分析这样的节点以及节点所在的团体,有助于我们抽取软件系统的体系结构,理解软件的运行机理。(3)通过工具Mfinder,根据复杂网络中网络motif的发现和研究方法,分析软件网络3-4个节点的连通子图,研究类级软件网络的组织结构特征。发现软件系统中大量出现的子结构拥有简单的交互方式,从而认为软件系统倾向于以简单的交互方式实现功能。另外,4个软件系统拥有一些共同的小型结构,这些小型结构在这些系统中出现的频率远大于它们在随机网络中出现的频率,可认为是类级软件网络的网络典型连接方式。这些典型连接方式以系统中大量存在的结构为基础,它们可能代表某种普遍使用的设计模式。研究小型结构有助于我们充分地理解软件系统的复杂性,对定量地分析软件具有重要意义。(4)对4个软件系统的类节点的WMC分布进行了统计,发现面向对象软件网络不仅在结构上具有“无尺度”的特性,而且功能分布体现出异质性(类的WMC分布也大致遵循幂律分布),但是对统计结果产生的原因还有待进一步研究。
其他文献
本文针对软件演化过程领域的演化需求问题,提出了软件演化触发因子的概念,并基于颜色Petri网(CPN)和层次分析法(AHP),以形式化的方法建立了软件演化过程演化触发因子控制模型
地形三维可视化技术一直以来是地理信息系统(GIS)、虚拟现实(VR)、计算机图形学等领域研究的热点。本文针对当前地形三维建模及可视化技术的研究现状,围绕着地形数字模型的建
本课题来源于国家重大科技基础设施项目东半球空间环境地基综合监测子午链工程(简称子午工程)的数据与通信系统中的数据汇集子系统,并且是整个子午工程核心业务中的重要组成
学位
随着机械工业的不断发展和计算机网络技术研究的不断深入,传统的产品设计模式已经不能满足人们对产品开发的要求,产品的异地协同设计制造与管理是未来产品开发的必然趋势。为
随着工业控制对象的规模日益复杂以及对控制精度的要求日益提高,工业控制过程中的连续动态系统(CVDS)和离散事件动态系统(DEDS)的之间的混杂特性越来越明显,支持多通道控制功
地震数据可视化技术是地震数据处理技术的核心和最主要的组成部分。这项技术在当今石油勘探行业的地震数据处理中发挥了越来越重要的作用。各国对石油、天然气的巨大需求推动
规则引擎是推理引擎的一种,它起源于基于规则的专家系统。近些年来,规则引擎被越来越广泛的应用在业务逻辑的处理过程中,它将业务决策从应用程序代码中分离出来,接收数据输入
勘探石油天然气主要有三种方法。地质法、物探方法和钻探法。在这三方法中,物探方法的地震勘探是现代最主流也是最有效的方法。地震勘探工作包括三个步骤。数据采集、数据处
随着高校信息化的蓬勃发展,许多高校已经建立了相当多数量的应用系统,然而由于开发平台、工具的异构性和紧耦合性导致了应用系统之间不能互通互联、资源共享与软件复用,从而
医学图像归档与通信系统(PACS)作为医院信息系统(HIS)的重要部分,在传输、存储和处理医学影像过程中起着非常重要的作用。由于远程会诊的出现,PACS系统必须适应大规模、开放式