UML for ODP system
specifications
ITU-T X.906 | ISO/IEC 19793
(A work-in-progress presentation)
Antonio Vallecillo
Universidad de Málaga
Dept. Lenguajes y Ciencias de la Computación
[email protected]
http://www.lcc.uma.es/~av/
Agenda
1. ODP system specifications
2. Use of UML for ODP system specifications
3. ODP system specifications and the MDA
4. Sources and progress so far
5. What is left, and what is next
6. Conclusions
April 2005
2
Important
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.
Acknowledgements
– The work presented here has been developed by the
ISO/IEC JTC1-SC7-WG19 Working group. We’d like
to acknowledge the work by many ODP experts who
have been involved in investigating and addressing
the problems of the UML specification of ODP
systems. Specially mention deserve Sandy TyndaleBiscoe, Akira Tanaka and Bryan Wood.
April 2005
3
ODP System Specifications
• The Reference Model of ODP (ITU-T Rec X.901904 | ISO/IEC 10746) defines a framework for
system specification, covering all aspects of
open distributed systems:
– “enterprise” context, functionality, distribution,
infrastructure, technology
• It comprises
– a structure for system specifications in terms of
viewpoints
– a language (concepts and rules) for expressing each
viewpoint specification
– a set of object-oriented foundation modeling
concepts common to all viewpoint languages
April 2005
4
ODP Viewpoints
• Different abstractions of the same system
– each abstraction focuses on different concerns
– each abstraction achieved using a set of viewpoint
concepts and rules
• A mechanism for dealing with the complexity of
distributed systems
• An ODP specification includes a set of
viewpoint specifications
– Each viewpoint specification is expressed in terms of
the viewpoint concepts and rules (the VP language)
– Includes correspondences with other ODP VP specs
April 2005
5
ODP Viewpoints—different concerns
Information
Enterprise
System
Computational
Technology
Engineering
April 2005
6
The enterprise specification
• Specifies the roles played by the system in its
organizational environment
• An object model of, for example, part of some
social/commercial organization in terms of:
– Enterprise objects
– Communities (of enterprise objects)
– Behaviour
• Roles (fulfilled by enterprise objects in a community)
• Processes (leading to Objectives)
– Policies
– Accountability
– …
April 2005
7
The information specification
• Specifies system behavior to fulfill its enterprise
roles, abstracted from implementation
• An object model of the system describing the
semantics of information and of information
processing in the system, in terms of:
– Information objects
– Invariant schema: predicates on information
objects that must always be true
– Static schema: state of information objects at
some location in time
– Dynamic schema: allowable state changes of
information objects
April 2005
8
The computational specification
• Specifies computational structure of the system
in terms of its functionality (distribution and
technology independent)
• An object model of the system describing its
functionality in terms of:
– Computational objects
– Interfaces (of computational objects): functions
supported
– Invocations (by computational objects): functions
invoked
– Computational bindings
– Environment contracts
April 2005
9
The engineering specification
• Specifies the mechanisms and services that
provide the distribution transparencies and QoS
constraints required by the system, independent
of platform and technology
• An object model of the system describing the
infrastructure supporting the computational
structure
–
–
–
–
–
Basic engineering objects
(infrastructure) engineering objects
Clusters, capsules, nodes
Channels
Functions
April 2005
10
The technology specification
• Specifies the H/W and S/W pieces from which
the system is built
• An object model of the system
– defining the configuration of technology objects that
comprise the ODP system, and the interfaces
between them
– identifying conformance points
April 2005
11
An ODP system specification
- business aspects
- What for? Why? Who? When?
- information
- changes to information
- constraints
- Object configuration
- Interactions between
objects at interfaces
- Mechanisms and services
for distribution transparencies and QoS constraints.
Enterprise
Information
Computational
Engineering
- Hardware and software components
Technology
implementing the system
- and correspondences between specifications
April 2005
12
Correspondences between ODP VPs
Enterprise
Information
Computational
Engineering
Technology
April 2005
13
Use of UML* for ODP system specs
ITU-T X.906 | ISO/IEC 19793
• 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
• A standard that enables the use of MDA tools in
developing and maintaining ODP system
specifications
*currently Version 1.4.1, but moving to 2.0
April 2005
14
Use of UML* for ODP system specs
ITU-T X.906 | ISO/IEC 19793
• Why?
– RM-ODP is notation- and methodology- independent
– Which is an advantage (a-priori) ...
– ...but hampers its use and adoption
• Target audiences of ISO/IEC 19793
– UML Modelers
• that need to structure (somehow) their LARGE system
specifications
– ODP Modelers
• that need some (graphical) notation for expressing their
ODP specifications
– Tool vendors
April 2005
15
UML Profiles for ODP Viewpoint Languages
U n iv erse
o f D isco u rse
(U O D )
is a m od el o f
(see R M -O D P )
ODP
sp ecificatio n
m ap s to
(d efined in this
d o cumient)
UML
m o d el
n
is u sed to ex press
(see U M L sp ec)
UML
no tation
April 2005
16
ODP Specifications and the MDA
B u sin ess N eed s
P la tfo rm M o d el*
C IM *
E n terp rise S p ec
In fo rm a tio n S p ec
P IM *
T ra n sp a ren cies
C h o ice o f
tech n o lo g y
C o m p u ta tio n a l S p ec
E n g in eerin g S p ec
PSM *
T ech n o lo g y S p ec
N o te: T erm s w ith “* ” are fro m M D A G u id e
April 2005
17
ODP System specification structure
<<ODP_SystemSpec>>
<<Enterprise_Spec>>
<<Information_Spec>>
<<Computational_Spec>>
<<Engineering_Spec>>
<<Technology_Spec>>
April 2005
18
Enterprise metamodel (excerpt)
refines as sub-objective
refined as sub-objectives by
*
*
Policy
specified in
specifies
1
Contract
specified in
Objective
1
specifies
0..1
1..* met by
1
refines
Process
1
specifies
0..1
meets *
1..* is graph of
1..*
1..* is met by
specifies
1
refines
1
specified in
1..*
is in context of
Community
0..1
S tep
is a configuration of
1
*
refined as
has
0..1
specified by
refined as
0..1
is a member of
Community Object
is specified in
*
fulfils
*
Role
* is fulfilled by
*
Enterprise Object
is actor for
is resource for
1..*
identifies
0..1
1
1
1..*
Behaviour
identified by
is a set of
1..*
1..*
*
abstracted as
Action
is part of
is artefact for
Artefact
1..*
abstraction of
meets
refers to
*
performed by
Interface Role
is referenced in
1..*
*
1..*
requires
1..*
* is essential to
Actor
Resource
participates in
April 2005
1..*
19
UML Profile – Enterprise lang. (excerpt)
Concept
Stereotype
UML Metaclass
ODP System
«EV_ODPSystem»
Class
Field of Application
«EV_FieldOfApplication»
Comment attached to Package
Community
«EV_Community»
Subsystem
Enterprise Object
«EV_EnterpriseObject»
Class
Enterprise Object fulfilling Role
«EV_FulfilsRole»
Association
Community Object
«EV_CommunityObject»
Class
Objective
«EV_Objective»
Class
Role
«EV_Role»
Class, StateMachine (in role model),
Partition (in process model)
Action
«EV_Action»
State
Interaction
«EV_Interaction»
Class, StateMachine, ActivityGraph
Process
«EV_Process»
Class, ActivityGraph
Step
«EV_Step»
ActionState
Artefact
«EV_Artefact»
ObjectFlowState (in process model),
Signal (in role model)
April 2005
20
UML Profile – Enterprise lang. (icons)
«EV_EnterpriseObject»
«EV_ODPSystem»
«EV_Role»
«EV_Interaction»
«EV_Artefact»
«EV_CommunityObject»
«EV_Community»
«EV_Objective»
«EV_Process»
«EV_Step»
April 2005
21
Information Language metamodel
April 2005
22
UML Profile – Information Language
« p ro file »
IV _ P ro file
« m e ta c la s s »
O b je c t
« s te re o typ e »
IV _ O b je c t
« s te re o typ e »
IV _ O b je c tT yp e
« m e ta c la s s »
C la s s
« s te re o typ e »
IV _ O b je c tT e m p la te
« m e ta c la s s »
C o n s tra in t
« m e ta c la s s »
Package
« s te re o typ e »
IV _ In v a ria n tS c h e m a
« s te re o typ e »
IV _ S ta tic S c h e m a
lo c a tio nIn T im e: D ate
April 2005
« m e ta c la s s »
S ta te M a c h in e
« s te re o typ e »
IV _ D y n a m ic S c h e m a
« m e ta c la s s »
S ig n a l
« s te re o typ e »
IV _ A c tio n T yp e
23
UML Profile – Information lang. (icons)
«Information_Spec»
«IV_InformationObject»
«IV_InformationObjectType»
«IV_ActionType»
«IV_InvariantSchema»
« IV_StaticSchema»
« IV_DynamicSchema»
April 2005
24
Computational Language metamodel
April 2005
25
UML Profile – Computational Language
April 2005
26
Engineering Language metamodel (1)
e.g.
Computer
e.g. Operating System
Nucleus
1
+manager
1
Node
+ location : URI
e.g. Application
Server or ORB
1
e.g. Virtual Machine (a
process) or a
component container
EngineeringObject
0..*
0..*
Capsule
+otherEngineeringObject
CapsuleManager
1
1
+manager
1
1
1
+/capsule
0..*
+/cluster
Cluster
1..*
1
+capsuleManager
0..*
+manager
1
April 2005
0..*
+clusterManager
ClusterManager
1
+manager
1
e.g. Segment of
Virtual Memory or
a CORBA
component
+ CreateCluster()
+ CloneCluster()
+ DestroyCluster()
e.g. Fail-over and
migration manager,
handled by app server
0..*
+locallyBoundObject
0..*
0..*
0..*
BEO
+beo
+beo
27
Engineering Language metamodel (2)
An Interceptor can
also be a Channel,
meaning that Channels
support recursion to
arbitrary levels of depth
ClientServerChannel
A Channel supports a
distributed binding among
BasicEngineeringObjects
ChannelInterceptor
0..*
2..*
BEO
Channel
+/endPoint
1
1
+beo
0..*
1
2..*
1
1
2..*
2..*
Stub
Binder
1
1
1
1..*
ProtocolObject
+ type : String
1
April 2005
0..*
Interceptor
2
0..*
0..*
+boundProtocolObject
28
Technology Language metamodel
Implementable
standard
IXIT
April 2005
Technology
object
Implementation
29
UML mappings – Technology language
Technology Language Concepts
Corresponding UML elements
Technology object
Deployment diagram including
instances of components
Implementable standard
a)
b)
Stereotyped Notes attached to
deployment diagram and/or instance
of components or
UML tagged values or named
property list
Implementation
A process of building a testable UML
system according to a UML model or
models
IXIT
Stereotyped Notes
April 2005
30
UML 4 ODP – (Some) Sources
• Japanese Association of Healthcare Information
System Industry (JAHSI) - Hospital Information
Reference Enterprise Model project
• European research projects:
– e.g. COMBINE - investigating the organisation and
process for component-based system development
• Industrial Practice
• OMG
– UML profile for Enterprise Distributed Object
Computing (EDOC)
• A worked example for the standard
April 2005
31
An example: the Templeman Library
• The example is about the computerized system that
•
•
supports the operations of a University Library, in
particular those related to the borrowing process of the
Library items.
The system should keep track of the items of the
University Library, its borrowers, and their outstanding
loans.
The library system will be
used by the library staff
(librarian and assistants) to
help them record loans,
returns, etc.
April 2005
32
UML specification of the ODP system
Templeman Library System v00-05
<<Enterprise_Spec>>
Templeman Library System (E Spec)
<<Information_Spec>>
Templeman Library System (I Spec)
<<Computational_Spec>>
Templeman Library System (C Spec)
<<Engineering_Spec>>
Templeman Library System (N Spec)
<<Technology_Spec>>
Templeman Library System (T Spec)
April 2005
33
Enterprise spec – Global
April 2005
34
Enterprise spec – Library Community
April 2005
35
Enterprise spec – enterprise objects
April 2005
36
Enterprise spec – Role fulfilment
April 2005
37
Enterprise spec – Processes
Processes
Borrowing processes
Fining processes
Fine
Borrow Item
Return Item
S uspend borrower
Pay fines
Re-instate borrower
Administrative processes
Add borrower
Add Item
April 2005
Release Item
Remove borrower
38
Enterprise spec – Activity graph
April 2005
39
Enterprise spec – Artefact roles of Loan
1
1
1
1
<<EV_ArtefactRole>>
1
loan request
1
1
<<EV_ArtefactRole>>
<<EV_ArtefactRole>>
<<EV_ArtefactRole>>
<<EV_ArtefactRole>>
1
1
loan authorization
1
1
1
1
Authorize
1
component
1
Disqualify
component
1
<<EV_ArtefactRole>>
1
loan disqualification
1
item loaned
1
<<EV_ArtefactReference>> <<EV_ArtefactReference>> <<EV_ArtefactReference>>
<<EV_ArtefactReference>>
1
Request
1
component
Loan
1
loan refusal
1
<<EV_ArtefactReference>>
1
Issue
component
loan request1
<<EV_ArtefactReference>>
1
Refuse
component 1
Request
component
1
1
1
composition 1
composition
1
1
composition
Process Loan
April 2005
composition 1
composition
1
1
composition
Request Item
40
Enterprise spec – Interactions
Interactions
Borrowing Interactions
Borrow item
Fining Interactions
Request Item Process Loan
Return item
April 2005
Administration Interactions
41
Enterprise spec – state diagram for
Borrower role
Loan requirement
^loan request
Awaiting response
item loaned
Has loan
April 2005
loan refusal
Does not have loan
42
Enterprise spec – Policies
<<description>>
Undergraduate students are not allowed to borrow more
than a set number of books; this maximum number of
books may vary from time to time and is determined by
the Librarian.
UndergradBorrowingLimit <<EV_PolicyConstraint>>
{inv:
self.Loan.borrower().numberOfBooks <=
self.Librarian.maxUndergradBookLoans}
<<EV_Policy>>
Undergraduate Borrowing Limit
1
1
<<EV_ControllingAuthority>>
1
1
1
<<EV_AssociatedRole>>
1
<<EV_ConstrainedBehaviour>>
Undergrad borrower
Librarian
<<EV_AffectedProcess>>
<<EV_ConstrainedObject>>
<<EV_AffectedInteraction>>
Library system
Loan
Process Loan
April 2005
Borrow Item Process
43
Enterprise spec – Delegation
April 2005
44
Enterprise spec – Interactions between
comunities
context Templeman Library System (E Spec)::Library::Behaviour::Roles::Librarian inv:
self.roleFiller <>
Templeman Library System (E Spec)::Personnel::Behaviour::Roles::Dean.roleFiller
April 2005
45
Information specification
April 2005
46
Information spec – Object types
April 2005
47
Information spec – Action types
April 2005
48
Information spec – invariant schemata
context Library inv undergradLimits:
(undergradMaxLoans = 8) and
(undergradBookLoanPeriod = 28) and
(undergradPeriodicalLoanPeriod = 0)
context Library inv uniqueIdentifiers:
self.items->forAll( itm1,itm2 | itm1.id <> itm2.id) and
self.users->forAll( usr1,usr2 | usr1.id <> usr2.id)
context Library inv oneLibrarianAndOneClockWhileOpen:
self.isOpen implies
(self.Librarian->size() = 1) and (self.Calendar->size() = 1)
context Library inv consistentNumberOfLoans:
self.users.borrowedItems->sum() = self.loans->size()
context Loan inv wellFormedLoans: issueDate <= dueDate
April 2005
49
Information spec – Static schema
April 2005
50
Information spec – Dynamic schema
April 2005
51
Computational spec – (diff. example)
April 2005
52
Progress and Targets
• Start of Project May 2003
• SC7 WD
May 2004
• 1st CD
Dec 2004
• FCD
May 2005
• FDIS
Dec 2005
• IS
May 2006
SC7 meeting
SC7 meeting
SC7 meeting
Current WD is available as ISO-stds/04-06-01
April 2005
53
Descargar

MDA Tutorial at ICWE 2004