Electronic interlocking system

This example describes a railway interlocking system. The example is based on a similar problem that appears in Computing product configurations via UML and integer linear programming. The example is extended according to the specifications of several interlocking systems as in Electronic Interlocking ZSB

The core class diagram of a railway interlocking system

The customized railway interlocking system

The customized  railway interlocking system extends the core class diagram with 11 sub-classes that impose further restrictions on the original model. There are two versions.

The Interlocking system version 1

Detection: The FiniteSatUSE tool detects a finite satisfiability problem.

Identification: The identification component identifies a single cycle of classes, associations and constraints as marked here.

Pattern: The problem corresponds to the  Multiplicity Hierarchy Cycle Pattern.

The Interlocking system version 2

The second version repairs the identified cycle by relaxation of the cardinality constraint on  the Module side of the fmodule association from 2..50 to 1..50.

Detection: The FiniteSatUSE tool still detects a finite satisfiability problem

Identification: The identification component fails.

Explanation: The finite satisfiability problem is caused by interaction of cardinality, class hierarchy and GS constraints on the marked sub class diagram here. The identification component fails because the finite satisfiability problem is caused by GS constraints and is not identified by a critical cycle.

Pattern:The pattern structure that explains this interaction appears here.

Running the FiniteSatUSE tool on the Interlocking system version 1

USE fileInterlocking System
Detection resultDetection:
Problem creation time: 24 ms.

Problem solving time: 17 ms.

The model is not finitly satisfiable

Detection execution time: 49 ms.

---------------------------------------------------------------------------------
Overall execution time: 58 ms.
---------------------------------------------------------------------------------
Identification resultIdentification (Visual representation):

Critical cycle alert!
assoc_compose -> Interlocking -> assoc_responsible -> Element -> FieldElement -> assoc_controlfield -> Module -> assoc_fmodule -> Frame -> assoc_include -> Rack -> assoc_compose

The involved constraints in the cycle are:
Association responsible
Minimum multiplicity constraint 1.0 next to Interlocking and maximum multiplicity constraint 1.0 next to Element
Association controlfield
Minimum multiplicity constraint 2.0 next to FieldElement and maximum multiplicity constraint 5.0 next to Module
Association fmodule
Minimum multiplicity constraint 2.0 next to Module and maximum multiplicity constraint 1.0 next to Frame
Association include
Minimum multiplicity constraint 2.0 next to Frame and maximum multiplicity constraint 1.0 next to Rack
Association compose
Minimum multiplicity constraint 1.0 next to Rack and maximum multiplicity constraint 1.0 next to Interlocking

Class Hierarchies:
Super: Element, Sub: FieldElement

Continue looking for more cycles? (yes/no/all)
all
Identification Complete

Total identification time:1763 ms.

---------------------------------------------------------------------------------
Overall execution time: 1763 ms.
---------------------------------------------------------------------------------

Running the FiniteSatUSE tool on the railway interlocking system version 2

USE fileInterlocking System version 2
Detection resultDetection:
Problem creation time: 24 ms.
Problem solving time: 17 ms.

The model is not finitly satisfiable

Detection execution time: 48 ms.

---------------------------------------------------------------------------------
Overall execution time: 56 ms.
---------------------------------------------------------------------------------
Identification resultIdentification (Visual representation)
Identification Failed: The class diagram includes elements that currently are not handled by the FiniteSatUSE’s identification method!

Total identification time:0 ms.

---------------------------------------------------------------------------------
Overall execution time: 0 ms.
---------------------------------------------------------------------------------