24小时论文定制热线

热门毕设:土木工程工程造价桥梁工程计算机javaasp机械机械手夹具单片机工厂供电采矿工程
您当前的位置:论文定制 > 毕业设计论文 >
快速导航
毕业论文定制
关于我们
我们是一家专业提供高质量代做毕业设计的网站。2002年成立至今为众多客户提供大量毕业设计、论文定制等服务,赢得众多客户好评,因为专注,所以专业。写作老师大部分由全国211/958等高校的博士及硕士生设计,执笔,目前已为5000余位客户解决了论文写作的难题。 秉承以用户为中心,为用户创造价值的理念,我站拥有无缝对接的售后服务体系,代做毕业设计完成后有专业的老师进行一对一修改与完善,对有答辩需求的同学进行一对一的辅导,为你顺利毕业保驾护航
代做毕业设计
常见问题

复杂网络的Java软件特征

添加时间:2018/09/08 来源:燕山大学 作者:司文
将复杂网络理论应用于 Java 系统程序中,基于软件网络的复杂网络特性对其进行复杂网络角度的分析。将软件中的类视作图中的节点,类之间的关系视作图中的边,根据软件的拓扑网络结构,从多方面进行挖掘研究。
以下为本篇论文正文:

摘 要

  随着软件系统复杂性的不断提高,对软件的控制变得越来越困难,软件开发质量和可靠性难以保证。如何有效的表征软件特征和软件内部的关联关系,解释软件行为特征和演变规律成为解决我国软件产业发展瓶颈的关键问题。本文引入复杂网络原理,从网络拓扑结构角度对软件系统的结构特性进行深入研究与分析。

  首先,为了提取 Java 软件程序的内部结构,提出一种构建软件网络模型的方法,以程序中的类为节点构造软件网络拓扑结构。设计算法用来实现在静态代码中对Java 类及其关系类的采集。对采集数据进行整理,去除冗余信息,构建软件的网络模型。

  其次,根据软件网络的基本参数分析了软件的复杂网络特性。通过对软件网络结构的度分布,平均路径长度和聚集系数角度说明 Java 软件网络结构符合小世界与无标度特性,对开源软件的分析和应用提供前提依据。

  再次,考虑类节点在软件执行过程中的故障累积性质与脆弱性,基于类间的关联关系确定类的依赖类集,通过分析类、方法和变量之间的调用关系,对不同关系赋值,挖掘出软件网络中脆弱性较大的关键节点,通过对软件的不同版本的实验,揭示了关键节点的变化趋势。

  最后,构建评价模型对 Java 程序中的自然包结构进行评价。基于复杂网络模型,从中提取软件中类节点的数量,分析软件升级过程中类节点的变化趋势。根据 Java语言特性定义软件评价标准模块度 Q 值,度量 Java 程序中包设计的合理性。

  本文通过对两款软件进行实验,对软件的网络结构进行分析,挖掘软件系统的潜在性质,验证所提方法的有效性和正确性。

  关键词:复杂网络;类关联关系;节点重要性;社团结构评价;Java

Abstract

  With the continuous improvement of the complexity of the software system, it becomes more and more difficult to control the software, which makes it difficult to guarantee the quality and reliability of software development.How to effectively represent the characteristics of the software and the internal relations of the software, and explain the characteristics and evolution of software behavior is the key to solve the bottleneck of the development of China's software industry.In this thesis, the complex network theory is introduced, and the structural characteristics of the software system are studied and analyzed from the point of view of network topology.

  Firstly, according to the characteristics of class structure, we propose a new method to construct software network model. We develop an algorithm for implementing the Java class and its relationship classes, in static code acquisition. The collected data are finishing first, and then remove redundant information, finally build software network model.

  Secondly, according to the basic parameters of the software network, the complex network characteristics of the software are analyzed. Through the degree distribution of the software network structure, the average path length and the aggregation coefficient angle, the software network structure conforms to small world and scale-free characteristics. The above two points are of great value and significance for the development and application of actual open source software.

  Thirdly, we consider the cumulative nature and vulnerability of the function nodes in the process of software execution. Then, through the analysis of the relation between classes, methods and variables, the evaluation of software quality is changed from qualitative to quantitative. We calculate the degree and the degree, and assign the different association relations, and dig out the vulnerable nodes in the software network, identify the important nodes in the system. By comparing key nodes in different versions, we can reveal the stability of key nodes.

  Finally, according to the relationship between nodes in the software network, the evaluation model is constructed to evaluate the natural package structure in Java. Based on the creation of complex network model, the number of class nodes and the relationship between class and class are obtained. On the basis of modularity, we define the local modularity formula as the software evaluation criteria. The experimental results show that the rationality of the package design in the Java program is measured by the module value, and the "high cohesion,low coupling" characteristics and prove the stability of software structure.

  In this thesis, through the analysis of the two softwares, get the network structure of the softwares, and the potential properties of the software system are explored, which verifies the validity and correctness of the proposed method.

  Keywords: complex network; relationships between classes; important nodes; evaluation of community structure; java

  在计算机技术和复杂网络技术快速现代化发展的今天,众多的软件应用进入人们的生产生活中,影响和改变着人们的生产生活。由于软件的复杂性和规模性,使得如何保护软件的安全性和可靠性成为保障软件整体质量的关键。将软件系统看作是复杂网络系统进行科学研究,这为研究人员理解软件系统的结构特征,行为特性和观察软件的演化规律,提供了一个崭新的研究视角与平台。

  软件系统的开发经历了一段慢长的演变过程,从纯粹的击键形式到形成错综复杂的功能网络,结合了许多合作模块、包、类、方法和子程序。在复杂网络的研究飞速发展的基础上,我们检查到一些开源软件系统的软件协作图,并发现他们可以揭示类似于在其他领域,包括社会学、经济学和生物系统等领域中存在的无标度,小世界网络特性[1]。

  虽然之前在复杂网络领域受到关注程度较低,但是软件系统的确是一个很重要的复杂网络研究方向。软件系统无疑是很重要的因素,在信息化的时代,他们需要复杂网络这样新奇的观点。设计是软件工程的核心元素,许多设计方法明确处理软件的结构网络,最常见的是解决一组小的组件的相互作用,是实现和持续运行的模块之间相结合,重构、组合、扩展和适应紧急的软件组织结构。

  通过软件测试,在软件开发过程中尽可能多的找到可能发生错误的地方[2,3]。随着网络的不断进步,对软件应用的要求越来越复杂。各种复杂的逻辑使对象在软件中不再是一个简单的映射关系。利用节点的顺序,边的方向等关系完成性能图的拓扑结构,来说明软件的研究对象之间的复杂关系,解决静态对象的软件实现过程的、动态的、可支持的潜在安全问题的精确分析的发展[4,5]。本文提出了创建网络模型的方法,并讨论他们与软件工程之间的关系。本文也提出了一个简单的软件系统评价模型,捕获的一些观察到的系统的特征。本文关于软件系统评价模型,讨论了一些影响面向对象设计的问题,如网健壮性、可复用性等。因此,提高软件测试水平的一种有效的技术便是网络图结构的使用。

  复杂网络的研究成果显着,将这些成熟的理论知识应用到软件系统的结构特性的探索中,已经成为研究软件系统的重要手段之一。软件执行过程的复杂网络建模过程,根据运行数据描述程序中元素的调用序列,挖掘出软件的可疑区域,使开发人员能直接测试出软件漏洞的准确位置,解决潜在的安全问题。过去几年,研究者们在软件系统的拓扑结构分析中虽然取得了很好的进展,但在实验结果的基础上,解释复杂软件系统的内部结构的特点,还存在着挑战和一些尚待解决的问题。

  (1) 缺少针对 Java 源程序创建的软件网络系统模型,现有的方法不够准确全面,在反映真实的软件系统内部特征方面还存在一些问题;(2) 识别软件关键节点时不能从网络全局进行考虑,不能很好的反映软件程序执行过程中节点表现出来的一些特有属性;(3) 创建程序中类之间关联关系和 Java 自有的包结构的评价模型,这对研究软件结构具有很大的现实意义,现有方法不能够全面地研究软件结构和行为特征。

  本课题《基于复杂网络理论的 Java 软件特征分析》是从复杂网络的角度来建模和分析 Java 语言程序的网络结构特性。本文设计与实现一个基于复杂网络的 Java程序分析工具,来研究和评价软件系统的结构。检测技术对 Java 软件系统的复杂网络研究提供了有力的支持。通过对静态程序代码的遍历,为 Java 软件系统构建复杂网络模型,研究软件系统结构的演化规律。文章具体研究拟从以下四个方面内容进行。

  (1) 为了更加清晰地展示软件系统中的相关信息,基于静态网络中的类节点,包括类中方法和变量的调用情况,构建软件的网络模型。将类定义为网络中的节点,Java 语言中类之间的调用依赖关系定义为网络中的边,类之间的调用次数整合后设为边的最终权值。

  (2) 创建网络模型后,分析复杂网络特性。通过计算小世界分布特性验证程序网络是否满足高内聚低耦合的软件设计标准。用实验数据呈现网络度分布情况,检验其是否满足幂律分布,通过幂律分布情况证明网络的鲁棒性和网络的脆弱性。

  (3) 针对软件结构的复杂性和类型的多样性,挖掘网络中关键节点,重点维护。

  提出一种基于软件动态执行过程中调用与被调用的比例的关键节点挖掘方法。定义节点在网络中的关键程度。根据关键节点随软件升级产生的变化,揭示了关键节点的稳定性。

  (4) 从软件系统中提取软件中类节点的数量和类与类之间的关联关系,来分析软件升级过程中类节点的变化趋势。在全局模块度的基础上,定义一个局部模块度,最后得到软件评价标准 Q。

  复杂网络的Java软件特征(部分图例):

jsoup 四个版本的节点 NTW 曲线图
jsoup 四个版本的节点 NTW 曲线图

ecj 四个版本的节点 NTW 曲线图
ecj 四个版本的节点 NTW 曲线图

分裂方法的树状图表示
分裂方法的树状图表示

凝聚方法的树状图
凝聚方法的树状图

不同版本 jsoup 包模块度变化趋势
不同版本 jsoup 包模块度变化趋势

不同版本 ecj 中类的数量统计
不同版本 ecj 中类的数量统计

目 录

  摘 要
  Abstract
  第 1 章 绪 论
    1.1 课题的研究背景与意义
    1.2 国内外相关理论研究与现状
      1.2.1 复杂网络研究现状
      1.2.2 软件网络研究现状
      1.2.3 关键节点研究现状
      1.2.4 社团结构研究现状
    1.3 研究内容及主要工作
    1.4 主要研究内容
    1.5 文章的总体结构
  第 2 章 Java 语言特性与软件分析方法
    2.1 Java 语言的面向对象特性
      2.1.1 面向对象语言发展现状
      2.1.2 面向对象的特性
      2.1.3 类之间的关系
    2.2 软件网络的复杂网络特性分析
      2.2.1 网络的平均路径长度
      2.2.2 网络的聚集系数
      2.2.3 节点的介数
      2.2.4 网络效率
    2.3 本章小结
  第 3 章 Java 程序的复杂网络特性分析
    3.1 复杂网络理论下的软件系统网络
      3.1.1 图的定义与分类
      3.1.2 图的计算机表示
    3.2 Java 软件结构模型的创建
      3.2.1 程序反编译
      3.2.2 代码的静态分析方法
      3.2.3 构建复杂软件网络模型
    3.3 软件类库的复杂网络特性
      3.3.1 小世界特性
      3.3.2 无标度性质
      3.3.3 软件网络拓扑性质
    3.4 本章小结
  第 4 章 基于依赖关系挖掘软件网络中的关键节点
    4.1 加权软件网络的定义
    4.2 挖掘网络中的关键节点
      4.2.1 边的权值计算
      4.2.2 计算节点的初始权值
      4.2.3 计算节点的最终权值
      4.2.4 识别关键节点
    4.3 实验与结果分析
      4.3.1 节点脆弱性的评估
      4.3.2 关键节点分布的稳定性分析
    4.4 本章小结
  第 5 章 Java 软件中的社团结构分析
    5.1 社团结构
    5.2 基于模块度的软件特性分析
      5.2.1 基于层次聚类的方法
      5.2.2 模块度量
    5.3 基于软件包层次关系的社团分类
    5.4 实验结果分析
    5.5 本章小结
  结 论
  参考文献
  致 谢

(如您需要查看本篇毕业设计全文,请您联系客服索取)

相关内容
相关标签:Java毕业设计
好优论文定制中心主要为您提供代做毕业设计及各专业毕业论文写作辅导服务。 网站地图
所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文定制中心会立即进行改正或删除有关内容!