Title: * Information Engineering Group Departamento de Inform
1On Interactions in the RM-ODP Guy Genilloud,
Gonzalo Génova WODPEC2005Workshop on ODP for
Enterprise Computing
- Information Engineering GroupDepartamento
de Informática - Universidad Carlos III de Madridguy.genilloud
_at_ie.inf.uc3m.es, ggenova_at_inf.uc3m.es
http//www.ie.inf.uc3m.es/
2Introduction
- The RM-ODP foundations are extremely valuable for
understanding some issues with modelling
techniques. - e.g., Subtyping vs. inheritance
- e.g., Extends, in Use Case modelling
- Unfortunately, it is difficult to convey ODPs
wisdom to people used to other modelling
frameworks, e.g., UML. - fundamental differences in terminology and
approach - lack of explanations and references
- One essential difference is about actions and
communications. - Many (OO) modelling techniques have only
localized actions (every action is associated to
just one entity), and all communications are by
messages. (e.g., activity diagrams and
interaction diagrams in UML) - ODP has a much more general approach it has
interactions.
3Interaction is a poorly explained concept
- The RM-ODP Foundations document is a difficult
read, and it is only partially covered by Part 1 - Some essential concepts are not defined at all
- e.g., specification, model, relation
- The concepts of interaction and environment are
ill-defined and/or poorly explained. - interaction is defined on the basis of the
environment of an object
4The definition of Environment
- 8.2 Environment (of an object) the part of the
model which is not part of that object. NOTE -
In many specification languages, the environment
can be considered to include at least one object
which is able to participate without constraint
in all possible interactions (see 8.3),
representing the process of observation.
ODP-part 2 - In appearance, a simple definition BUT
- The concept of model is not defined, and not
really explained. So, what is the part of the
model ? - why not write instead all the other objects in
the model ? - possibly with an explanation that not all objects
are specified - The note is more puzzling than helpful. Further
explanations are required, or at least a
reference
5The definition of Interaction (1)
- 8.3 Action Something which happens. An
internal action always takes place without the
participation of the environment of the object.
An interaction takes place with the participation
of the environment of the object. ODP-part 2.
- Apparently, the classification is clear BUT
- It depends on the concept of environment, which
is poorly defined. - And what to think of Note 4?
- An object may interact with itself, in which
case it is considered to play at least two roles
in the interaction, and may be considered, in
this context, as being a part of its own
environment. Def. 8.3 Action, Note 4 - Doesnt it contradict the very definition of
Environment?
6The definition of Interaction (2)
- Peter Linington pointed out to us that Note 4 is
metaphorical. - An object may be considered, in this
context, as being a part of its own environment.
Def. 8.3 Action, Note 4 - OK, but then, an object is never a part of its
environment. - So, either Note 4 is wrong (but we do want it),
or - participation of the environment is NOT the right
discriminant. - No matter how we look at it, we have a
contradiction - the definition of interaction is invalid.
7An easier concept Joint Action
- The fact that an object may interact with itself
complicates explanations immensely. - We therefore suggest to first define an auxiliary
concept, which we may call joint action. - Definition A joint action is an action in
which two or more objects participate, each
playing one or more roles in the joint action.
8Interactions and Roles
- Interaction generalises Joint action.A single
object may fulfil all the roles of an
interaction. - Interactions, like joint actions, have roles
- An object may interact with itself, in which
case it is considered to play at least two roles
in the interaction, Def. 8.3 Action, Note 4 - Is the presence of roles the discriminant of
interactions (vs. internal actions)? - No.
- The discrimination is not absolute.
- We need to discriminate actions with respect to a
given object. - An action may be an interaction of some objects,
but an internal action of another object.
9Internal Joint Actions
- Consider JA1, a joint action between two objects,
O1 and O2 - Being a joint action, JA1 has roles.
- Now consider O3, which results from composing O1
and O2 - O3 is a composite object O1 and O2 are its
components. - Depending on how the composition is made, JA1 is
either - an internal action of O3
- Hide JA1 in Comp(O1, O2)
- or an interaction of O3
- JA1 is not hidden
10How do we know that an action is an
interaction?It is a Design Decision
- In his WODPEC04 paper, Peter Linington explains
that - interactions are allocated to interfaces by
design decisions. - A similar explanation goes for classifying
actions - It is a design decision, whether a joint action
among components is an interaction of their
composite, or one of its internal actions. - Importantly, the design decision is also
dependent on the specification language in use. - A Hide operator applies to the terms for actions
in the specification, or even to the types of
actions - Actions are hidden in groups, not individually
11What is an interaction of an object?
- Involvement of the environment represents
observability. Thus, interactions are observable
whereas internal actions are not observable,
because of object encapsulation. Def. 8.3
Action, Note 5 - Observability might be the discriminant we are
looking for, but it cannot be explained in terms
of the involvement of the environment. - An action may be unobserved by the environment of
the object (e.g., in CCS, if an object interacts
with itself, the environment cant) - But it may nevertheless be considered as being
observable, because the objects specification
says that it is (it is a design decision). - What is necessarily true of an interaction of an
object? - It has multiple roles
- It is observable, in the above sense.
12The ODP Definition of Behaviour
- 8.6 Behaviour (of an object) A collection of
actions with a set of constraints on when they
may occur. ODP-part 2. - There is a problem with this definition
- Obvious, if one remembers that an interaction has
multiple roles. - One needs to know which role(s) an object
performs, otherwise he/she does to know its
behaviour (what it does). - It is not the same thing to be the buyer or the
seller in a sale. - Peter Linington made an interesting observation
- the constraints might be on the roles, rather
than on the actions directly.
13The ODP Definition of Interface
- 8.4 Interface An abstraction of the behaviour of
an object that consists of a subset of the
interactions of that object together with a set
of constraints on when they may occur.Each
interaction of an object belongs to a unique
interface. Thus the interfaces of an object form
a partition of the interactions of that object. - There are problems in this definition
- For knowing an interface, one needs to know which
roles are in it(the Comp. Lang. has Server and
Client Interfaces) - An ODP interface belongs to a single object, and
an ODP binding binds two or more interfaces. An
ODP interaction is associated with two or more
interfaces. - An object may interact with itselfThe interfaces
of an object partition its interaction roles
14Conclusions
- The RM-ODP Foundations is a difficult read
- Many subtle points in the definitions
- In fact, some definitions are flawed
(Interaction, Behaviour, Interface) - Explanations, and references are lacking. We had
to second-guess the authors original intentions
when writing this paper, which was very
difficult. - Writing the RM-ODP Foundations is much more
difficult. - Easy to get something wrong, or to miss
something. - We invite ISO experts to provide the missing
explanations (and definitions), rather than to
just fix the flawed definitions. - After all, the new definitions might be defective
again - The RM-ODP Foundations should become much more
accessible, for them to be known to, and used by,
more and more people.