首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 484 毫秒
1.
杨曦  李彤 《计算机工程》2012,38(19):52-55
传统面向对象(OOP)框架对软件的变化性和复杂性支持有限.为此,基于C++语言,提出一种支持动态演化的面向方面编程框架——AODF.给出Bigraph理论的静态和动态建模过程,通过Bigraph反应系统实现AODF的动态演化,使用图形及形式化的项语言表述其演化过程.实验结果表明,与传统OOP框架相比,AODF的代码模块化程度更高,软件系统扩展性更好.  相似文献   

2.
针对同种族恶意软件行为具有相似性的特点进行研究,提出通过静态分析和动态运行程序相结合的方式度量软件行为的相似性。通过反编译和soot代码转换框架获取程序控制流图,利用行为子图匹配算法从静态方面对程序行为相似性进行度量;通过自动化测试框架运行程序,利用文本无关压缩算法将捕获到的trace文件压缩后进行相似性度量。该检测方法综合静态检测执行效率高和动态检测准确率高的优点,实验分析表明,该检测技术能够准确度量程序之间行为的相似性,在准确率上相较于Androidguard有大幅提升。  相似文献   

3.
随着软件的演化,软件规模和复杂性的上升往往会造成代码设计质量的退化,进而导致代码可维护性下降。已有大量软件度量指标用于量化代码设计质量,但是由于数量众多,不同指标体系度量结果可比性较差,使得开发人员难以找到存在设计质量问题的模块。系统调研并整理归类了现有的规模、耦合、内聚、封装、继承和多态等6方面软件度量指标。结合度量指标关系以及实验分析,从每个方面的指标集中发现了与代码设计质量关联度最高的6个指标,从而提出一种面向代码设计质量监控的软件度量指标集。实验表明,该指标集可以有效挑选出存在代码设计质量问题的类,可作为开发人员监控和定位代码设计问题的重点关注指标。  相似文献   

4.
程序可执行代码同源性度量技术研究   总被引:1,自引:0,他引:1       下载免费PDF全文
刘欣  段云所  陈钟 《软件学报》2004,15(Z1):143-148
当前软件版权保护机制侧重于从事前角度出发,防止软件知识产权受到侵害,无法满足司法实践对软件产品的同源性进行判定的要求,从静态与动态两个方面对程序可执行代码进行分析,给出一种程序可执行代码同源性度量方法.原型系统运行结果较好地反应了可执行代码间的似然性,初步解决了软件同源性度量的问题.  相似文献   

5.
用AOP的横切机制解决面向对象设计中的耦合问题   总被引:6,自引:4,他引:2  
传统的面向对象思想无法有效解决由于系统对横切点的关注造成的实现代码散乱耦合问题。面向方面思想是为解决这一途径的技术,本文对面向方面思想中的静态横切机制和动态横切机制作了比较详细的分析说明,探讨了如何利用它们来解决这一问题。  相似文献   

6.
邓斌  赵立军  纪铎 《软件》2013,(7):59-62
经典的软件工程方法往往导致软件重新部署,甚至软件迁移。因此松耦合的软件设计和动态适应模型是及其重要的。动态面向方面编程(D-AOP),非常适合这种需求。本文介绍一个OSGi与D-AOP集成的框架,建立适应动态变化的核心关切面,以及横切关注点。D-AOP框架的无缝集成是通过切面映射的部署和取消部署到OSGi的bundle生命周期,而不影响原有部署模型。  相似文献   

7.
代码质量度量是软件质量分析的一个重要研究方向。静态分析方法因其具有成本低、容易实现而且不依赖于程序特定的运行环境的优点,在当前软件网络化、服务化的趋势下倍受关注。针对Java代码质量度量进行研究,使用Ant工具整合各种开源的静态测试工具,并制定基于静态分析的Java代码质量综合评价方案,可支持包括代码规模、规范性、可维护性、可扩展性和潜在危险等方面的综合检测,为项目的开发者、管理者和使用者提供了实用的代码质量评价方法。  相似文献   

8.
异常处理是任何软件中都必须面对的一类问题,但传统的异常处理过程会和程序中的其它代码产生了一种紧耦合关系,这种紧耦合关系使得代码的重用和维护非常困难。本文将结合面向方面编程讨论基于AOP的异常处理模型,该模型能够比较好的实现异常处理代码和业务逻辑代码的解耦,大大提高整个程序的重用性和可维护性。  相似文献   

9.
基于Spring的面向方面编程   总被引:1,自引:0,他引:1  
面向方面编程(AOP)是面向对象编程(OOP)的一种扩展技术,能够很好的解决横切关注点问题,使得大型软件的设计和实现都能保持功能分离,解除代码耦合。采用AOP技术设计的软件,功能划分清晰,代码保持独立,系统维护简单。SpringAOP是AOP技术的一种实现技术。  相似文献   

10.
基于UML面向方面动态行为建模   总被引:1,自引:1,他引:0  
面向方面动态行为建模在设计阶段实现了横切关注点的分离,能更好的解决编程阶段代码的纠缠和散射问题,从而提高了软件的可重用性,可维护性,可跟踪性.由于面向对象的动态行为建模通常由标准的面向对象建模语言UML表示,所以文章在UML的基础上,建立面向方面横切关注点的动态模型.  相似文献   

11.
面向方面软件测试的研究进展   总被引:2,自引:0,他引:2  
面向方面编程软件测试技术是保证面向方面软件产品质量的有效手段.首先对AO软件的基本特征进行分析,然后从单元测试、集成测试、回归测试以及测试自动生成工具等多个方面介绍了AO软件测试的研究现状,最后展望了AO软件测试技术的发展前景.  相似文献   

12.
Dynamic coupling measurement for object-oriented software   总被引:1,自引:0,他引:1  
The relationships between coupling and external quality factors of object-oriented software have been studied extensively for the past few years. For example, several studies have identified clear empirical relationships between class-level coupling and class fault-proneness. A common way to define and measure coupling is through structural properties and static code analysis. However, because of polymorphism, dynamic binding, and the common presence of unused ("dead") code in commercial software, the resulting coupling measures are imprecise as they do not perfectly reflect the actual coupling taking place among classes at runtime. For example, when using static analysis to measure coupling, it is difficult and sometimes impossible to determine what actual methods can be invoked from a client class if those methods are overridden in the subclasses of the server classes. Coupling measurement has traditionally been performed using static code analysis, because most of the existing work was done on nonobject oriented code and because dynamic code analysis is more expensive and complex to perform. For modern software systems, however, this focus on static analysis can be problematic because although dynamic binding existed before the advent of object-orientation, its usage has increased significantly in the last decade. We describe how coupling can be defined and precisely measured based on dynamic analysis of systems. We refer to this type of coupling as dynamic coupling. An empirical evaluation of the proposed dynamic coupling measures is reported in which we study the relationship of these measures with the change proneness of classes. Data from maintenance releases of a large Java system are used for this purpose. Preliminary results suggest that some dynamic coupling measures are significant indicators of change proneness and that they complement existing coupling measures based on static analysis.  相似文献   

13.
本文研究了如何把面向方面技术应用到数字图书馆系统开发中。引入面向方面的开发方法,解决了数字图书馆系统开发中代码分散和代码纠缠问题,提高了系统的开发效率、可重用性、可理解性、可维护性和可演进性。  相似文献   

14.
As aspects extend or replace existing functionality at specific join points in the code, their behavior may raise new exceptions, which can flow through the program execution in unexpected ways. Assuring the reliability of exception handling code in aspect-oriented (AO) systems is a challenging task. Testing the exception handling code is inherently difficult, since it is tricky to provoke all exceptions during tests, and the large number of different exceptions that can happen in a system may lead to the test-case explosion problem. Moreover, we have observed that some properties of AO programming (e.g., quantification, obliviousness) may conflict with characteristics of exception handling mechanisms, exacerbating existing problems (e.g., uncaught exceptions). The lack of verification approaches for exception handling code in AO systems stimulated the present work. This work presents a verification approach based on a static analysis tool, called SAFE, to check the reliability of exception handling code in AspectJ programs. We evaluated the effectiveness and feasibility of our approach in two complementary ways (i) by investigating if the SAFE tool is precise enough to uncover exception flow information and (ii) by applying the approach to three medium-sized ApectJ systems from different application domains.  相似文献   

15.
This paper provides a detailed review of the global/local non-intrusive coupling algorithm. Such method allows to alter a global finite element model, without actually modifying its corresponding numerical operator. We also look into improvements of the initial algorithm (Quasi-Newton and dynamic relaxation), and provide comparisons based on several relevant test cases. Innovative examples and advanced applications of the non-intrusive coupling algorithm are provided, granting a handy framework for both researchers and engineers willing to make use of such process. Finally, a novel nonlinear domain decomposition method is derived from the global/local non-intrusive coupling strategy, without the need to use a parallel code or software. Such method being intended to large scale analysis, we show its scalability. Jointly, an efficient high level Message Passing Interface coupling framework is also proposed, granting an universal and flexible way for easy software coupling. A sample code is also given.  相似文献   

16.
于海  王莹  徐美秋  杨博  许畅  朱志良 《软件学报》2023,34(11):5282-5311
在软件开发过程中,软件库可以减少开发时间和节约成本而被广泛使用,因此现代软件项目包含多种不同来源的代码而使得系统具有更高的复杂性和多样性.软件库在使用的过程中常常伴随着各种风险,如低质量或安全漏洞,从而严重影响软件项目的质量.通过分析与软件库的耦合强度,来量化由软件库的依赖关系而引入客户代码的复杂性和多样性.首先,根据客户代码与软件库之间方法的调用关系建立软件边界图模型,区分开客户代码和软件库的代码边界;进而基于此提出一套软件库依赖图谱的复杂性度量指标RMS,用以量化不同来源软件之间的耦合强度.在实验过程中,挖掘Apache开源社区中10个流行软件所有历史版本数据,最终收集到7 857个真实项目间依赖缺陷问题.在上述真实数据基础上,结合所提出的复杂性度量指标RMS,利用假设验证方法开展实证调查研究来探讨:H1:风险因子更高的边界节点是否更容易引入更多数量的项目间依赖缺陷; H2:风险因子更高的边界节点会是否更容易引入严重等级高的项目间依赖缺陷; H3:RMS度量指标数值多大程度地影响了引入项目间依赖缺陷数量和严重等级.实验结果表明,根据RMS度量指标评估,与软件库耦合度更高的边界节点容...  相似文献   

17.
上位机软件是双CCD相机精度靶测控系统中非常重要的一部分;针对精度靶测控系统软件存在后期功能拓展难、维护效率低、使用升级复杂等问题;先进行了对该类软件的调查研究,然后分析上位机测控软件功能需求,根据软件的需求分析,设计了一种基于B/S架构的精度靶测控系统上位机软件实现方案;软件架构采用了浏览器和服务器方式专有的三层结构,在中间层设计了TCP服务器,提高软件的功能拓展性,降低了实现代码的耦合性;采用了Netty通信技术框架及其非阻塞技术实现了TCP服务器底层,设计了专有的解码方法接收下位机数据及发送控制指令;通过模拟测试,能够满足下位机频繁发送数据,上位机稳定接收和可靠运行的功能需求,软件的结构设计合理,扩展性和维护性良好。  相似文献   

18.
The artifacts constituting a software system are sometimes unnecessarily coupled with one another or may drift over time. As a result, support of software partitioning, recovery, and restructuring is often necessary. This paper presents studies on applying the numerical taxonomy clustering technique to software applications. The objective is to facilitate those activities just mentioned and to improve design, evaluation and evolution. Numerical taxonomy is mathematically simple and yet it is a useful mechanism for component clustering and software partitioning. The technique can be applied at various levels of abstraction or to different software life-cycle phases. We have applied the technique to: (1) software partitioning at the software architecture design phase; (2) grouping of components based on the source code to recover the software architecture in the reverse engineering process; (3) restructuring of a software to support evolution in the maintenance stage; and (4) improving cohesion and reducing coupling for source code. In this paper, we provide an introduction to the numerical taxonomy, discuss our experiences in applying the approach to various areas, and relate the technique to the context of similar work.  相似文献   

19.
陈秋远  李善平  鄢萌  夏鑫 《软件学报》2019,30(4):962-980
代码克隆(code clone),是指存在于代码库中两个及以上相同或者相似的源代码片段.代码克隆相关问题是软件工程领域研究的重要课题.代码克隆是软件开发中的常见现象,它能够提高效率,产生一定的正面效益.但是研究表明,代码克隆也会对软件系统的开发、维护产生负面的影响,包括降低软件稳定性,造成代码库冗余和软件缺陷传播等.代码克隆检测技术旨在寻找检测代码克隆的自动化方法,从而用较低成本减少代码克隆的负面效应.研究者们在代码克隆检测方面获得了一系列的检测技术成果,根据这些技术利用源代码信息的程度不同,可以将它们分为基于文本、词汇、语法、语义4个层次.现有的检测技术针对文本相似的克隆取得了有效的检测结果,但同时也面临着更高抽象层次克隆的挑战,亟待更先进的理论、技术来解决.着重从源代码表征方式角度入手,对近年来代码克隆检测研究进展进行了梳理和总结.主要内容包括:(1)根据源代码表征方式阐述并归类了现有的克隆检测方法;(2)总结了模型评估中使用的实验验证方法与性能评估指标;(3)从科学性、实用性和技术难点这3个方面归纳总结了代码克隆研究的关键问题,围绕数据标注、表征方法、模型构建和工程实践4个方面,阐述了问题的可能解决思路和研究的未来发展趋势.  相似文献   

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

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