Abstract
Software product lines have proved to be a successful and efficient means for managing the development of software in industry. The significant benefits over traditional software architectures have the potential to convince software companies to adopt the product line approach for their existing products. In that case, the question arises how to best convert the existing products into a software product line. For several reasons, an evolutionary approach is desirable. But so far, there is little guidance on the evolutionary introduction of software product lines.
In this paper, we propose a lightweight iterative process supporting the incremental introduction of product line concepts for existing software products. Starting with the analysis of the legacy code, we assess what parts of the software can be restructured for product line needs at reasonable costs. For the analysis of the products, we use feature analysis, a reengineering technique tailored to the specific needs of the initiation of software product lines.
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
Bosch, J.: Design & Use of Software Architectures. Addison-Wesley and ACM Press (2000)
Clements, P., Northrop, L.: Software Product Lines—Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley (2001)
Northrop, L.M.: A Framework for Software Product Line Practice. Available at http://www.sei.cmu.edu/plp/framework.html(2001)
Bergey, J., O’Brien, L., Smith, D.: Options Analysis for Reengineering (OAR): A Method for Mining Legacy Assets. Technical Report CMU/SEI-2001-TN-013, SEI, Carnegie Mellon University (2001)
Bayer, J., Flege, O., Knauber, P., Laqua, R., Muthig, D., Schmid, K., Widen, T., DeBaud, J.M.: PuLSE: A Methodology to Develop Software Product Lines. In: Proceedings of the Fifth ACM SIGSOFT Symposium on Software Reusability (SSR’99), Los Angeles, CA, USA ACM Press (1999) 122–131
Eisenbarth, T., Simon, D.: Guiding Feature Asset Mining for Software Product Line Development. In: Proceedings of the International Workshop on Product Line Engineering: The Early Steps: Planning, Modeling, and Managing, Erfurt, Germany, Fraunhofer IESE (2001) 1–4
Kazman, R., Bass, L., Abowd, G., Webb, M.: SAAM: A Method for Analyzing the Properties of Software Architectures. In: Proceedings of the 16th International Conference on Software Engineering, Sorrento, Italy, IEEE Computer Society Press (1994) 81–90
Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., Carriere, S.J.: The Architecture Tradeoff Analysis Method. In: Proceedings of the 4th International Conference on Engineering of Complex Computer Systems, Monterey, CA, USA, IEEE Computer Society Press (1998) 68–78
Chen, K., Rajlich, V.: Case Study of Feature Location Using Dependence Graph. In: Proceedings of the 8th International Workshop on Program Comprehension, Limerick, Ireland, IEEE Computer Society Press (2000) 241–249
Wilde, N., Buckellew, M., Page, H., Rajlich, V.: A Case Study of Feature Location in Unstructured Legacy Fortran Code. In: Proceedings of the 5th European Conference on Software Maintenance and Reengineering, Lisbon, Portugal, IEEE Computer Society Press (2001) 68–75
Wilde, N., Scully, M.C.: Software Reconnaissance: Mapping Program Features to Code. Journal of Software Maintenance: Research and Practice 7 (1995) 49–62
Wilde, N.: RECON. Available at http://www.cs.uwf.edu/~recon/ (2001)
Eisenbarth, T., Koschke, R., Simon, D.: Derivation of Feature-Component Maps by Means of Concept Analysis. In: Proceedings of the 5th European Conference on Software Maintenance and Reengineering, Lisbon, Portugal, IEEE Computer Society Press (2001) 176–179
Eisenbarth, T., Koschke, R., Simon, D.: Feature-Driven Program Understanding Using Concept Analysis of Execution Traces. In: Proceedings of the 9th International Workshop on Program Comprehension, Toronto, Canada, IEEE Computer Society Press (2001) 300–309
Eisenbarth, T., Koschke, R., Simon, D.: Aiding Program Comprehension by Static and Dynamic Feature Analysis. In: Proceedings of the International Conference on Software Maintenance, Florence, Italy, IEEE Computer Society Press (2001) 602–611
Wong, W.E., Gokhale, S.S., Hogan, J.R.: Quantifying the Closeness between Program Components and Features. The Journal of Systems and Software 54 (2000) 87–98
The XFIG drawing tool, Version 3.2.3d. Available at http://www.xfig.org/ (2001)
Bergey, J.K., Northrop, L.M., Smith, D.B.: Enterprise Framework for the Disciplined Evolution of Legacy Systems. Technical Report CMU/SEI-97-TR-007, SEI, Carnegie Mellon University, Pittsburgh, PA, USA (1997)
Bergey, J., O’Brien, L., Smith, D.: Mining Existing Software Assets for Software Product Lines. Technical Report CMU/SEI-2000-TN-008, SEI, Carnegie Mellon University (2000)
Bayer, J., Girard, J.F., Würthner, M., DeBaud, J.M., Apel, M.: Transitioning Legacy Assets to a Product Line Architecture. In: Proceedings of the Seventh European Software Engineering Conference (ESEC’99). Lecture Notes in Computer Science 1687, Toulouse, France, Springer (1999) 446–463
The New Bauhaus Stuttgart. Available at http://www.bauhaus-stuttgart.de/ (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Simon, D., Eisenbarth, T. (2002). Evolutionary Introduction of Software Product Lines. In: Chastek, G.J. (eds) Software Product Lines. SPLC 2002. Lecture Notes in Computer Science, vol 2379. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45652-X_17
Download citation
DOI: https://doi.org/10.1007/3-540-45652-X_17
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43985-1
Online ISBN: 978-3-540-45652-0
eBook Packages: Springer Book Archive