Skip to main content

Software Reuse and Product Line Engineering

  • Chapter
  • First Online:

Abstract

Systematic Software Reuse is one of the most effective software engineering approaches for obtaining benefits related to productivity, quality, and cost reduction. In this chapter, we discuss its origins and motivations, obstacles, its success and failure aspects, and future directions. In addition, we present the main ideas and important directions related to Software Product Lines, a key reuse approach.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   219.99
Price excludes VAT (USA)
  • Durable hardcover 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Almeida, E.S., Alvaro, A., Lucrédio, D., Garcia, V.C., Meira, S.R.L.: A survey on software reuse processes, International Conference on Information Reuse and Integration (IRI) (2005)

    Google Scholar 

  • Almeida, E.S., Alvaro, A., Garcia, V.C., Mascena, J.C.C.P., Burégio, V.A.A., Nascimento, L.M., Lucrédio, D., Meira, S.R.L.: C.R.U.I.S.E. – Component Reuse in Software Engineering (2007)

    Google Scholar 

  • Apel, S., Batory, D., Kastner, C., Saake, G.: Feature-Oriented Software Product Lines; Concepts and Implementation. Springer, Berlin (2013)

    Book  Google Scholar 

  • Baresi, L., Guinea, S., Pasquale, L.: Service-oriented dynamic software product lines. IEEE Comput. 45(10), 42–48 (2012)

    Article  Google Scholar 

  • Barnes, B., et al.: A framework and economic foundation for software reuse. In: Tracz, W. (ed.) IEEE Tutorial: Software Reuse—Emerging Technology. IEEE Computer Society Press, Washington, DC (1998)

    Google Scholar 

  • Basili, V.R., Briand, L.C., Melo, W.L.: How reuse influences productivity in object-oriented systems. Commun. ACM. 39(10), 104–116 (1996)

    Article  Google Scholar 

  • Batory, D., Singhal, V., Thomas, J., Dasari, S., Geraci, B.J., Sirkin, M.: The GenVoca model of software-system generators. IEEE Softw. 11(5), 89–94 (1994)

    Article  Google Scholar 

  • 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, Symposium Software Reusability (SSR) (1999)

    Google Scholar 

  • Bencomo, N., Hallsteinsen, S.O., Almeida, E.S.: A view of the dynamic software product line landscape. IEEE Comput. 45(10), 36–41 (2012)

    Article  Google Scholar 

  • Biggerstaff, T.J.: A perspective of generative reuse. Ann. Softw. Eng. 5, 169–226 (1998)

    Article  Google Scholar 

  • Bosch, J., Capilla, R.: Dynamic variability in software-intensive embedded system families. IEEE Comput. 45(10), 28–35 (2012)

    Article  Google Scholar 

  • Burégio, V.A.A., Almeida, E.S., Lucrédio, D., Meira, S.R.L.: A Reuse Repository System: From Specification to Deployment, International Conference on Software Reuse (ICSR) (2008)

    Google Scholar 

  • Capilla, R., Bosch, J., Trinidad, P., Ruiz Cortés, A., Hinchey, M.: An overview of Dynamic Software Product Line architectures and techniques: Observations from research and industry. J. Syst. Softw. 91, 3–23 (2014)

    Article  Google Scholar 

  • Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns, p. 608. Addison-Wesley (2001)

    Google Scholar 

  • Cox, B.J.: Planning the software industrial revolution. IEEE Softw. 7(06), 25–33 (1990)

    Article  Google Scholar 

  • Czarnecki, K., Eisenecker, U.: Generative Progamming: Methods, Tools, Applications. Addison-Wesley, Boston (2000)

    Google Scholar 

  • Davis, T.: The reuse capability model: A basis for improving an organization’s reuse capability. International Workshop on Software Reusability (1993)

    Google Scholar 

  • Diaz, R.P., Freeman, P.: Classifying software for reusability. IEEE Softw. 4(1), (1987)

    Google Scholar 

  • Ezran, M., Morisio, M., Tully, C.: Practical Software Reuse, p. 374. Springer, Heidelberg (2002)

    Book  MATH  Google Scholar 

  • Favaro, J.: What Price Reusability? A Case Study, First International Symposium on Environments and Tools for Ada, California, pp. 115–124, March 1991

    Google Scholar 

  • Frakes, W.B., Fox, C.J.: Quality improvement using a software reuse failure modes model. IEEE Trans. Softw. Reuse. 23(4), 274–279 (1996)

    Article  Google Scholar 

  • Frakes, W.B., Isoda, S.: Success factors of systematic reuse. IEEE Softw. 11(5), 14–19 (1994)

    Article  Google Scholar 

  • Frakes, W.B., Kang, K.C.: Software reuse research: Status and future. IEEE Trans. Softw. Eng. 31(7), 529–536 (2005)

    Article  Google Scholar 

  • Frakes, W.B., Nejmeh, B.A.: Software reuse through information retrieval. ACM SIGIR Forum. 21(1–2), 30–36 (1986)

    Article  Google Scholar 

  • Frakes, W.B., Succi, G.: An industrial study of reuse, quality, and productivity. J. Syst. Softw. 57(2), 99–106 (2001)

    Article  Google Scholar 

  • Frakes, W.B., Terry, C.: Software Reuse: Metrics and Models, ACM Computing Survey (1996)

    Google Scholar 

  • Garcia, V.C.: RiSE Reference Model for Software Reuse Adoption in Brazilian Companies, Ph.D. Thesis, Federal University of Pernambuco, Brazil (2010)

    Google Scholar 

  • Gurp, J.V., Bosch, J., Svahnberg, M.: On the Notion of Variability in Software Product Lines, Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 45–54, Amsterdam, Netherlands, August, 2001

    Google Scholar 

  • Hallsteinsen, S., Hinchey, M., Park, S., Schmid, K.: Dynamic software product lines. IEEE Comput. 41(04), 93–95 (2008)

    Article  Google Scholar 

  • Harman, M., Jia, Y., Krinke, J., Langdon, W.B., Petke, J., Zhang, Y.: Search based software engineering for software product line engineering: A survey and directions for future work. 18th International Software Product Line Conference (SPLC), pp. 5–18, Italy, August, 2014

    Google Scholar 

  • Herrejon, R.E.L., Linsbauer, L., Egyed, A.: A systematic mapping study of search-based software engineering for software product lines. Inf. Softw. Technol. J. 61, 33–51 (2015)

    Article  Google Scholar 

  • Hinchey, M., Park, S., Schmid, K.: Building dynamic software product lines. IEEE Comput. 45(10), 22–26 (2012)

    Article  Google Scholar 

  • Holl, G., Grunbacher, P., Rabiser, R.: A systematic review and an expert survey on capabilities supporting multi product lines. Inf. Softw. Technol. J. 54, 828–852 (2012)

    Article  Google Scholar 

  • Jacobson, I., Griss, M., Jonsson, P.: Software Reuse: Architecture, Process and Organization for Business Success. Addison-Wesley (1997)

    Google Scholar 

  • Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-Oriented Domain Analysis (FODA) Feasibility Study, Software Engineering Institute (SEI), Technical Report, p. 161, November 1990

    Google Scholar 

  • Kang, K.C., Kim, S., Lee, J., Kim, K., Shin, E., Huh, M.: FORM: A feature-oriented reuse method with domain-specific reference architectures. Ann. Softw. Eng. 5, 143–168 (1998)

    Article  Google Scholar 

  • Kim, Y., Stohr, E.A.: Software reuse: Survey and research directions. J. Manag. Inf. Syst. 14(04), 113–147 (1998)

    Article  Google Scholar 

  • Kitchenham, B.A., Dybå, T., Jørgensen, M.: Evidence-Based Software Engineering, International Conference on Software Engineering (ICSE) (2004)

    Google Scholar 

  • Krueger, C.W.: Software reuse. ACM Comput. Surv. 24(2), 131–183 (1992)

    Article  Google Scholar 

  • Lau, K.K., Wang, Z.: Software component models. IEEE Trans. Softw. Eng. 33(10), 709–724 (2007)

    Article  Google Scholar 

  • Lee, J., Kotonya, G., Robinson, D.: Engineering service-based dynamic software product lines. IEEE Comput. 45(10), 49–55 (2012)

    Article  Google Scholar 

  • Lim, W.C.: Effects of reuse on quality, productivity, and economics. IEEE Softw. 11(05), 23–30 (1994)

    Article  Google Scholar 

  • Lim, W.C.: Managing Software Reuse. Prentice Hall, Upper Saddle River, NJ (1998)

    Google Scholar 

  • Linden, F.V., Schmid, K., Rommes, E.: Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer (2007)

    Google Scholar 

  • Lucrédio, D., Almeida, E.S., Prado, A.F.: A Survey on Software Components Search and Retrieval, 30th IEEE EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO-SEAA), Component-Based Software Engineering Track, pp. 152–159, Rennes, France, August/September 2004

    Google Scholar 

  • McIlroy, M.D.: Mass Produced Software Components, NATO Software Engineering Conference Report, pp. 79–85, Garmisch, Germany, October 1968

    Google Scholar 

  • Mili, H., Mili, F., Mili, A.: Reusing software: Issues and research directions. IEEE Trans. Softw. Eng. 21(6), 528–562 (1995)

    Article  MATH  Google Scholar 

  • Mili, A., Mili, R., Mittermeir, R.: A survey of software reuse libraries. Ann. Softw. Eng. 05, 349–414 (1998)

    Article  Google Scholar 

  • Mili, H., Mili, A., Yacoub, S., Addy, E.: Reuse Based Software Engineering: Techniques, Organizations, and Measurement. Wiley, New York (2002)

    Google Scholar 

  • Morisio, M., Ezran, M., Tully, C.: Success and failure factors in software reuse. IEEE Trans. Softw. Eng. 28(4), 340–357 (2002)

    Article  MATH  Google Scholar 

  • Neighbors, J.M.: The draco approach to constructing software from reusable components. IEEE Trans. Softw. Eng. 10(5), 564–574 (1984)

    Article  Google Scholar 

  • Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 2(1), 1–8 (1976)

    Article  MATH  Google Scholar 

  • Pohl, K., Bockle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques, p. 467. Springer, New York (2005)

    Book  MATH  Google Scholar 

  • Poulin, J.S.: Measuring Software Reuse, p. 195. Addison-Wesley, Boston, MA (1997)

    Google Scholar 

  • Poulin, J.S.: The Business Case for Software Reuse: Reuse Metrics, Economic Models, Organizational Issues, and Case Studies, Tutorial Notes, Torino, Italy, June, 2006

    Google Scholar 

  • Roshandel, R., van der Hoek, A., Rakic, M.M., Medvidovic, N.: Mae – A system model and environment for managing architectural evolution. ACM Trans. Softw. Eng. Methodol. 13(2), 240–276 (2004)

    Article  Google Scholar 

  • Sametinger, J.: Software Engineering with Reusable Components, p. 275. Springer, Berlin (1997)

    Book  MATH  Google Scholar 

  • Sim, S.E., Gallardo-Valencia, R.G.: Finding Source Code on the Web for Remix and Reuse. Springer, New York (2013)

    Book  Google Scholar 

  • Sommerville, I.: Software Engineering, Addison-Wesley (2006)

    Google Scholar 

  • Tracz, W.: Confessions of a Used Program Salesman: Institutionalizing Software Reuse, Addison Wesley, Reading, MA (1995)

    Google Scholar 

  • van Ommering, R., van der Linden, F., Kramer, J., Magee, J.: The Koala component model for consumer electronics software. IEEE Comput. 33(3), 78–85 (2000)

    Article  Google Scholar 

  • Weiss, D., Lai, C.T.R.: Software Product-Line Engineering. Addison Wesley, Reading, MA (1999)

    Google Scholar 

  • Ye, Y., Fischer, G.: Promoting Reuse with Active Reuse Repository Systems, International Conference on Software Reuse (ICSR) (2000)

    Chapter  Google Scholar 

  • Zand, M., Basili, V.R., Baxter, I., Griss, M.L., Karlsson, E., Perry, D.: Reuse R&D: Gap Between Theory and Practice, Symposium on Software Reusability (SSR), pp. 172–177, Los Angeles, May, 1999

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Eduardo Santana de Almeida .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

de Almeida, E.S. (2019). Software Reuse and Product Line Engineering. In: Cha, S., Taylor, R., Kang, K. (eds) Handbook of Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-030-00262-6_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-00262-6_8

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-00261-9

  • Online ISBN: 978-3-030-00262-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics