Abstract
Building software systems out of pre-fabricated components is a very attractive vision. Distributed Component Platforms (DCP) and their visual development environments bring this vision closer to reality than ever. At the same time, some experiences with component libraries warn us about potential problems that arise in case of software system families or systems that evolve over many years of changes. Indeed, implementation level components, when affected by many independent changes, tend to grow in both size and number, impeding reuse. In this paper, we analyze in detail this effect and propose a program construction environment, based on generative techniques, to help in customization and evolution of component-based systems. This solution allows us to reap benefits of DCPs during runtime and, at the same time, keep components under control during system construction and evolution. In the paper, we describe such a construction environment for component-based systems that we built with a commercial generator and illustrate its features with examples from our domain engineering project. The main lesson learnt from our project is that generative techniques can extend the strengths of the component-based approach in two important ways: Firstly, generative techniques automate routine component customization and composition tasks and allow developers work more productively, at a higher abstraction level. Secondly, as custom components with required properties are generated on demand, we do not need to store and manage multiple versions of components, components do not overly grow in size, helping developers keep the complexity of an evolving system under control.
at sabbatical leave at Fraunhofer Institute for Experimental Software Engineering, Sauerwiesen 6, Kaiserslautern, Germany D-67661
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
Bass, L., Clements, P. and Kazman, R. Software Architecture in Practice, Addison-Wesley, 1998
Bassett, P. Framing Software Reuse — Lessons from Real World, Yourdon Press, Prentice Hall, 1997
Batory, D., Lofaso, B. and Smaragdakis, Y. “JST: Tools for Implementing Domain-Specific Languages,” Proc. 5 thInt. Conf. on Software Reuse, Victoria, BC, Canada, June 1988, pp. 143–153
Bayer J., DeBaud, J.M., Flege, O., Knauber, P., Laqua, R., Muthig, D., Schmid, K. and Widen, T. “PuLSE: A Methodology to Develop Software Product Lines,” Proc. Symposium on Software Reusability, SSR’99, Los Angeles, May 1999, pp. 122–132
Biggerstaff, T. “The Library Problem and the Limits of Concrete Component Reuse,” Proc. 3rd Int. Conf. on Software Reuse, Rio de Janeiro, Brazil, November 1994, pp. 102–109
Brown, A. and Wallnau, K. “The Current State of CBSE,” IEEE Software, September/October, 1998, pp. 37–46
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M. Pattern-Oriented Software Architecture — A System of Patterns, John Wiley & Sons, 1996
Cheong, Y.C. and Jarzabek, S. “Modeling Variant User Requirements in Domain Engineering for Reuse,” in Information Modelling and Knowledge Bases, Eds. Hannu Jaakkola, Hannu Kangassalo and Eiji Kawaguchi, printed in IOS Press, Netherlands, pp. 220–234
Cheong, Y.C. and Jarzabek, S. “Frame-based Method for Customizing Generic Software Architectures,” Proc. Symposium on Software Reusability, SSR’99, Los Angeles, May 1999, pp. 103–112
Digre, T. “Business Component Architecture,” IEEE Software, September/October 1998, pp. 60–69
Fowler, M. Analysis Patterns: Reusable Component Models, Addison-Wesley, 1997
Gamma, E., Helm, R., Johnson, R. and Vlissides, J. Design Patterns, Addison-Wesley, 1994
Jacobson, I., Griess, M. and Jonsson, P. Software Reuse — Architecture, Process and Organization for Business Success, Addison Wesley Longman, 1997, pp.39–42.
Johnson, R. and Foote, B. “Designing Reusable Classes,” Journal of Component-Oriented Programming, June 1988, Vol.1, No.2, pp. 22–35.
Kara, D. “A Flawed Analogy: Hardware is not Software,” Component Strategies, November 1998, pp. 78–80
Kiczales, G, Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J-M., Irwin, J. “Aspect-Oriented Programming,” Proc. European Conference on Object-Oriented Programming (ECOOP), Finland, Springer-Verlag LNCS 1241. June 1997.
Krieger, D. and Adler, R. “The Emergence of Distributed Component Platforms,” IEEE Computer, March 1998, pp. 43–53
Macala R., Stuckey, L. Jr. and Gross, D. “Managing Domain-Specific, Product-Line Development,” IEEE Software, May 1996, pp. 57–67Lewis Ted et al Component-Oriented Application Frameworks
Neighbours, J. “The Benefits of Generators for Reuse,” Proc. 4th Int. Conference on Software Reuse, April 1996, Orlando, Florida, p. 217
Neighbours, J. “The Draco Approach to Constructing Software from Reusable Components,” IEEE Trans. on Software Eng., SE-10(5), September 1984, pp. 564–574
Nierstrasz, O. and Meijler, T.D. “Research Directions in Software Composition,” ACM Computing Surveys, vol. 27, no. 2, June 1995, pp. 262–264.
Orfali, R and Harkey, D. Client/Server Programming with Java and CORBA, John Wiley and Sons, 1998, second edition
Parnas, D. “On the Design and Development of Program Families,” IEEE Trans. on Software Eng., March 1976, p. 1–9
Parsons, J. and Wand, Y. “Using Objects for System Analysis,” Comm. of ACM, Vol. 40, No. 12, Dec. 1997, pp. 104–110
San Francisco Framework, http://www.ibm.com/Java/SanFrancisco
Sant’ Anna, M., Leite, J. and Prado, A. “A Generative Approach to Componentware,” Proc. Workshop on Component-based Software Engineering, ICSE’20, April 1998, Kyoto, Japan
Sommerville, we. and Dean, G. “PCL: a language for modelling evolving system architectures,” Software Engineering Journal, March 1996, pp.111–121
Tracz, W. Collected overview reports from the DSSA project, Technical Report, Loral Federal Systems — Owego. (1994).
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jarzabek, S., Knauber, P. (1999). Synergy Between Component-Based and Generative Approaches. In: Nierstrasz, O., Lemoine, M. (eds) Software Engineering — ESEC/FSE ’99. ESEC SIGSOFT FSE 1999 1999. Lecture Notes in Computer Science, vol 1687. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48166-4_26
Download citation
DOI: https://doi.org/10.1007/3-540-48166-4_26
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66538-0
Online ISBN: 978-3-540-48166-9
eBook Packages: Springer Book Archive