Discrete Event Dynamic Systems