Abstract
Software reuse is being pursued in an attempt to improve programmer productivity. The concept of reuse is to permit various work products of software development to be used on more than one project in order to amortize their development costs. Productivity is not the only advantage of reuse although it is the most widely publicized. By incorporating reusable components into a new product, the components bring with them whatever qualities they possess, and these can contribute to the quality of the new product. This suggests that reuse might be exploited for achieving quality as an entirely separate goal from improving productivity. If useful properties pertaining to quality could be shown to be present in products as a direct result of software development based on reuse, this might be a cost-;effective way of achieving those qualities irrespective of the productivity advantages. The adjective certified is sometimes used to describe components that have been tested in some way prior to entry into a library but the term certified is not formally defined in the reuse literature. In this paper, we address the issue of certifying reusable components. We advocate the development of software by reuse with the specific intent of establishing as many of the required properties in the final product as possible by depending upon properties present in the reusable components. For this goal to succeed, a precise definition of certification of reusable components is required and such a definition is presented. The benefits of the definition and the way in which it supports the goal are explored.
Similar content being viewed by others
References
Andrews, D.M. and J.P. Benson (1981), “Automated Program Testing Methodology and Its Implementation,” In Proceedings the Fifth International Conference Software Engineering, IEEE Computer Society Press, Los Alamitos, CA, pp. 254–261.
Barnes, B., T. Durek, J. Gaffney and A. Pyster (1987), “A Framework and Economic Foundation for Software Reuse,” In Proceedings of the Workshop on Software Reusability and Maintainability, National Institute of Software Quality and Productivity, Boulder, CO.
Bassett, P.G. (1987), “Frame-Based Software Engineering,” IEEE Software 4, 4, 9–16.
Biggerstaff, T.J. and C. Richter (1987), “Reusability Framework, Assessment, and Directions,” IEEE Software 4, 2, 41–49.
Caldiera, G. and V.R. Basili (1991), “Identifying and Qualifying Reusable Software Components,” IEEE Computer 24, 2, 61–70.
Clough, A., S. David and P. Roberts (1989), Software Quality Evaluation for Reusable Components, The Charles Stark Draper Laboratory, Cambridge, MA.
Dowson, M. (1987), Personal communication.
Fagan, M.E. (1986), “Advances in Software Inspections,” IEEE Transactions on Software Engineering, 12, 7, 744–751.
Freeman, P., Ed. (1988), Software Reuse: Emerging Technology, IEEE Computer Society Press, Los Alamitos, CA.
Gargaro, A. and T.L. Pappas (1987), “Reusability Issues and Ada,” IEEE Software 4, 4, 43–51.
Horowitz, E. and J.B. Munson (1984), “An Expansive View of Reusable Software,” IEEE Transactions on Software Engineering 10, 5, 477–487.
Howell, C. and D. Mularz (1991), “Exception Handling in Large Ada Systems,” Technical Report, MITRE Corporation, McLean, VA.
Jones, C.B. (1986), Systematic Software Development Using VDM, Prentice-Hall, Englewood Cliffs, NJ.
Lenz, M., H.A. Schmid and P.F. Wolf (1987), “Software Reuse Through Building Blocks,” IEEE Software 4, 4, 34–42.
Leveson, N.G., S.S. Cha, T.J. Shimeall and J.C. Knight (1990), “The Use Self Checks And Voting in Software Error Detection: An Empirical Study,” IEEE Transactions Software on Engineering 16, 4, 432–443.
Luckham, D.C. and F.W. von Henke (1985), “An Overview of Anna, A Specification Language For Ada,” IEEE Software 2, 2, 47–57.
McCabe, T.J. (1976), “A Complexity Measure,” IEEE Transactions Software Engineering 2, 4, 308–320.
Meyer, B. (1988), “EIFFEL: Reusability and Reliability,” In Software Reuse: Emerging Technology, Tracz, W., Ed., IEEE Computer Society Press, Los Alamitos, CA, pp. 216–228.
Naher, S. and C. Uhrig (1997), The LEDA User Manual, Max-Planck-Institut für Informatik, Saarbrüc, Germany, http://www.informatik.uni-halle.de/ naeher/Manual/MANUAL.html.
Ogden, W.F., M. Sitaraman, B.W. Weide and S.H. Zweben (1994), “The RESOLVE Framework and Discipline – A Research Synopsis,” ACM SIGSOFT Software Engineering Notes 19, 4, 23–28.
Research Triangle Institute (1993), Certification of Reusable Software Components, Center for Digital Systems Research, Research Triangle Institute, Research Triangle Park, NC.
Prieto-Diaz, R. (1990), “Domain Analysis: An Introduction,” ACM SIGSOFT Software Engineering Notes 15, 2, 47–54.
Rice, J. and H. Schwetman (1989), “Interface Issues In A Software Parts Technology,” In Software Reusability, T. Biggerstaff and A. Perlis, Eds., Addison-Wesley, Reading, MA, pp. 125–139.
Software Productivity Consortium (1989), Ada Quality and Style: Guidelines for Professional Programmers, Van Nostrand Reinhold, New York, NY.
Software Productivity Solutions (1996), Certification Framework, Software Productivity Solutions Inc., Indialantic, FL.
Tracz, W. (1988), “Software Reuse Myths,” ACM SIGSoft: Software Engineering Notes 13, 1, 17–21.
Tracz, W., Ed. (1988), Software Reuse: Emerging Technology, IEEE Computer Society Press, Los Alamitos, CA.
U.S. Department of Defense, Ada Joint Program Office (1983), Reference Manual For The Ada Programming Language, ANSI/MIL-STD-1815A, U.S. Department of Defense, Washington, DC.
Weide, B.W. and J.E. Hollingsworth (1994), On Local Certifiability of Software Components, Technical Report OSU-CISRC-1/94-TR04, Department of Computer and Information Sciences, Ohio State University, Columbus, OH.
Wohlin, C. and P. Runeson (1994), “Certification of Software Components,” IEEE Transactions on Software Engineering 20, 6, 494–499.
Zelkowitz, M., J. Gannon and A. Shaw (1979), Principles of Software Engineering and Design, Prentice-Hall, Englewood Cliffs, NJ.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Knight, J.C., Dunn, M.F. Software quality through domain-;driven certification. Annals of Software Engineering 5, 293–315 (1998). https://doi.org/10.1023/A:1018960021044
Issue Date:
DOI: https://doi.org/10.1023/A:1018960021044