The University of Southampton
University of Southampton Institutional Repository

Software Evolution with Refinement and Retrenchment

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
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
Download (308kB)

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

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×