We are using cookies to give you the best experience on our site. Cookies are files stored in your browser and are used by most websites to help personalise your web experience.
Specialization is inclusion
'IS-A' relation between two elements B and A, called specialization or subsumption, means that B can be reduced to A. In other words, we can think of and manipulate B as if it were A (but not vice versa). B is also interpreted as a more specific element than A while A is more general than B. 'IS-A' relation is also frequently interpreted as inheritance or extension which emphasize that B reuses some properties or behavior of A. For example, class Button extends class Panel (so a button is a more specific panel) and Panel extends class Window (so a panel is a more specific window).
'IS-IN' relation between B and A, called inclusion or containment, means that B exists within A. In other words, B can be thought of as a member of the set A. For example, a window can include many panels and a panel may include many buttons.
The concept-oriented paradigm assumes that specialization ('IS-A') is a particular case of inclusion ('IS-IN'). As a consequence, this means that any member is more specific than the set it is in and it inherits all properties of its set. An element can be extended (made more specific) by simply including into it another element. All members of a set describe all its extensions.
Inclusion in COP and COM describe both containment and specialization. For example, a panel can be defined as a more specific window by including class Panel into class Window. In the general case, a window will contain several panels (which all inherit its properties). However, it is very easy to implement Panel as the only extension of Window which is considered a particular case equivalent to the classical inheritance.