Font Size: a A A

Research On Weaving For Stateful Aspects In Software Architecture

Posted on:2011-12-23Degree:DoctorType:Dissertation
Country:ChinaCandidate:C H YangFull Text:PDF
GTID:1118330332481347Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
As an important means to control the complexity of software systems, to improve software quality and to support software development and software reuse, software architecture has received attentions from software researchers and practitioners and become a mainstream research field in the software engineering community. Through the component-based system decomposition, it supports the separation of functional concerns on the early construction of software system effectively. However, many software architecture concerns that express non-functional requirements and quality requirements have crosscutting characteristics. Their implementation crosscut many components in the system, which thus impedes the system reuse and brings about difficulties in system evolution and maintenance. Such concerns are called crosscutting concerns。To deal with problems caused by the crosscutting concerns, Aspect-Oriented Software Architecture Design introduces the aspect mechanisms to the traditional software architecture design to specify crosscutting concerns. Through the modularization of aspects, it aims to improve the evolution, traceability and reusability of the system. Currently, aspect-oriented software architecture design has become a hotspot in the software engineering field.However, there are many non-functional concerns such as security and business rules and many dependent properties, such as the availability, reliability, maintainability, etc., showing the history-sensitive crosscutting characteristics. To encapsulate the history-sensitive crosscutting concerns, an aspect needs a state to record the system execution history and decides the trigger of its behavior according to the current. Such aspects are called stateful aspects.Weaving implements the combination of aspects and the other system modules. It is a basic and important issue in the field of aspect-oriented research. Weaving not only requires the information provided by aspects to find the insert position in the system and decides the sequence relationships between the behavior of aspects and those of the join points, but also needs to detect and deal with aspects weaving conflicts may be encountered. The introduction of the state makes the weaving of stateful aspects face more complex problems than the conventional aspects.To encapsulate the history-sensitive crosscutting concerns, stateful aspects need to be introduced to the software architecture design. However, current aspect-oriented architecture design methods do not provide appropriate express mechanisms and weaving methods to support the concept.Based on the background mentioned above and by absorbing the research results of the field of aspect-oriented software architecture design and related programming technologies supporting stateful aspects, this dissertation makes a deep research on the weaving of software architecture stateful aspects and form a complete formal weaving method. Furthermore, a prototype tool and cases are developed to apply and validate the research results.The main research contents include the following three aspects:1. The formal models for software architecture stateful aspects are studied. To specify stateful aspects in software architecture, this dissertation makes a research on the semantics of the base system, the pointcut model supporting states, the advice model and the definition of aspects. The base system's semantics describes the complete system execution behavior. The pointcut model specifies the state of a stateful aspect and the recognition behavior on the system execution trace, and thus depicts where the stateful aspect can be inserted. The advice model describes the behavior of the encapsulated crosscutting concern (what) and when it should be triggered.2. The weaving semantics and strategy of stateful aspects are studied. As current research lack the formal weaving semantics and weaving methods suitable to stateful aspects, the dissertation makes a research on the weaving semantics and strategy of stateful aspects. In the weaving semantics, the structural operational semantics of the weaving operation for the stateful aspects and the syntactic-level aspect interactions are studied. Meanwhile, the weaving characteristics are examined. The weaving strategies supporting the weaving semantics are studied, including the join point determination approaches, the pointcut validation algorithms, and the concrete weaving algorithms. A prototype tool is developed to implement them, while a series of cases are studied.3. The validation and analysis on the weaving of stateful aspect are studied. Aspect interaction is an important issue in aspect weaving. Its detection and treatment is important for enhancing system safety and reliability. Firstly, the definitions and the validation methods for the semantic aspect interactions at the system properties level are studied. Then, the methods for analyzing and reasoning the aspect weaving impacts are researched. Finally, the prototype tool and cases are developed.The major contributions of this dissertation are as follows:1. By introducing LTS (Labelled Transition System) to express the system execution semantics and through making extensions to the LTS, the pointcut model and the advice model are built, which addresses the problems related to the specification of software architecture stateful aspects and thus provides basis for their weaving.2. Through making extensions to the parallel composition (Ⅱ) in LTS, a composition operation (∝) is proposed. Based on the concept, a join point determination approach is presented. Compared with similar methods, this approach does not require the introduction of additional synchronization actions, thus results in far less number of combination states than that in the similar methods.3. In the dissertation, the weaving of stateful aspects is defined as a combination operation ((?)) on the base system, the pointcut, and the advice. Meanwhile, its operational semantics and the related weaving strategies are built. It is a formal semantics. According to the semantics, the understanding, analysis and reasoning on the system behavior before and after aspect weaving can be carried out.4.As the traditional weaving methods cannot analyze the weaving impacts of stateful aspects and can not reason about the weaving influences due to lack of formal weaving influence analysis methods, the dissertation proposes an approach to analyze the weaving influences of stateful aspects. It adopts the weak simulation equivalence in LTS as the criterion to measure the influences of a stateful aspect weaving on a certain predefined pattern, which makes the analysis and reasoning become easier. Paper 1 Formal Models for Architecture Aspects and Their WeavingAspect-oriented concepts are currently introduced in early stages of software development to achieve better separation of concerns. However, at the architecture level, there exists no strict model for aspects and their weaving, which makes it difficult for analyzing and reasoning about the semantic problems introduced in the composition of the aspects and the base system. We present a formal model to specify architecture aspects. Its underlying formalism is Process Algebra. In the model, an aspect is specified as an extended architecture model, in which aspect components encapsulate the function of the aspect while aspect connectors encapsulate the weaving logics of the aspect. The separation of weaving logics can promote reuse. Then, we give a formal definition for aspect weaving. The definition builds the structural and behavioral relationship between the woven and wove models, which lays foundations for future semantic analysis and reasoning. An example illustrates the notions and models. Paper 2 An Approach to Weaving Stateful Aspects using LTSStateful aspect is a recent topic in AOSD. As the trigger of a stateful aspect depends on the system execution trace, it needs complicate modeling mechanisms for the pointcuts and weaving operations. We present an approach to weaving stateful aspects using Labelled Transition System (LTS). In the approach, the base system and the pointcut are specified as LTSs. The advice weaving is a transformation on the composition of the base system and the pointcut through predefined types of weaving operators. These weaving operators can preserve the semantic equivalence between systems. The approach has been implemented on a FSP based prototype tool.
Keywords/Search Tags:aspect-oriented software architecture design, stateful aspects, weaving, aspect interactions, Labelled Transition System, aspects, labeled transition system, aspect-oriented software development
PDF Full Text Request
Related items