Analogy and complex software modeling

Abstract Research on software reuse has to a large extent focused on lowlevel software components. However, facilitating genuinely efficient reuse of software requires knowledge of a previous situation in which a system behaves in some deep and fundamental sense analogically to the system to be constructed. Achieving this goal can only be done by reuse at the highest level of description, that is, at the analysis level. In this paper we present the ROSA project, where we study how to implement support for reuse of analysis models by analogy. The focus is on how to retrieve analogies, how to map them, and how to transfer knowledge from one problem situation to a new problem situation. We base our presentation on work in cognitive psychology, cognitive science, artificial intelligence, and software reuse.

[1]  Mark T. Keane Analogical problem solving , 1988 .

[2]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[3]  Maria Grazia Fugini,et al.  Retrieval of reusable components in a development information system , 1993, [1993] Proceedings Advances in Software Reuse.

[4]  M. Burstein Combining Analogies in Mental Models , 1988 .

[5]  Rubén Prieto-Díaz Implementing faceted classification for software reuse , 1991, CACM.

[6]  Betty H. C. Cheng,et al.  Using analogy and formal methods for software reuse , 1993, Proceedings of 1993 IEEE Conference on Tools with Al (TAI-93).

[7]  Stephen Owen,et al.  Analogy for automated reasoning , 1990, Perspectives in artificial intelligence.

[8]  Valeria De Antonellis,et al.  Reusing Specifications Through Refinement Levels , 1995, Data Knowl. Eng..

[9]  T. Biggerstaff,et al.  Reusability Framework, Assessment, and Directions , 1987, IEEE Software.

[10]  Anthony Finkelsteiin,et al.  Re-use of formatted requirements specifications , 1988 .

[11]  Brian H. Ross,et al.  Remindings in learning and instruction , 1989 .

[12]  J. Carbonell Learning by Analogy: Formulating and Generalizing Plans from Past Experience , 1983 .

[13]  Brian Falkenhainer,et al.  The Structure-Mapping Engine: Algorithm and Examples , 1989, Artif. Intell..

[14]  Rand J. Spiro,et al.  Multiple analogies for complex concepts: antidotes for analogy-induced misconception in advanced knowledge acquisition , 1988 .

[15]  R. Prieto-Diaz,et al.  Classification of reusable modules , 1989 .

[16]  Will Tracz,et al.  Software reuse - emerging technology , 1988 .

[17]  Agnar Aamodt,et al.  Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches , 1994, AI Commun..

[18]  Rubén Prieto-Díaz,et al.  Software reusability , 1993 .

[19]  Γεωργιοσ Σπανουδακησ ANALOGICAL SIMILARITY OF OBJECTS: A CONCEPTUAL MODELING APPROACH , 1994 .

[20]  Ann L. Brown Analogical learning and transfer: what develops? , 1989 .

[21]  Paul Thagard,et al.  A computational model of analogical problem solving , 1989 .

[22]  A. Ortony,et al.  Similarity and Analogical Reasoning , 1991 .

[23]  Jaime G. Carbonell,et al.  Derivational Analogy and Its Role in Problem Solving , 1983, AAAI.

[24]  Mark A. Linton,et al.  Unidraw: a framework for building domain-specific graphical editors , 1990, TOIS.

[25]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[26]  Neil A. M. Maiden,et al.  Analogical specification reuse during requirements analysis , 1992 .

[27]  Trygve Reenskaug,et al.  Working with objects - the OOram software engineering method , 1995 .

[28]  Ruben Prieto-Diaz,et al.  Domain analysis for reusability , 1988 .

[29]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[30]  D. Gentner Structure‐Mapping: A Theoretical Framework for Analogy* , 1983 .

[31]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

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

[33]  S. Vosniadou Analogical reasoning as a mechanism in knowledge acquisition: a developmental perspective , 1988 .

[34]  Smadar T. Kedar-Cabelli,et al.  Analogy — From a Unified Perspective , 1988 .

[35]  Erich Gamma,et al.  ET++—an object oriented application framework in C++ , 1988, OOPSLA 1988.

[36]  Patrick Henry Winston,et al.  Learning and reasoning by analogy , 1980, CACM.

[37]  Glenn Shafer,et al.  A Mathematical Theory of Evidence , 2020, A Mathematical Theory of Evidence.

[38]  Paul Thagard,et al.  Analogical Mapping by Constraint Satisfaction , 1989, Cogn. Sci..

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

[40]  Neil Maiden,et al.  Integrated Software Reuse: Management and Techniques , 1993 .

[41]  Janet L. Kolodner,et al.  Reconstructive Memory: A Computer Model , 1983, Cogn. Sci..

[42]  Dedre Gentner,et al.  ANALOGICAL REMINDING: A GOOD MATCH IS HARD TO FIND. , 1985 .

[43]  Douglas R. Hofstadter,et al.  Fluid Concepts and Creative Analogies , 1995 .

[44]  Marvin Minsky,et al.  Semantic Information Processing , 1968 .

[45]  B. Cheng,et al.  Specification matching for software reuse: a foundation , 1995, SSR '95.

[46]  L.S. Sorumgard,et al.  Experiences from application of a faceted classification scheme , 1993, [1993] Proceedings Advances in Software Reuse.

[47]  Ralph Johnson Documenting frameworks using patterns , 1992, OOPSLA 1992.

[48]  Kenneth D. Forbus,et al.  MAC/FAC: A Model of Similarity-Based Retrieval , 1995, Cogn. Sci..

[49]  Pier Luigi Iachini,et al.  The generic reusable component: an approach to reuse hierarchical OO designs , 1993, [1993] Proceedings Advances in Software Reuse.

[50]  Bipin Indurkhya,et al.  Approximate Semantic Transference: A Computational Theory of Metaphors and Analogies , 1987 .

[51]  John R. Anderson,et al.  MACHINE LEARNING An Artificial Intelligence Approach , 2009 .

[52]  Matthias Jarke,et al.  On the retrieval of reusable software components , 1993, [1993] Proceedings Advances in Software Reuse.