Business process execution language(BPEL)is a most recognized standard workflow language.However,it is difficult to be used in the ubiquitous system computing environment because it is difficult to describe the contex...Business process execution language(BPEL)is a most recognized standard workflow language.However,it is difficult to be used in the ubiquitous system computing environment because it is difficult to describe the context information in the selection of the flow through the branch.To solve this problem,we propose a new BPEL workflow system with context-awareness by using aspect-oriented programming(AOP).This system is composed of a BPEL system module and a weaving module using AOP for context-aware.The BPEL system module generates a BPEL workflow program.And the weaving module converts a context-aware mark-up language(CAML)document to the aspect-oriented program that is applied to context-aware code without modification of the existing BPEL document.We also define a new document form that is called CAML,which provides a context-aware that is not available in BPEL.The system can generate a context-aware workflow program.It is developed in a way that inserts context information using AOP to provide context-aware services.展开更多
Aspect-oriented programs have received much attention from software testing researchers. Various testing techniques and approaches have been proposed to tackle issues and challenges when testing aspect-oriented progra...Aspect-oriented programs have received much attention from software testing researchers. Various testing techniques and approaches have been proposed to tackle issues and challenges when testing aspect-oriented programs including traditional mutation testing. In traditional mutation testing of aspect-oriented programs, mutants are generated by making small changes to the syntax of the aspect-oriented language. Recently, a new approach known as semantic mutation testing has been proposed. This approach mutates the semantics of the language in which the program is written. The mutants generated misunderstandings of the language which are different classes of faults. Aspect-oriented programming presents itself with different properties that can be further explored with respect to semantic mutation testing. This paper describes various possible scenarios that semantic mutation testing strategy might have particular value in testing aspect-oriented programs.展开更多
To solve the identification and comprehension problem of crosscutting concerns in existing legacy software system, a framework of aspect-oriented software reveme engineering is proposed. An approach on re-modularizing...To solve the identification and comprehension problem of crosscutting concerns in existing legacy software system, a framework of aspect-oriented software reveme engineering is proposed. An approach on re-modularizing traversal features of legacy system is presented based on various unified modeling language (UML) diagrams. While modeling crosscutting concerns in UML use case diagrams, the non-functional requirements that affect several use case modules can be enveloped into aspect modules with a stereotype mechanism. The recurring message transmission patterns can be re-modularized as aspects in UML sequence diagrams with UML collaborations. Standard UML activity diagram notations are extended and modified by node fusion and addition, which support the graphical composition operation between crosscutting behaviors and primary business roles of concurrent systems. Case study indicates that travernal features of software system can be extracted and re-modularized from various perspectives in aspect-oriented reverse engineering, which improves comprehensibility and maintainability of legacy systems.展开更多
Dependable computer based systems employing fault tolerance and robust software development techniques demand additional error detection and recovery related tasks. This results in tangling of core functionality with ...Dependable computer based systems employing fault tolerance and robust software development techniques demand additional error detection and recovery related tasks. This results in tangling of core functionality with these cross cutting non-functional concerns. In this regard current work identifies these dependability related non-functional and cross-cutting concerns and proposes design and implementation solutions in an aspect oriented framework that modularizes and separates them from core functionality. The degree of separation has been quantified using software metrics. A Lego NXT Robot based case study has been completed to evaluate the proposed design framework.展开更多
This paper proposes an extended system dependence graph called AspectSDG to represent control and data dependences for AspeetC++ programs, and presents an approach for the construction of AspectSDG. This approach de...This paper proposes an extended system dependence graph called AspectSDG to represent control and data dependences for AspeetC++ programs, and presents an approach for the construction of AspectSDG. This approach decomposes aspect-oriented programs into three parts: component codes, aspect codes, and weaving codes. It constructs program dependence graphs (PDGs) for each part, and then connects the PDGs at call sites to form the complete AspectSDG. The AspectSDG can deal with advice precedence correctly, and represent the additional dependences caused by aspect codes. Based on this model, we introduce how to compute a static slice of an AspectC+ + program.展开更多
Java programming language is a major . new development which involves object-oriented programming and computer networking. Here, several examples of Java programs are presented. These examples show some major features...Java programming language is a major . new development which involves object-oriented programming and computer networking. Here, several examples of Java programs are presented. These examples show some major features that Java language provides, such as multi-thread, exception handling, network application writing, and the usage of Java applets. This article also shows some ways of setting up a Java language programming environment. All these examples are correct and ready to run.展开更多
A unit testing approach for AspectJ programs is proposed to separately test aspect units which have their own states. In the approach, aspects under test are converted to classes before execution of unit testing. In t...A unit testing approach for AspectJ programs is proposed to separately test aspect units which have their own states. In the approach, aspects under test are converted to classes before execution of unit testing. In the conversion process, the context information passed through pointcut is transformed into advices, then the advices are converted to class member methods, and conflicts in the conversion result, if any, are resolved finally. The unit testing process consists of generating test cases, executing test cases and checking results.展开更多
基金Basic Science Research Program through the National Research Foundation of Korea(NRF)funded by the Ministry of Education,Science and Technology(No.2010-0025831)
文摘Business process execution language(BPEL)is a most recognized standard workflow language.However,it is difficult to be used in the ubiquitous system computing environment because it is difficult to describe the context information in the selection of the flow through the branch.To solve this problem,we propose a new BPEL workflow system with context-awareness by using aspect-oriented programming(AOP).This system is composed of a BPEL system module and a weaving module using AOP for context-aware.The BPEL system module generates a BPEL workflow program.And the weaving module converts a context-aware mark-up language(CAML)document to the aspect-oriented program that is applied to context-aware code without modification of the existing BPEL document.We also define a new document form that is called CAML,which provides a context-aware that is not available in BPEL.The system can generate a context-aware workflow program.It is developed in a way that inserts context information using AOP to provide context-aware services.
文摘Aspect-oriented programs have received much attention from software testing researchers. Various testing techniques and approaches have been proposed to tackle issues and challenges when testing aspect-oriented programs including traditional mutation testing. In traditional mutation testing of aspect-oriented programs, mutants are generated by making small changes to the syntax of the aspect-oriented language. Recently, a new approach known as semantic mutation testing has been proposed. This approach mutates the semantics of the language in which the program is written. The mutants generated misunderstandings of the language which are different classes of faults. Aspect-oriented programming presents itself with different properties that can be further explored with respect to semantic mutation testing. This paper describes various possible scenarios that semantic mutation testing strategy might have particular value in testing aspect-oriented programs.
基金Project supported by National Natural Science Foundation of China (Grant No .60473063)
文摘To solve the identification and comprehension problem of crosscutting concerns in existing legacy software system, a framework of aspect-oriented software reveme engineering is proposed. An approach on re-modularizing traversal features of legacy system is presented based on various unified modeling language (UML) diagrams. While modeling crosscutting concerns in UML use case diagrams, the non-functional requirements that affect several use case modules can be enveloped into aspect modules with a stereotype mechanism. The recurring message transmission patterns can be re-modularized as aspects in UML sequence diagrams with UML collaborations. Standard UML activity diagram notations are extended and modified by node fusion and addition, which support the graphical composition operation between crosscutting behaviors and primary business roles of concurrent systems. Case study indicates that travernal features of software system can be extracted and re-modularized from various perspectives in aspect-oriented reverse engineering, which improves comprehensibility and maintainability of legacy systems.
文摘Dependable computer based systems employing fault tolerance and robust software development techniques demand additional error detection and recovery related tasks. This results in tangling of core functionality with these cross cutting non-functional concerns. In this regard current work identifies these dependability related non-functional and cross-cutting concerns and proposes design and implementation solutions in an aspect oriented framework that modularizes and separates them from core functionality. The degree of separation has been quantified using software metrics. A Lego NXT Robot based case study has been completed to evaluate the proposed design framework.
基金Supported by the National Science Foundation forDistinguished Young Scholars (60425206) the National Natural Sci-ence Foundation of China ( 90412003 , 60373066 , 60403016 ,60503033) the National Basic Research Programof China (973 Pro-gram2002CB312000)
文摘This paper proposes an extended system dependence graph called AspectSDG to represent control and data dependences for AspeetC++ programs, and presents an approach for the construction of AspectSDG. This approach decomposes aspect-oriented programs into three parts: component codes, aspect codes, and weaving codes. It constructs program dependence graphs (PDGs) for each part, and then connects the PDGs at call sites to form the complete AspectSDG. The AspectSDG can deal with advice precedence correctly, and represent the additional dependences caused by aspect codes. Based on this model, we introduce how to compute a static slice of an AspectC+ + program.
文摘Java programming language is a major . new development which involves object-oriented programming and computer networking. Here, several examples of Java programs are presented. These examples show some major features that Java language provides, such as multi-thread, exception handling, network application writing, and the usage of Java applets. This article also shows some ways of setting up a Java language programming environment. All these examples are correct and ready to run.
文摘A unit testing approach for AspectJ programs is proposed to separately test aspect units which have their own states. In the approach, aspects under test are converted to classes before execution of unit testing. In the conversion process, the context information passed through pointcut is transformed into advices, then the advices are converted to class member methods, and conflicts in the conversion result, if any, are resolved finally. The unit testing process consists of generating test cases, executing test cases and checking results.