Elsevier

Science of Computer Programming

Volume 131, 1 December 2016, Pages 59-75
Science of Computer Programming

Large-scale system development using Abstract Data Types and refinement

https://doi.org/10.1016/j.scico.2016.04.010Get rights and content
Under an Elsevier user license
open archive

Highlights

  • Introduced ADTs into refinement-based formalisms.

  • Generic instantiation as an abstraction technique.

  • Combined use of refinement and generic instantiation in system development.

  • Large-scale case study in railway control systems.

Abstract

We present a formal modelling approach using Abstract Data Types (ADTs) for large-scale system development in Event-B. The novelty of our approach is the combination of refinement and instantiation techniques to manage the complexity of systems under development. With ADTs, we model system components on an abstract level, specifying just their necessary properties, and we postpone the introduction of their concrete definitions to later development steps. As the ADTs are incrementally instantiated and become more concrete, behavioural details of systems are expanded via refinement in a manner consistent with the ADTs' transformation. We evaluate this approach using a large-scale case study in train control systems. The results show that our approach helps reduce system details during early development stages and leads to simpler and more automated proofs.

Keywords

Instantiation
Refinement
Event-B
Abstract Data Types (ADTs)

Cited by (0)

1

The first version of this paper was written when Thai Son Hoang was a visiting researcher at YRL, Hitachi Ltd., Japan.