Abstract
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.
Preview
Unable to display preview. Download preview PDF.
References
G. Arango: Domain Analysis: From art form to Engineering discipline. ACM, pp.152–159 (1989)
S.P., Arnold, S.L. Stepoway: The Reuse System: Cataloging and Retrieval of Reuse Software. Proceedings of COMPCON 1987, pp. 376–379
V.R. Basili, H.D. Rombach: Support for comprehensive reuse,. Software Eng. J., Sept. 1991, pp. 303–316
B. Beizer: Software Testing Techniques. Van Nostrand Reinhold, 2nd ed., (1990)
L.A. Belady: Foreword. in: Software Reusability (vol. I), Concepts and Models,. Addison Wesley, p. vii–viii (1989)
H. Berlack: Software Configuration Management. Wiley 1992
T.J. Biggerstaff, A.J. Perlis: Foreword (Special issue on software Reusability). IEEE Transactions on SE, Sept. 1984, pp. 474–476
T. Biggerstaff, Ch. Richter: Reusability Framework, Assessment, and Directions. IEEE Software 4(2): 41–49, March 1987
T. Biggerstaff: Design recovery for maintenance and reuse. IEEE Computer 22(7): 36–49 (1989)
T.J. Biggerstaff, A.J. Perlis: Software Reusability. ACM-Press 1989
B.A. Burton, R.W. Aragon: The reusable software Library. IEEE Software, July 1987, pp. 25–33
G. Caldiera, V. Basili: Identifying and Qualifying Reusable software Components. IEEE Computer, Feb. 91, pp. 61–70
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.
P. Devanbu, R.J. Brachman: LaSSIE: A Knowledge-Based software Information System. CACM 34(5): 34–49, May 1991
R. Fairley, S. Pfleeger et al.: Final Report: Incentives for Reuse of Ada Components. vols. 1 through 5, George Mason University, Fairfax, Va., 1989
W.B. Frakes, B.A. Nejimeh: An Information System for Software Reuse. Proceedings of the Tenth Minnowbrook Workshop on Software Reuse 1987
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)
G.E. Kaiser, D. Garlan: Melding Software Systems from Reusable Building Blocks. IEEE Software, July 1987, pp. 17–24
R.G. Lanergan, Ch.A. Grasso: Software Engineering with Reusable Designs and Code. IEEE TSE SE-10(5): 498–501, Sept. 1984
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–196
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, 1987
B. Meyer: Reusability: The Case of Object-Oriented Design. IEEE Software 4, 2: 50–64, March 1987
W. Myers: We Want to Write Less Code. Computer 23(7): 117–118, July 1990
J. Neighbors: The Draco Approach to Constructing software from Reusable Components. IEEE TSE, SE-10(5), p. 564–574, Sept. 1984
R. Prieto-Diaz, P. Freeman: Classifying Software For Reusability, IEEE Software 4, 1: 6–16, 1987
R. Prieto-Diaz: Domain analysis for reusability, Proc. of COMPSAC 87, Tokyo, Japan,. pp. 23–29
R. Prieto-Diaz: Making software Reuse work: an implementation model. ACM SIGSOFT SE Not. 16(3): 61–68, July 1991
H.B. Reubenstein, R.C. Waters: The Requirements Apprentice: Automated Assistance for Requirements Acquisition. IEEE TSE, Vol. 17, No.3, March 91, pp. 226–240
R. Riehle: Software components — designing generalized components by creating abstractions. Programmers J., pp. 75–78, Nov./Dec. 1990
R. Selby: Quantitative Studies of Software Reuse. in: Software Reusability: Vol. II Applications and Experience, ed. T. Biggerstaff and A.J.Perlis, 213–33, 1989
D. Taenzer, M. Ganti, S. Podar: Object-Oriented Software Reuse: The Yoyo Problem. Journal of Object-Oriented Programming 2(3):30–35, 1989
W. Tracz: Reusability Comes on Age. IEEE Software, July 1987, pp. 6–8
W. Tracz: Software Reuse: Motivators and Inhibitors. Proceedings of COMPCON S 87, pp. 358–363
R.C. Waters, Y.M. Tan: Toward a Design Apprentice: Supporting Reuse and Evolution in Software Design. Software Engineering Notes 16(2): 33–44, 1991
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Grechenig, T., Biffl, S. (1993). Introducing a software reuse culture in practice. In: Díaz-Herrera, J.L. (eds) Software Engineering Education. CSEE 1994. Lecture Notes in Computer Science, vol 750. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017639
Download citation
DOI: https://doi.org/10.1007/BFb0017639
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57461-3
Online ISBN: 978-3-540-48191-1
eBook Packages: Springer Book Archive