components do not have a representation in the model as they do not contribute to the run--time behavior of field device software. They are merely a technique to simplify specification and to enable the reuse of designs. abstract component PecosControlLoop# role AbstractProcessApplication PecosPA; role AbstractControlDevice PecosCtrl; role AbstractFeedBackDevice PecosFdbck; connector setPoint(setPoint, PecosPA.setPoint); connector feedback1(PecosPA.actualPosition, PecosFdbck.actualPosition); connector feedback2(PecosPA.velocity, PecosFdbck.velocity); connector control(PecosPA.setFrequency, PecosCtrl.setFrequency); [...] component PositionValve is PecosControlLoop# ProcessApplication pa is PecosPA; ModBus mb is PecosCtrl; FQD fqd is PecosFdbck; Fig. 7. Using abstract components to specify system families Besides the elements known from normal components, abstract components can define so--called roles. Roles are typed variation points or holes in a (micro--)architecture. Fig. 7 shows the specification of an architectural style for control loops