Introducing a software reuse culture in practice

  • Thomas Grechenig
  • Stefan Biffl
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 750)


The following paper deals with experiences derived from an industrial consulting project for designing a reuse model. The model is oriented towards actual use in practice and therefore also towards different levels of reuse intensity. It was outlined for a company employing more than 200 software engineers who primarily develop software for bank services and bank administrations. The field of investigation on hand is connected with a lot of vital software engineering (SE) questions for any larger developer: heterogeneity in age of software, heterogeneity of applications, heterogeneity of development environments as well as different levels of software engineering consciousness and of knowledge among the software engineers. The model presented is drawn from state-of-the-art suggestions in reuse research which were adapted to meet local constraints of time and costs. The model can be taken as a recipe for reuse in practice as it is providing three different levels of reuse intensities/investments, and thus returning three different levels of reuse maturity.

Level I reuse maturity in practice is to achieve maintainability: Many older programs turned out to be widely undocumented; often requirements and/or abstract design were missing, the programs do not meet basic criteria of maintainability.

Level II reuse maturity is represented by balance within similar projects: We define a group of software systems as balanced, if there is a clear top-down structure from the general to the specific in documents concerning analysis, design, code and test. A new but similar system can be designed reusing upper level software document components and adapting lower level ones.

Level III reuse maturity affords several technical and organizational efforts to establish a true reuse culture. Making a reuse culture work needs developing, providing and enforcing of standards. On the technical level this requires the use of repositories for all phases of development as well as the application of quality assurance methodology. On the organizational level cooperation among people responsible for the development of standards (metric analysis, quality check through reviews) as well as those coordinating the reuse environment is required. The roles for a reuse culture as well as the educational prerequisites are defined.

The value of the presented work lies in mapping the reuse state-of-the-art to often appearing financial and organizational restrictions consciously, thus opening possibilities beyond the “total reuse or no reuse” advice.


software reuse reuse model in practice industrial experience maintainability standards quality assurance management issues 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    G. Arango: Domain Analysis: From art form to Engineering discipline. ACM, pp.152–159 (1989)Google Scholar
  2. 2.
    S.P., Arnold, S.L. Stepoway: The Reuse System: Cataloging and Retrieval of Reuse Software. Proceedings of COMPCON 1987, pp. 376–379Google Scholar
  3. 3.
    V.R. Basili, H.D. Rombach: Support for comprehensive reuse,. Software Eng. J., Sept. 1991, pp. 303–316Google Scholar
  4. 4.
    B. Beizer: Software Testing Techniques. Van Nostrand Reinhold, 2nd ed., (1990)Google Scholar
  5. 5.
    L.A. Belady: Foreword. in: Software Reusability (vol. I), Concepts and Models,. Addison Wesley, p. vii–viii (1989)Google Scholar
  6. 6.
    H. Berlack: Software Configuration Management. Wiley 1992Google Scholar
  7. 7.
    T.J. Biggerstaff, A.J. Perlis: Foreword (Special issue on software Reusability). IEEE Transactions on SE, Sept. 1984, pp. 474–476Google Scholar
  8. 8.
    T. Biggerstaff, Ch. Richter: Reusability Framework, Assessment, and Directions. IEEE Software 4(2): 41–49, March 1987Google Scholar
  9. 9.
    T. Biggerstaff: Design recovery for maintenance and reuse. IEEE Computer 22(7): 36–49 (1989)Google Scholar
  10. 10.
    T.J. Biggerstaff, A.J. Perlis: Software Reusability. ACM-Press 1989Google Scholar
  11. 11.
    B.A. Burton, R.W. Aragon: The reusable software Library. IEEE Software, July 1987, pp. 25–33Google Scholar
  12. 12.
    G. Caldiera, V. Basili: Identifying and Qualifying Reusable software Components. IEEE Computer, Feb. 91, pp. 61–70Google Scholar
  13. 13.
    M. Cavaliere: Reusable Code at the Hartford Insurance Group, in: T. Biggerstaff and A. Perlis: “Software Reusability — Vol. 2, Applications and Experience”. Addison Wesley and acm Press, 1989, and in: Proc. of the ITT Workshop on Reusability in Programming, Newport R. I., 1983.Google Scholar
  14. 14.
    P. Devanbu, R.J. Brachman: LaSSIE: A Knowledge-Based software Information System. CACM 34(5): 34–49, May 1991Google Scholar
  15. 15.
    R. Fairley, S. Pfleeger et al.: Final Report: Incentives for Reuse of Ada Components. vols. 1 through 5, George Mason University, Fairfax, Va., 1989Google Scholar
  16. 16.
    W.B. Frakes, B.A. Nejimeh: An Information System for Software Reuse. Proceedings of the Tenth Minnowbrook Workshop on Software Reuse 1987Google Scholar
  17. 17.
    J. Goguen: Principles of Parameterized Programming. in: T. Biggerstaff and A. Perlis: Software Reusability — Vol. 1, Concepts and Models. Addison Wesley and acm Press, 1989 (ext. vers, of IEEE TR-SE, Sept 84)Google Scholar
  18. 18.
    G.E. Kaiser, D. Garlan: Melding Software Systems from Reusable Building Blocks. IEEE Software, July 1987, pp. 17–24Google Scholar
  19. 19.
    R.G. Lanergan, Ch.A. Grasso: Software Engineering with Reusable Designs and Code. IEEE TSE SE-10(5): 498–501, Sept. 1984Google Scholar
  20. 20.
    J.A. Lewis, S.M. Henry, D.G. Kafura: An Empirical Study of the Object-Oriented Paradigma and Software Reuse. ACM Sigplan Notices, OOPSLA '91, p.184–196Google Scholar
  21. 21.
    Y. Matsumoto: A Software Factory: An Overall Approach to Software Production. Proc. of the ITT Workshop on Reusability in Programming, Newport R.I., 1983 and in Freeman P.: Tutorial “Software Reusability”; IEEE-CS Press, 1987Google Scholar
  22. 22.
    B. Meyer: Reusability: The Case of Object-Oriented Design. IEEE Software 4, 2: 50–64, March 1987Google Scholar
  23. 23.
    W. Myers: We Want to Write Less Code. Computer 23(7): 117–118, July 1990CrossRefGoogle Scholar
  24. 24.
    J. Neighbors: The Draco Approach to Constructing software from Reusable Components. IEEE TSE, SE-10(5), p. 564–574, Sept. 1984Google Scholar
  25. 25.
    R. Prieto-Diaz, P. Freeman: Classifying Software For Reusability, IEEE Software 4, 1: 6–16, 1987Google Scholar
  26. 26.
    R. Prieto-Diaz: Domain analysis for reusability, Proc. of COMPSAC 87, Tokyo, Japan,. pp. 23–29Google Scholar
  27. 27.
    R. Prieto-Diaz: Making software Reuse work: an implementation model. ACM SIGSOFT SE Not. 16(3): 61–68, July 1991CrossRefGoogle Scholar
  28. 28.
    H.B. Reubenstein, R.C. Waters: The Requirements Apprentice: Automated Assistance for Requirements Acquisition. IEEE TSE, Vol. 17, No.3, March 91, pp. 226–240Google Scholar
  29. 29.
    R. Riehle: Software components — designing generalized components by creating abstractions. Programmers J., pp. 75–78, Nov./Dec. 1990Google Scholar
  30. 30.
    R. Selby: Quantitative Studies of Software Reuse. in: Software Reusability: Vol. II Applications and Experience, ed. T. Biggerstaff and A.J.Perlis, 213–33, 1989Google Scholar
  31. 31.
    D. Taenzer, M. Ganti, S. Podar: Object-Oriented Software Reuse: The Yoyo Problem. Journal of Object-Oriented Programming 2(3):30–35, 1989Google Scholar
  32. 32.
    W. Tracz: Reusability Comes on Age. IEEE Software, July 1987, pp. 6–8Google Scholar
  33. 33.
    W. Tracz: Software Reuse: Motivators and Inhibitors. Proceedings of COMPCON S 87, pp. 358–363Google Scholar
  34. 34.
    R.C. Waters, Y.M. Tan: Toward a Design Apprentice: Supporting Reuse and Evolution in Software Design. Software Engineering Notes 16(2): 33–44, 1991CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Thomas Grechenig
    • 1
  • Stefan Biffl
    • 1
  1. 1.Department of Software EngineeringVienna University of TechnologyViennaAustria

Personalised recommendations