Co-Evolution of Object-Oriented Software Design and Implementation

  • Theo D’Hondt
  • Kris De Volder
  • Kim Mens
  • Roel Wuyts
Part of the The Springer International Series in Engineering and Computer Science book series (SECS, volume 648)


Modern-day software development shows a number of feedback loops between various phases in its life cycle; object-oriented software is particularly prone to this. Whereas descending through the different levels of abstraction is relatively straightforward and well supported by methods and tools, the synthesis of design information from an evolving implementation is far from obvious. This is why in many instances, analysis and design is used to initiate software development while evolution is directly applied to the implementation. Keeping design information synchronized is often reduced to a token activity, the first to be sacrificed in the face of time constraints. In this light, architectural styles are particularly difficult to enforce, since they can, by their very nature, be seen to crosscut an implementation. This contribution reports on a number of experiments to use logic meta-programming (LMP) to augment an implementation with enforceable design concerns, including architectural concerns. LMP is an instance of hybrid language symbiosis, merging a declarative (logic) meta-level language with a standard object-oriented base language. This approach can be used to codify design information as constraints or even as a process for code generation. LMP is an emerging technique, not yet quite out of the lab. However, it has already been shown to be very expressive: it incorporates mechanisms such as pre/post conditions and aspect-oriented programming. We found the promise held by LMP extremely attractive, hence this chapter.

Key words

Software architectures meta-programming logic programming 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    C. Lucas. Documenting Reuse and Evolution with Reuse Contracts. PhD dissertation, Vrije Universiteit Brussel, 1997.Google Scholar
  2. 2.
    M. D’Hondt and T. D’Hondt. Is domain knowledge an aspect?. Proceedings of the ECOOP99 Aspect Oriented Programming Workshop, 1999.Google Scholar
  3. 3.
    M. D’Hondt, W. De Meuter, and R. Wuyts. Using Reflective Programming to Describe Domain Knowledge as an Aspect. Proceedings of GCSE′99, 1999.Google Scholar
  4. 4.
    K. De Voider, and T. D’Hondt. Aspect-Oriented Logic Meta Programming. Proceedings of Reflection′99, 1999.Google Scholar
  5. 5.
    J. Brichau. Syntactic Abstractions for Logic Meta Programs, or vice-versa. Draft publication, 1999.Google Scholar
  6. 6.
    K. De Hondt. A Novel Approach to Architectural Recovery in Evolving Object-Oriented Systems. PhD dissertation, Vrije Universiteit Brussel, 1998.Google Scholar
  7. 7.
    K. De Voider. Type-Oriented Logic Meta Programming. PhD dissertation, Vrije Universiteit Brussel, 1998.Google Scholar
  8. 8.
    L. Dreyfus. Bach and the Patterns of Invention. Harvard University Press, 1996.Google Scholar
  9. 9.
    M. J. Presso. Generic Component Architecture Using Meta-Level Protocol Descriptions. Master’s dissertation, Vrije Universiteit Brussel, 1999.Google Scholar
  10. 10.
    K. Mens, R. Wuyts and T. D’Hondt. Declaratively Codifying Software Architectures Using Virtual Software Classifications. Proceeding of TOOLS Europe′99, 1999.Google Scholar
  11. 11.
    P. Steyaert. Open Design of Object-Oriented Languages, a Foundation for Specialisable Reflective Language Frameworks. PhD dissertation, Vrije Universiteit Brussel, 1994.Google Scholar
  12. 12.
    R. Wuyts. Declarative reasoning about the structure of object-oriented systems. Proceedings of TOOLS′98 USA, 1998.Google Scholar
  13. 13.
    T. Mens. A Formal Foundation for Object-Oriented Evolution. PhD dissertation, Vrije Universiteit Brussel, 1999.Google Scholar
  14. 14.
    P. Steyaert, C. Lucas, K. Mens and T. D’Hondt. Reuse Contracts: Managing the Evolution of Reusable Assets. Proceedings of OOPSLA, ACM SIGPLAN Notices number 31(10), pp. 268–285, 1996.Google Scholar

Copyright information

© Springer Science+Business Media New York 2002

Authors and Affiliations

  • Theo D’Hondt
    • 1
  • Kris De Volder
    • 1
  • Kim Mens
    • 1
  • Roel Wuyts
    • 1
  1. 1.Programming Technology Lab, Department of Computer ScienceVrije Universiteit BrusselBrusselsBelgium

Personalised recommendations