Using Formal Methods to Construct a Software Component Library

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.

[1]  Gail E. Kaiser,et al.  An Information Retrieval Approach For Automatically Constructing Software Libraries , 1991, IEEE Trans. Software Eng..

[2]  Ted J. Biggerstaff,et al.  Applications and experience , 1989 .

[3]  Betty H. C. Cheng,et al.  An Integrated Development Environment for Formal Specifications , 1993, SEKE.

[4]  Gill Smith,et al.  Object-oriented analysis , 1988, WADAS '88.

[5]  Ted J. Biggerstaff,et al.  Software reusability: vol. 1, concepts and models , 1989 .

[6]  Yoelle Maarek,et al.  Integrating information retrieval and domain specific approaches for browsing and retrieval in object-oriented class libraries , 1991, OOPSLA '91.

[7]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[8]  Barbara Liskov,et al.  Abstraction and Specification in Program Development , 1986 .

[9]  Yoelle Maarek,et al.  Integrating Information Retrieval and Domain Specific Approaches for Browsing and Retrieval in Object-Oriented Class Libraries , 1991, OOPSLA.

[10]  Richard C. Waters,et al.  FORMALIZING REUSABLE SOFTWARE COMPONENTS , 1983 .

[11]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[12]  Ted J. Biggerstaff,et al.  An Assessment and Analysis of Software Reuse , 1992, Adv. Comput..

[13]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[14]  Azriel Rosenfeld,et al.  Computer Vision , 1988, Adv. Comput..

[15]  R. L. London,et al.  Specifying reusable components using Z: realistic sets and dictionaries , 1989, IWSSD '89.

[16]  Betty H. C. Cheng,et al.  An object-oriented toolkit for constructing specification editors , 1992, [1992] Proceedings. The Sixteenth Annual International Computer Software and Applications Conference.

[17]  Tadaaki Tani,et al.  Semi-Automatic Program Construction From Specifications Using Library Modules , 1991, IEEE Trans. Software Eng..

[18]  Ted J. Biggerstaff,et al.  Software reusability: vol. 2, applications and experience , 1989 .

[19]  Betty H. C. Cheng,et al.  Abstraction of formal specifications from program code , 1991, [Proceedings] Third International Conference on Tools for Artificial Intelligence - TAI 91.

[20]  Stuart H. Zweben,et al.  Reusable Software Components , 1991, Adv. Comput..

[21]  O. S. Andersen,et al.  Concepts and Models , 1978, Membrane Transport in Biology.

[22]  R. L. Crane,et al.  A Predictor-Corrector Algorithm with an Increased Range of Absolute Stability , 1965, JACM.

[23]  J. Kruskal On the shortest spanning subtree of a graph and the traveling salesman problem , 1956 .

[24]  Betty H. C. Cheng,et al.  A Two-Phase Approach to Reverse Engineering Using Formal Methods , 1993, Formal Methods in Programming and Their Applications.

[25]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[26]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[27]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[28]  Richard C. T. Lee,et al.  Symbolic logic and mechanical theorem proving , 1973, Computer science classics.

[29]  Ted J. Biggerstaff,et al.  Concepts and models , 1989 .

[30]  Victor R. Basili,et al.  Identifying and qualifying reusable software components , 1991, Computer.

[31]  David R. King,et al.  Object-oriented software , 1990 .

[32]  Betty H. C. Cheng,et al.  Using Automated Reasoning Techniques to Determine Software Reuse , 1992, Int. J. Softw. Eng. Knowl. Eng..

[33]  Perry S. Plexico,et al.  Data abstraction and object-oriented programming in C++ , 1990 .

[34]  Stephen Bear,et al.  An Overview of HP-SL , 1991, VDM Europe.

[35]  Betty H. C. Cheng,et al.  Data Parallel Program Visualizations from Formal Specifications , 1993, J. Parallel Distributed Comput..

[36]  Betty H. C. Cheng,et al.  Synthesis of procedural and data abstractions , 1990 .