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 Using Data Flow Tools in Software Engineering , 1979 .

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

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

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

[5]  Juris Hartmanis,et al.  The Programming Language Ada Reference Manual American National Standards Institute, Inc. ANSI/MIL-STD-1815A-1983 , 1983, Lecture Notes in Computer Science.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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