Modeling the ODP Computational Viewpoint with UML 2.0 José Raúl Romero, Antonio Vallecillo

advertisement
Modeling 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}@lcc.uma.es
Agenda
LOGO
1.
The Reference Model for Open Distributed Processing
2.
A (graphical) notation for the ODP CV
3.
Modeling the ODP CV with UML 2.0
4.
Issues for discussion
5.
Conclusions
Geneva, October 11, 2005
2
ITU-T SG17 Meeting
Important
LOGO
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.
Geneva, October 11, 2005
3
ITU-T SG17 Meeting
The Reference Model for Open Distributed Processing (I) LOGO
 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
Geneva, October 11, 2005
4
ITU-T SG17 Meeting
The Reference Model for Open Distributed Processing (II)LOGO
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,
We need a general-purpose modeling notation,
Object-Z, LOTOS, maude, …)
familiar to developers, easy to learn and to use,
 … but traditionally useless
with commercial tool support …
Geneva, October 11, 2005
5
ITU-T SG17 Meeting
ISO/IEC 19793 | ITU-T Rec X.906:
Use of UML for ODP system specification
LOGO
 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
Geneva, October 11, 2005
6
ITU-T SG17 Meeting
The Reference Model for Open Distributed Processing (III)
LOGO
The RM-ODP viewpoints
Information
Enterprise
Business aspects
who? why?
ODP
System
Information, changes,
constraints
Technology
Computation
Configuration of objects
interacting at interfaces
Geneva, October 11, 2005
Engineering
Hard- and software components
That implement the system
Mechanisms and services
for distribution transparencies
7
ITU-T SG17 Meeting
The Reference Model for Open Distributed Processing (and
IV)
LOGO
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.
Geneva, October 11, 2005
8
ITU-T SG17 Meeting
Graphical notation for the ODP-CV (I)
Previous approaches
LOGO
 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
ODP-CV
Concepts
Geneva, October 11, 2005
Mapping to UML elements
9
UML 1.x
Approaches
ITU-T SG17 Meeting
Graphical notation for the ODP-CV (and II)
LOGO
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
ODP-CV
Metamodel
Geneva, October 11, 2005
Mapping to
UML elements
10
UML 2.0 Profile for the
ODP Computational
Viewpoint
ITU-T SG17 Meeting
Relationships between UOD, ODP
specifications, and UML models
LOGO
Universe
of Discourse
(UOD)
models
(see RM-ODP)
ODP
specification
maps to
(UML4ODP)
UML
model
expresses
(see UML spec)
Notation suitable
for representing a
UML model
Geneva, October 11, 2005
11
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (I)
The UML 2.0 Profile for the ODP Computational Viewpoint
LOGO
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)
Geneva, October 11, 2005
12
ITU-T SG17 Meeting
The Profile is based on a Metamodel for the
LOGO
ODP Computational Viewpoint
Geneva, October 11, 2005
13
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept
UML element
Component
Computational object template
Computational object
LOGO
<<CV_CompObjectTemplate>>
InstanceSpecification (from Component)
<<CV_Object>>
Port
Computational interface template
<<CV_CompInterfaceTemplate>>
Tags {objectRole, type}
Computational interface
Interaction point (Port at instance level)
<<CV_SignalInterface>>
<<CV_OperationInterface>>
<<CV_StreamInterface>>
Interface
<<CV_SignalInterfaceSignature>>
<<CV_OperationInterfaceSignature>>
<<CV_StreamInterfaceSignature>>
Computational interface signature
Geneva, October 11, 2005
14
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept
UML element
Component
Computational object template
Computational object
LOGO
<<CV_CompObjectTemplate>>
InstanceSpecification (from Component)
<<CV_Object>>
Port
Computational interface template
<<CV_CompInterfaceTemplate>>
Tags {objectRole, type}
Computational interface
Interaction point (Port at instance level)
<<CV_SignalInterface>>
<<CV_OperationInterface>>
<<CV_StreamInterface>>
Interface
<<CV_SignalInterfaceSignature>>
<<CV_OperationInterfaceSignature>>
<<CV_StreamInterfaceSignature>>
Computational interface signature
Geneva, October 11, 2005
15
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept
UML element
Component
Computational object template
Computational object
LOGO
<<CV_CompObjectTemplate>>
InstanceSpecification (from Component)
<<CV_Object>>
Port
Computational interface template
<<CV_CompInterfaceTemplate>>
Tags {objectRole, type}
Computational interface
Interaction point (Port at instance level)
<<CV_SignalInterface>>
<<CV_OperationInterface>>
<<CV_StreamInterface>>
Interface
<<CV_SignalInterfaceSignature>>
<<CV_OperationInterfaceSignature>>
<<CV_StreamInterfaceSignature>>
Computational interface signature
Geneva, October 11, 2005
16
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept
UML element
Component
Computational object template
Computational object
LOGO
<<CV_CompObjectTemplate>>
InstanceSpecification (from Component)
<<CV_Object>>
Port
Computational interface template
<<CV_CompInterfaceTemplate>>
Tags {objectRole, type}
Computational interface
Interaction point (Port at instance level)
<<CV_SignalInterface>>
<<CV_OperationInterface>>
<<CV_StreamInterface>>
Interface
<<CV_SignalInterfaceSignature>>
<<CV_OperationInterfaceSignature>>
<<CV_StreamInterfaceSignature>>
Computational interface signature
Geneva, October 11, 2005
17
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (II)
Computational objects and interfaces
ODP concept
UML element
Component
Computational object template
Computational object
LOGO
<<CV_CompObjectTemplate>>
InstanceSpecification (from Component)
<<CV_Object>>
Port
Computational interface template
<<CV_CompInterfaceTemplate>>
Tags {objectRole, type}
Computational interface
Interaction point (Port at instance level)
<<CV_SignalInterface>>
<<CV_OperationInterface>>
<<CV_StreamInterface>>
Interface
<<CV_SignalInterfaceSignature>>
<<CV_OperationInterfaceSignature>>
<<CV_StreamInterfaceSignature>>
Computational interface signature
Geneva, October 11, 2005
18
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (III)
Interactions
LOGO
UML element
ODP concept
Message
<<CV_Signal>>
<<CV_Invocation>>
<<CV_Termination>>
<<CV_Announcement>>
Signals and operations
Message/Interaction
Flows (in terms of signals)
<<CV_Flow>>
Reception
<<CV_SignalSignature>>
<<CV_InvocationSignature>>
<<CV_TerminationSignature>>
<<CV_AnnouncementSignature>>
<<CV_FlowSignature>>
Interaction signatures
(individual signals)
Operation
Interaction signatures (operations)
Geneva, October 11, 2005
<<CV_InterrogationSignature>>
19
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (III)
Interactions
LOGO
UML element
ODP concept
Message
<<CV_Signal>>
<<CV_Invocation>>
<<CV_Termination>>
<<CV_Announcement>>
Signals and operations
Message/Interaction
Flows (in terms of signals)
<<CV_Flow>>
Reception
<<CV_SignalSignature>>
<<CV_InvocationSignature>>
<<CV_TerminationSignature>>
<<CV_AnnouncementSignature>>
<<CV_FlowSignature>>
Interaction signatures
(individual signals)
Operation
Interaction signatures (operations)
Geneva, October 11, 2005
<<CV_InterrogationSignature>>
20
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (III)
Interactions
LOGO
UML element
ODP concept
Message
<<CV_Signal>>
<<CV_Invocation>>
<<CV_Termination>>
<<CV_Announcement>>
Signals and operations
Message/Interaction
Flows (in terms of signals)
<<CV_Flow>>
Reception
<<CV_SignalSignature>>
<<CV_InvocationSignature>>
<<CV_TerminationSignature>>
<<CV_AnnouncementSignature>>
<<CV_FlowSignature>>
Interaction signatures
(individual signals)
Operation
Interaction signatures (operations)
Geneva, October 11, 2005
<<CV_InterrogationSignature>>
21
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (III)
Interactions
LOGO
UML element
ODP concept
Message
<<CV_Signal>>
<<CV_Invocation>>
<<CV_Termination>>
<<CV_Announcement>>
Signals and operations
Message/Interaction
Flows (in terms of signals)
<<CV_Flow>>
Reception
<<CV_SignalSignature>>
<<CV_InvocationSignature>>
<<CV_TerminationSignature>>
<<CV_AnnouncementSignature>>
<<CV_FlowSignature>>
Interaction signatures
(individual signals)
Operation
Interaction signatures (operations)
Geneva, October 11, 2005
<<CV_InterrogationSignature>>
22
ITU-T SG17 Meeting
UML Profile (I)
Geneva, October 11, 2005
LOGO
23
ITU-T SG17 Meeting
UML Profile (II)
Geneva, October 11, 2005
LOGO
24
ITU-T SG17 Meeting
UML Profile (III)
Geneva, October 11, 2005
LOGO
25
ITU-T SG17 Meeting
UML Profile (IV)
Geneva, October 11, 2005
LOGO
26
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (IV)
LOGO
Specifying ODP systems
<<CV_Object>>
: Player
<<CV_BindingObject>>
IUserMgnt_Signature
: Sync
<<CV_ObjectTemplate>>
UserMgr
<<CV_ObjectTemplate>>
FineSystem
«CV_InterfaceTemplate»
userMgnt : IUserMgnt
«CV_StreamInterface»
«CV_InterfaceTemplate»
toUserMgr : IUserMgnt
«CV_InterfaceTemplate»
fine : IFine
«CV_StreamInterface»
toSync
toPlayer
IUserMgnt_Response
«CV_InterfaceTemplate»
type = operation
objectRole = server
«CV_SignalInterface»
«CV_StreamInterface»
toListener
«CV_InterfaceTemplate»
type = operation
objectRole = client
toListener
«CV_InterfaceTemplate»
type = operation
objectRole = client
<<CV_Object>>
: Listener
«CV_SignalInterface»
<<CV_ObjectTemplate>>
ItemMgr
«CV_InterfaceTemplate»
type = operation
objectRole = server
<<CV_ObjectTemplate>>
BorrowingSystem
«CV_InterfaceTemplate»
itemMgnt : IItemMgnt
toSync
«CV_InterfaceTemplate»
toItemMgr : IItemMgnt
IItemMgnt_Response
«CV_InterfaceTemplate»
type = operation
objectRole = server
ILoan_Signature
«CV_InterfaceTemplate»
toUserMgr : IUserMgnt «CV_InterfaceTemplate»
loan : ILoan
IItemMgnt_Signature
«CV_StreamInterface»
toPlayer
«CV_InterfaceTemplate»
type = operation
objectRole = server
IFine_Signature
«CV_InterfaceTemplate»
toFineSystem : IFine
ILoan_Response
«CV_InterfaceTemplate»
borrow : IBorrow
«CV_InterfaceTemplate»
type = operation
objectRole = client
Component diagrams are used to
describe the ODP system Structure
IBorrow_Signature
«CV_InterfaceTemplate»
type = operation
objectRole = server
: Assistant
Behaviour is described in terms of:
: IBorrow
: ILoan
: IFine
: IUserMgnt
: IItemMgnt
1: returnItem ( us erId=, item Id= )
«CV_Announcem ent»
2: getLoan
«CV_Invocation»
3: getLoanRes pons e
«CV_Term ination»
alt
{ due date is over }
4: fine( us erId=, am ount= )
«CV_Announcem ent»
− Interaction models (message passing)
[]
{interactionOperand = ,
5: s us pendUs er
interactionOperator = alt}
«CV_Announcem ent»
6: rem oveLoan( id= )
«CV_Announcem ent»
− Activity models (sequence, i/o, …)
7: freeItem ( id= )
«CV_Announcem ent»
− Statecharts (changes caused by events, …)
<<profile>>
ODP CV Profile
<<profile>>
UML Profile for Modeling
QoS and Fault Tolerance
Characteristics and
Mechanisms
<<apply>>
<<apply>>
My ODP System
Geneva, October 11, 2005
Environment contracts are modeled:
− using UML restriction mechanisms (OCL,
timing diagrams, …)
− applying other UML profiles (e.g., UML
Profile for Modeling QoS Characteristics)
27
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (V)
Example 1: Structure specification
Geneva, October 11, 2005
28
LOGO
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (VI)
Example 1: Structure specification
<<CV_ObjectTemplate>>
UserMgr
LOGO
<<CV_ObjectTemplate>>
FineSystem
«CV_InterfaceTemplate»
toUserMgr : IUserMgnt
«CV_InterfaceTemplate»
userMgnt : IUserMgnt
IUserMgnt__Signature
«CV_InterfaceTemplate»
type = operation
«CV_InterfaceTemplate»
type = operation
<<CV_OperationInterfaceSignature>>
IUserMgnt__Signature
<<CV_AnnouncementSignature>>
enableUser( id : Integer )
suspendUser( id : Integer )
<<CV_InterrogationSignature>>
addUser( detail : User ) : boolean
getUser( id : Integer ) : User
Geneva, October 11, 2005
29
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (VII)
Example 1: Behaviour specification
Geneva, October 11, 2005
30
LOGO
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (VIII)
Example 1: Behaviour specification
Geneva, October 11, 2005
31
LOGO
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (IX)
Example 2: Structure specification
LOGO
• 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.
Snapshot
• A service manager object
manages the listeners’
selections
Computational Templates
Geneva, October 11, 2005
32
ITU-T SG17 Meeting
Modeling the ODP-CV in UML 2.0 (and X)
Example 2: Behaviour specification
: Assistant
: IBorrow
: ILoan
: IFine
: IUserMgnt
LOGO
: IItemMgnt
1: returnItem ( us erId=, item Id= )
«CV_Announcem ent»
2: getLoan
«CV_Invocation»
3: getLoanRes pons e
«CV_Term ination»
alt
{ due date is over }
4: fine( us erId=, am ount= )
«CV_Announcem ent»
[]
{interactionOperand = ,
5: s us pendUs er
interactionOperator = alt}
«CV_Announcem ent»
6: rem oveLoan( id= )
«CV_Announcem ent»
7: freeItem ( id= )
«CV_Announcem ent»
Computational Object Template
Geneva, October 11, 2005
33
ITU-T SG17 Meeting
Issues for discussion
LOGO
 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.
Geneva, October 11, 2005
34
ITU-T SG17 Meeting
Conclusions
LOGO
 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.
Geneva, October 11, 2005
35
ITU-T SG17 Meeting
End of Presentation
Geneva, October 11, 2005
LOGO
36
ITU-T SG17 Meeting
Download