Information Technology Reference
In-Depth Information
Finally, a service is a behaviour, triggered by an interaction between
provider and consumer objects, that adds value for its users by creating, mod-
ifying or consuming information.
1.3.2 Types, Classes and Templates
As in most object-oriented modelling and programming languages, ODP
objects, actions and interfaces are generally specified in terms of their types.
In ODP, a type is a predicate that characterizes a set of elements, and serves
to identify and describe them. For instance, type Customer describes the
common characteristics of the company's customers that are relevant to the
system. Similarly, type RepairOrder captures the information that any repair
order in the system should have. Predicates can be expressed in many different
notations, from textual languages to graphical modelling notations (a UML
class is a typical notation for representing types, describing both the state
and the behaviour of the corresponding objects in terms of attributes and
operations).
Types help to classify entities into categories, which form collections of
objects that satisfy a given type. Such collections are called classes. Note,
however, that the UML concept of class differs from the ODP concept of class.
A UML class is a description of a set of objects, while an ODP class is the
set of objects itself. Therefore, the UML concept of class is closer to the ODP
concept of type. There is no UML concept that is similar to the ODP concept
of class.
In addition to types and classes, ODP also uses the concept of template,
which refers to the specification of an element, including sucient detail to
allow an instantiation to take place. For example, object-oriented program-
ming language concrete classes are templates. Types can only be involved
in testing whether instances satisfy them or not; templates can be used to
create instances. Templates may also include parameters, which will need to
be bound to specific values at instantiation time.
1.3.3
Composition
Composition and its inverse, decomposition , are key concepts in ODP.
We have already mentioned that systems are composed of interacting objects.
The composition of two or more objects is itself another object (called the
composite object). The characteristics of the new object are determined by the
objects being combined and by the way they are combined (the composition
operator used).
Behaviours can also be composed, yielding a new behaviour. This can
apply either to behaviour fragments or to the behaviour of complete objects.
Thus, the behaviour of a composite object is the corresponding composition
of the behaviour of the component objects, possibly hiding some interactions
to make them internal actions.
 
Search WWH ::




Custom Search