APPL/A: a language for software process programming

  • Authors:
  • Stanley M. Sutton, Jr.;Dennis Heimbigner;Leon J. Osterweil

  • Affiliations:
  • Univ. of Massachusetts, Amherst;Univ. of Colorado, Boulder;Univ. of Massachusetts, Amherst

  • Venue:
  • ACM Transactions on Software Engineering and Methodology (TOSEM)
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software process programming is the coding of software processes inexecutable programming languages. Process programming offers manypotential benefits, but their realization has been hampered by a lack ofexperience in the design and use of process programming languages.APPL/A is a prototype software process programming language developed tohelp gain this experience. It is intended for the coding of programs torepresent and support software processes including process, product, andproject management. APPL/A is defined as an extension to Ada, to whichit adds persistent programmable relations, concurrent triggers onrelation operations (for reactive control), optionally and dynamicallyenforceable predicates on relations (which may serve as constraints),and composite statements that provide alternative combinations ofserializability, atomicity, and consistency enforcement (for programminghigh-level transactions). APPL/A has been used to codeengineering-oriented applications, like requirements specification anddesign, as well as management-related activities, such as personnelassignment, task scheduling, and project monitoring. APPL/A has alsoenabled us to experiment with process program design techniques andarchitectures, including process state reification, intermittent (orpersistent) processes, reflexive and metaprocesses, and multiple-processsystems. Our ability to address a wide range of software processes andprocess characteristics indicates that the APPL/A constructs representimportant and general capabilities for software processprogramming.—Authors' Abstract