首页 | 本学科首页   官方微博 | 高级检索  
检索     
共有20条相似文献,以下是第1-20项 搜索用时 562 毫秒

1.  融合结构与语义特征的代码注释决策支持方法  
   黄袁  贾楠  周强  陈湘萍  熊英飞  罗笑南《软件学报》,2018年第29卷第8期
   代码注释是辅助编程人员理解源代码的有效手段之一.高质量的注释决策不仅能覆盖软件系统中的核心代码片段,还能避免产生多余的代码注释.然而,在实际开发中,编程人员往往缺乏统一的注释规范,大部分的注释决策都取决于个人经验以及领域知识.对于新手程序员来说,注释决策显然成为了一项重要而艰巨的任务.为了减少编程人员投入过多的精力在注释决策上,文章从大量的代码注释实例中学习出一种通用的注释决策规范,并提出了一种新颖的CommentAdviser方法用以辅助编程人员在代码开发过程中做出恰当的注释决策.由于注释决策与代码本身的上下文信息密切相关,因此,从当前代码行的上下文代码中提取代码结构特征以及代码语义特征作为支持注释决策的主要依据.然后,利用机器学习算法判定当前代码行是否为可能的注释点.在GitHub中的10个大型开源软件的数据集上评估了我们提出的方法,实验结果以及用户调研表明代码注释决策支持方法CommentAdviser的可行性和有效性.    

2.  一种基于主题建模的代码功能挖掘工具  
   华哲邦  李萌  赵俊峰  邹艳珍  谢冰  李扬《计算机科学》,2014年第41卷第9期
   代码复用是重要的软件复用方式之一,复用者需要理解软件代码实现的功能方能有效实施软件复用。基于主题建模技术的程序理解方法逐渐受到研究人员的重视,它能够帮助软件开发者和使用者更好地理解软件的功能。目前,基于主题建模技术的程序理解方法一般欠缺对挖掘出的Topic的语义分析,为此提出的基于代码静态分析和LDA技术的代码功能挖掘(Code Function Mining,CFM)方法可作为对这类方法的补充。CFM是一套以代码为研究对象的挖掘、筛选、组织和描述主题(Topic)的方法,该方法能够生成带描述的功能型Topic的层次结构,以供使用者更清晰和方便地浏览、学习软件的功能。功能型Topic的描述能够帮助复用者理解代码功能,其层次结构能够让复用者从不同抽象层次理解代码功能。CFM方法包括4个部分:挖掘Topic、筛选Topic、组织Topic、描述Topic。以CFM方法为基础,设计并实现了一个CFM工具。CFM工具能够分析用户提交的代码,通过Web页面向用户展示带描述的功能型Topic的层次结构。最后,对CFM方法中的几个关键算法进行实验分析,验证了CFM方法的有效性。    

3.  一种基于h指数变体的软件网络节点重要性度量方法  
   丁沂  李兵  程璨  赵玉琦《四川大学学报(工程科学版)》,2017年第49卷第4期
   新成员在参与软件项目开发和维护系统时,往往需要花费大量时间去理解系统的结构和功能,为了加速新成员对系统的理解,通常优先推荐他们关注一些系统中更重要的类。大量研究表明软件系统具有明显的复杂网络拓扑形态,可以将软件系统抽象为软件网络模型,通过网络节点重要性度量方法识别软件系统中更重要的类,辅助新成员快速掌握系统的核心结构和功能。目前,关于网络节点重要性度量的方法很多,大多数方法仅考虑邻居节点的度或边的权重。另外,h指数作为一种成功用于定量评估研究人员学术成就的指标也很少应用于软件网络中重要类的识别。作者以Ant、Jung和Maven项目为研究对象,构建对应的加权软件网络模型,结合节点的度和连边的权重信息提出H-NWD、A-NWD和G-NWD 3个h指数的变体指标来度量软件系统中类的重要性,并与已有的度中心性、介数中心性、接近度中心性、特征向量中心性、PageRank中心性5个常用的复杂网络中心性度量指标进行对比。实验结果表明,本文所提的H-NWD和G-NWD指标与已有的度量指标交集达到80%以上,能够很好地识别软件系统中重要类;在确定类的修改情况下,H-NWD指标与度中心性、特征向量中心性、PageRank中心性共同识别的重要类节点rank值更靠前,且被识别的其他类节点修改更频繁,相比于已有指标在识别关键类上更准确。    

4.  基于本体及模式驱动的构件化软件共同变化识别研究  
   钟林辉  朱小征  宗洪雁  程柏良《计算机应用研究》,2016年第33卷第3期
   对共同变化的识别有利于软件维护人员对软件变化的理解和控制。传统的软件共同变化识别方法通过对软件版本控制系统中的数据挖掘,进而识别源程序文件或者类之间的共同变化,但这种方法不适合对构件化软件中构件间共同变化的识别。为此,本文在基于构件的软件配置管理模型的基础上,设计了构件化软件演化信息本体模型以及两者间的映射规则,并提出了构件化软件共同变化模式(基本模式和复合模式)和相应的本体推理规则,开发了原型支撑系统。    

5.  基于层次聚类的变更影响分析  
   刘蔚然  朱圣松  彭鑫  赵文耘《计算机工程与科学》,2006年第28卷第Z2期
   对软件遗产系统的理解往往是软件维护活动中最重要的步骤.软件系统的构件与模块中存在着各种隐性的联系.对系统中一处的改动,经常需要其他部分也做出相应修改.变更影响分析能够帮助维护人员发现潜在改动目标,是软件维护工具的一个主要目标.层次聚类是机器学习中一种重要的聚类方法,用它来进行软件变更影响分析,是一种新的思路和方法.本文介绍了分析模型的基本思想和算法,同时给出了实验数据及分析.    

6.  使用抽象语法树匹配分析Java程序演化  
   周逸勋  陈海波《计算机应用与软件》,2011年第28卷第8期
   软件在生命周期中一直在发生演化,对软件演化的分析可以揭示软件发展的一些基本规律。现有方法通常使用改变的代码行数作为软件演化的指标,但是这项指标不能反映软件架构的变化,也不能帮助理解软件演化的具体情况。使用抽象语法树匹配ATS(Abstract Syntax Tree)进行代码分析能够更清楚地了解软件中发生改变的具体内容。针对Java语言编写的软件,可以了解静态域的添加、删除和类型修改;类的添加、删除、类型修改和方法体修改。这些信息能更好地帮助理解软件演化。    

7.  基于代码自动生成技术的变电站自动化系统软件开发与实现  
   汪溢  余晓明  马凯  张静  单超《电气自动化》,2016年第4期
   随着变电站自动化及其建设水平的日益提高,软件中包含的模块越来越多,各对象间信息传递更加频繁,大大增加了电力系统非计算机专业人员的开发工作难度,导致软件开发周期长、开发成本居高不下且整个过程包含大量的重复劳动。立足于使电力系统非软件专业人员能够摆脱繁琐的底层编程,集中精力到电力自动化专业核心技术学习研究,基于代码自动生成技术、编译原理中的词法分析语法分析,深入研究了模型解释器和代码生成引擎,给出了基于模型驱动框架的变电站自动化系统软件的开发和实现方案,可根据需要灵活配置模型和程序模板,将系统中有规律可循、大量重复的代码自动生成,减少代码出错率,提高软件开发的效率。    

8.  OKQA:一个基于本体的软件开发知识QA工具  
   宋怀达  李萌  赵俊峰  金靖  谢冰《计算机工程与应用》,2013年第16期
   近年来,软件开发模式逐渐从经验驱动的手工构造模式到知识驱动的自动生成模式进行转换,而在知识驱动的软件开发过程中,QA工具可以帮助开发人员更好地理解项目源代码。一般的,开发人员往往需要阅读大量文档、并对软件项目代码进行静态分析,利用某种形式化的查询方法才能获取软件项目的相关信息,这增加了软件开发的时间成本和学习成本。基于该问题,实现了一个基于本体的软件开发知识QA工具OKQA,OKQA可以支持开发人员的自然语言查询输入,帮助开发人员找到理解软件代码的相关答案,从而有效地指导开发人员理解及复用软件代码。    

9.  基于Python的机器视觉实验教学平台设计  
   韩志豪  刘晓英《计算机测量与控制》,2020年第28卷第3期
   针对机器视觉领域的学习内容抽象、难以理解,相关的实验教学产品不足这些问题,基于Python语言,采用开源的opencv-python图像处理库与TensorFlow机器学习框架,提出构建机器视觉实验教学平台。该系统涵盖机器视觉的经典方法,主要包括向量机、K临近图像分类,神经网络、卷积神经网络目标识别,基于经典方法融合常用函数,对系统分模块设计。经过测试,该系统具有较好的交互性与可扩展性,可以适应机器视觉的实验要求,训练数据、样本测试数据导入灵活,机器视觉参数优化、代码迭代方便,并且能够编译生成.exe可执行文件,辅助学生学习机器视觉技术的真实应用场景,提高学生实践解决问题能力和创新能力。    

10.  监控使能的分布式软件系统构造方法  
   刘东红  郭长国  王怀民  王涛《软件学报》,2011年第22卷第11期
   针对开放的网络环境中大型分布式软件的调试、调优、维护和可信演化问题,提出了伴随式的监控使能分布式软件构造方法.基于发布/订阅的分布计算模型,提出了被监控对象的业务逻辑和监控逻辑分离的运行时体系结构;基于面向方面编程思想,提出了监控使能的分布式软件开发方法和工具,降低了监控实施代价,增强了代码的可维护性;基于运行时体系结构,提出了监控系统的动态可定制部署方法.监控使能的分布式软件构造方法能够在开发时控制功能代码和非功能代码的纠结,尽可能地降低软件编程人员的代码维护难度;能够在部署时保证监控系统和被监控对象的松耦合;能够在运行时实现监控信息的按需汇聚和按需处理.从而在对系统核心业务的影响尽可能小的前提下.获得对系统运行行为尽可能全面的理解.    

11.  基于变更类型和相似性比较的代码重构模式识别  
   杨春花  孙美荣《智能计算机与应用》,2018年第2期
   在现代软件开发和维护中重构是提高软件可维护性和软件质量的常用手段.而大量重构模式掺杂在日常的bug修复、功能增加等代码变更中,使得变更理解变得非常复杂.因此,提出一种对常见的抽取方法和抽取类重构模式的识别算法.研究基于工具ChangeDistiller和JDiff分别获取变更类型和抽取代码块,通过判断移动后的代码块与原文件变更代码的关系,识别采取的重构模式.该算法在4个开源项目中进行实验,其平均准确率在80%左右.    

12.  代码坏味对软件演化影响的实证研究  
   章晓芳  朱灿《软件学报》,2019年第30卷第5期
   代码坏味是指程序设计中存在的不良设计模式或设计缺陷.坏味的存在,被认为会阻碍软件的演化与维护.近年来,研究人员致力于探究坏味产生的影响以及坏味与软件演化之间的关系.已有研究表明,代码坏味会随着软件的演化而不断发生变化.通常,软件的演化将涉及源文件的增加、修改与删除这3类具体操作,了解代码坏味与软件演化中源文件操作的关系,将有助于开发者更好地计划软件开发过程和重构软件代码.因此,针对13种常见的坏味,在8个Java项目共计104个版本中进行了系统的实证研究.研究发现,随着软件版本的演化,含代码坏味的文件在整个项目中的占比在不同的项目中呈现出不同的特征.另外,包含代码坏味的文件更倾向于被修改,而坏味本身与文件的添加或者删除并没有太大的关联.更进一步地,在探究的所有坏味中,有几种特定的坏味对文件的修改产生了显著的影响,且这些坏味文件间存在着明显的重叠.这些发现有助于开发人员更好地了解代码坏味,以便于更好地对软件进行维护.    

13.  An Empirical Study of Code Clone Clustering Based on Clone Evolution  
   Fanlong Zhang  Xiaohong Su  Wen Zhao  Tiantian Wang《哈尔滨工业大学学报(英文版)》,2017年第24卷第2期
  

基于演化的克隆代码聚类分析研究

张凡龙,苏小红,赵雯,王甜甜

(哈尔滨工业大学,计算机科学与技术学院)

创新点说明:

(1)提出一个克隆代码聚类分析框架,可探索克隆代码及其演化过程之间的联系;

(2)提取相应的度量值表示克隆代码及其演化过程,并生成聚类向量用于克隆分析;

(3)在六个实验系统上进行实证研究,并揭示了克隆代码及其演化过程之间的关系。

研究目的:

软件中存在大量的克隆代码,并且克隆代码也会随着软件演化。在克隆代码及其演化过程中,隐藏着一些可以帮助程序开发人员理解和维护克隆代码的关系。为探索克隆代码及其演化过程的关系,本文提出了一个基于模糊C均值聚类的克隆代码分析方法。

研究方法:

在本文所提出的克隆代码聚类分析方法中,首先使用NiCad检测多版本软件系统中的克隆代码,并构建相应的克隆家系描述克隆演化过程。然后,提取相应的度量值表示克隆代码及其演化过程,并使用度量值生成克隆聚类向量。最后,使用模糊C均值聚类方法分析克隆聚类向量,并根据聚类结果探索克隆代码及其演化关系。

结果:

本文在6个开源系统上进行了实证研究,通过分析克隆寿命、克隆变化次数和克隆模式等克隆演化特征,揭示了克隆代码及其演化过程之间的关系。

结论:

本文所得到的克隆代码及演化的关系可以帮助程序开发人员理解克隆代码及其演化过程,并可以进一步的指导开发人员对克隆代码进行维护和管理。

关键词:克隆代码,克隆聚类,克隆分析,克隆演化,实证研究

   

14.  基于机器学习的日志函数自动识别方法  
   贾周阳  廖湘科  刘晓东  李姗姗  周书林  谢欣伟《计算机工程与科学》,2017年第39卷第1期
   随着软件规模的不断增长,日志在故障检测中发挥着愈加重要的作用。然而,目前软件日志缺乏统一标准,常受开发人员个人习惯影响,为大规模系统中日志的自动化分析带来了挑战。其中,日志函数的识别作为日志分析的前提条件,对分析结果有着直接影响。提出了一种基于机器学习的方法以支持日志自动识别。通过系统分析广泛使用的大规模开源软件,总结出日志函数编写的主要形式,并提取不同形式间的共性特征,进而基于机器学习实现了自动日志识别工具iLog。实验显示,使用iLog识别的日志函数能力平均为使用特定关键字的76倍,十折交叉验证得到iLog的分析结果的F Score为0.93。    

15.  克隆代码分析方法研究  
   王克朝  朱宸光  王甜甜  苏小红《计算机应用研究》,2017年第34卷第3期
   针对已有克隆代码检测工具只输出克隆组形式的检测结果,而无法分析克隆代码对软件质量的影响问题,提出危害软件质量的关键克隆代码的识别方法。首先,定义了克隆代码的统一表示形式,使之可以分析各种克隆检测工具的检测结果;接下来,解析源程序和克隆检测结果,识别标识符命名不一致性潜在缺陷;然后,定义了克隆关联图,在此基础上检测跨越多个实现不同功能的文件、危害软件可维护性的克隆代码;最后,对检测结果进行可视化统计分析。本文的克隆代码分析工具被应用于分析开源代码httpd,检测出了1组标识符命名不一致的克隆代码和44组危害软件可维护性的关键克隆类,实验结果表明,本文方法可以有效辅助软件开发和维护人员分析、维护克隆代码。    

16.  基于深度学习的程序生成与补全技术研究进展  
   胡星  李戈  刘芳  金芝《软件学报》,2019年第30卷第5期
   自动化软件开发一直是软件工程领域的研究热点.目前,互联网技术促进了开源软件和开源社区的发展,这些大规模的代码和数据成为自动化软件开发的机遇.与此同时,深度学习也在软件工程领域开始得到应用.如何将深度学习技术用于大规模代码的学习,并实现机器自动编写程序,是人工智能与软件工程领域的共同期望.机器自动编写程序,辅助甚至在一定程度上代替程序员开发程序,极大地减轻了程序员的开发负担,提高了软件开发的效率和质量.目前,基于深度学习方法自动编写程序主要从两个方面实现:程序生成和代码补全.对这两个方面的应用以及主要涉及的深度学习模型进行了介绍.    

17.  现代流程工业的机器学习建模  
   《自动化仪表》,2019年第9期
   随着工业大数据时代的来临,基于数据驱动的建模方法在现代流程工业中的研究和应用引起了广泛关注。对以典型机器学习算法为核心的数据驱动建模方法近年来的研究发展进行了系统性的阐述。首先回顾了以分类和回归任务为主的单层机器学习算法在流程工业中的研究与应用,涉及故障检测、识别和诊断,软测量以及质量检测等。再对图像识别、语义分析等领域受瞩目的深度学习算法目前在工业领域的应用与发展进行详述。进而介绍区别于统计分析理论的流形学习在流程工业上的研究与应用进展。最后,对基于上述三类机器学习算法的数据驱动建模方法进行总结并提出展望。    

18.  面向对象系统中基于度量的可复用构件获取机制  被引次数:8
   周欣  陈向葵  孙家骕  杨芙清《电子学报》,2003年第31卷第5期
   从遗产系统代码中获取复用价值高、质量好的构件是成功复用的关键并且亟待解决.本文以系统理解和软件度量为基础,提出了一种从面向对象遗产系统中挖掘可复用构件的有效方法.设计了基于类之间关系分析的构件标识算法-RBCI;构造了构件可复用性模型KVCQ,它可用于辅助用户筛选识别出来的候选构件,该层次型模型的底层度量可以通过计算机自动获取;最后,基于RBCI和RMCQ设计并实现了工具JBCET,以辅助开发者从C 系统中获取高质量的可复用构件。    

19.  利用h指数及其衍生度量识别关键类  被引次数:1
   王木生  卢红敏  周毓明  徐宝文《计算机科学与探索》,2011年第5卷第10期
   在维护不熟悉的软件系统时,需要花费大量的时间去理解系统的架构和功能。为帮助人们进行程序理解,在指数度量的基础上开发了一种轻量级的、自动化的关键类识别方法。软件维护人员可以从该方法识别出来的关键类入手,熟悉系统的架构和功能。首先根据类间的依赖关系构建类之间的依赖图,然后在依赖图的基础上计算h指数及其衍生指数度量值评价类的重要性。在两个开源软件系统上的实验结果表明,与先前的工作相比,该方法能够在保证识别准确性的情况下快速识别出系统中的关键类。    

20.  基于软件多版本演化提取克隆谱系  
   涂颖  张丽萍  王春晖  侯敏  刘东升《计算机应用》,2015年第35卷第4期
   针对单个版本克隆检测结果不足以体现克隆特征这一问题,从软件多版本中自动提取克隆谱系,获得克隆在软件演化过程中表现出的模式和特征.首先基于克隆代码Token表示及其所在文件名称、函数名称等位置属性,准确映射软件历时演化版本间的克隆代码,进而识别克隆演化模式;然后匹配克隆类ID号,合并所有相邻版本间的映射结果及演化模式信息,得到克隆谱系.同时开发了相应的克隆谱系自动提取工具FCG对6款开源软件进行了测试,发现当前版本中克隆代码平均生命周期占所研究版本总数的70%以上,且大部分没有发生变化,说明大部分克隆能被较好地维护,但也存在少量不稳定的克隆可能导致软件缺陷,需要修改或重构.实验结果表明FCG可高效提取克隆谱系,有助于更好地理解克隆及有针对性地管理克隆.    

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号