Algorithmen zur Begriffsanalyse und ihre Anwendung bei Softwarebibliotheken

Formale Begriffsanalyse ist eine algebraische Theorie uber binare Relationen und zu ihnen in enger Verbindung stehende vollstandige Verbande. Diese Arbeit prasentiert Algorithmen und Datenstrukturen zur Berechnung von Begriffen und ihrer Verbandsstruktur. Da die Anzahl der Begriffe im ungunstigsten Fall exponentiell mit der Grose der Relation ansteigen kann, wurde der Komplexitat der Algorithmen besondere Aufmerksamkeit geschenkt. Sowohl die Laufzeit der Algorithmen, als auch die tatsachliche Grose von Begriffsverbanden wurde durch eine Vielzahl von Experimenten untersucht. Sie zeigen, das fur praktische Anwendungen die Laufzeit der Algorithmen und die Grose der Verbande nur quadratisch von der Grose der Relation abhangt. Als Anwendung der Begriffsanalyse wird die Organisation einer Bibliothek wiederverwendbarer Software-Komponenten vorgeschlagen. Softwarewiederverwendung zielt auf eine Steigerung der Software-Qualitat und der Produktivitat bei ihrer Erstellung. Die vorgeschlagene Methode vereinigt eine leichte Wartbarkeit der Komponentensammlung mit einer starken Unterstutzung fur den Anwender bei der Suche nach Komponenten. Das Werkzeug zur Suche verwendet als Datenstruktur den Begriffsverband, der einmalig fur eine Sammlung berechnet wird. Der Verband enthalt im Wesentlichen alle Entscheidungsmoglichkeiten eines Anwenders bei der Suche nach Komponenten und unterstutzt die effiziente Bearbeitung einer Anfrage. Zusatzlich kann mit Hilfe des Verbandes die Qualitat der Indexierung von Softwarekomponenten beurteilt werden.

[1]  William V. Snyder Classifying Software For Reuse , 1993 .

[2]  Robert J. Hall,et al.  Generalized behavior-based retrieval , 1993, ICSE '93.

[3]  Xavier Leroy,et al.  Polymorphism by name for references and continuations , 1993, POPL '93.

[4]  Gregor Snelting,et al.  Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[5]  Patrick Lincoln,et al.  Efficient implementation of lattice operations , 1989, TOPL.

[6]  Gerard Salton,et al.  Improving Retrieval Performance by Relevance Feedback , 1997 .

[7]  Edward Yourdon Decline and Fall of the American Programmer , 1992 .

[8]  John C. Mitchell,et al.  On the Relationship Between Classes, Objects, and Data Abstraction , 1998, Theory Pract. Object Syst..

[9]  Brad A. Myers,et al.  User-interface tools: introduction and survey , 1989, IEEE Software.

[10]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[11]  Rubén Prieto Díaz Status Report: Software Reusability. , 1993 .

[12]  Michael McGill,et al.  Introduction to Modern Information Retrieval , 1983 .

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

[14]  Rolf Adams An Experiment in Software Retrieval , 1993, ESEC.

[15]  Larry Fitzpatrick,et al.  Automatic feedback using past queries: social searching? , 1997, SIGIR '97.

[16]  Ian Sommerville,et al.  An information retrieval system for software components , 1988, SIGF.

[17]  Gregor Snelting,et al.  Reengineering of configurations based on mathematical concept analysis , 1996, TSEM.

[18]  William B. Frakes,et al.  An information system for software reuse , 1988 .

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

[20]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[21]  Susan L. Graham,et al.  An execution profiler for modular programs , 1983, Softw. Pract. Exp..

[22]  James G. Schmolze,et al.  The KL-ONE family , 1992 .

[23]  Christopher League Review of Isomorphisms of Types:: from λ-calculus to information retrieval and language design by Roberto Di Cosmo (Birkhauser, 1995) , 1997, SIGA.

[24]  John C. Mitchell,et al.  Type Systems for Programming Languages , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[25]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[26]  Atul Prakash,et al.  A Framework for Source Code Search Using Program Patterns , 1994, IEEE Trans. Software Eng..

[27]  Gerhard Fischer,et al.  Helgon: extending the retrieval by reformulation paradigm , 1989, CHI '89.

[28]  Ellis Horowitz,et al.  A survey of Application Generators , 1985, IEEE Software.

[29]  Gregor Snelting,et al.  The PSG system: from formal language definitions to interactive programming environments , 1986, TOPL.

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

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

[32]  Robert Godin,et al.  Design of a browsing interface for information retrieval , 1989, SIGIR '89.

[33]  Niklaus Wirth,et al.  Programming in Modula-2 , 1985, Texts and Monographs in Computer Science.

[34]  Frank Vogt,et al.  TOSCANA - a Graphical Tool for Analyzing and Exploring Data , 1994, GD.

[35]  G. L. Steele Common Lisp , 1990 .

[36]  Burkhard Freitag A Hypertext-Based Tool for Large Scale Software Reuse , 1994, CAiSE.

[37]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[38]  Richard M. Stallman,et al.  Gnu Emacs Manual , 1996 .

[39]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[40]  John Dawes,et al.  The VDM-SL Reference Guide , 1991 .

[41]  William B. Frakes,et al.  An Empirical Study of Representation Methods for Reusable Software Components , 1994, IEEE Trans. Software Eng..

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

[43]  Bernhard Rumpe,et al.  Towards a Formalization of the Unified Modeling Language , 1997, ECOOP.

[44]  Frank Tip,et al.  Reengineering class hierarchies using concept analysis , 1998, SIGSOFT '98/FSE-6.

[45]  Rokia Missaoui,et al.  Experimental Comparison of Navigation in a Galois Lattice with Conventional Information Retrieval Methods , 1993, Int. J. Man Mach. Stud..

[46]  Jeannette M. Wing,et al.  Signature matching: a key to reuse , 1993, SIGSOFT '93.

[47]  Robert G. Babb,et al.  Choosing A User Interface Development Tool , 1997, IEEE Softw..

[48]  Sergei O. Kuznetsov,et al.  Learning of Simple Conceptual Graphs from Positive and Negative Examples , 1999, PKDD.

[49]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[50]  Bernhard Ganter,et al.  Stepwise Construction of the Dedekind-MacNeille Completion (Research Note) , 1998, ICCS.

[51]  Xavier Leroy,et al.  Applicative functors and fully transparent higher-order modules , 1995, POPL '95.

[52]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[53]  David R. Musser,et al.  STL tutorial and reference guide - C++ programming with the standard template library , 1996, Addison-Wesley professional computing series.

[54]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[55]  Hsien-Chou Liao,et al.  A domain-independent software reuse framework based on a hierarchical thesaurus , 1998 .

[56]  C. J. Date An Introduction to Database Systems , 1975 .

[57]  Jeannette M. Wing,et al.  Specification matching of software components , 1997 .

[58]  Mikael Rittri,et al.  Using types as search keys in function libraries , 1989, Journal of Functional Programming.

[59]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

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

[61]  Bernd Fischer,et al.  Deduction-based software component retrieval , 2001, Ausgezeichnete Informatikdissertationen.

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

[63]  Scott Henninger,et al.  An evolutionary approach to constructing effective software reuse repositories , 1997, TSEM.

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

[65]  Jeannette M. Wing,et al.  Signature matching: a tool for using software libraries , 1995, TSEM.

[66]  Andy Podgurski,et al.  Retrieving reusable software by sampling behavior , 1993, TSEM.

[67]  Charles L. A. Clarke,et al.  An Algebra for Structured Text Search and a Framework for its Implementation , 1995, Comput. J..

[68]  Roland Mittermeir,et al.  Storing and retrieving software components: a refinement based system , 1994, ICSE '94.

[69]  Thomas W. Reps,et al.  Identifying Modules via Concept Analysis , 1999, IEEE Trans. Software Eng..

[70]  Roger F. Crew ASTLOG: A Language for Examining Abstract Syntax Trees , 1997, DSL.