A method for modeling crosscutting concerns in the concurrent software system is presented based on the aspect-oriented(A-O) technique and the statechart of unified modeling language (UML). Modeled with UML statec...A method for modeling crosscutting concerns in the concurrent software system is presented based on the aspect-oriented(A-O) technique and the statechart of unified modeling language (UML). Modeled with UML statechart diagrams, the primary system functions and corresponding traversal features are enveloped into various orthogonal regions of a composite state. The mutual relationships between orthogonal regions are implied by the orders of broadcast events. Using a modular transition system as a basic computational model, the formalization description of A-O statechart models is proposed. The precise semantics of model elements and modeling procedures is given. The example study indicates that the separation strategy of crosscutting concerns is implemented in the design phase of the concurrent software system with this method. Meanwhile, the software modeling method has advantages of loose coupling, adaptability and traceability.展开更多
Implementing crosscutting concerns for transactions is difficult, even using aspect-oriented programming languages such as AspectJ. Many of these challenges arise because the context of a transaction-related crosscutt...Implementing crosscutting concerns for transactions is difficult, even using aspect-oriented programming languages such as AspectJ. Many of these challenges arise because the context of a transaction-related crosscutting concern consists of loosely-coupled abstractions like dynamically-generated identifiers, timestamps, and tentative value sets of distributed resources. Current aspect-oriented programming languages do not provide joinpoints and pointcuts for weaving advice into high-level abstractions or contexts, like transaction contexts. To address these problems, we propose an extension to AspectJ framework, called TransJ, that allows developers to define pointcuts in terms of transaction abstractions and that automatically keeps track of context information for transactions. This paper describes TransJ as an abstract independent framework for weaving crosscutting concerns into high-level runtime abstractions, with which developers can implement transaction-related crosscutting concerns in modular, cohesive and loosely coupled transaction-aware aspects. Finally, this paper presents eight different ways in which TransJ can improve the reuse with preserving the performance of applications requiring transactions. Informally, these hypotheses are that TransJ yields (1) better encapsulation and separation of concern; (2) looser coupling and less scattering; (3) higher cohesion and less tangling; (4) reduces complexity; (5) improves obliviousness; (6) preserves efficiency; (7) improves extensibility; and (8) hastens the productivity. A brief discussion of experiment to test the hypotheses is provided, but the details of the experiment are left for another paper.展开更多
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.展开更多
文摘A method for modeling crosscutting concerns in the concurrent software system is presented based on the aspect-oriented(A-O) technique and the statechart of unified modeling language (UML). Modeled with UML statechart diagrams, the primary system functions and corresponding traversal features are enveloped into various orthogonal regions of a composite state. The mutual relationships between orthogonal regions are implied by the orders of broadcast events. Using a modular transition system as a basic computational model, the formalization description of A-O statechart models is proposed. The precise semantics of model elements and modeling procedures is given. The example study indicates that the separation strategy of crosscutting concerns is implemented in the design phase of the concurrent software system with this method. Meanwhile, the software modeling method has advantages of loose coupling, adaptability and traceability.
文摘Implementing crosscutting concerns for transactions is difficult, even using aspect-oriented programming languages such as AspectJ. Many of these challenges arise because the context of a transaction-related crosscutting concern consists of loosely-coupled abstractions like dynamically-generated identifiers, timestamps, and tentative value sets of distributed resources. Current aspect-oriented programming languages do not provide joinpoints and pointcuts for weaving advice into high-level abstractions or contexts, like transaction contexts. To address these problems, we propose an extension to AspectJ framework, called TransJ, that allows developers to define pointcuts in terms of transaction abstractions and that automatically keeps track of context information for transactions. This paper describes TransJ as an abstract independent framework for weaving crosscutting concerns into high-level runtime abstractions, with which developers can implement transaction-related crosscutting concerns in modular, cohesive and loosely coupled transaction-aware aspects. Finally, this paper presents eight different ways in which TransJ can improve the reuse with preserving the performance of applications requiring transactions. Informally, these hypotheses are that TransJ yields (1) better encapsulation and separation of concern; (2) looser coupling and less scattering; (3) higher cohesion and less tangling; (4) reduces complexity; (5) improves obliviousness; (6) preserves efficiency; (7) improves extensibility; and (8) hastens the productivity. A brief discussion of experiment to test the hypotheses is provided, but the details of the experiment are left for another paper.
基金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.