Skip to main content

Co-Evolution of Object-Oriented Software Design and Implementation

  • Chapter
Software Architectures and Component Technology

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. C. Lucas. Documenting Reuse and Evolution with Reuse Contracts. PhD dissertation, Vrije Universiteit Brussel, 1997.

    Google Scholar 

  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. 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. K. De Voider, and T. D’Hondt. Aspect-Oriented Logic Meta Programming. Proceedings of Reflection′99, 1999.

    Google Scholar 

  5. J. Brichau. Syntactic Abstractions for Logic Meta Programs, or vice-versa. Draft publication, 1999.

    Google Scholar 

  6. K. De Hondt. A Novel Approach to Architectural Recovery in Evolving Object-Oriented Systems. PhD dissertation, Vrije Universiteit Brussel, 1998.

    Google Scholar 

  7. K. De Voider. Type-Oriented Logic Meta Programming. PhD dissertation, Vrije Universiteit Brussel, 1998.

    Google Scholar 

  8. L. Dreyfus. Bach and the Patterns of Invention. Harvard University Press, 1996.

    Google Scholar 

  9. M. J. Presso. Generic Component Architecture Using Meta-Level Protocol Descriptions. Master’s dissertation, Vrije Universiteit Brussel, 1999.

    Google Scholar 

  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. P. Steyaert. Open Design of Object-Oriented Languages, a Foundation for Specialisable Reflective Language Frameworks. PhD dissertation, Vrije Universiteit Brussel, 1994.

    Google Scholar 

  12. R. Wuyts. Declarative reasoning about the structure of object-oriented systems. Proceedings of TOOLS′98 USA, 1998.

    Google Scholar 

  13. T. Mens. A Formal Foundation for Object-Oriented Evolution. PhD dissertation, Vrije Universiteit Brussel, 1999.

    Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer Science+Business Media New York

About this chapter

Cite this chapter

D’Hondt, T., De Volder, K., Mens, K., Wuyts, R. (2002). Co-Evolution of Object-Oriented Software Design and Implementation. In: Akşit, M. (eds) Software Architectures and Component Technology. The Springer International Series in Engineering and Computer Science, vol 648. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-0883-0_7

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-0883-0_7

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-5286-0

  • Online ISBN: 978-1-4615-0883-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics