Abstract
Developing domain-specific object-oriented frameworks is difficult. It requires a deep understanding of both the application domain and the mechanisms and principles of object orientation. This article claims that by adopting some techniques of generative programming, framework development can be made into a more repeatable process, rather than the art it currently is.
The article starts by analyzing some of the problems of designing reusable software. These problems are related to the nature of design, a lack of methodological support and the problem of capturing system evolution. Then a process is outlined which uses XML and XSLT to generate code from configuration knowledge. Commonality and variability are factored out of this code generator, using a number of straightforward refactoring operations. The result is a reusable black box framework. To conclude, we evaluate how the proposed approach solves or mitigates the problems discussed in the first section.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Roberts, D., Johnson, R.: Evolving frameworks: A pattern-language for developing object-oriented frameworks. In Martin, R.C., Riehle, D., Buschmann, F., eds.: Pattern Languages of Program Design 3. Software Patterns Series. Addison-Wesley (1997)
Martin, R.C.: The Dependency Inversion Principle. C++ Report 8 (1996) 61–66
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15 (1972) 1053–1058
Op dyke, W.F.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison Wesley (1999)
Czarnecki, K., Eisenecker, U.W.: Generative Programming, Methods, Tools, and Applications. Addison-Wesley (2000)
Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, S.: Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-21, Carnegie Mellon Software Engineering Institute (1990)
Parnas, D.: The Design of Program Families. IEEE Transactions on Software Engineering 2 (1976) 1–9
Thompson, H.S., Beech, D., Maloney, M., Mendelsohn, N.: Xml schema part 1: Structures w3c candidate recommendation 24 October 2000. http://www.w3.org/TR/xmlschema-1/(2000).
Clark, J.: Xsl transformations (xslt) version 1.0 w3c recommendation. http://www.w3.org/TR/1999/REC-xslt-19991116 (1999).
Badros, G.J.: Javaml: A markup language for Java source code. In: Ninth International World Wide Web Conference. (2000)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison Wesley, Reading, MA (1995)
Beck, K.: Embracing change with Extreme Programming. Computer 32 (1999) 70–77
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C, Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP). LNCS, Springer-Verlag (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer Science+Business Media New York
About this chapter
Cite this chapter
Hendrikx, K., Olivié, H., Duval, E. (2003). Generative Development of Object-Oriented Frameworks. In: D’Hondt, T. (eds) Technology of Object-Oriented Languages, Systems and Architectures. The Kluwer International Series in Engineering and Computer Science, vol 732. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-0413-9_3
Download citation
DOI: https://doi.org/10.1007/978-1-4615-0413-9_3
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4613-5064-4
Online ISBN: 978-1-4615-0413-9
eBook Packages: Springer Book Archive