Title: Diapositiva 1
1Modeling the ODP Computational Viewpoint with UML
2.0
José Raúl Romero, Antonio Vallecillo Universidad
de Málaga, Spain Dept. Lenguajes y Ciencias de la
Computación jrromero,av_at_lcc.uma.es
2Agenda
- The Reference Model for Open Distributed
Processing - A (graphical) notation for the ODP CV
- Modeling the ODP CV with UML 2.0
- Issues for discussion
- Conclusions
3Important
- Acknowledgements
- This work has been developed within WG19 of
ISO/JTC1/SC7, in the context of the development
of ISO/IEC 19793 ITU-T Rec. X.906 Use of UML
for ODP system specification - Although the views in this presentation are the
authors solely responsibility, they could not
have been formulated without the previous work
and the many hours of detailed discussions with
ISO experts on ODP, who have been involved in
investigating and addressing the problems of the
UML specification of ODP systems. Special mention
deserve Akira Tanaka, Peter Linington and Bryan
Wood. - Disclaimer
- This presentation describes work in progress,
that may (and will) change as the ISO/IEC
Standard 19793 ITU-T Rec. X.906 is developed.
4The Reference Model for Open Distributed
Processing (I)
- RM-ODP is a framework for ODP standardization and
system specification covering all aspects of
distributed systems enterprise business, system,
technology, distribution, - comprehensive and coherent object-oriented
modeling concepts - based on separation of concerns viewpoint
specifications - Transparencies
- Common functions
- Viewpoints
- Different abstractions of the same system
- Reflect different concerns
- Expressed in terms of specific viewpoint
languages - Powerful mechanism for dealing with the
complexity of distributed systems
5The Reference Model for Open Distributed
Processing (II)
Viewpoint languages and notations
- ODP Viewpoint languages are abstract, i.e., ODP
does not prescribe any notation for expressing
viewpoint specifications - Without a concrete syntax
- it is difficult to write ODP specifications
- there is no tool support
- no analysis of the specifications (formal or
informal) - the industrial acceptance and application of ODP
might be hindered - Formal methods are convenient for
precise/unambiguous interpretation of ODP
concepts and specifications (eg. Z, Object-Z,
LOTOS, maude, ) - but traditionally useless
We need a general-purpose modeling notation,
familiar to developers, easy to learn and to use,
with commercial tool support
6ISO/IEC 19793 ITU-T Rec X.906 Use of UML for
ODP system specification
- A standard defining
- a set of UML Profiles for expressing a system
specification in terms of viewpoint
specifications - possible relationships between the resultant ODP
viewpoint specifications and how they are
represented - the structure of a system specification expressed
as a set of UML models using ODP viewpoint
profiles - Target audiences of ISO/IEC 19793 ITU-T Rec.
X.906 - UML Modelers, that need to structure (somehow)
their LARGE system specifications - ODP Modelers, that need some (graphical) notation
for expressing their ODP specifications and tool
support - Tool vendors
7The Reference Model for Open Distributed
Processing (III)
The RM-ODP viewpoints
ODP System
Information, changes, constraints
Business aspects who? why?
Hard- and software components That implement the
system
Configuration of objects interacting at interfaces
Mechanisms and services for distribution
transparencies
8The Reference Model for Open Distributed
Processing
(and IV)
Computational specifications
- The Computational Viewpoint describes the
functionality of the ODP system and its
environment through the decomposition of the
system into objects, which interact at
interfaces, in a distribution transparent manner.
- A Computational Specification describes the
functional decomposition of an ODP system as - A configuration of computational objects
- The internal actions of those
- The interactions among those objects
- Environment contracts for those objects and their
interfaces.
9Graphical notation for the ODP-CV (I)
Previous approaches
- UML 1.4 was already proposed for ODP
computational VP modeling - UML Profile for EDOC (Component Collaboration
Architecture CCA) - Distributed System design within the DSE4DS
Project (Akehurst et al.) CQML (for environment
contracts)
- Very complete and precise approaches, but
- There is a big gap between the ODP and UML 1.x
concepts - Which made UML 1.X proposals too large and
complex for a wide industrial acceptance
10Graphical notation for the ODP-CV (and II)
Unified Modeling Language v2.0
- UML 2.0 provides several improvements to UML 1.x
that make it more suitable for modeling the
software architecture of large distributed
systems - The addition of new diagrams (e.g., interaction
overview diagrams, timing diagrams, etc.) and
enhancements to the existing ones (e.g., the
component diagram) - The influence of the mature SDL language and the
MSCs - The fully alignment of OCL with UML 2.0
- The enhancement of the language extension
mechanisms
11Relationships between UOD, ODP specifications,
and UML models
12Modeling the ODP-CV in UML 2.0 (I)
The UML 2.0 Profile for the ODP Computational
Viewpoint
The UML Profile defines the stereotypes, tags and
constraints that allow us to use the specific
domain terminology
The profile presented here serves as input to the
WG19 forthcoming standard on ISO/IEC 19793
ITU-T Rec. X.906 UML for ODP system
specifications (2nd CD due next month)
13The Profile is based on a Metamodel for the ODP
Computational Viewpoint
14Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept UML element
Computational object template Component ltltCV_CompObjectTemplategtgt
Computational object InstanceSpecification (from Component) ltltCV_Objectgtgt
Computational interface template Port ltltCV_CompInterfaceTemplategtgt Tags objectRole, type
Computational interface Interaction point (Port at instance level) ltltCV_SignalInterfacegtgt ltltCV_OperationInterfacegtgt ltltCV_StreamInterfacegtgt
Computational interface signature Interface ltltCV_SignalInterfaceSignaturegtgt ltltCV_OperationInterfaceSignaturegtgt ltltCV_StreamInterfaceSignaturegtgt
15Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept UML element
Computational object template Component ltltCV_CompObjectTemplategtgt
Computational object InstanceSpecification (from Component) ltltCV_Objectgtgt
Computational interface template Port ltltCV_CompInterfaceTemplategtgt Tags objectRole, type
Computational interface Interaction point (Port at instance level) ltltCV_SignalInterfacegtgt ltltCV_OperationInterfacegtgt ltltCV_StreamInterfacegtgt
Computational interface signature Interface ltltCV_SignalInterfaceSignaturegtgt ltltCV_OperationInterfaceSignaturegtgt ltltCV_StreamInterfaceSignaturegtgt
16Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept UML element
Computational object template Component ltltCV_CompObjectTemplategtgt
Computational object InstanceSpecification (from Component) ltltCV_Objectgtgt
Computational interface template Port ltltCV_CompInterfaceTemplategtgt Tags objectRole, type
Computational interface Interaction point (Port at instance level) ltltCV_SignalInterfacegtgt ltltCV_OperationInterfacegtgt ltltCV_StreamInterfacegtgt
Computational interface signature Interface ltltCV_SignalInterfaceSignaturegtgt ltltCV_OperationInterfaceSignaturegtgt ltltCV_StreamInterfaceSignaturegtgt
17Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept UML element
Computational object template Component ltltCV_CompObjectTemplategtgt
Computational object InstanceSpecification (from Component) ltltCV_Objectgtgt
Computational interface template Port ltltCV_CompInterfaceTemplategtgt Tags objectRole, type
Computational interface Interaction point (Port at instance level) ltltCV_SignalInterfacegtgt ltltCV_OperationInterfacegtgt ltltCV_StreamInterfacegtgt
Computational interface signature Interface ltltCV_SignalInterfaceSignaturegtgt ltltCV_OperationInterfaceSignaturegtgt ltltCV_StreamInterfaceSignaturegtgt
18Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept UML element
Computational object template Component ltltCV_CompObjectTemplategtgt
Computational object InstanceSpecification (from Component) ltltCV_Objectgtgt
Computational interface template Port ltltCV_CompInterfaceTemplategtgt Tags objectRole, type
Computational interface Interaction point (Port at instance level) ltltCV_SignalInterfacegtgt ltltCV_OperationInterfacegtgt ltltCV_StreamInterfacegtgt
Computational interface signature Interface ltltCV_SignalInterfaceSignaturegtgt ltltCV_OperationInterfaceSignaturegtgt ltltCV_StreamInterfaceSignaturegtgt
19Modeling the ODP-CV in UML 2.0 (III)
Interactions
ODP concept UML element
Signals and operations Message ltltCV_Signalgtgt ltltCV_Invocationgtgt ltltCV_Terminationgtgt ltltCV_Announcementgtgt
Flows (in terms of signals) Message/Interaction ltltCV_Flowgtgt
Interaction signatures (individual signals) Reception ltltCV_SignalSignaturegtgt ltltCV_InvocationSignaturegtgt ltltCV_TerminationSignaturegtgt ltltCV_AnnouncementSignaturegtgt ltltCV_FlowSignaturegtgt
Interaction signatures (operations) Operation ltltCV_InterrogationSignaturegtgt
20Modeling the ODP-CV in UML 2.0 (III)
Interactions
ODP concept UML element
Signals and operations Message ltltCV_Signalgtgt ltltCV_Invocationgtgt ltltCV_Terminationgtgt ltltCV_Announcementgtgt
Flows (in terms of signals) Message/Interaction ltltCV_Flowgtgt
Interaction signatures (individual signals) Reception ltltCV_SignalSignaturegtgt ltltCV_InvocationSignaturegtgt ltltCV_TerminationSignaturegtgt ltltCV_AnnouncementSignaturegtgt ltltCV_FlowSignaturegtgt
Interaction signatures (operations) Operation ltltCV_InterrogationSignaturegtgt
21Modeling the ODP-CV in UML 2.0 (III)
Interactions
ODP concept UML element
Signals and operations Message ltltCV_Signalgtgt ltltCV_Invocationgtgt ltltCV_Terminationgtgt ltltCV_Announcementgtgt
Flows (in terms of signals) Message/Interaction ltltCV_Flowgtgt
Interaction signatures (individual signals) Reception ltltCV_SignalSignaturegtgt ltltCV_InvocationSignaturegtgt ltltCV_TerminationSignaturegtgt ltltCV_AnnouncementSignaturegtgt ltltCV_FlowSignaturegtgt
Interaction signatures (operations) Operation ltltCV_InterrogationSignaturegtgt
22Modeling the ODP-CV in UML 2.0 (III)
Interactions
ODP concept UML element
Signals and operations Message ltltCV_Signalgtgt ltltCV_Invocationgtgt ltltCV_Terminationgtgt ltltCV_Announcementgtgt
Flows (in terms of signals) Message/Interaction ltltCV_Flowgtgt
Interaction signatures (individual signals) Reception ltltCV_SignalSignaturegtgt ltltCV_InvocationSignaturegtgt ltltCV_TerminationSignaturegtgt ltltCV_AnnouncementSignaturegtgt ltltCV_FlowSignaturegtgt
Interaction signatures (operations) Operation ltltCV_InterrogationSignaturegtgt
23UML Profile (I)
24UML Profile (II)
25UML Profile (III)
26UML Profile (IV)
27Modeling the ODP-CV in UML 2.0 (IV)
Specifying ODP systems
Component diagrams are used to describe the ODP
system Structure
- Behaviour is described in terms of
- Interaction models (message passing)
- Activity models (sequence, i/o, )
- Statecharts (changes caused by events, )
- Environment contracts are modeled
- using UML restriction mechanisms (OCL, timing
diagrams, ) - applying other UML profiles (e.g., UML Profile
for Modeling QoS Characteristics)
28Modeling the ODP-CV in UML 2.0 (V)
Example 1 Structure specification
29Modeling the ODP-CV in UML 2.0 (VI)
Example 1 Structure specification
30Modeling the ODP-CV in UML 2.0 (VII)
Example 1 Behaviour specification
31Modeling the ODP-CV in UML 2.0 (VIII)
Example 1 Behaviour specification
32Modeling the ODP-CV in UML 2.0 (IX)
Example 2 Structure specification
- A multimedia system composed by listeners who
want to receive audio frames from an audio
streamer (i.e. Internet radio station) - A binding object manages the multicast of audio
frames from a audio streamer to its registered
listeners. - A service manager object manages the listeners
selections
33Modeling the ODP-CV in UML 2.0 (and X)
Example 2 Behaviour specification
34Issues for discussion
- Differences between the ODP and UML object models
- The UML object model assumes that classes are
first-class citizens. Objects are instances of
these classes. - The ODP model considers objects as first-class
citizens. Types are predicates on objects, and
classes are collections of objects. - In UML, invariants and operations are owned by
individual objects. ODP uses collective state
for invariants, and collective behavior for
operation and interaction specifications - UML 2.0 allow semantic variations
- Terminology conflicts
- ODP object vs. UML object
- ODP type vs. UML type
- ODP interface vs. UML interface
- ODP class vs. UML class
- Structuring rules
- In ODP, signals with different causalities can
coexist in an interface. UML requires different
UML interfaces for signals with different
causalities. - ODP computational objects can instantiate
interface templates. UML ports cannot be
individually instantiated.
35Conclusions
- UML 2.0 enables the representation of ODP
Computational concepts in a more natural manner
than UML 1.5 - There is not a "perfect" match of concepts, but
this does not invalidate the profile - The UML 2.0 Profile for the ODP Computational
Viewpoint will be discussed during the
forthcoming ISO/JTC1/SC7 WG19 meeting in Bari
(Italy), 24-28 October, 2005.
36End of Presentation
Thank You !
Antonio Vallecillo av_at_lcc.uma.es http//www.lcc.um
a.es/av