Framework for Computer-Aided Evolution of Object-Oriented Designs

In this paper, we describe a framework for the computer-aided evolution of the designs of object-oriented software systems. Evolution mechanisms are software structures that prepare software for certain type of evolutions. The framework uses a database which holds the evolution mechanisms, modeled as template graph transformations, with the supported evolution types. To evolve the software, the designer enters the type of evolution and provides the names of the software entities that are going to be evolved. The framework fetches the evolution mechanisms, converts the design to a graph model and applies the transformations. As an application of the framework, we implemented a tool for computer-aided evolution that uses object-oriented evolution mechanisms.

[1]  Meir M. Lehman,et al.  Metrics and Laws of Software Evolution , 2000 .

[2]  Hartmut Ehrig,et al.  Introduction to the Algebraic Theory of Graph Grammars (A Survey) , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  Tom Mens,et al.  Towards a taxonomy of software change: Research Articles , 2005 .

[5]  Paddy Nixon,et al.  Automated software evolution towards design patterns , 2001, IWPSE '01.

[6]  Ansgar Radermacher,et al.  Support for Design Patterns Through Graph Transformation Tools , 1999, AGTIVE.

[7]  Pim van den Broek,et al.  Modeling Software Evolution using Algebraic Graph Rewriting , 2006 .

[8]  Jim Welsh,et al.  Towards pattern-based design recovery , 2002, ICSE '02.

[9]  Tom Mens,et al.  Analysing refactoring dependencies using graph transformation , 2007, Software & Systems Modeling.

[10]  Ragnhild Van Der Straeten,et al.  Detecting and resolving model inconsistencies using transformation dependency analysis , 2006, MoDELS'06.

[11]  Tom Mens,et al.  Towards a taxonomy of software change , 2005, J. Softw. Maintenance Res. Pract..

[12]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[13]  Arend Rensink The GROOVE Simulator: A Tool for State Space Generation , 2003, AGTIVE.

[14]  Reiko Heckel,et al.  Graph Grammars with Negative Application Conditions , 1996, Fundam. Informaticae.

[15]  Mikio Aoyama Evolutionary patterns of design and design patterns , 2000, Proceedings International Symposium on Principles of Software Evolution.

[16]  Dewayne E. Perry,et al.  Metrics and laws of software evolution-the nineties view , 1997, Proceedings Fourth International Software Metrics Symposium.

[17]  Arend Rensink,et al.  Defining Object-Oriented Execution Semantics Using Graph Transformations , 2006, FMOODS.

[18]  Jun Kong,et al.  Pattern-based design evolution using graph transformation , 2007, J. Vis. Lang. Comput..

[19]  Takashi Kobayashi,et al.  Software development based on software pattern evolution , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).