1,482 research outputs found
A graph-based aspect interference detection approach for UML-based aspect-oriented models
Aspect Oriented Modeling (AOM) techniques facilitate separate modeling of concerns and allow for a more flexible composition of these than traditional modeling technique. While this improves the understandability of each submodel, in order to reason about the behavior of the composed system and to detect conflicts among submodels, automated tool support is required. Current techniques for conflict detection among aspects generally have at least one of the following weaknesses. They require to manually model the abstract semantics for each system; or they derive the system semantics from code assuming one specific aspect-oriented language. Defining an extra semantics model for verification bears the risk of inconsistencies between the actual and the verified design; verifying only at implementation level hinders fixng errors in earlier phases. We propose a technique for fully automatic detection of conflicts between aspects at the model level; more specifically, our approach works on UML models with an extension for modeling pointcuts and advice. As back-end we use a graph-based model checker, for which we have defined an operational semantics of UML diagrams, pointcuts and advice. In order to simulate the system, we automatically derive a graph model from the diagrams. The result is another graph, which represents all possible program executions, and which can be verified against a declarative specification of invariants.\ud
To demonstrate our approach, we discuss a UML-based AOM model of the "Crisis Management System" and a possible design and evolution scenario. The complexity of the system makes con°icts among composed aspects hard to detect: already in the case of two simulated aspects, the state space contains 623 di®erent states and 9 different execution paths. Nevertheless, in case the right pruning methods are used, the state-space only grows linearly with the number of aspects; therefore, the automatic analysis scales
A Framework for Evaluating Model-Driven Self-adaptive Software Systems
In the last few years, Model Driven Development (MDD), Component-based
Software Development (CBSD), and context-oriented software have become
interesting alternatives for the design and construction of self-adaptive
software systems. In general, the ultimate goal of these technologies is to be
able to reduce development costs and effort, while improving the modularity,
flexibility, adaptability, and reliability of software systems. An analysis of
these technologies shows them all to include the principle of the separation of
concerns, and their further integration is a key factor to obtaining
high-quality and self-adaptable software systems. Each technology identifies
different concerns and deals with them separately in order to specify the
design of the self-adaptive applications, and, at the same time, support
software with adaptability and context-awareness. This research studies the
development methodologies that employ the principles of model-driven
development in building self-adaptive software systems. To this aim, this
article proposes an evaluation framework for analysing and evaluating the
features of model-driven approaches and their ability to support software with
self-adaptability and dependability in highly dynamic contextual environment.
Such evaluation framework can facilitate the software developers on selecting a
development methodology that suits their software requirements and reduces the
development effort of building self-adaptive software systems. This study
highlights the major drawbacks of the propped model-driven approaches in the
related works, and emphasise on considering the volatile aspects of
self-adaptive software in the analysis, design and implementation phases of the
development methodologies. In addition, we argue that the development
methodologies should leave the selection of modelling languages and modelling
tools to the software developers.Comment: model-driven architecture, COP, AOP, component composition,
self-adaptive application, context oriented software developmen
Modeling Adaptation with Klaim
In recent years, it has been argued that systems and applications, in order to deal with their increasing complexity, should be able to adapt their behavior according to new requirements or environment conditions. In this paper, we present an investigation aiming at studying how coordination languages and formal methods can contribute to a better understanding, implementation and use of the mechanisms and techniques for adaptation currently proposed in the literature. Our study relies on the formal coordination language Klaim as a common framework for modeling some well-known adaptation techniques: the IBM MAPE-K loop, the Accord component-based framework for architectural adaptation, and the aspect- and context-oriented programming paradigms. We illustrate our approach through a simple example concerning a data repository equipped with an automated cache mechanism
Aspect-Oriented Modeling: Applying Aspect-Oriented UML Use Cases and Extending Aspect-Z
Considering predominant aspect-oriented software development (asymmetric AOSD), this paper discusses the application of aspect-oriented UML use case diagrams and formal language AspectZ to part of a classic AOSD case study, the Health-Watcher software system. In addition, this article proposes an extension of AspectZ to reach a new property for asymmetric AOSD which reacts after a schema successfully finishes, or not, showing messages for that situation, with an implicit join point; and a way for generalizing similar operations in a system using AspectZ. Thus, the main goal of this article is to show the application of and differences between asymmetric aspect-oriented formal and non-formal modeling, and to highlight potential advantages of aspect-oriented formal modeling over aspect-oriented non-formal modeling. First, this article describes the main concepts of the classic AOSD paradigm focusing on problems unsolved by previous forms of software development and resolved by AOSD. Second, by applying aspect-oriented UML use case diagrams, this paper highlights the use of dominion classes and extend-relationships. Considering the Health-Watcher case study and an asymmetric AOSD approach, this study found that using extend-relationships in UML use cases does not completely follow the basic principles of the prevailing AOSD approach in which a base element does not know about aspects, whereas an extending use case must explicitly know its extension points. Third, this article shows a formal modeling of the case study using AspectZ. Moreover, extensions of this aspect-oriented formal language are proposed and applied to the same case study to show their practical properties for modeling. These extensions allow showing success or error messages, and inserting or not a new item in a set of elements to take care of invalid situations
Aspect-Oriented Modeling: Applying Aspect-Oriented UML Use Cases and Extending Aspect-Z
Considering predominant aspect-oriented software development (asymmetric AOSD), this paper discusses the application of aspect-oriented UML use case diagrams and formal language AspectZ to part of a classic AOSD case study, the Health-Watcher software system. In addition, this article proposes an extension of AspectZ to reach a new property for asymmetric AOSD which reacts after a schema successfully finishes, or not, showing messages for that situation, with an implicit join point; and a way for generalizing similar operations in a system using AspectZ. Thus, the main goal of this article is to show the application of and differences between asymmetric aspect-oriented formal and non-formal modeling, and to highlight potential advantages of aspect-oriented formal modeling over aspect-oriented non-formal modeling. First, this article describes the main concepts of the classic AOSD paradigm focusing on problems unsolved by previous forms of software development and resolved by AOSD. Second, by applying aspect-oriented UML use case diagrams, this paper highlights the use of dominion classes and extend-relationships. Considering the Health-Watcher case study and an asymmetric AOSD approach, this study found that using extend-relationships in UML use cases does not completely follow the basic principles of the prevailing AOSD approach in which a base element does not know about aspects, whereas an extending use case must explicitly know its extension points. Third, this article shows a formal modeling of the case study using AspectZ. Moreover, extensions of this aspect-oriented formal language are proposed and applied to the same case study to show their practical properties for modeling. These extensions allow showing success or error messages, and inserting or not a new item in a set of elements to take care of invalid situations
- …