kirancodes.me
To Proof Maintenance & Beyond!

Promises: Limited Specifications for Analysis and Manipulation

Edwin C. Chan, John Boyland, William L. Scherlis

Abstract

Structural change in a large system is hindered when information is missing about portions of the system, as is often the case in a distributed development process. An annotation mechanism called promises is described for expressing properties that can enable many kinds of structural change in systems. Promises act as surrogates for an actual component, and thus are analogous to "header" files, but with more specific semantic information. Unlike formal specifications, however, promises are designed to be easily extracted from systems and managed by programmers using automatic analysis tools. Promises are described for effects, unique references, and use properties. By using promises, a component developer can offer additional opportunity for change (flexibility) to clients, but at a potential cost in flexibility for the component itself. This suggests the possibility of using promises as a means to allocate flexibility among the components of a system.

BibTeX
@inproceedings{Chan-al:ICSE98,
  author    = {Edwin C. Chan and
               John Boyland and
               William L. Scherlis},
  title     = {Promises: Limited Specifications for Analysis and Manipulation},
  booktitle = {ICSE},
  pages     = {167--176},
  publisher = {{IEEE} Computer Society},
  year      = {1998},
}

Related papers