Skip to main content

Using formal methods to construct a software component library

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 717))

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.

Unable to display preview. Download preview PDF.

References

  1. Ted J. Biggerstaff. An Assessment and Analysis of Software Reuse. In Marshall C. Yovits, editor, Advances in Computers, volume 34, pages 1–57. 1992.

    Google Scholar 

  2. Ted J. Biggerstaff, editor. Software Reusability Vol. 1; Concepts and Models. ACM Press, New York, 1989.

    Google Scholar 

  3. Ted J. Biggerstaff, editor. Software Reusability Vol. 2: Applications and Experience. ACM Press, New York, 1989.

    Google Scholar 

  4. Charles W. Krueger. Software Reuse. ACM Computing Surveys, 24(2):131–183, June 1992.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. Betty H.C. Cheng and Jun-Jang Jeng. Formal methods applied to reuse. In Proceedings of the Fifth Workshop in Software Reuse, 1992.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. R.L. London. Specifying Reusable Components Using Z: Realistic Sets and Dictionaries. ACM SIGSOFT Software Engineering Notes, 14(3):120–127, May 1989.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. C. Rich and R.C. Waters. Formalizing Reusable Software Components. In Proc. Workshop on Reusability in Programming, pages 152–158, Newport, RI, September 1983.

    Google Scholar 

  12. B.W. Weide, W.F. Ogden, and S.H. Zweben. Reusable Software Components. Advances in Computers, 33:1–65, 1991.

    Google Scholar 

  13. Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8–24, September 1990.

    Google Scholar 

  14. G. Caldiera and V. Basili. Identifying and Qualifying Reusable Software Components. IEEE Computer, 24(2):61–70, Febrary 1991.

    Google Scholar 

  15. Barbara Liskov and John Guttag. Abstraction and Specification in Program Development. MIT Press and McGraw-Hill, Cambridge, 1986.

    Google Scholar 

  16. Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener. Designing Object-Oriented Software. Prentice Hall, Englewood, New Jersey, 1990.

    Google Scholar 

  17. James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs, New Jersey, 1991.

    Google Scholar 

  18. Peter Coad and Edward Yourdon. Object-Oriented Analysis. Yourdon Press, Prentice Hall, Englewood, New Jersey, 1990.

    Google Scholar 

  19. Bertrand Meyer. Object-Oriented Software Construction. Prentice Hall, Englewood, New Jersey, 1988.

    Google Scholar 

  20. Keith E. Gorlen, Sanford M. Orlow, and Perry S. Plexico. Data Abstraction and Object-oriented Programming in C++. John Wiley & Sons, 1990.

    Google Scholar 

  21. Ann L. Winblad, Samuel D. Edwards, and David R. King. Object-Oriented Software. Addison-Wesley, Publishing Company Inc., 1990.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. Stephen Bear. An Overview of HP-SL. Technical report, Hewlett Packard Laboratories, March 1991.

    Google Scholar 

  24. Chin-Liang Chang and Richard Char-Tung Lee. Symbolic Logic and Mechanical Theorem Proving. Academic Press, 1973.

    Google Scholar 

  25. J.A. Robinson. A Machine Oriented Logic Based on Resolution Principle. Journal of ACM, 12(1):227–234, 1965.

    Google Scholar 

  26. S. Miyamoto. Fuzzy Sets in Informational Retrieval and Cluster Analysis. Kluwer Academai Publishers, 1990.

    Google Scholar 

  27. D.H. Ballard and C.M. Brown. Computer Vision. Prentice-Hall, Englewood Cliffs, New Jersey, 1982.

    Google Scholar 

  28. J.B. Kruskal. On the shortest spanning subtree of a graph and the traveling salesman problem. In Proc. of the American Mathematical Society, 1956.

    Google Scholar 

  29. 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.

    Google Scholar 

  30. 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.

    Google Scholar 

  31. 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.

    Google Scholar 

  32. 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.

    Google Scholar 

  33. 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.

    Google Scholar 

  34. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Ian Sommerville Manfred Paul

Rights and permissions

Reprints 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

Publish with us

Policies and ethics