Introducing a software reuse culture in practice
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.
Keywordssoftware reuse reuse model in practice industrial experience maintainability standards quality assurance management issues
Unable to display preview. Download preview PDF.
- 1.G. Arango: Domain Analysis: From art form to Engineering discipline. ACM, pp.152–159 (1989)Google Scholar
- 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.V.R. Basili, H.D. Rombach: Support for comprehensive reuse,. Software Eng. J., Sept. 1991, pp. 303–316Google Scholar
- 4.B. Beizer: Software Testing Techniques. Van Nostrand Reinhold, 2nd ed., (1990)Google Scholar
- 5.L.A. Belady: Foreword. in: Software Reusability (vol. I), Concepts and Models,. Addison Wesley, p. vii–viii (1989)Google Scholar
- 6.H. Berlack: Software Configuration Management. Wiley 1992Google Scholar
- 7.T.J. Biggerstaff, A.J. Perlis: Foreword (Special issue on software Reusability). IEEE Transactions on SE, Sept. 1984, pp. 474–476Google Scholar
- 8.T. Biggerstaff, Ch. Richter: Reusability Framework, Assessment, and Directions. IEEE Software 4(2): 41–49, March 1987Google Scholar
- 9.T. Biggerstaff: Design recovery for maintenance and reuse. IEEE Computer 22(7): 36–49 (1989)Google Scholar
- 10.T.J. Biggerstaff, A.J. Perlis: Software Reusability. ACM-Press 1989Google Scholar
- 11.B.A. Burton, R.W. Aragon: The reusable software Library. IEEE Software, July 1987, pp. 25–33Google Scholar
- 12.G. Caldiera, V. Basili: Identifying and Qualifying Reusable software Components. IEEE Computer, Feb. 91, pp. 61–70Google Scholar
- 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.P. Devanbu, R.J. Brachman: LaSSIE: A Knowledge-Based software Information System. CACM 34(5): 34–49, May 1991Google Scholar
- 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.W.B. Frakes, B.A. Nejimeh: An Information System for Software Reuse. Proceedings of the Tenth Minnowbrook Workshop on Software Reuse 1987Google Scholar
- 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.G.E. Kaiser, D. Garlan: Melding Software Systems from Reusable Building Blocks. IEEE Software, July 1987, pp. 17–24Google Scholar
- 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.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.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.B. Meyer: Reusability: The Case of Object-Oriented Design. IEEE Software 4, 2: 50–64, March 1987Google Scholar
- 24.J. Neighbors: The Draco Approach to Constructing software from Reusable Components. IEEE TSE, SE-10(5), p. 564–574, Sept. 1984Google Scholar
- 25.R. Prieto-Diaz, P. Freeman: Classifying Software For Reusability, IEEE Software 4, 1: 6–16, 1987Google Scholar
- 26.R. Prieto-Diaz: Domain analysis for reusability, Proc. of COMPSAC 87, Tokyo, Japan,. pp. 23–29Google Scholar
- 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.R. Riehle: Software components — designing generalized components by creating abstractions. Programmers J., pp. 75–78, Nov./Dec. 1990Google Scholar
- 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.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.W. Tracz: Reusability Comes on Age. IEEE Software, July 1987, pp. 6–8Google Scholar
- 33.W. Tracz: Software Reuse: Motivators and Inhibitors. Proceedings of COMPCON S 87, pp. 358–363Google Scholar