Enhancing Component Reusability through Product Line Technology
The idea of building software systems from semi-autonomous components that can be reused in numerous applications is intuitively appealing. However, simply organizing software systems in terms of components does not by itself ensure that the components will be reusable, or that significant levels of reuse will actually occur. In practice, to achieve meaningful levels of reuse the scope and generality of components must be carefully analyzed and optimized. In this paper we make the case that one of the most effective and systematic ways of achieving this is to complement component-based development with product line engineering techniques. Product line engineering not only provides concrete criteria for maximizing the reusability of components, but also provides enhanced mechanisms for reusing them within new applications. After first outlining the pertinent features of component-based development and product line engineering, the paper explains how they can be integrated under the umbrella of a model-driven architecture (MDA) approach to software development.
KeywordsProduct Line Decision Model Class Diagram Software Product Line Software Reuse
Unable to display preview. Download preview PDF.
- Kruchten, P. B., The Rational Unified Process. An Introduction, Addison-Wesley, 2000.Google Scholar
- D’Souza, D. F. and Wills A. C., Objects, Components and Frameworks with UML: The Catalysis Approach, Addison-Wesley, 1998Google Scholar
- C. Atkinson, J. Bayer, C. Bunse, O. Laitenberger, R. Laqua, E. Kamsties, D. Muthig, B. Paech, J. Wüst, and J. Zettel. Component-based Product Line Engineering with UML, Component Series, Addison-Wesley, 2001Google Scholar
- J. Cheesman and J. Daniels. UML Components: A Simple Process for Specifying Component-Based Software, Addison-Wesley, 2000Google Scholar
- Cooks, S., and Daniels, J., Designing Object Systems, Prentice Hall, England 1992Google Scholar
- Forsell, M., Halttunen, V., and Ahonen, J. Use and Identification of Components in Component-Based Software Development Methods. In Software Reuse. Advances in Software Reusability. 6th International Conference, ICSR-6. Lecture Notes in Computer Science, 1844, Springer-Verlag, 2000.Google Scholar
- W. C. Lim. Managing Software Reuse — A Comprehensive Guide to Strategically Reengineering the Organization for Reusable Components, Upper Saddle River: Prentice Hall PTR, 1998Google Scholar
- Bayer, J., Flege, O., Knauber, P., Laqua, R., Muthig, D., Schmid. K., Widen, T, and Debaud, J.-M., PuLSE: A Methodology to develop Software Product Lines, Proceedings of the Symposium on Software Reuse(SSR’99), May 1999Google Scholar
- C. Atkinson, J. Bayer, and D. Muthig. Component-Based Product Line Development: The KobrA Approach, in Google Scholar
- S. Bailin, M. Simos, L. Levin, and D. Creps. Learning and Inquiry Based Reuse Adoption (LIBRA)-A Field Guide to Reuse Adoption through Organizational Learning, Version 1.1, Software Technology for Adaptable, Reliable Systems (STARS), Informal Technical Report STARS-PA33-AG01/001/02, February1996Google Scholar
- J. Bayer, D. Muthig, and B. Göpfert. The Library System Product Line — A KobrA Case Study, Technical Report, Fraunhofer IESE-Report No. 024.01/E, IESE, 2001Google Scholar
- P. Donohoe. Software Product Lines-Experience and Research Directions, Kluwer Academic Publi/subjectshers, 2000Google Scholar