include "primitives.alh" SimpleClassDiagram Control_PW{ SimpleAttribute Boolean {} SimpleAttribute String{ constraint = $ String function constraint(model : Element, name : String): if (is_physical_string(model["model"][name])): return "OK"! else: return "String has non-string value"! $ } Class Named { name : String } Class Positionable { } Class Boundary : Named, Positionable {} Class Port : Named, Positionable {} Class Transition : Named, Positionable {} Class State : Named, Positionable { initial : Boolean } Association Has1 (Boundary, State) {} Association Has2 (Boundary, Port) {} Association Has3 (Boundary, Transition) {} Association PortTransition (Port, Transition) {} Association From (State, Transition) {} Association To (Transition, State) {} Association PortState (Port, State) {} }