Advertisement

Software Reuse and Product Line Engineering

  • Eduardo Santana de AlmeidaEmail author
Chapter

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 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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
  2. 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
  3. Apel, S., Batory, D., Kastner, C., Saake, G.: Feature-Oriented Software Product Lines; Concepts and Implementation. Springer, Berlin (2013)CrossRefGoogle Scholar
  4. Baresi, L., Guinea, S., Pasquale, L.: Service-oriented dynamic software product lines. IEEE Comput. 45(10), 42–48 (2012)CrossRefGoogle Scholar
  5. 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
  6. Basili, V.R., Briand, L.C., Melo, W.L.: How reuse influences productivity in object-oriented systems. Commun. ACM. 39(10), 104–116 (1996)CrossRefGoogle Scholar
  7. 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)CrossRefGoogle Scholar
  8. 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
  9. Bencomo, N., Hallsteinsen, S.O., Almeida, E.S.: A view of the dynamic software product line landscape. IEEE Comput. 45(10), 36–41 (2012)CrossRefGoogle Scholar
  10. Biggerstaff, T.J.: A perspective of generative reuse. Ann. Softw. Eng. 5, 169–226 (1998)CrossRefGoogle Scholar
  11. Bosch, J., Capilla, R.: Dynamic variability in software-intensive embedded system families. IEEE Comput. 45(10), 28–35 (2012)CrossRefGoogle Scholar
  12. 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
  13. 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)CrossRefGoogle Scholar
  14. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns, p. 608. Addison-Wesley (2001)Google Scholar
  15. Cox, B.J.: Planning the software industrial revolution. IEEE Softw. 7(06), 25–33 (1990)CrossRefGoogle Scholar
  16. Czarnecki, K., Eisenecker, U.: Generative Progamming: Methods, Tools, Applications. Addison-Wesley, Boston (2000)Google Scholar
  17. Davis, T.: The reuse capability model: A basis for improving an organization’s reuse capability. International Workshop on Software Reusability (1993)Google Scholar
  18. Diaz, R.P., Freeman, P.: Classifying software for reusability. IEEE Softw. 4(1), (1987)Google Scholar
  19. Ezran, M., Morisio, M., Tully, C.: Practical Software Reuse, p. 374. Springer, Heidelberg (2002)zbMATHCrossRefGoogle Scholar
  20. Favaro, J.: What Price Reusability? A Case Study, First International Symposium on Environments and Tools for Ada, California, pp. 115–124, March 1991Google Scholar
  21. Frakes, W.B., Fox, C.J.: Quality improvement using a software reuse failure modes model. IEEE Trans. Softw. Reuse. 23(4), 274–279 (1996)CrossRefGoogle Scholar
  22. Frakes, W.B., Isoda, S.: Success factors of systematic reuse. IEEE Softw. 11(5), 14–19 (1994)CrossRefGoogle Scholar
  23. Frakes, W.B., Kang, K.C.: Software reuse research: Status and future. IEEE Trans. Softw. Eng. 31(7), 529–536 (2005)CrossRefGoogle Scholar
  24. Frakes, W.B., Nejmeh, B.A.: Software reuse through information retrieval. ACM SIGIR Forum. 21(1–2), 30–36 (1986)CrossRefGoogle Scholar
  25. Frakes, W.B., Succi, G.: An industrial study of reuse, quality, and productivity. J. Syst. Softw. 57(2), 99–106 (2001)CrossRefGoogle Scholar
  26. Frakes, W.B., Terry, C.: Software Reuse: Metrics and Models, ACM Computing Survey (1996)Google Scholar
  27. Garcia, V.C.: RiSE Reference Model for Software Reuse Adoption in Brazilian Companies, Ph.D. Thesis, Federal University of Pernambuco, Brazil (2010)Google Scholar
  28. 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, 2001Google Scholar
  29. Hallsteinsen, S., Hinchey, M., Park, S., Schmid, K.: Dynamic software product lines. IEEE Comput. 41(04), 93–95 (2008)CrossRefGoogle Scholar
  30. 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, 2014Google Scholar
  31. 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)CrossRefGoogle Scholar
  32. Hinchey, M., Park, S., Schmid, K.: Building dynamic software product lines. IEEE Comput. 45(10), 22–26 (2012)CrossRefGoogle Scholar
  33. 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)CrossRefGoogle Scholar
  34. Jacobson, I., Griss, M., Jonsson, P.: Software Reuse: Architecture, Process and Organization for Business Success. Addison-Wesley (1997)Google Scholar
  35. 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 1990Google Scholar
  36. 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)CrossRefGoogle Scholar
  37. Kim, Y., Stohr, E.A.: Software reuse: Survey and research directions. J. Manag. Inf. Syst. 14(04), 113–147 (1998)CrossRefGoogle Scholar
  38. Kitchenham, B.A., Dybå, T., Jørgensen, M.: Evidence-Based Software Engineering, International Conference on Software Engineering (ICSE) (2004)Google Scholar
  39. Krueger, C.W.: Software reuse. ACM Comput. Surv. 24(2), 131–183 (1992)CrossRefGoogle Scholar
  40. Lau, K.K., Wang, Z.: Software component models. IEEE Trans. Softw. Eng. 33(10), 709–724 (2007)CrossRefGoogle Scholar
  41. Lee, J., Kotonya, G., Robinson, D.: Engineering service-based dynamic software product lines. IEEE Comput. 45(10), 49–55 (2012)CrossRefGoogle Scholar
  42. Lim, W.C.: Effects of reuse on quality, productivity, and economics. IEEE Softw. 11(05), 23–30 (1994)CrossRefGoogle Scholar
  43. Lim, W.C.: Managing Software Reuse. Prentice Hall, Upper Saddle River, NJ (1998)Google Scholar
  44. Linden, F.V., Schmid, K., Rommes, E.: Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer (2007)Google Scholar
  45. 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 2004Google Scholar
  46. McIlroy, M.D.: Mass Produced Software Components, NATO Software Engineering Conference Report, pp. 79–85, Garmisch, Germany, October 1968Google Scholar
  47. Mili, H., Mili, F., Mili, A.: Reusing software: Issues and research directions. IEEE Trans. Softw. Eng. 21(6), 528–562 (1995)zbMATHCrossRefGoogle Scholar
  48. Mili, A., Mili, R., Mittermeir, R.: A survey of software reuse libraries. Ann. Softw. Eng. 05, 349–414 (1998)CrossRefGoogle Scholar
  49. Mili, H., Mili, A., Yacoub, S., Addy, E.: Reuse Based Software Engineering: Techniques, Organizations, and Measurement. Wiley, New York (2002)Google Scholar
  50. Morisio, M., Ezran, M., Tully, C.: Success and failure factors in software reuse. IEEE Trans. Softw. Eng. 28(4), 340–357 (2002)zbMATHCrossRefGoogle Scholar
  51. Neighbors, J.M.: The draco approach to constructing software from reusable components. IEEE Trans. Softw. Eng. 10(5), 564–574 (1984)CrossRefGoogle Scholar
  52. Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 2(1), 1–8 (1976)zbMATHCrossRefGoogle Scholar
  53. Pohl, K., Bockle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques, p. 467. Springer, New York (2005)zbMATHCrossRefGoogle Scholar
  54. Poulin, J.S.: Measuring Software Reuse, p. 195. Addison-Wesley, Boston, MA (1997)Google Scholar
  55. Poulin, J.S.: The Business Case for Software Reuse: Reuse Metrics, Economic Models, Organizational Issues, and Case Studies, Tutorial Notes, Torino, Italy, June, 2006Google Scholar
  56. 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)CrossRefGoogle Scholar
  57. Sametinger, J.: Software Engineering with Reusable Components, p. 275. Springer, Berlin (1997)zbMATHCrossRefGoogle Scholar
  58. Sim, S.E., Gallardo-Valencia, R.G.: Finding Source Code on the Web for Remix and Reuse. Springer, New York (2013)CrossRefGoogle Scholar
  59. Sommerville, I.: Software Engineering, Addison-Wesley (2006)Google Scholar
  60. Tracz, W.: Confessions of a Used Program Salesman: Institutionalizing Software Reuse, Addison Wesley, Reading, MA (1995)Google Scholar
  61. 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)CrossRefGoogle Scholar
  62. Weiss, D., Lai, C.T.R.: Software Product-Line Engineering. Addison Wesley, Reading, MA (1999)Google Scholar
  63. Ye, Y., Fischer, G.: Promoting Reuse with Active Reuse Repository Systems, International Conference on Software Reuse (ICSR) (2000)CrossRefGoogle Scholar
  64. 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, 1999Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Federal University of BahiaSalvadorBrazil

Personalised recommendations