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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
C. Lucas. Documenting Reuse and Evolution with Reuse Contracts. PhD dissertation, Vrije Universiteit Brussel, 1997.
M. D’Hondt and T. D’Hondt. Is domain knowledge an aspect?. Proceedings of the ECOOP99 Aspect Oriented Programming Workshop, 1999.
M. D’Hondt, W. De Meuter, and R. Wuyts. Using Reflective Programming to Describe Domain Knowledge as an Aspect. Proceedings of GCSE′99, 1999.
K. De Voider, and T. D’Hondt. Aspect-Oriented Logic Meta Programming. Proceedings of Reflection′99, 1999.
J. Brichau. Syntactic Abstractions for Logic Meta Programs, or vice-versa. Draft publication, 1999.
K. De Hondt. A Novel Approach to Architectural Recovery in Evolving Object-Oriented Systems. PhD dissertation, Vrije Universiteit Brussel, 1998.
K. De Voider. Type-Oriented Logic Meta Programming. PhD dissertation, Vrije Universiteit Brussel, 1998.
L. Dreyfus. Bach and the Patterns of Invention. Harvard University Press, 1996.
M. J. Presso. Generic Component Architecture Using Meta-Level Protocol Descriptions. Master’s dissertation, Vrije Universiteit Brussel, 1999.
K. Mens, R. Wuyts and T. D’Hondt. Declaratively Codifying Software Architectures Using Virtual Software Classifications. Proceeding of TOOLS Europe′99, 1999.
P. Steyaert. Open Design of Object-Oriented Languages, a Foundation for Specialisable Reflective Language Frameworks. PhD dissertation, Vrije Universiteit Brussel, 1994.
R. Wuyts. Declarative reasoning about the structure of object-oriented systems. Proceedings of TOOLS′98 USA, 1998.
T. Mens. A Formal Foundation for Object-Oriented Evolution. PhD dissertation, Vrije Universiteit Brussel, 1999.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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