The University of Southampton
University of Southampton Institutional Repository

Towards the development of an Electoral Count System using formal methods

Towards the development of an Electoral Count System using formal methods
Towards the development of an Electoral Count System using formal methods

Techniques which use mathematical principles to develop computer systems are collectively known as Formal Methods. Formal Methods are usually applied to computer systems when correctness and soundness are primarily important. A system to count votes is an example of such a system. This work includes the specification of, and the full development of part of, such an electoral system. When developing the system, a number of interesting issues arose, the examination of which became a significant part of this work. The development of a system using formal methods entails taking a speciGcation, written using mathematics and, moving, step by step, towards eventual implementation. We call these steps refinement steps. There are two main kinds of refinement - data refinement where we move from using abstract data in our descriptions to using more concrete data and algo- rithmic refinement where we introduce programming-like constructs. The traditional strategy is to proceed with data refinement and then with algo- rithmic refinement. In this thesis a strategy of mixing these approaches is examined, e.g. applying algorithmic refinement first. This strategy is found to be useful and to result in elegant solutions. A fundamental tenet of refinement is that at each point in the develop- mental cycle (including the starting specification and the eventual imple- mentation), the user should be unaware of any 'behind the scenes' activity. This means that the interface to the user should not change. However, it may happen that part of the specification is written in terms of parame- terised abstract data. Then data refinement will change the interface. This issue is examined in this work and a workaround is provided for checking the correctness of this tricky refinement step. Two paths of development are used in the work. The first is that of using Z and Morgan's Refinement Calculus. The B Method is then used for the main part of the thesis. The specification of the systems are written in Z and B. The development of parts of each are found in the main body of the text.

University of Southampton
Meagher, Mairead
0e2cbc95-5afb-4c8b-8e40-c24b59444e94
Meagher, Mairead
0e2cbc95-5afb-4c8b-8e40-c24b59444e94

Meagher, Mairead (2001) Towards the development of an Electoral Count System using formal methods. University of Southampton, Doctoral Thesis.

Record type: Thesis (Doctoral)

Abstract

Techniques which use mathematical principles to develop computer systems are collectively known as Formal Methods. Formal Methods are usually applied to computer systems when correctness and soundness are primarily important. A system to count votes is an example of such a system. This work includes the specification of, and the full development of part of, such an electoral system. When developing the system, a number of interesting issues arose, the examination of which became a significant part of this work. The development of a system using formal methods entails taking a speciGcation, written using mathematics and, moving, step by step, towards eventual implementation. We call these steps refinement steps. There are two main kinds of refinement - data refinement where we move from using abstract data in our descriptions to using more concrete data and algo- rithmic refinement where we introduce programming-like constructs. The traditional strategy is to proceed with data refinement and then with algo- rithmic refinement. In this thesis a strategy of mixing these approaches is examined, e.g. applying algorithmic refinement first. This strategy is found to be useful and to result in elegant solutions. A fundamental tenet of refinement is that at each point in the develop- mental cycle (including the starting specification and the eventual imple- mentation), the user should be unaware of any 'behind the scenes' activity. This means that the interface to the user should not change. However, it may happen that part of the specification is written in terms of parame- terised abstract data. Then data refinement will change the interface. This issue is examined in this work and a workaround is provided for checking the correctness of this tricky refinement step. Two paths of development are used in the work. The first is that of using Z and Morgan's Refinement Calculus. The B Method is then used for the main part of the thesis. The specification of the systems are written in Z and B. The development of parts of each are found in the main body of the text.

Text
823782.pdf - Version of Record
Available under License University of Southampton Thesis Licence.
Download (4MB)

More information

Published date: 2001

Identifiers

Local EPrints ID: 464534
URI: http://eprints.soton.ac.uk/id/eprint/464534
PURE UUID: f6787abe-f030-4c98-ae8d-5e19606bbe89

Catalogue record

Date deposited: 04 Jul 2022 23:44
Last modified: 16 Mar 2024 19:35

Export record

Contributors

Author: Mairead Meagher

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.

×