A component-based approach for supporting functional and non-functional analysis in control loop design