Components

An Qompass component is a UML class (you might also use a UML component), since classes contain essential properties we require of a component: A component might either be a type or an implementation. The former is mainly an abstract class with a set of ports and no internal structure. It may inherit from other component types, but not from implementations. The latter has to realize at least a subset of the services that are provided at its ports (if it does not define all, it needs to be declared as abstract). The realization could be either done by an implementation written in a specific programming language or the UML action language or by a delegation to an inner part.