首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 203 毫秒
1.
随着软件系统的日益复杂,软件开发、维护以及进化的大部分工作和主要成本集中在对现有系统的理解上.逆向工程以支持程序理解为目标,通过分析目标系统,产生系统不同形式和不同层次的抽象表示,帮助用户从多个层面和角度理解目标系统.为了开发一种实用的逆向工程工具,文中在深入分析了反射、开放编译、植入等技术的基础上,提出了一种基于反射植入的面向对象程序动态分析机制,其主要思想是通过反射植入软件触发器获取目标系统的动态信息,这些信息由信息收集机制收集整理并保存到Call-Graph,最后从Call-Graph抽象出符合UML标准的动态模型图.通过项目实践发现,这种机制是可行的.  相似文献   

2.
逆向工程中反射植入的研究   总被引:17,自引:0,他引:17  
逆向工程辅助程序理解,而动态分析是理解面向对象软件系统的一种重要手段,通过植入,才能准确提取系统运行时的信息,常见的植入方法中,植入代码和目标代码处于同一计算层次,在植入过程中,需要对目标代码进行除编译分析之外的额外语法分析。该文提出反射植入思想,将植入的软件触发器和被植入的目标系统作为两个计算层次来处理,通过反射层元对象干预编译过程,实现源代码的植入;首先详细描述反射植入核心算法及识别调用方元信息和对象标识的思路,然后在扩充开放编译器的基础上实现了全局函数和系统调用语句前植入代码的算法,最后对该植入机制进行系统的实验研究。结果表明,反射植入机制不会破坏源代码本身的执行逻辑,能正确有效地植入代码并收集到系统运行时的信息。同时,多次植入的对比数据也证明了反射植入算法的收敛性。  相似文献   

3.
UML活动图的逆向恢复是逆向工程的重要组成部分,对于理解目标系统的动态行为和控制流程有重要辅助作用。论文针对Windows环境中的面向对象系统,给出了一种基于进程(线程)间关系的UML活动图的逆向恢复方法,该方法采用反射植入机制对目标系统进行基于关键函数的植入,然后对植入后目标系统运行时的动态信息进行过滤并提取出来转化为UML活动图模型文件。在此过程中给出了相应的植入和过滤算法,并通过实验验证该方法的有效性。  相似文献   

4.
针对多机并发系统的复杂性,为了辅助用户能从多个角度和层次全面地理解并发系统,就需要逆向产生出能够反映软件系统框架结构的高层架构。基于此本文以进程为边界,提出了一种分层抽取多机并发系统通信模型的方法。此方法基于反射和开放编译的植入机制来获取所需要的动态信息,在此基础上运用分层抽象的策略,分别从系统、节点、进程三个层次对多机并发系统的通信结构和设计结构进行逆向恢复,最后对该方法进行系统的实验研究。结果表明,分层抽象所得到并发系统的通信模型能够正确、有效地反映系统设计时的高层架构关系。  相似文献   

5.
研究了逆向工程中动态剧情的模式发现以及抽象问题。提出并实现了动态剧情中交互模式的自动发现、交互层次的自动恢复以及基于类图的设计模式识别,并实现了以此为依据对动态剧情的抽象。同时,使用Rational Rose的扩展机制,将以上功能无缝嵌入到Rose开发环境中,从而使逆向工程分析工具XDRE具备了在可视环境下以不同抽象层次、不同侧面观察和分析目标系统行为的功能。  相似文献   

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

7.
动态信息是目标系统运行时行为特征的表现.从对软件的动态行为的可读视图(序列图)中,可以抽取出系统高层的动态模型,展示目标系统的高层体系结构.针对逆向自动生成的序列图,引入了多种对序列图的分割和抽象方法,帮助用户从不同的层次和不同关注点来分析动态信息,理解系统的动态行为.  相似文献   

8.
针对面向构件系统的开发,提出了一种根据构件开发过程中的动态信息及开发人员的不同状态,按一定策略,以系统开发效率和系统使用性能优化为目标的动态发射机制。用形式化方式给出了软件构件定义,并论述了发射模型的抽象语义,为面向构件系统的进一步开发奠定了基础。  相似文献   

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

10.
王庆春  彭志勇 《计算机教育》2009,(15):192-193,200
面向对象建模,是为了理解课题而对课题做出的一种抽象,是对课题的一种无歧义的书面描述。本文从对象模型、功能模型和动态模型三种不同建模的角度,不同建模的侧面反映课题的实质性内容,综合起来则全面地反映目标课题的建模方法和过程。通过对象模型、功能模型和动态模型的建模,很好地解决了毕业设计中课题的抽象和描述问题,将面向对象的建模方法应用在毕业设计中起到了很好的作用。  相似文献   

11.
Jaya反射机制是提高系统灵活性、可扩展性的重要技术,它使得软件系统具有自适应能力,并在运行时随外部环境的变化而改变自身,实现程序的动态演进.介绍了反射的概念和Java反射机制,根据基于O/R映射的数据持久层框架的设计方案,采用反射机制实现了域对象(Domain Object)信息的动态加载,并给出了具体实现方法实例.  相似文献   

12.
Program comprehension is an essential part of any maintenance activity. It allows developers to build mental models of the program before undertaking any change. It has been studied by the research community for many years with the aim to devise models and tools to understand and ease this activity. Recently, researchers have introduced the use of eye-tracking devices to gather and analyze data about the developers’ cognitive processes during program comprehension. However, eye-tracking devices are not completely reliable and, thus, recorded data sometimes must be processed, filtered, or corrected. Moreover, the analysis software tools packaged with eye-tracking devices are not open-source and do not always provide extension points to seamlessly integrate new sophisticated analyses. Consequently, we develop the Taupe software system to help researchers visualize, analyze, and edit the data recorded by eye-tracking devices. The two main objectives of Taupe are compatibility and extensibility so that researchers can easily: (1) apply the system on any eye-tracking data and (2) extend the system with their own analyses. To meet our objectives, we base the development of Taupe: (1) on well-known good practices, such as design patterns and a plug-in architecture using reflection, (2) on a thorough documentation, validation, and verification process, and (3) on lessons learned from existing analysis software systems. This paper describes the context of development of Taupe, the architectural and design choices made during its development, and its documentation, validation and verification process. It also illustrates the application of Taupe in three experiments on the use of design patterns by developers during program comprehension.  相似文献   

13.
Program comprehension is an important activity in software maintenance, as software must be sufficiently understood before it can be properly modified. The study of a program's execution, known as dynamic analysis, has become a common technique in this respect and has received substantial attention from the research community, particularly over the last decade. These efforts have resulted in a large research body of which currently there exists no comprehensive overview. This paper reports on a systematic literature survey aimed at the identification and structuring of research on program comprehension through dynamic analysis. From a research body consisting of 4,795 articles published in 14 relevant venues between July 1999 and June 2008 and the references therein, we have systematically selected 176 articles and characterized them in terms of four main facets: activity, target, method, and evaluation. The resulting overview offers insight in what constitutes the main contributions of the field, supports the task of identifying gaps and opportunities, and has motivated our discussion of several important research directions that merit additional consideration in the near future.  相似文献   

14.
内存泄漏是软件系统中常见的一种错误,会持续消耗内存,致使系统运行效率下降,甚至导致系统崩溃。内存泄漏的检测工具主要可以分为两类:一类是使用基于程序扫描分析技术的静态工具;另一类则是监视实时内存分配状态进行判别的动态工具。如何评估工具检测内存泄漏的能力,相关的标准并不明确。通过对内存泄漏的认识与了解,对相关工具能力进行了调研与分析,提出了一个内存泄漏工具的评估标准。  相似文献   

15.
以信息安全理论和软件逆向工程技术为依托,研究了操作系统安全机制复合行为模型掘取技术及其实现方法和技术路线。通过结合操作系统的多尺度软件逆向理解技术,对操作系统安全机制的相关程序进行逆向分析、模型掘取和形式化描述,从而发现潜在漏洞、后门、隐通道等操作系统高层安全机制存在的安全问题,为实施修补、反制及利用等相应安全措施提供有力依据。在该技术基础上实现了一套原型系统,实验验证该系统的程序理解和模型掘取结果满足要求。  相似文献   

16.
一种基于模糊形式概念分析的程序聚类方法   总被引:4,自引:0,他引:4  
程序聚类通过将与同一个需求或设计元素相关的代码单元聚集在一起来辅助程序理解及系统结构分析.其中,形式概念分析(FCA)是一类被广泛采用的程序聚类技术.然而现有基于FCA的程序聚类方法都是基于二值属性构建的,无法处理模糊信息.提出将模糊概念分析用于基于文本分析的程序聚类,提出了一种支持模糊信息的程序聚类方法.该方法包括模糊属性的采集过程以及相应的模糊概念格的构造算法.在此基础上,开发了一个半自动化的程序分析工具,并将其应用到一个商业软件分析中.初步的实验结果表明该方法能够有效地支持基于模糊特征的程序聚类,对于提高遗留系统的维护效率有明显的帮助.  相似文献   

17.
基于语义层软件理解的形式化格局识别技术   总被引:2,自引:0,他引:2  
目前国内外学者在软件理解的研究上多注重于程序的词法层和语法层技术的探索,相应的有程序切片、程序类跟随踪、程序依赖性分析、反汇编与反编译等。但对程序的语义层理解方法进行研究的甚少。该文正是基于上述分析研究了一种软件理解新认识水平——形式化格局识别技术,以行为层状结构的变换来表述程序的语义,进而采用近人类的思维方式来理解并抽取软件的设计决策与体系结构。  相似文献   

18.
基于插件技术的软件架构将软件分为宿主程序、插件和接口三个部分,宿主程序和插件通过接口契约进行通信,通过新增插件以及扩展原有插件的方法来实现软件功能的扩展及修改。本文以.NET为开发平台,研究了如何使用动态加载程序集、反射、晚期绑定这几种反射机制的核心方法进行插件加载、动态发现和使用插件中的类型及方法并且实例化插件,为构建一种可以灵活扩展的应用程序提供了解决思路。  相似文献   

19.
An important part of many software maintenance tasks is to gain a sufficient level of understanding of the system at hand. The use of dynamic information to aid in this software understanding process is a common practice nowadays. A major issue in this context is scalability: due to the vast amounts of information, it is a very difficult task to successfully navigate through the dynamic data contained in execution traces without getting lost.In this paper, we propose the use of two novel trace visualization techniques based on the massive sequence and circular bundle view, which both reflect a strong emphasis on scalability. These techniques have been implemented in a tool called Extravis. By means of distinct usage scenarios that were conducted on three different software systems, we show how our approach is applicable in three typical program comprehension tasks: trace exploration, feature location, and top-down analysis with domain knowledge.  相似文献   

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

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