Software Evolution with Refinement and Retrenchment
Software Evolution with Refinement and Retrenchment
Given a record of the derivation of a component from its specification, and a new, changed specification, we can compare the two specifications and use the differences between them as a basis for revising the derivation of the component and attempt to discharge the resulting proof obligations. This is essentially the way that program refinements are modified by hand, and could be supported by a refinement tool. Alternatively, we might describe the new specification by combining the original specification and a description of the new behaviour required using combinators similar to schema conjunction and disjunction in Z. This approach has been explored in the context of the refinement calculus, and also in a relational setting. Independently of this revision-based and constructive work, another potential formal approach to the evolution of specifications has recently emerged. Retrenchment is a generalisation of classical refinement which was proposed to extend the reach of formal verification to applications too demanding to be described, computationally, in terms of refinement. Recent work has proposed the integration of these constructive and retrenchment approaches. This paper reports on initial work investigating the construction of evolutions using these constructive and retrenchment approaches. In special cases the evolution transformation may be a refinement. More widely applicable will be certain specification combinators and constructors. Finally, as the most general relation between specifications, retrenchment will be applicable to any evolution; the work will be in establishing how to use it to preserve structure in a useful way.
software evolution, requirements change, formal specification, refinement, retrenchment
Poppleton, Michael
00f3ffec-b4ff-4dd3-89a4-7a9aaff1c9f1
Groves, Lindsay
e6044cd5-63ff-4262-aa3d-c7cf93bd8088
Muntean, Traian
e30edfe4-4d55-4ee7-8ca1-fadac33a9544
Sere, Kaisa
72a16416-d8c5-40b0-9bbf-8ca45c877738
2003
Poppleton, Michael
00f3ffec-b4ff-4dd3-89a4-7a9aaff1c9f1
Groves, Lindsay
e6044cd5-63ff-4262-aa3d-c7cf93bd8088
Muntean, Traian
e30edfe4-4d55-4ee7-8ca1-fadac33a9544
Sere, Kaisa
72a16416-d8c5-40b0-9bbf-8ca45c877738
Poppleton, Michael and Groves, Lindsay
(2003)
Software Evolution with Refinement and Retrenchment.
Muntean, Traian and Sere, Kaisa
(eds.)
RCS'03: 2nd International Workshop on Refinement of Critical Systems: Methods, Tools and Developments, Turku, Finland.
Record type:
Conference or Workshop Item
(Other)
Abstract
Given a record of the derivation of a component from its specification, and a new, changed specification, we can compare the two specifications and use the differences between them as a basis for revising the derivation of the component and attempt to discharge the resulting proof obligations. This is essentially the way that program refinements are modified by hand, and could be supported by a refinement tool. Alternatively, we might describe the new specification by combining the original specification and a description of the new behaviour required using combinators similar to schema conjunction and disjunction in Z. This approach has been explored in the context of the refinement calculus, and also in a relational setting. Independently of this revision-based and constructive work, another potential formal approach to the evolution of specifications has recently emerged. Retrenchment is a generalisation of classical refinement which was proposed to extend the reach of formal verification to applications too demanding to be described, computationally, in terms of refinement. Recent work has proposed the integration of these constructive and retrenchment approaches. This paper reports on initial work investigating the construction of evolutions using these constructive and retrenchment approaches. In special cases the evolution transformation may be a refinement. More widely applicable will be certain specification combinators and constructors. Finally, as the most general relation between specifications, retrenchment will be applicable to any evolution; the work will be in establishing how to use it to preserve structure in a useful way.
Other
poppletonrcs03.ps
- Other
More information
Published date: 2003
Additional Information:
Workshop site: http://www.esil.univ-mrs.fr/~spc/rcs03/rcs03.html Event Dates: June, 2003
Venue - Dates:
RCS'03: 2nd International Workshop on Refinement of Critical Systems: Methods, Tools and Developments, Turku, Finland, 2003-06-01
Keywords:
software evolution, requirements change, formal specification, refinement, retrenchment
Organisations:
Electronics & Computer Science
Identifiers
Local EPrints ID: 257775
URI: http://eprints.soton.ac.uk/id/eprint/257775
PURE UUID: 665b998b-650b-4105-af34-9a1ff52f2f76
Catalogue record
Date deposited: 23 Jun 2003
Last modified: 14 Mar 2024 06:02
Export record
Contributors
Author:
Michael Poppleton
Author:
Lindsay Groves
Editor:
Traian Muntean
Editor:
Kaisa Sere
Download statistics
Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.
View more statistics