首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 62 毫秒
1.
张仕  黄林鹏 《软件学报》2008,19(10):2562-2572
针对面向对象软件在动态更新中遇到类型安全问题,定义了一个多版本类的动态更新演算(MCUFJ演算(multi-version class dynamic updamble calculus based on FJ calculus))来描述类动态更新.MCUFJ演算以FJ(featherweight Java)演算为核心,通过增加update操作表示类的动态更新,运用多版本技术使动态更新可以在保持新旧对象共存的情况下完成,讨论了类的数据域和方法进行增加、删除、修改以及类型变化对程序类型安全性的影响,并且指出MCUFJ上类型安全的动态更新需要满足的约束.定义了类的可动态更新限制,并且证明了在该条件下多版本类的动态更新在类型上的安全性.该演算可以用于指导Java语言和面向对象程序语言的类动态更新.  相似文献   

2.
一些面向上下文的编程语言已经实现,但在这些语言中所有的层被编译为程序可执行代码的一部分,这限制了程序的应用范围.为了解决该问题,提出一种以虚拟机为核心的方法支持动态层绑定,它融入对象组合与代理到虚拟机实现层激活,利用虚拟机服务支持动态层绑定.为了精确描述该方法并有效分析该方法对程序类型安全的影响,定义一个以Featherweight Java演算为核心的演算.基于该演算,形式化分析它对程序类型安全的影响,定义相应的约束,并证明在满足该约束下动态层绑定能保持程序的类型安全.为证明方法可行,以演算为指导,通过扩展Java的编译器与虚拟机实现并评估该方法.该演算和方法的实现可用于指导类似Java的语言的扩展,以支持程序动态地绑定层,同时保证扩展后语言的类型安全.  相似文献   

3.
面向方面编程与构件技术的结合是开发更加可复用、可扩展的软件的新方法,不同于传统的通过修改系统架构以及引入新的编程语言实现二者的结合。提出一种将文件划分为构件与方面,利用XML语言描述构件与方面的编织关系,结合构件客器技术与面向方面编程的方法实现构件与方面的运行时编织的方法。新的方法既可以简单方便地描述方面,又有效地扩展了现有系统,原有构件不需要任何改动,就可以直接实现同方面的编织,井确保比较高的运行效率。同时该方法在CAR上的软件工程实践也作了描述。  相似文献   

4.
随着研究与应用的深入,传统的基于类的面向对象语言对动态变化要求的支持不足越来越明显。而且,由于软件系统复杂性的不断提高,这个问题变得更加突出。近年来,人们一直在进行着各种研究和尝试,寻求解决办法。delegation是一种在基于原型的面向对象语言中实现的对象动态继承,由于它支持对象行为在运行期动态改变,能提供对象动态扩展功能的能力,因此探讨如何在基于类的面向对象语言中引入delegation成分,以提供软件运行时刻的结构与行为变更能力,是十分有意义的。本文提出了一种命令式、带有delegation的西对象演算,以该演算系统刻划程序设计语言的基本特征;通过给出西演算的语法和操作语义;详细描述程序中各种操作的实现方法;着重说明在程序语言中引入delegation成分后,对象之间共享方法和对象扩展功能所具有的灵活性和简单性。从而说明在程序语言中引入delegation,以支持软件动态变更是一种有效且可行的途径。  相似文献   

5.
软件测试是保证软件质量的重要手段。软件测试呈现向软件开发的前期发展、与软件开发的设计阶段和编码阶段相融合的发展趋势。软件的易测试性逐渐受到人们重视。合约式设计是一种有效的软件易测试性设计方法。本文介绍了软件易测试性设计的基本思想和主要方法,提出一种新的合约式设计方法,对现有各种基于Java语言的合约式设计工工具进行比较,开发了一种新的合约式设计工具,并通过实验验证了方法的有效性。  相似文献   

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

7.
一种基于模型的测试充分性评估方法   总被引:1,自引:0,他引:1  
测试充分性评估通常采用覆盖率的方法来评估测试对软件特征的覆盖充分程度。如今,传统的充分性评估方法难以满足复杂软件的测试评估需求。首先,代码覆盖准则难以准确验证软件需求;其次,软件测试还需考虑软件不同特征对系统测试充分性的不同影响。对此,提出一种基于接口的建模方法和基于该模型的综合覆盖充分性评估方法。该方法根据软件接口说明,对系统功能进行特征抽取、建模,并对接口模型的测试用例进行不同层级的充分性评估,对评佑结果进行归一化处理,得到系统的综合测试充分性。通过案例表明,这种评佑方法能够反映功能的测试充分性,对测试用例的设计和优化有一定指导意义。  相似文献   

8.
一种基于AOP的企业应用开发技术   总被引:5,自引:0,他引:5  
面向方面的编程(Aspect-OrientedProgramming,AOP)是一种新的编程技术,它弥补了面向对象的编程(Object-OrientedProgramming,OOP)在跨越模块行为上的不足。AOP引进了Aspect,它将影响多个类的行为封装到一个可重用模块中,它允许程序员对横切关注点(crosscuttingconcerns,即跨越典型职责界限的行为,例如日志记录)进行模块化,从而消除了OOP引起的代码混乱和分散问题,增强了系统的可维护性和代码的重用性。该文首先分析了AOP与OOP的比较,然后给出了AOP的原理和AOP的JBoss实现,最后介绍AOP在设计模式中的应用,并说明了使用它所带来的设计益处以及在应用AOP中应注意的问题。  相似文献   

9.
一种基于多信号模型的测试性评估方法   总被引:3,自引:0,他引:3  
介绍了多信号模型的形式化定义和建模步骤,利用其采用有向图描述元件与测试间因果依赖关系仅对故障传播建模的特点,提出了利用多信号模型方法进行测试性评估的方法.最后举例证实了该方法模型易于构造、适用面宽、通用性好、推理效率高.  相似文献   

10.
安全协议模型是安全协议分析与验证的基础,现有的建模方法中存在着一些缺点,如:建模复杂、重用性差等.为此提出了一种类型化的π演算:πt演算,并给出了相应类型推理规则和求值规则,πt演算的安全性也得到了证明.πt演算可以对安全协议、协议攻击者进行形式化建模.基于πt演算的安全协议模型及其建模过程使用NRL协议为例做出了说明.同时给出了攻击者模型,并证明了基于πt演算的安全协议攻击者模型与D-Y攻击者模型在行动能力上是一致的.这保证了基于πt演算的安全协议模型的验证结果的正确性.基于πt演算的建模方法能在协议数据语义、协议参与者知识方面实现细致的描述.与同类方法相比,该方法可提供多种分析支持,具有更好的易用性、重用性.分析表明,该方法可以在建模中发现一定的安全协议漏洞.  相似文献   

11.
Context-awareness is becoming critical for mobile and ubiquitous computing, where the application needs dynamically adapt its behavior to its execution environment. Context-oriented programming (COP) languages support dynamic behavior adaptation, however, they do not support dynamic layer addition. As a result, they provide little support for the runtime adaptation of application behavior in case that unpredictable execution environments are encountered. Furthermore, block-structured constructs for layer activation hardly support fine-grain adaptation and separate changes of contexts and execution of context-specific methods with difficulty. In this paper, we propose a virtual machine (VM)-centric approach to address these issues. It incorporates object composition and delegation into the VM to implement layer activation, and extends existing VM services to support dynamic layer addition. To ensure that our approach preserves the type safety properties of the program, we develop a calculus built on featherweight Java (FJ) to describe the approach, focus on type-checking issues, and prove type soundness of the calculus. We also present the implementation and evaluation of our approach. The evaluation demonstrates that our approach has advantages over the compilerbased approach proposed by JCOP.  相似文献   

12.
并行程序设计是并行计算的难点之一。提出了一种将设计模式用于程序精化演算的并行程序设计方法。它通过在Z语言的Schema演算体系中扩充并行的概念和表示,使用设计模式,将问题求解和并行开发的知识进行形式化的定义与描述,通过扩充的Schema演算将其与模型规范进行复合,逐步精化得到抽象并行程序。通过实例对这一方法进行了详细的描述。  相似文献   

13.
Context-awareness is becoming critical for mo- bile and ubiquitous computing, where the application needs dynamically adapt its behavior to its execution environment. Context-oriented programming (COP) languages support dy- namic behavior adaptation, however, they do not support dy- namic layer addition. As a result, they provide little support for the runtime adaptation of application behavior in case that unpredictable execution environments are encountered. Furthermore, block-structured constructs for layer activation hardly support fine-grain adaptation and separate changes of contexts and execution of context-specific methods with dif- ficulty. In this paper, we propose a virtual machine (VM)- centric approach to address these issues. It incorporates ob- ject composition and delegation into the VM to implement layer activation, and extends existing VM services to sup- port dynamic layer addition. To ensure that our approach preserves the type safety properties of the program, we de- velop a calculus built on featherweight Java (FJ) to describe the approach, focus on type-checking issues, and prove type soundness of the calculus. We also present the implementa- tion and evaluation of our approach. The evaluation demon- strates that our approach has advantages over the compiler- based approach proposed by JCOP.  相似文献   

14.
一种基于CBD的软件测试方法   总被引:2,自引:2,他引:0  
基于构件的开发方法(CBD)的提出和大量应用,对传统的测试技术提出了新的挑战。本文通过对CBD方法及特点的研完,提出了CBD软件的测试样式,通过构件规格说明构架和构件交互图对构件间交互关系建模,并在此基础上给出了构件软件系统的测试技术和方法。  相似文献   

15.
TestEra: Specification-Based Testing of Java Programs Using SAT   总被引:3,自引:0,他引:3  
TestEra is a framework for automated specification-based testing of Java programs. TestEra requires as input a Java method (in sourcecode or bytecode), a formal specification of the pre- and post-conditions of that method, and a bound that limits the size of the test cases to be generated. Using the method's pre-condition, TestEra automatically generates all nonisomorphic test inputs up to the given bound. It executes the method on each test input, and uses the method postcondition as an oracle to check the correctness of each output. Specifications are first-order logic formulae. As an enabling technology, TestEra uses the Alloy toolset, which provides an automatic SAT-based tool for analyzing first-order logic formulae. We have used TestEra to check several Java programs including an architecture for dynamic networks, the Alloy-alpha analyzer, a fault-tree analyzer, and methods from the Java Collection Framework.  相似文献   

16.
李黎  何积丰 《软件学报》2001,12(6):802-815
使用扩展的持续时间演算(EDC)模型,给出了时间化的RAISE描述语言(RSL)的一个子集的指称语义.在扩展的持续时间演算模型中加入了一些新的特征,并探究了它们的代数定律.这些定律在形式化实时程序和验证实时性质中起着重要作用.最后还给出了时间化RSL的一些代数定律.这些定律可以从其指称语义证明,并用于程序的转化和优化.  相似文献   

17.
Testing equivalence on πprocesses has been studied in literature.The equivalence is not closed under the iuput prefix operator and is therefore not a congruence relation.This note takes a look at testing congruence on fipite π processes.A complete equational system is given for the congruence relation.  相似文献   

18.
主要介绍一种实用网络检测技术及其应用的特殊要点,得出Ping命令应用于网络架构及其实用价值。本文研究的网络检测Ping命令的应用,对各类局域网(LAN),对不同类型的广域网(WIAN)同样具有实际应用意义。  相似文献   

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

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