Where used: Object Type And Relation Model

generalizes / specializes

Object Type generalizes Object Type

Object Type specializes Object Type

Read First: Object Type

Specializing is another word for subtyping.  The mappings, relations,
and operations that apply to a specialized type should generally result
in a smaller set of objects that are instances of that type.  For
example, if we subtype the Animal object type into the Dog object type,
then we are adding features to Dog, such as long teeth, which reduces
the number of objects that can be in the set of Dogs.  This is the
set-based interpretation of specialization, which OOIE adopts.

Read First: Relation, Mapping

There are various ways to specialize an object type:

    1) Add relations, mappings, or operations to the type.

           As new features are added to the object type, fewer objects
           will generally have those features.  For example, if we have
           an object type that says nothing at all, all objects will
           conform to it. As we say things about the object type, it
           will apply to fewer objects.

    2) Restrict the types associated with the relations, mappings, and

           For example, suppose we have a driving relation between
           vehicles and people.  If we restrict the people that can
           drive a particular kind of vehicle, then we have made a
           specialization of vehicles.  For example, trucks can only be
           driven by people with a particular kind of license. Similarly
           specializations can be created by restricting the range of
           mappings, and the types input to and output from operations,
           as well as the events resulting from operations.

    3) Restrict the cardinalities associated with the relations,
       mappings, and operation.

           For example, suppose that have a relation between restaurants
           and the customers it has in it at any given time.  In general
           we might not restrict this number, but if we restrict it to
           20, for example, then we are forming a specialization for

The first technique adds new features to those that are inherited,
whereas the second two modify inherited features.  This means that the
second two techniques. reduce the reusability of the subtypes, because
the subtypes cannot be used in all the ways that their supertypes can.

Read First: Object Type, Relation, Mapping