A Safe Dynamic Adaptation Framework for Aspect-Oriented Software Development
Miguel A. Pérez-Toledano (University of Extremadura, Spain)
Amparo Navasa (University of Extremadura, Spain)
Juan M. Murillo (University of Extremadura, Spain)
Carlos Canal (University of Málaga, Spain)
Abstract: One focus of current software development is the re-use of components in the construction of systems. Software Adaptation facilitates the consequent need to adapt these components to the new environment by employing adaptors which are obtained automatically and hence with a certain guarantee of suitability, from formal descriptions of the interface behaviour. One appropriate technique for Software Adaptation is Aspect-Oriented Programming (AOP) which makes use of aspects to facilitate the dynamic adaptation of components transparently and non-intrusively. However, owing to the way that aspects are integrated, these can unexpectedly modify the functionality of the system, and consequently completely alter its semantics. It is hence necessary to study the final behaviour of the system to ensure its correctness after adding aspects for its adaptation. This study must go beyond just detecting problems at the protocol level, to analyze the potential semantic problems. This is the main focus of the present communication. We start from the Unified Modeling Language (UML 2.0) specification of both the initial system and the aspects. This specification is validated by generating an algebraic Calculus of Communicating Systems (CCS) description of the system. Next, extended (finite) state machines are automatically generated to verify, simulate, and test the modeled system's behaviour. The result of that process can also be compared with the behaviour of the new running system. To facilitate this task, we propose grouping components so as to centre the study on the points actually affected by the behaviour of the aspects.
Keywords: CCS, UML, aspect-oriented programming, extended state machines, interaction pattern specification, software adaptation
Categories: D.2.7, I.6.4, I.6.5