Programmable Relations for Managing Change During Software Development

Abstract : Management of changes during software development is a central problem in software object management. Successful propagation of changes requires effective use of relationships among objects. The structure of relationships identifies the direction order, and extent of change propagation, while the semantics of relationships indicate the kinds of changes to be made. Many data models proposed for software object management offer some useful features for controlling change but lack others. Configuration control and version management systems support some useful relationships and types but are too specialized. Object-oriented systems are more general, but while they may support derived relationships they represent those relationships only as attributes of objects. Conversely entity-relationship models provide for the independent representation of extensional relationships but typically do not support derived relationships fully. The relational model also represent relationships separately, but efficiency and restrictions to atomic valued attributes have been problems for software object management. We propose a model of programmable relations over composite objects. This general model allows relationships among objects to be represented explicitly, and it enables derivation and other processes to be programmed into the implementation of relations. Programmable implementations, combined with an operationally-efficient interface, should help to overcome the performance problems of conventional relational systems. Based on this model we have developed the language APPL/ A, an extension of Ada that includes active, programmable relations plus mechanisms for forward and backward inferencing over relations. We introduce APPL/ A and present an example system of relations to illustrate relation specifications and the opportunities for alternative relation implementations.

[1]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

[2]  Stanley B. Zdonik,et al.  A Database Approach to Languages, Libraries and Environments , 1985, Data Types and Persistence , Informal Proceedings.

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

[4]  Peter Honeyman,et al.  Vdd - A VLSI Design Database System , 1983, Engineering Design Applications.

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

[6]  David Lorge Parnas,et al.  A rational design process: How and why to fake it , 1986, IEEE Transactions on Software Engineering.

[7]  Dennis Heimbigner,et al.  Active Relations for Specifying and Implementing Software Object Management , 1988 .

[8]  Craig Schaffert,et al.  Persistent and Shared Objects in Trellis/Owl , 1986, OODBS.

[9]  Roger King,et al.  The Cactis Project: Database Support for Software Environment , 1988, IEEE Trans. Software Eng..

[10]  E. F. Codd,et al.  A Relational Model for Large Shared Data Banks , 1970 .

[11]  Butler W. Lampson,et al.  Organizing software in a distributed environment , 1983, ACM SIGPLAN Notices.

[12]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[13]  Mack W. Alford A Requirements Engineering Methodology for Real-Time Processing Requirements , 1977, IEEE Transactions on Software Engineering.

[14]  Craig Harris,et al.  Combining language and database advances in an object-oriented development environment , 1987, OOPSLA '87.

[15]  Mark A. Linton,et al.  Implementing relational views of programs , 1984, SDE 1.

[16]  Michael Stonebraker,et al.  The design of POSTGRES , 1986, SIGMOD '86.

[17]  Robert V. Zara,et al.  Building A Layered Database for Design Automation , 1985, DAC 1985.

[18]  Geoffrey Michael Clemm The Odin system: an object manager for extensible software environments , 1986 .

[19]  Maria H. Penedo,et al.  Prototyping a project master database for software engineering environments , 1987, SDE 2.

[20]  Dennis Heimbigner,et al.  A graph transform model for configuration management environments , 1988, Software Development Environments.

[21]  S. Ceri,et al.  Relational data bases in the design of program construction systems , 1983, SOEN.

[22]  Brent E. Nelson,et al.  The Structure and Operation of a Relational Database System in a Cell-Oriented Integrated Circuit Design System , 1984, 21st Design Automation Conference Proceedings.

[23]  Arthur L. Price,et al.  A recommended practice for describing software designs: IEEE standards project 1016 , 1986, IEEE Transactions on Software Engineering.

[24]  Michael Stonebraker,et al.  The POSTGRES Data Model , 1987, Research Foundations in Object-Oriented and Semantic Database Systems.

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

[26]  Walter F. Tichy,et al.  Implementation and evaluation of a revision control system , 1982 .

[27]  B. Lampson,et al.  Organizing software in a distributed environment , 1983, SIGPLAN '83.

[28]  King-Sun Fu,et al.  A CSG Based DBMS for CAD/CAM and its Supporting Query Language , 1983, Engineering Design Applications.

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

[30]  Warren Teitelman A Tour Through Cedar , 1984, IEEE Softw..

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

[32]  S. Sitharama Iyengar,et al.  Multilevel Data Structures: Models and Performance , 1988, IEEE Trans. Software Eng..

[33]  David J. DeWitt,et al.  Architecture of the EXODUS extensible DBMS: a preliminary report , 1986 .

[34]  Mark A. Linton,et al.  A database model of debugging (Preliminary Draft) , 1983, SIGSOFT '83.

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

[36]  Leon J. Osterweil,et al.  Software processes are software too , 1987, ISPW.

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