Abstract
Refinement is reviewed, highlighting in particular the distinction between its use as a specification constructor at a high level, and its use as an implementation mechanism at a low level. Some of its shortcomings as a specification constructor at high levels of abstraction are pointed out, and these are used to motivate the adoption of retrenchment for certain high level development steps. Basic properties of retrenchment are described, including a justification of the operation proof obligation, simple examples, its use in requirements engineering and model evolution, and simulation properties. The interaction of retrenchment with refinement notions of correctness is overviewed, as is a range of other technical issues. Two case study scenarios are presented. One is a simple digital redesign control theory problem, and the other is an overview of the application of retrenchment to the Mondex Purse development. © 2007 Elsevier B.V. All rights reserved.
Original language | English |
---|---|
Pages (from-to) | 301-329 |
Number of pages | 28 |
Journal | Science of Computer Programming |
Volume | 67 |
Issue number | 2-3 |
DOIs | |
Publication status | Published - 1 Jul 2007 |
Keywords
- Digital redesign
- Model evolution
- Mondex purse
- Refinement
- Requirements engineering
- Retrenchment
- Simulation