Skip to main content

Synergy Between Component-Based and Generative Approaches

  • Conference paper
  • First Online:
Software Engineering — ESEC/FSE ’99 (ESEC 1999, SIGSOFT FSE 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1687))

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

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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. Bass, L., Clements, P. and Kazman, R. Software Architecture in Practice, Addison-Wesley, 1998

    Google Scholar 

  2. Bassett, P. Framing Software Reuse — Lessons from Real World, Yourdon Press, Prentice Hall, 1997

    Google Scholar 

  3. 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

    Google Scholar 

  4. 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

    Google Scholar 

  5. 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

    Google Scholar 

  6. Brown, A. and Wallnau, K. “The Current State of CBSE,” IEEE Software, September/October, 1998, pp. 37–46

    Google Scholar 

  7. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M. Pattern-Oriented Software Architecture — A System of Patterns, John Wiley & Sons, 1996

    Google Scholar 

  8. 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

    Google Scholar 

  9. 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

    Google Scholar 

  10. Digre, T. “Business Component Architecture,” IEEE Software, September/October 1998, pp. 60–69

    Google Scholar 

  11. Fowler, M. Analysis Patterns: Reusable Component Models, Addison-Wesley, 1997

    Google Scholar 

  12. Gamma, E., Helm, R., Johnson, R. and Vlissides, J. Design Patterns, Addison-Wesley, 1994

    Google Scholar 

  13. Jacobson, I., Griess, M. and Jonsson, P. Software Reuse — Architecture, Process and Organization for Business Success, Addison Wesley Longman, 1997, pp.39–42.

    Google Scholar 

  14. Johnson, R. and Foote, B. “Designing Reusable Classes,” Journal of Component-Oriented Programming, June 1988, Vol.1, No.2, pp. 22–35.

    Google Scholar 

  15. Kara, D. “A Flawed Analogy: Hardware is not Software,” Component Strategies, November 1998, pp. 78–80

    Google Scholar 

  16. 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.

    Google Scholar 

  17. Krieger, D. and Adler, R. “The Emergence of Distributed Component Platforms,” IEEE Computer, March 1998, pp. 43–53

    Google Scholar 

  18. 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

    Google Scholar 

  19. Neighbours, J. “The Benefits of Generators for Reuse,” Proc. 4th Int. Conference on Software Reuse, April 1996, Orlando, Florida, p. 217

    Google Scholar 

  20. Neighbours, J. “The Draco Approach to Constructing Software from Reusable Components,” IEEE Trans. on Software Eng., SE-10(5), September 1984, pp. 564–574

    Article  Google Scholar 

  21. Nierstrasz, O. and Meijler, T.D. “Research Directions in Software Composition,” ACM Computing Surveys, vol. 27, no. 2, June 1995, pp. 262–264.

    Article  Google Scholar 

  22. Orfali, R and Harkey, D. Client/Server Programming with Java and CORBA, John Wiley and Sons, 1998, second edition

    Google Scholar 

  23. Parnas, D. “On the Design and Development of Program Families,” IEEE Trans. on Software Eng., March 1976, p. 1–9

    Google Scholar 

  24. Parsons, J. and Wand, Y. “Using Objects for System Analysis,” Comm. of ACM, Vol. 40, No. 12, Dec. 1997, pp. 104–110

    Article  Google Scholar 

  25. San Francisco Framework, http://www.ibm.com/Java/SanFrancisco

  26. 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

    Google Scholar 

  27. Sommerville, we. and Dean, G. “PCL: a language for modelling evolving system architectures,” Software Engineering Journal, March 1996, pp.111–121

    Google Scholar 

  28. Tracz, W. Collected overview reports from the DSSA project, Technical Report, Loral Federal Systems — Owego. (1994).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics