Abstract
Reusing software may greatly increase the productivity of software engineers and improve the quality of developed software. Software component libraries have been suggested as a means for facilitating reuse. Using formal specifications to represent software components facilitates the determination of reusable software because they more precisely characterize the functionality of the software, and the well-defined syntax makes processing amenable to automation. This paper presents an approach, based on formal methods, to the classification and organization of reusable software components. From a set of formal specifications, a two-tiered hierarchy of software components is constructed. The formal specifications represent software that has been implemented and verified for correctness. The hierarchical organization of the software component specifications provides a means for storing, browsing, and retrieving reusable components that is amenable to automation. A prototype browser that provides a graphical framework for the classification and retrieval process is also described.
The work is supported in part by NSF grant CCR-9209873 and a Michigan State University All University Research Initiation Grant.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Ted J. Biggerstaff. An Assessment and Analysis of Software Reuse. In Marshall C. Yovits, editor, Advances in Computers, volume 34, pages 1–57. 1992.
Ted J. Biggerstaff, editor. Software Reusability Vol. 1; Concepts and Models. ACM Press, New York, 1989.
Ted J. Biggerstaff, editor. Software Reusability Vol. 2: Applications and Experience. ACM Press, New York, 1989.
Charles W. Krueger. Software Reuse. ACM Computing Surveys, 24(2):131–183, June 1992.
Y.S. Maarek, D.M. Berry, and G.E. Kaiser. An Information Retrieval Approach for Automatic Constructing Software Libraries. IEEE Trans. Software Engineering, 17(8):800–813, August 1991.
R. Helm and Y.S. Maarek. Integrating Information Retrieval and Domain Specific Approaches for Browsing and Retrieval in Object-Oriented Class Libraries. In Proceedings of OOPSLA'91, pages 47–61, 1991.
Betty H.C. Cheng and Jun-Jang Jeng. Formal methods applied to reuse. In Proceedings of the Fifth Workshop in Software Reuse, 1992.
Jun-Jang Jeng and Betty H.C. Cheng. Using Automated Reasoning to Determine Software Reuse. International Journal of Software Engineering and Knowledge Engineering, 2(4):523–546, December 1992.
R.L. London. Specifying Reusable Components Using Z: Realistic Sets and Dictionaries. ACM SIGSOFT Software Engineering Notes, 14(3):120–127, May 1989.
F. Nishida, S. Takamatsu, Y. Fujita, and T. Tani. Semi-Automatic Program Construction from Specification Using Library Modules. IEEE Transaction on Software Engineering, 17(9):853–870, 1991.
C. Rich and R.C. Waters. Formalizing Reusable Software Components. In Proc. Workshop on Reusability in Programming, pages 152–158, Newport, RI, September 1983.
B.W. Weide, W.F. Ogden, and S.H. Zweben. Reusable Software Components. Advances in Computers, 33:1–65, 1991.
Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8–24, September 1990.
G. Caldiera and V. Basili. Identifying and Qualifying Reusable Software Components. IEEE Computer, 24(2):61–70, Febrary 1991.
Barbara Liskov and John Guttag. Abstraction and Specification in Program Development. MIT Press and McGraw-Hill, Cambridge, 1986.
Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener. Designing Object-Oriented Software. Prentice Hall, Englewood, New Jersey, 1990.
James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs, New Jersey, 1991.
Peter Coad and Edward Yourdon. Object-Oriented Analysis. Yourdon Press, Prentice Hall, Englewood, New Jersey, 1990.
Bertrand Meyer. Object-Oriented Software Construction. Prentice Hall, Englewood, New Jersey, 1988.
Keith E. Gorlen, Sanford M. Orlow, and Perry S. Plexico. Data Abstraction and Object-oriented Programming in C++. John Wiley & Sons, 1990.
Ann L. Winblad, Samuel D. Edwards, and David R. King. Object-Oriented Software. Addison-Wesley, Publishing Company Inc., 1990.
Betty Hsiao-Chih Cheng. Synthesis of Procedural and Data Abstractions. PhD thesis, University of Illinois at Urbana-Champaign, 1304 West Springfield, Urbana, Illinois 61801, August 1990. Tech Report UIUCDCS-R-90-1631.
Stephen Bear. An Overview of HP-SL. Technical report, Hewlett Packard Laboratories, March 1991.
Chin-Liang Chang and Richard Char-Tung Lee. Symbolic Logic and Mechanical Theorem Proving. Academic Press, 1973.
J.A. Robinson. A Machine Oriented Logic Based on Resolution Principle. Journal of ACM, 12(1):227–234, 1965.
S. Miyamoto. Fuzzy Sets in Informational Retrieval and Cluster Analysis. Kluwer Academai Publishers, 1990.
D.H. Ballard and C.M. Brown. Computer Vision. Prentice-Hall, Englewood Cliffs, New Jersey, 1982.
J.B. Kruskal. On the shortest spanning subtree of a graph and the traveling salesman problem. In Proc. of the American Mathematical Society, 1956.
Douglas K. Pierce and Betty H.C. Cheng. Intelligent Browser for Formal Specifications of Software Components. Technical Report MSU-CPS-91-14, Department of Computer Science, Michigan State University, 1991.
Robert H. Bourdeau and Betty H.C. Cheng. An object-oriented toolkit for constructing specification editors. In Proceedings of COMPSAC'92: Computer Software and Applications Conference, pages 239–244, September 1992.
Michael R. Laux, Robert H. Bourdeau, and Betty H.C. Cheng. An integrated development environment for formal specifications. In Proc. of IEEE International Conference on Software Engineering and Knowledge Engineering, San Francisco, California, July 1993.
M. V. LaPolla, J. L. Sharnowski, B. H. C. Cheng, and K. Anderson. Data parallel program visualizations from formal specifications. Journal of Parallel and Distributed Computing, May 1993.
Betty H.C. Cheng and Gerald C. Gannod. Constructing formal specifications from program code. In Proc. of Third International Conference on Tools in Artificial Intelligence, pages 125–128, November 1991.
Gerald C. Gannod and Betty H.C. Cheng. A two-phase approach to reverse engineering using formal methods. In Proc. of Formal Methods in Programming and Their Applications Conference, June 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jeng, J.J., Cheng, B.H.C. (1993). Using formal methods to construct a software component library. In: Sommerville, I., Paul, M. (eds) Software Engineering — ESEC '93. ESEC 1993. Lecture Notes in Computer Science, vol 717. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57209-0_27
Download citation
DOI: https://doi.org/10.1007/3-540-57209-0_27
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57209-1
Online ISBN: 978-3-540-47972-7
eBook Packages: Springer Book Archive