Skip to main content

Software Reuse and Product Line Engineering

  • 2488 Accesses

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.

Keywords

  • Software reuse
  • Systematic software reuse
  • Software product lines

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-030-00262-6_8
  • Chapter length: 28 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   169.00
Price excludes VAT (USA)
  • ISBN: 978-3-030-00262-6
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Hardcover Book
USD   219.99
Price excludes VAT (USA)

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)

    CrossRef  Google Scholar 

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

    CrossRef  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)

    CrossRef  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)

    CrossRef  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)

    CrossRef  Google Scholar 

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

    CrossRef  Google Scholar 

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

    CrossRef  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)

    CrossRef  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)

    CrossRef  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)

    MATH  CrossRef  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)

    CrossRef  Google Scholar 

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

    CrossRef  Google Scholar 

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

    CrossRef  Google Scholar 

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

    CrossRef  Google Scholar 

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

    CrossRef  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)

    CrossRef  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)

    CrossRef  Google Scholar 

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

    CrossRef  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)

    CrossRef  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)

    CrossRef  Google Scholar 

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

    CrossRef  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)

    CrossRef  Google Scholar 

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

    CrossRef  Google Scholar 

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

    CrossRef  Google Scholar 

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

    CrossRef  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)

    MATH  CrossRef  Google Scholar 

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

    CrossRef  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)

    MATH  CrossRef  Google Scholar 

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

    CrossRef  Google Scholar 

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

    MATH  CrossRef  Google Scholar 

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

    MATH  CrossRef  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)

    CrossRef  Google Scholar 

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

    MATH  CrossRef  Google Scholar 

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

    CrossRef  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)

    CrossRef  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)

    CrossRef  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

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)