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.展开更多
文摘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.