Reusing Analogous Components

Using formal specifications to represent software components facilitates the determination of reusability 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 search, retrieval, and modification of reusable software components. From a two-tiered hierarchy of reusable software components, the existing components that are analogous to the query specification are retrieved from the hierarchy. The specification for an analogous retrieved component is compared to the query specification to determine what changes need to be applied to the corresponding program component in order to make it satisfy the query specification.

[1]  Douglas R. Smith,et al.  KIDS: A Semiautomatic Program Development System , 1990, IEEE Trans. Software Eng..

[2]  Betty H. C. Cheng,et al.  A formal approach to reusing more general components , 1994, Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference.

[3]  John F. Sowa,et al.  Conceptual Structures: Information Processing in Mind and Machine , 1983 .

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

[5]  Betty H. C. Cheng,et al.  A Formal Semantics for Object Model Diagrams , 1995, IEEE Trans. Software Eng..

[6]  Brian Mathews,et al.  Matching conceptual graphs as an aid to requirements re-use , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[7]  Thomas E. Cheatham,et al.  Reusability Through Program Transformations , 1984, IEEE Transactions on Software Engineering.

[8]  JengJun-Jang,et al.  Reusing Analogous Components , 1997 .

[9]  Ali Mili,et al.  Reusing Software: Issues and Research Directions , 1995, IEEE Trans. Software Eng..

[10]  Peter H. Schmitt,et al.  An Order-Sorted Logic for Knowledge Representation Systems , 1992, Artif. Intell..

[11]  Premkumar T. Devanbu,et al.  LaSSIE: a knowledge-based software information system , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[12]  V. Shankararaman,et al.  Application of Case-Based Reasoning (CBR) to Software Reuse , 1995, UK Workshop on Case-Based Reasoning.

[13]  Allen Goldberg Reusing software developments , 1990, SDE.

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

[15]  Premkumar T. Devanbu,et al.  LaSSIE—a knowledge-based software information system , 1991, ICSE '90.

[16]  Zohar Manna,et al.  Fundamentals of Deductive Program Synthesis , 1992, IEEE Trans. Software Eng..

[17]  José Meseguer,et al.  Order-Sorted Algebra I: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations , 1992, Theor. Comput. Sci..

[18]  Nachum Dershowitz The evolution of programs , 1983, Progress in computer science.

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

[20]  Stephen Fickas,et al.  Automating the Transformational Development of Software , 1985, IEEE Transactions on Software Engineering.

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

[22]  Rogers P. Hall,et al.  Computational Approaches to Analogical Reasoning: A Comparative Analysis , 1989, Artif. Intell..

[23]  Rob Kling,et al.  A Paradigm for Reasoning by Analogy , 1971, IJCAI.

[24]  James A. Hendler,et al.  Computing similarity in a reuse library system: an AI-based approach , 1992, TSEM.

[25]  I. Jurisica Representation and Management Issues for Case-Based Reasoning Systems , 1993 .

[26]  Betty H. C. Cheng,et al.  A graphical environment for formally developing object-oriented software , 1994, Proceedings Sixth International Conference on Tools with Artificial Intelligence. TAI 94.

[27]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[28]  Nachum Dershowitz,et al.  Program abstraction and instantiation , 1985, ACM Trans. Program. Lang. Syst..

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

[30]  Betty H. C. Cheng,et al.  Applying Formal Methods in Automated Software Development , 1994 .

[31]  Panos Constantopoulos,et al.  Similarity for Analogical Software Reuse: A Computational Model , 1994, ECAI.

[32]  Hing-Yan Lee Automated acquisition and refinement of reusable software design components , 1992 .

[33]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[34]  Matthias Jarke,et al.  Telos: representing knowledge about information systems , 1990, TOIS.

[35]  Uwe Waldmann,et al.  Semantics of Order-Sorted Specifications , 1992, Theor. Comput. Sci..

[36]  Sanjay Bhansali,et al.  Domain-Based Program Synthesis Using Planning and Derivational Analogy , 1991, AI Mag..

[37]  Betty H. C. Cheng,et al.  Applying formal methods to software reuse , 1993 .

[38]  Neil A. M. Maiden,et al.  Exploiting reusable specifications through analogy , 1992, CACM.

[39]  Betty H. C. Cheng,et al.  Using Formal Methods to Construct a Software Component Library , 1993, ESEC.