Views for Tools in Integrated Environments

Integrated environments have the desirable property that the tools in them may share a database of common structures. But they have the undesirable property that tools are hard to add to an environment because typically a single representation of the database must serve the needs of all tools. The solution described in this thesis allows an implementor to define each tool in terms of a collection of "views" of the objects to be manipulated. A view is a description of a common database, defined in such a way that objects can be shared among a collection of tools, each tool accessing objects through the views it defines. New tools are thus added by defining new views. The common database then becomes the synthesis of all of the views defined by the tools in the environment. Three view mechanisms are described. The first, called basic views, is based on a strongly-typed, object-oriented framework in which views provide multiple cooperating type descriptions of database objects. The notions of view compatibility and consistency are formalized, and a proof is given that compatible views lead to consistent databases. The second mechanism, called dynamic views, allows an implementor to define dynamically-updated and associatively-retrieved collections of objects within the context of basic views. The third mechanism, called display views, supports the definition of concrete renderings of database objects. Display views are derived from associated basic views through mappings described by a novel unparsing language, and are uniformly accessible to the tools in the environment.

[1]  Alan J. Demers,et al.  Data types are values , 1985, ACM Trans. Program. Lang. Syst..

[2]  Robert Sedgewick,et al.  A system for algorithm animation , 1984, SIGGRAPH.

[3]  Douglas C. Engelbart,et al.  A research center for augmenting human intellect , 1968, AFIPS Fall Joint Computing Conference.

[4]  E. F. Codd,et al.  Relational database: a practical foundation for productivity , 1982, CACM.

[5]  Barbara Lerner,et al.  The evolution of the GANDALF system , 1985, J. Syst. Softw..

[6]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[7]  William A. Wulf,et al.  DIANA An Intermediate Language for Ada , 1983, Lecture Notes in Computer Science.

[8]  Mark A. Linton Implementing relational views of programs , 1984 .

[9]  Andrew D Holt,et al.  The Unix Programming Environment , 1985 .

[10]  Ian Thomas,et al.  The object management system of PCTE as a software engineering database management system , 1987, SDE 2.

[11]  David R. Barstow A Perspective on Automatic Programming , 1984 .

[12]  Mary Shaw,et al.  Abstraction Techniques in Modern Programming Languages , 1984, IEEE Software.

[13]  Richard T. Snodgrass Monitoring in a software development environment: A relational approach , 1984 .

[14]  Daniel G. Bobrow,et al.  Descriptions for a Programming Environment , 1980, AAAI.

[15]  Marvin Minsky,et al.  A framework for representing knowledge , 1974 .

[16]  Brian Keith Reid,et al.  Scribe: a document specification language and its compiler , 1981 .

[17]  Leon J. Osterweil,et al.  Toolpack—An Experimental Software Development Environment Research Project , 1983, IEEE Transactions on Software Engineering.

[18]  Peter P. Chen The Entity-Relationship Model: Towards a unified view of Data , 1976 .

[19]  Peter P. Chen The entity-relationship model: toward a unified view of data , 1975, VLDB '75.

[20]  Thomas W. Reps,et al.  Incremental Context-Dependent Analysis for Language-Based Editors , 1983, TOPL.

[21]  Daniel G. Bobrow,et al.  CommonLoops: Merging Lisp and Object-Oriented Programming , 1986, OOPSLA.

[22]  David Notkin The GANDALF project , 1985, J. Syst. Softw..

[23]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[24]  Stanley B. Zdonik,et al.  Version Management in an Object-Oriented Database , 1986, Advanced Programming Environments.

[25]  C. Fraser Syntax-directed editing of general data structures , 1981 .

[26]  Philip Wadler,et al.  Experience with an applicative string processing language , 1980, POPL '80.

[27]  Richard E. Pattis,et al.  Karel the Robot: A Gentle Introduction to the Art of Programming , 1994 .

[28]  Wilfred J. Hansen,et al.  Creation of hierarchic text with a computer display , 1971 .

[29]  Roger King,et al.  Implementing a user interface as a system of attributes , 1987, SDE 2.

[30]  Irving L. Traiger,et al.  Views, authorization, and locking in a relational data base system , 1975, AFIPS '75.

[31]  K. Thompson,et al.  UNIX time-sharing system: UNIX implementation , 1978, The Bell System Technical Journal.

[32]  Ken Kennedy,et al.  An introduction to the set theoretical language SETL , 1975 .

[33]  Gio Wiederhold,et al.  Views, Objects, and Databases , 1986, Computer.

[34]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.

[35]  A M Keller On 'Update Semantics and Relational Views'. , 1984 .

[36]  Gail E. Kaiser Generation of run-time environments , 1986, SIGPLAN '86.

[37]  David Maier,et al.  Development of an object-oriented DBMS , 1986, OOPSLA 1986.

[38]  Raul I. Medina-Mora,et al.  Syntax-directed editing: towards integrated programming environments , 1982 .

[39]  Donald Cohen Automatic Compilation of Logical Specifications into Efficient Programs , 1986, AAAI.

[40]  Koenraad De Smedt Object-oriented programming in FLAVORS and CommonORBIT , 1987 .

[41]  Steven P. Reiss Graphical program development with PECAN program development systems , 1984 .

[42]  Daniel G. Bobrow,et al.  On Overview of KRL, a Knowledge Representation Language , 1976, Cogn. Sci..

[43]  David Notkin Interactive structure-oriented computing , 1984 .

[44]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[45]  David Garlan,et al.  MELD/ Features: An Object-Oriented Approach to Reusable Software , 1986 .

[46]  David Garlan Flexible unparsing in a structure editing environment , 1985 .

[47]  Daniel G. Bobrow,et al.  Extending object oriented programming in Smalltalk , 1980, LISP Conference.

[48]  Craig Schaffert,et al.  An introduction to Trellis/Owl , 1986, OOPSLA 1986.

[49]  Robert M. Ayers,et al.  Experience with Traits in the Xerox Star Workstation , 1984, IEEE Transactions on Software Engineering.

[50]  Robert Balzer Automated Enhancement of Knowledge Representations , 1985, IJCAI.

[51]  Peter H. Feiler,et al.  An Incremental Programming Environment , 1981, IEEE Transactions on Software Engineering.

[52]  David Alex Lamb Sharing intermediate representations: the interface description language , 1983 .

[53]  Klaus R. Dittrich,et al.  DAMOKLES - A Database System for Software ENgineering Environments , 1986, Advanced Programming Environments.

[54]  Peter Hermann Feiler,et al.  A language-oriented interactive programming environment based on compilation technology , 1982 .

[55]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .

[56]  Thomas Reps,et al.  The synthesizer generator , 1984 .

[57]  David Garlan Extending IDL to support concurrent views , 1987, SIGP.

[58]  E. F. CODD,et al.  A relational model of data for large shared data banks , 1970, CACM.

[59]  Joseph M. Newcomer IDL: Past Experience and New Ideas , 1986, Advanced Programming Environments.

[60]  Arthur M. Keller,et al.  The Role of Semantics in Translating View Updates , 1986, Computer.

[61]  Mayer D. Schwartz,et al.  Viewing a programming environment as a single tool , 1984 .

[62]  Henry F. Korth Extending the Scope of Relational Languages , 1986, IEEE Software.

[63]  John R. Nestor Toward a Persistent Object Base , 1986, Advanced Programming Environments.

[64]  Gail E. Kaiser Semantics for structure editing environments , 1985 .

[65]  Richard T. Snodgrass,et al.  Supporting Flexible and Efficient Tool Integration , 1986, Advanced Programming Environments.

[66]  Robert Balzer,et al.  Specification-Based Computing Environments , 1982, VLDB.

[67]  Robert Adamy Duisberg Constraint-based animation: temporal constraints in the animus system , 1986 .

[68]  Bernard Lang,et al.  Document structure and modularity in mentor , 1984 .

[69]  David B. Leblang,et al.  Computer-Aided Software Engineering in a distributed workstation environment , 1984 .

[70]  Michael Stonebraker,et al.  The design and implementation of INGRES , 1976, TODS.

[71]  John R. Anderson,et al.  The automated tutoring of introductory computer programming , 1986, CACM.

[72]  Joseph A. Goguen,et al.  Putting Theories Together to Make Specifications , 1977, IJCAI.

[73]  K Thompson,et al.  UNIX implementation , 1986 .

[74]  David R. Barstow,et al.  Interactive programming environments , 1984, SOEN.

[75]  Douglas R. Smith,et al.  Research on Knowledge-Based Software Environments at Kestrel Institute , 1985, IEEE Transactions on Software Engineering.

[76]  Alfred V. Aho,et al.  Awk — a pattern scanning and processing language , 1979, Softw. Pract. Exp..

[77]  R.M. Baizer Living in the Next-Generation Operating System , 1987, IEEE Software.

[78]  Robert Duisberg,et al.  Animating Programs Using Smalltalk , 1985, Computer.

[79]  David Garlan,et al.  GNOME: An introductory programming environment based on a family of structure editors , 1984 .

[80]  Bernard Lang,et al.  Programming Environments Based on Structured Editors: The MENTOR Experience, , 1980 .

[81]  Peter Henderson,et al.  A lazy evaluator , 1976, POPL.

[82]  Susan Horwitz,et al.  Generating editing environments based on relations and attributes , 1986, TOPL.

[83]  Richard C. Waters,et al.  Program editors should not abandon text oriented commands , 1982, SIGP.

[84]  Thomas Reps,et al.  A syntax-directed programming environment , 1981 .

[85]  Antonio L. Furtado,et al.  Updating Relational Views , 1985, Query Processing in Database Systems.

[86]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[87]  Leon J. Osterweil Toolpack - an experimental software development environment research project , 1982, ICSE 1982.

[88]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[89]  Susan Horwitz,et al.  Relations and attributes: A symbiotic basis for editing environments , 1985, ACM SIGPLAN Notices.

[90]  Ralph E. Griswold,et al.  The SNOBOL4 programming language , 1968 .

[91]  R. Furuta,et al.  TEX and METAFONT, new directions in typesetting , 1983, Proceedings of the IEEE.

[92]  Robert Balzer,et al.  A 15 Year Perspective on Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[93]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[94]  Stanley B. Zdonik,et al.  The management of changing types in an object-oriented database , 1986, OOPSLA 1986.