Language constructs for managing change in process-centered environments

Change is pervasive during software development, affecting objects, processes, and environments. In process centered environments, change management can be facilitated by software-process programming, which formalizes the representation of software products and processes using software-process programming languages (SPPLs). To fully realize this goal SPPLs should include constructs that specifically address the problems of change management. These problems include lack of representation of inter-object relationships, weak semantics for inter-object relationships, visibility of implementations, lack of formal representation of software processes, and reliance on programmers to manage change manually. APPL/A is a prototype SPPL that addresses these problems. APPL/A is an extension to Ada.. The principal extensions include abstract, persistent relations with programmable implementations, relation attributes that may be composite and derived, triggers that react to relation operations, optionally-enforceable predicates on relations, and five composite statements with transaction-like capabilities. APPL/A relations and triggers are especially important for the problems raised here. Relations enable inter-object relationships to be represented explicitly and derivation dependencies to be maintained automatically. Relation bodies can be programmed to implement alternative storage and computation strategies without affecting users of relation specifications. Triggers can react to changes in relations, automatically propagating data, invoking tools, and performing other change management tasks. Predicates and the transaction-like statements support change management in the face of evolving standards of consistency. Together, these features mitigate many of the problems that complicate change management in software processes and process-centered environments.

[1]  Leon J. Osterweil,et al.  Cecil/cesar: specification and static evaluation of sequencing constraints , 1988 .

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

[3]  Craig Schaffert,et al.  An introduction to Trellis/Owl , 1986, OOPLSA '86.

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

[5]  S.A. Gamalel-Din,et al.  New perspectives on software maintenance processes , 1988, Proceedings. Conference on Software Maintenance, 1988..

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

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

[8]  Kiyoshi Agusa,et al.  A Software Process Model Based On Unit Workload Network , 1989, [1989] Proceedings of the 5th International Software Process Workshop.

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

[10]  Leon J. Osterweil,et al.  Integrating testing techniques through process programming , 1989 .

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

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

[13]  Leon J. Osterweil Using Data Flow Tools in Software Engineering , 1979 .

[14]  Sutton,et al.  FCM: A Flexible Consistency Model for Software Processes , 1990 .

[15]  Jean D. etc. Ichbiah Reference Manual for the ADA Programming Language , 1983 .

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

[17]  Ronald Morrison,et al.  An Approach to Persistent Programming , 1989, Comput. J..

[18]  Leon J. Osterweil,et al.  A mechanism for environment integration , 1990, TOPL.

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

[20]  Jr. Stanley M. Sutton APPL/A: a prototype language for software-process programming , 1989 .

[21]  Thomas E. Cheatham Process Programming And Process Models , 1989, [1989] Proceedings of the 5th International Software Process Workshop.

[22]  Michael J. Carey,et al.  Programming constructs for database system implementation in EXODUS , 1987, SIGMOD '87.

[23]  Stanley M. Sutton,et al.  A Flexible Consistency Model for Persistent Data in Software-Process Programming Languages , 1990, Workshop on Persistent Objects.

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

[25]  Jack C. Wileden,et al.  Foundations for the Arcadia environment architecture , 1989, SDE 3.

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

[27]  David J. DeWitt,et al.  The Architecture of the EXODUS Extensible DBMS , 1986, On Object-Oriented Database System.

[28]  Thomas E. Bell,et al.  An Extendable Approach to Computer-Aided Software Requirements Engineering , 1976, IEEE Transactions on Software Engineering.

[29]  Lech Krzanik Enactable models for quantitative evolutionary software processes , 1988, ISPW '88.

[30]  Dennis Heimbigner Triton Reference Manual, Version 0.7.3 , 1991 .