首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 431 毫秒
1.
版本控制是软件配置管理的重要功能,负责为配置库中的所有元素自动分配版本标识,并保证版本命名的惟一性。文中运用软件工程的原理并结合版本控制的实践,首先指出为了有效地进行版本控制而引入基线管理,并通过图形表示最常用的软件项目基线;然后研究版本管理,包括版本管理的功能、版本树、版本的串行与并行演变过程,并通过图形给出了版本演变历史和组件版本的变化过程;最后研究版本控制的主要内容,包括检入检出控制、分支和合并、历史记录。结果表明,在配置管理过程中通过基线进行版本控制,是保护代码资源、提高开发效率、加强软件项目管理的有效途径。  相似文献   

2.
近年来,随着不同编程语言代码自动转换工具的出现,跨语言的代码抄袭检测问题受到了越来越多的关注.现有跨语言代码抄袭检测主要包括传统的基于中间特征的检测方法和近年来出现的基于机器学习的检测方法,后者在检测模型训练完成之后具有更好的检测速度,是当前跨语言代码抄袭检测的研究热点.然而,现有的基于机器学习的跨语言抄袭检测方法大多将代码作为文本来处理,未考虑代码的结构特征.结合代码基于抽象语法树的结构特征,本文提出了一个基于伪孪生神经网络框架的跨语言抄袭检测工具CLPDetector.该工具将训练数据中的源代码对转换成对应的抽象语法树,基于抽象语法树生成代码的向量表示,然后将结合BiLSTM、CNN和Attention的深度神经网络嵌入到伪孪生网络架构中训练抄袭检测模型,从而实现了跨语言代码抄袭的检测.为了提高检测精度,首先,在训练检测模型前,利用基于抽象语法树的skip-gram算法对词向量进行了预训练,并基于程序依赖图删除了训练数据集代码中的冗余代码.其次,在代码抄袭检测阶段,提出了一个基于属性计数的过滤器,用以排除不可能抄袭的代码对,提高检测效率.实验中基于一个开源的数据集,以Java代码和...  相似文献   

3.
抽象语法树(abstract syntax tree,AST)作为程序一种重要的中间表示形式,在代码分析领域中有着广泛的应用。如何针对Java程序生成其抽象语法树是在进行代码静态分析前必不可少的工作。分析抽象语法树的构建算法,通过JavaCC解析工具完成对Java文件抽象语法树的构建,该方法可实现代码树状形式的可视化呈现。  相似文献   

4.
使用抽象语法树和静态分析的克隆代码自动重构方法   总被引:4,自引:0,他引:4  
单个软件系统中以及若干个相似系统之间的代码克隆给软件维护增加了很大困难.本文针对运用克隆侦测发现的相似代码片断,提出一种基于抽象语法树和静态分析的代码自动重构方法.该方法首先为克隆代码分别构造抽象语法树,然后运用语句差异度指标建立起语法树之间流程控制语句的对应关系.在此基础上,该方法根据控制流程和基本语句块两个层次上的差异性分析,最终通过代码可变点提取实现克隆代码的自动合并.针对Java代码开发了克隆代码重构支持工具原型,并分别针对JDK1.5和一个业务系统进行了自动重构实验.初步的结果表明,该方法能够准确、有效地辅助开发者实现克隆代码的自动重构.  相似文献   

5.
基于抽象语法树的软件度量工具的设计与实现   总被引:4,自引:0,他引:4  
为了提高软件质量和控制,改善软件开发过程,文中提出了以抽象语法树为核心的软件度量工具(ASTMT)的体系结构图,介绍了度量工具的功能及特点,详细论述了工具中各个模块的设计与实现方法,着重讨论了抽象语法树的组成及其节点设计。介绍该工具在软件开发中的实际应用,进而验证了工具的实用性与有效性。  相似文献   

6.
顿海涛 《程序员》2006,(3):119-121
在一个软件开发项目组开发环境中,使用版本控制工具就好像建立了一部软件开发的编年史,不仅仅对软件的版本进行了控制,还能够协调多个开发人员的工作,对整个软件的开发过程进行有效的管理,在一定程度上提高软件开发的效率。  相似文献   

7.
一种建立控制依赖子图的方法   总被引:1,自引:0,他引:1       下载免费PDF全文
吕蕾  刘弘  李鑫 《计算机工程》2009,35(15):50-52
提出一种基于GCC(GNU Compiler Collection)抽象语法树文本建立控制依赖子图的方法,消除抽象语法树文本中与分析控制流无关的信息,将消除冗余后的抽象语法树文本转化为以邻接表为存储结构的抽象语法树的算法,从而高效地完成了抽象语法树的解析。基于以邻接表为存储结构的抽象语法树建立了控制依赖子图。通过实验证明了该方法的正确性和适用性。  相似文献   

8.
构件软件配置管理以及其版本控制技术研究   总被引:3,自引:0,他引:3  
该文通过对软件配置管理领域与基于构件的软件开发方法(CBSD)的理论与技术分析,结合CBSD的特点、可变粒度构件复用等技术,针对现有软件配置管理工具对CBSD支持不足,提出了一个支持CBSD的软件配置管理工具FDSCM,并对其版本控制关键技术进行具体论述,包括构件与构架的版本演化,逆向跟踪和分支合并策略等。  相似文献   

9.
为优化软件项目管理,解决软件版本管理混乱、人工代码走查过程负责和结果难于控制的问题,研究了软件版本管理工具和代码走查工具,介绍了版本管理工具和代码走查工具在软件项目管理中应用。根据实践中软件项目管理的需求,提供了一种版本管理工具Subversion与代码走查工具Reviewboard相结合的系统的实现方法,介绍了版本管理工具和代码走查工具的安装部署,给出了一种基于该系统的软件开发应用流程。  相似文献   

10.
陈平  王成耀 《微计算机信息》2007,23(24):189-190,120
本文给出了以抽象语法树为基础的软件静态分析工具的体系结构,介绍了该工具中各个模块的设计与实现方法,着重于规则库的设计,以及利用定义好的规则实现自动化的代码检测的过程。  相似文献   

11.
While the creation of new branches and forks is easy and fast with modern version-control systems, merging is often time-consuming. Especially when dealing with many branches or forks, a prediction of merge costs based on lightweight indicators would be desirable to help developers recognize problematic merging scenarios before potential conflicts become too severe in the evolution of a complex software project. We analyze the predictive power of several indicators, such as the number, size or scattering degree of commits in each branch, derived either from the version-control system or directly from the source code. Based on a survey of 41 developers, we inferred 7 potential indicators to predict the number of merge conflicts. We tested corresponding hypotheses by studying 163 open-source projects, including 21,488 merge scenarios and comprising 49,449,773 lines of code. A notable (negative) result is that none of the 7 indicators suggested by the participants of the developer survey has a predictive power concerning the frequency of merge conflicts. We discuss this and other findings as well as perspectives thereof.  相似文献   

12.
模型驱动开发以其低错误率,易仿真,易验证的特点在嵌入式软件开发中被广泛应用.近年来,基于模型的嵌入式软件开发方法及相应工具也在逐渐发展和完善.数据流模型是各种建模工具中使用最为频繁的语义模型,然而各种工具对于数据流模型的代码生成能力却参差不齐,特别是对于数据分支组件的支持,当前主流的建模工具都采用各种方式来回避复杂的分支建模及对应的代码生成.但是,分支建模是非常重要的,使用分支组件可以更清晰地表现出数据流的数据传递逻辑.为了解决复杂分支建模带来的代码生成难题,本文针对具有复杂分支组合的数据流模型提出了一种基于分支调度标记的代码生成方法.在本文提出的算法中,首先通过拓扑排序确定模型的调度顺序,再根据不同分支的影响对组件进行分支标记,之后根据组件的分支标记构造一个基于控制流的代码生成位置表,最后即可根据代码生成位置表进行各种主流语言的代码生成.本文通过构造四个具有复杂分支的数据流模型实例进行代码生成,并在生成代码行数和运行时间等方面与Simulink和Ptolemy进行对比,进一步说明了我们的代码生成方法在复杂分支组合情况下的通用性以及本文工作的价值和意义.  相似文献   

13.
张薇 《计算机时代》2012,(10):67-69
软件配置管理包括对代码、文档、数据等的管理,其优劣受限于项目成员的实际操作。开发人员对于工作区如何使用;成员之间的代码是不是可以及时更新与同步;怎样使用分支,如何进行变更合并,才能减少物理空间浪费和事件延迟。这些问题在实际的项目开发中往往被忽视,亦或团队并没有对成员行为作细节的规范,因而许多软件项目出现了工期推迟或代码质量不高等问题。为此提出了一系列管理措施,通过优化软件配置管理规范项目各成员的行为,以保证高效的软件配置管理的实施。  相似文献   

14.
Much of software developers' time is spent understanding unfamiliar code. To better understand how developers gain this understanding and how software development environments might be involved, a study was performed in which developers were given an unfamiliar program and asked to work on two debugging tasks and three enhancement tasks for 70 minutes. The study found that developers interleaved three activities. They began by searching for relevant code both manually and using search tools; however, they based their searches on limited and misrepresentative cues in the code, environment, and executing program, often leading to failed searches. When developers found relevant code, they followed its incoming and outgoing dependencies, often returning to it and navigating its other dependencies; while doing so, however, Eclipse's navigational tools caused significant overhead. Developers collected code and other information that they believed would be necessary to edit, duplicate, or otherwise refer to later by encoding it in the interactive state of Eclipse's package explorer, file tabs, and scroll bars. However, developers lost track of relevant code as these interfaces were used for other tasks, and developers were forced to find it again. These issues caused developers to spend, on average, 35 percent of their time performing the mechanics of navigation within and between source files. These observations suggest a new model of program understanding grounded in theories of information foraging and suggest ideas for tools that help developers seek, relate, and collect information in a more effective and explicit manner  相似文献   

15.
随着计算机技术迅速地应用到社会各领域,Excel基本操作是所有办公人员必不可少的技能之一,特别是在高校日常办公中,高校管理部门经常需要将多个Excel表格进行合并,如不借助额外的Excel工具进行合并,传统的Excel合并方法操作复杂、工作量大、耗时多、效率低、易出错。基于C#编程语言,设计和实现了一个批量Excel表格合并系统,提高了高校管理部门批量合并Excel表格的工作效率。  相似文献   

16.
Our current understanding of how programmers perform feature location during software maintenance is based on controlled studies or interviews, which are inherently limited in size, scope and realism. Replicating controlled studies in the field can both explore the findings of these studies in wider contexts and study new factors that have not been previously encountered in the laboratory setting. In this paper, we report on a field study about how software developers perform feature location within source code during their daily development activities. Our study is based on two complementary field data sets: one that reflects complete IDE activity of 67 professional developers over approximately one month, and the other that reflects usage of an IR-based code search tool by nearly 600 developers. Analyzing this data, we report results on how often developers use which type of code search tools, on the types of queries and retreival strategies used by developers, and on patterns of developer feature location behavior following code search. The results of the study suggest that there is (1) a need for helping developers to devise better code search queries; (2) a lack of adoption of niche code search tools; (3) a need for code search tool to handle both lookup and exploratory queries; and (4) a need for better integration between code search, structured navigation, and debugging tools in feature location tasks.  相似文献   

17.
This article presents an integrated framework for the development of home automation systems following the model-driven approach. By executing model transformations the environment allows developers to generate executable code for specific platforms. The tools presented in this work help developers to model home automation systems by means of a domain specific language which is later transformed into code for home automation specific platforms. These transformations have been defined by means of graph grammars and template engines extended with traceability capabilities. Our framework also allows the models to be reused for different applications since a catalogue of requirements is provided. This framework enables the development of home automation applications with techniques for improving the quality of both the process and the models obtained. In order to evaluate the benefits of the approach, we conducted a survey among developers that used the framework. The analysis of the outcome of this survey shows which conditions should be fulfilled in order to increase reusability.  相似文献   

18.
通过对Huffman编码方法的研究,文中提出了一种基于多参数的数据无损压缩算法。基于原始数据集的元素个数统计,对原始数据集进行多次的合并,使合并后所得到的新数据集满足Huffman最佳编码要求,由此生成规模较小的数据合并对应表,并将数据编码分为一元即时码(前缀)和区分码(后缀)两个部分。数据多次合并的不同起始点为文中无损压缩方法的多参数,利用这些参数结合编码前缀及后缀即可唯一表示原始数据,去除了编码表。解码时无需逐位匹配即可复原原始数据。与传统方法相比,文中构造的基于多参数的数据无损压缩方法,编码结构简单,运算开销小,编解码效率较高。  相似文献   

19.
谭鑫  林泽燕  张宇霞  周明辉 《软件学报》2018,29(8):2283-2293
软件开发过程中,同一代码文件经常由多名开发者共同开发和维护,各个开发者向文件贡献了不同的代码量,使之形成特有的贡献组成.代码文件的贡献组成是否合理直接影响开发者的任务分配,进而影响软件质量和开发效率.对于不同类型的代码文件,如何刻画并确定其合理的贡献组成模式,成为一个亟待解决的问题.由于协同开发支撑工具的成熟,使得开发人员的活动可以被有效的记录,因此,其所产生的海量数据为数据驱动的智能化软件开发打下了基础.首先,基于代码所有权,从贡献组成的集中度、复杂度和稳定性三个维度出发,提出刻画贡献组成的三个量度.其次,以OpenStack的核心项目Nova为研究案例,在其版本控制数据上建立贡献组成的量度,总结了12种通用文件类型,归纳出3种贡献组成模式.最后,本文结合邮件以及面对面访谈的方式,验证了量度的有效性以及贡献组成模式的合理性,并从贡献组成的角度,对软件开发过程给出了一些指导性建议.  相似文献   

20.
On how to merge sorted lists coming from different web search tools   总被引:1,自引:0,他引:1  
Different web search tools often complement each other. So, if we want to have a good coverage of all relevant web items, a reasonable strategy is to use different search tools and them merge the resulting lists. How to merge them? In this paper, we describe reasonable axioms for the merging procedure and describe all mergings that satisfy these reasonable axioms.  相似文献   

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

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