Content area
Full text
Abstract - This paper describes system evolution managed by corresponding metasystem. The metasystem builds a metamodel of base system and allows its modification. The modification is propagated back to the base system. The application model presents the example of standard graphics user interface developed with Java Abstract Windowing Toolkit (AWT), which is a part of the Java Foundation Classes (JFC). The main aim is to confirm the possibility of application properties monitoring using aspect-oriented programming, their abstraction in a metamodel, possibility of their alternations by metamodel modifications and consequent change in the original application model.
Keywords: System evolution, AOP, metalevel, metasystem, dynamic adaptation.
I. INTRODUCTION
Software maintenance is often more expensive than the development itself and adaptation is undervalued in the traditional development process [1].
Most software systems model real processes, which evolve and change in time. Hence parallel evolution of software system and process is needed. The most significant change requirements include adding new features and removing bugs. The most common solution of this problem is to modify system's source files. The implementation of any change is tightly coupled with the system.
A new approach is to have a presence of a general technique which monitors existing system and allows its consequent modification. The result will be a new version of the original system, which can by monitored (and later again modified) using the same general technique.
The paper follows describes an example of extending application model with a monitoring code, which tracks specific properties of an application and constructs corresponding metamodel.
After metamodel alternations, the changes are reflected back to the base system. As an example of application model a standard graphics user interface developed with Java Abstract Windowing Toolkit (AWT) is provided. With utilization of AOP, the application model is extended with a code which is monitoring transitions between dialogs of the application and records these transitions into state diagram. After modifying the state diagram, changes are reflected in the original application.
II. ASPECT-ORIENTED PROGRAMMING, METAPROGRAMMING AND SOFTWARE SYSTEMS EVOLUTION
Aspect-oriented programming (AOP) is a programming technique for modularizing concerns that crosscut the basic functionality of programs. It allows a programmer to identify and treat separately concerns that, subsequently, can be woven to different target applications.
Metaprograms are programs that represent...





