Modeling Railway Control Systems Using Graph Grammars: a Case Study
Résumé
In this report, we develop a railway control system. We are mainly concerned with the software architecture of the control system and its dynamic evolution ; we do not discuss here the implementation details of the components forming the control system. The software architecture is characterized by a hierarchy of controllers whose leaves are local controllers connected in a network that mimics the underlying railway topology. Using a particular graph grammar, we formally define a class of software architectures for the railway control system ensuring several desirable properties by construction. The dynamic evolution of the architecture is modelled by a set of coordination rules which define graph transformations. Particular emphasis is placed on the verification of these rules with respect to desirable properties encoded in the grammars. Using the graph grammar and the coordination rules as a formal specification of the railway control system, we derive an implementation in ConCoord, an environment for concurrent coordinated programming whose coordination language permits us to define the software architecture of the control system and its dynamic evolution abstracting away from the implementation details of its components.