@article{SCP2016, title = {Large-scale system development using Abstract Data Types and refinement}, journal = {Science of Computer Programming}, volume = {131}, pages = {59 - 75}, year = {2016}, note = {Abstract State Machines, Alloy, B, TLA, \{VDM\} and Z (ABZ 2014)Selected and extended papers from \{ABZ\} 2014}, issn = {0167-6423}, doi = {http://dx.doi.org/10.1016/j.scico.2016.04.010}, url = {http://www.sciencedirect.com/science/article/pii/S0167642316300193}, author = {Andreas F{\"u}rst and Thai Son Hoang and David Basin and Naoto Sato and Kunihiko Miyazaki}, keywords = {Instantiation}, keywords = {Refinement}, keywords = {Event-B}, keywords = {Abstract Data Types (ADTs)}, abstract = {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.} }