• Corpus ID: 11999591

A Reflective Approach to Dynamic Software Evolution

  title={A Reflective Approach to Dynamic Software Evolution},
  author={Peter Ebraert and Tom Tourw{\'e}},
In this paper, we present a solution that allows systems to remain active while they are evolving. Our approach goes out from the principle of separated concerns and has two steps. In the first step, we have to make sure that the system's evolvable concerns are cleanly separated. We propose aspect mining and static refactorings for separating those concerns. In a second step, we allow every concern to evolve separately. We present a preliminary reflective framework that allows dynamic evolution… 

Figures from this paper

Migration from Procedural Programming to Aspect Oriented Paradigm

  • D. Majumdar
  • Computer Science
    2009 IEEE/ACM International Conference on Automated Software Engineering
  • 2009
This work proposes to devise a complete process of migrating a procedural form source- code to an aspect oriented program and devise a methodology to separate the scattered concerns from source-code through Code-Mining cascaded with a Traceability-Framework to be framed by us.

Influence of type systems on dynamic software evolution

This paper argues that many of the most important features a programming language should offer to adequately support dynamic evolution are tightly coupled with the typesystem of the programming language and investigates the impact of the type system on the different aspects of dynamic software evolution.

A Comparative Study of Using Object Oriented Approach and aspect Oriented Approach for the Evolution of Legacy System

The work done in evolving a legacy system using the object oriented approach is highlighted, then the impact of object oriented technology and aspect oriented technology on legacy systems and the environment that is required to implement the two paradigms are analyzed.

Enabling Dynamic Software Evolution through Automatic Refactoring

This paper shows how automated refactorings can be performed to improve a software the component structure of a software system while the system is running in order to facilitate future evolutions.

Adaptive Language Approach to Software Systems Evolution ⋆

Practical experiment introduced in this paper is related to the base level of language, but it illustrates the ability for extensions primarily in horizontal but also in vertical direction of an adaptive system.

Functional approach to the adaptation of languages instead of software systems

Practical experiment introduced in this paper is related to the base level of language, but it illustrates the ability for extensions primarily in horizontal but also in vertical direction of an adaptive system.

A Reflective Architecture-Aware Framework to Support Software Evolution

A framework of supporting software evolution based on architectural reflection is proposed, which supervises all evolutionary behaviors, modifying and updating running system by using reflection mechanism, ensuring system consistency and integrity.

From Weaving Schemes to Weaving Patterns

A generalized approach to weaving at the micro-structural level is presented and abstraction in the form of patterns may contribute to the application of aspect oriented approach to the area of automatic evolution of software systems.

Software Evolution: A Trip Through Reflective, Aspect, and Meta-data Oriented Techniques

The RAM-SE (Reflection, AOP and Meta-Data for Software Evolution) workshop has provided an opportunity for researchers with a broad range of interests in reflective techniques and aspect-oriented software development to discuss recent developments of such a techniques in application to the software evolution.


This paper deals with basic principles of metaprogramming and reflection with connection to aspect-oriented programming (AOP), which allows development of required application using principle of separation of concerns.



Just-in-time aspects: efficient dynamic weaving for Java

This paper provides basic support for weaving using the Just-In-Time compiler, while the AOP system is treated as an exchangeable module on top of the basic support, which allows for low run-time overhead, Aop system flexibility, and secure weaving.

A Framework for the Detection and Resolution of Aspect Interactions

This paper presents a formal and expressive crosscut language, two static conflict analyses and some linguistic support for conflict resolution in a generic framework for AOP.

Refactoring of Aspect-Oriented Software

A number of new aspect-orientation refactorings are introduced which help on the one hand to migrate from object-oriented to aspect- oriented software and on the other hand to restructure existing aspect-oriented code.

Overcoming the Prevalent Decomposition in Legacy Code

The potential benefits of advanced separation of concerns (ASOC) techniques are well known and many programmers find the idea of using them appealing. For new software engineering projects these

An Overview of AspectJ

AspectJ provides support for modular implementation of a range of crosscutting concerns, and simple extensions to existing Java development environments make it possible to browse the crosscutting structure of aspects in the same kind of way as one browses the inheritance structure of classes.

Partial behavioral reflection: spatial and temporal selection of reification

This paper exposes the spatial and temporal dimensions of such reflection, and proposes a model of partial behavioral reflection based on the notion of hooksets, and describes a reflective architecture offering appropriate interfaces for static and dynamic configuration of partial Behavioral reflection at various levels.

Mining aspectual views using formal concept analysis

  • T. TourwéK. Mens
  • Computer Science
    Source Code Analysis and Manipulation, Fourth IEEE International Workshop on
  • 2004
This work reports upon an initial experiment using the technique of formal concept analysis for mining aspectual views from the source code, following a lightweight approach, where the names of classes and methods are considered.

N degrees of separation: multi-dimensional separation of concerns

A new paradigm for modeling and implementing software artifacts is described, one that permits separation of overlapping concerns along multiple dimensions of composition and decomposition, which addresses numerous problems throughout the software lifecycle.

Component software - beyond object-oriented programming

Anyone responsible for developing software strategy, evaluating new technologies, buying or building software will find Clemens Szyperski's objective and market-aware perspective of this new area invaluable.

The structure of the “THE”-multiprogramming system

A multiprogramming system is described in which all activities are divided over a number of sequential processes, in each of which one or more independent abstractions have been implemented.