Conceptual design of discrete-event systems using templates