首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 78 毫秒
1.
金芝  刘芳  李戈 《软件学报》2019,30(1):110-126
程序理解是软件工程中的关键活动,在软件开发、维护、重用等任务中发挥着重要的作用.程序理解自软件工程出现以来,就一直是该领域的研究热点.随着软件应用的日益复杂和不断普及,程序理解研究的需求发生了新的变化,程序的自理解或自认知逐渐成为新的关注点,有必要对程序理解进行重新审视.从工程、学习和认知以及方法和技术这3个角度定位程序理解任务;随后,通过文献分析展示其研究布局,进而分别从认知过程、理解技术以及软件工程任务中的应用这3个方面,综合论述程序理解研究的发展脉络和研究进展.  相似文献   

2.
程序理解   总被引:6,自引:0,他引:6  
程序理解是从计算机程序中获取有关信息的过程。作为程序维护中必不可少的环节,一直受到大家的关注。结合最近比较熟门的软件重建工程,分析程序理解中出现的一些问题以及解决方案。  相似文献   

3.
基于多agent的程序理解方法研究   总被引:1,自引:1,他引:1  
王少锋 《计算机科学》2002,29(5):131-133
一、引言软件逆向工程的研究是软件工程领域的一个重要而实用的研究内容。逆向工程是在给定源代码的情况下理解软件结构的一个途径,其目的是标识软件系统中的构造块,抽取结构依赖关系,为系统创造另一种更高抽象形式的表示。软件逆向工程是基于以下的假设:构造软件系统的过程是从问题域到实现域的映射过程,这种映射是在正向工程中完成的,而且也是一个可逆的过程,可以在不同的抽象级别上被重构。程序理解是软件逆向工程的一个重要组成部分,程序理解技术的研究具有广阔的应用前景:如1)对软件复用的支持,用于标识可复用的软构件;2)对软件测试的支持,有助于选择测试用例;3)用于设计验证和错误检测等;4)对软件维护的支  相似文献   

4.
程序理解通过对程序进行分析、抽象、推理从而获取程序中相关信息,在软件开发、维护、迁移等过程中起重要作用,因而得到学术界和工业界的广泛关注.传统程序理解很大程度上依赖开发人员的经验,但随着软件规模及其复杂度不断增大,完全依赖开发人员的先验知识提取程序特征既耗时耗力,又很难充分挖掘出程序中隐含特征.深度学习是一种数据驱动的端到端的方法,它根据已有数据构建深度神经网络对数据中隐含的特征进行挖掘,已经在众多领域中获得成功应用.将深度学习技术运用于程序理解中,根据具体任务以及大量数据自动地学习程序数据中蕴含的特征,可以充分地挖掘出程序中隐含的知识,提高程序理解的效率.对基于深度学习的程序理解研究工作进行综述,首先对程序所包含的性质进行分析,然后介绍主流的程序理解模型,包括基于序列、结构以及执行过程的程序理解模型.随后展示基于深度学习的程序理解在程序分析中的应用,主要针对代码补全、代码注释生成、代码检索等任务.最后,分析并总结程序理解研究所面临的挑战.  相似文献   

5.
一种可行的自动程序理解途径   总被引:1,自引:0,他引:1  
自动程序理解是软件工程和人工智能的非常活跃的研究领域,本文提出了一种独立于程序设计语言,具有明显结构性和流图结构的中间表示plan来表示程序代码,本文首次提出了应用图文法分析技术于自动程序理解的方法,并给出了基于人工智能技术来进行自动程序理解的模型。  相似文献   

6.
支持程序分析的C++程序信息库的建立与研究   总被引:1,自引:0,他引:1  
提出了一种新程序信息库的设计模式,介绍了程序信息的提取方法,建立了程序信息库CPPINFO,并通过使用实例说明了它的优点。  相似文献   

7.
程序理解是一种需要高度智力活动的过程,其效率取决于所理解的程序、理解人员的领域经验和所采用的辅助机制。为了保证该活动的准确性和高效性,理解工具的半自动化支持是关键的。着重探讨和研究基于文法高级概念化抽象的程序理解,从不同层次不同方面来得到源程序的设计意图,实现语言平台的无关性。  相似文献   

8.
通过数据流分析将程序转换成数据流描述标记,结合数据流到达-定值分析,确定每个基本块的输入、输出定值集合,推导出函数输入与输出间的联系,实现函数功能的静态理解。实验结果表明,在不需要额外提示的情况下,该方法能准确识别二进制形式的字符串拷贝等字符串处理函数。  相似文献   

9.
王泽雨  周晓宇 《软件》2014,(7):78-84
本文利用程序静态分析技术对Web程序中的用例识别进行了深入研究。对Web页面的用户行为进行了深入分析并建模,从行为模型中提取出描述整个系统中用户行为的事件流图,结合采用现有的从目的成功语句出发、以必经结点为基础的用例识别方法,从各个Web页面中提取的独立控制流图,形成全局控制流图,进行全局用例识别。与以前已有工作相比,本文考虑了Web程序的特点,尤其是前端程序如何实现用户行为,并在前端程序中进行精确的用例识别。本文采用目前使用较为广泛的JSP程序进行了实验,结果表明该方法能够有效识别JSP程序中的用例结构。  相似文献   

10.
基于程序理解的编程题自动评分方法   总被引:3,自引:0,他引:3  
针对传统的编程题自动评分方法没有考虑学生程序是怎样实现编程任务的,以及不能从程序文本的语法结构和语义角度衡量学生程序与正确答案的接近程度等问题,提出一种基于程序理解的自动评分方法.以程序理解的一般过程及基本策略为依据,结合人工阅卷的思维过程,建立评分模型.评分过程可划分为3个阶段:首先将程序代码转换成系统依赖图中间表示形式;然后,对系统依赖图进行标准化转换,消除程序表达方式的多样性;最后,匹配标准化后的学生程序与模板程序系统依赖图并根据匹配结果给出评分.该方法被应用于"C语言编程题自动评分系统"中.实验结果表明:它可以根据学生程序的语法和语义衡量学生程序实现编程任务的正确程度,具有较高的准确性.  相似文献   

11.
冯秋燕 《计算机应用》2014,34(1):276-280
采用基于UML模型的软件测试方法,主要整合用例图与顺序图进行系统级的软件测试。首先提出用例执行图(UEG)的生成算法、顺序执行图(SEG)的生成算法,及基于UEG和SEG,生成系统测试图(STG)的算法;其次,根据制定的三层次准则,遍历UEG、SEG、STG生成测试用例,主要解决交互错、场景错、用例执行错和用例依赖错等问题。最后,经实例分析和实验验证,该方法可以基于用例图和顺序图进行系统级的软件测试。  相似文献   

12.
基于UML活动图的测试用例自动生成方法研究   总被引:9,自引:0,他引:9  
牟凯  顾明 《计算机应用》2006,26(4):844-846
基于UML活动图对系统测试的方法进行研究。针对活动图半形式化特性,给出了活动图的形式化描述及测试覆盖准则的定义。重点分析并发活动的顺序及排列,引入人机动态交互的方法在测试场景生成算法上加以约束,避免了测试场景集数量爆炸,使自动化生成测试用例可行性有一定提高。最后,讨论了从测试场景到测试用例的方法,从而为UML活动图的自动化测试提供了系统的、有效的、可行的方法。  相似文献   

13.
缺陷定位是软件质量保证中关键且困难的一项工作,随着软件规模的增大,人工进行缺陷定位的成本越来越高,自动化缺陷定位技术成为研究热点。现有的基于程序频谱的缺陷定位技术可以将缺陷定位到程序语句,但对于大型复杂的软件系统,这种定位方法将带来较大的时间花销。针对此问题,提出一种基于程序频谱的两阶段缺陷定位方法,第一阶段为粗粒度定位,将缺陷定位到程序模块;第二阶段为细粒度定位,在定位的程序模块中再将缺陷定位到语句;最后输出可疑语句推荐列表,辅助开发人员的调试工作。实验结果表明,相比于传统的方法,该方案在保证定位效果的前提下平均减少了10.24%的定位时间。  相似文献   

14.
马建红  赵志丹 《计算机工程与设计》2007,28(19):4589-4591,4599
传统的Use case模型已经被扩展用于建立领域需求模型,但该模型并不支持领域测试用例的复用和自动生成.给出了领域用例的形式化定义方式,增加了最小数据触发集的描述,提出了用例的动态模型和静态模型概念.扩展活动图用于表示用例之间的动态关系和执行过程,并将值流和对象流融入到活动图的表示中.依据用例的动态模型,可以直接产生测试用例,同时获取测试数据,从而实现领域软件需求与领域测试用例的裁剪过程一致性和同步性.  相似文献   

15.
Program comprehension is a key activity throughout software maintenance and reuse. The knowledge acquired through comprehending programs can guide engineers to perform various kinds of software maintenance and reuse tasks. The effective comprehension strategy and the associated efficient approach, as well as the sophisticated tool support, are the indispensable elements for an entire solution to program comprehension to reduce the high costs of this nontrivial activity. This paper presents an objective-oriented comprehension strategy, contrasting to the traditional comprehensive understanding strategy in the literature. It is a kind of on-demand understanding for specific tasks and more effective in practice. In addition, using multiple information sources to understand programs is proposed with the corresponding framework. From these two points of views, we propose a feature-oriented program comprehension approach using requirement documentation. This approach aims at a specific category of feature-related software maintenance and reuse tasks. Case studies are conducted to evaluate the proposed solution. Results from the studied cases show that the experimental prototype provides more explicit advices for software engineers when performing these tasks.  相似文献   

16.
对于遗产软件的理解和维护在软件研究领域中已经变得越来越重要,综述了程序理解的策略及工具,引入了程序切片的思想,并在此基础上对传统的切片方法进行改进以更好地完成程序理解的任务。  相似文献   

17.
信息系统UML建模研究   总被引:18,自引:0,他引:18  
方红萍  陈和平 《计算机工程与设计》2006,27(19):3613-3615,3655
UML作为一种面向对象的标准建模语言,在信息管理系统的建模领域得到了广泛的应用.概述了UML中多种模型图的使用方法和适用范围,分析了UML系统建模的主要过程和特点,并以一个实验预约系统为例详细介绍了系统用例模型,静态模型和动态模型的设计过程,同时重点探讨了在一般信息系统建模过程中普遍适用的系统类筛选、动态方法定义等相关技术.  相似文献   

18.
逆向工程分析技术研究   总被引:6,自引:0,他引:6  
近年来,许多组织面临着遗产系统的理解和演化问题,理解和演化遗产系统的问题在软件研究领域越来越重要。逆向工程通过提供一个对目标系统的设计和总体结构的较好的理解来辅助遗产系统的演化,是解决遗产系统问题的关键技术。文中介绍了逆向工程的定义,综述了逆向工程分析技术的研究进展,探讨了分析技术研究存在的不足之处,给出了未来的发展趋势。  相似文献   

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

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