ComplexAttribute ActionCode {} SimpleAttribute String {} Class BaseDEVSBlock { name: String } Class AtomicDEVSBlock: BaseDEVSBlock { timeAdvance: ActionCode outputFnc: ActionCode intTransition: ActionCode extTransition: ActionCode confTransition: ActionCode initialState: ActionCode } Class CoupledDEVSBlock: BaseDEVSBlock {} Class DEVSInstance { name: String type: String } Association SubModel(CoupledDEVSBlock, DEVSInstance) {} Class Port { name: String } Class InputPort: Port {} Class OutputPort: Port {} Association DEVSBlockToPort(BaseDEVSBlock, Port) {} Association DEVSInstanceToPort(DEVSInstance, Port) {} Association Channel (Port, Port) {}