A controller turns defined inputs into actionsPhysical inputsConditioningDecision statesOutputinterfacesSpecify timing, unavailable resources and the intended action.