MDA Tutorial at ICWE

Document Sample
MDA Tutorial at ICWE Powered By Docstoc
					UML for ODP system
  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

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

     – This presentation describes work in progress, that
       may (and will) change as the ISO/IEC Standard 19793
       | ITU-T Rec. X.906 is developed.
     – 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 Tyndale-
       Biscoe, Akira Tanaka and Bryan Wood.

April 2005                                               3
ODP System Specifications

• The Reference Model of ODP (ITU-T Rec X.901-
   904 | 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
     – 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




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
     – Invocations (by computational objects): functions
     – 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
     –   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                                           Enterprise
- What for? Why? Who? When?

- information
- changes to information                                   Information
- constraints
- Object configuration
- Interactions between                                   Computational
  objects at interfaces

- Mechanisms and services
  for distribution trans-
  parencies and QoS constraints.                           Engineering

- Hardware and software components                           Technology
  implementing the system
                        - and correspondences between specifications
April 2005                                                            12
Correspondences between ODP VPs


             Information                Computational



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
     – 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
                         *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
     – ODP Modelers
             • that need some (graphical) notation for expressing their
               ODP specifications
     – Tool vendors
April 2005                                                                15
UML Profiles for ODP Viewpoint Languages

              of Discourse

               is a model of
               (see RM-ODP)

                  ODP             maps to            UML
              specification    (defined in this      model
                                                  is used to express
                                                    (see UML spec)


 April 2005                                                            16
ODP Specifications and the MDA

Business Needs

                                    CIM*                        Platform Model*
             Enterprise Spec
                 Information Spec             PIM*
                                                                        Choice of
                            Computational Spec                          technology

                                    Engineering Spec

                                             Technology Spec

                                                       Note: Terms with “*” are from MDA Guide

April 2005                                                                                  17
ODP System specification structure

                  <<Enterprise_Spec>>   <<Information_Spec>>




April 2005                                                       18
Enterprise metamodel (excerpt)
                                                                                                                                     refines as sub-objective

                                                                                                                                                *         refined as sub-objectives by
                                                                        specifies                                     specified in                      0..1                                              refines
 Policy          *                 1            Contract                                                                                Objective                                    Process
                                                                   1                                                           1
               specified in   specifies                                                                                                                 1..*met by       meets *                          0..1
                                                1 specifies
                                                                              1..*                                                                                                     1..* is graph of
                                                                                                                                            1..* is met by

                                                1 specified in
                                                                                                                                                                                       1..* is in context of
                              refines 1         Community                                                                                                                                            0..1
                                                                           1                                                                                                                         refined as
                                is a configuration of *
                                                                                                                                                                                       0..1 abstraction of
                                                                                                                            specified by        meets
                                                                                           is specified in
  refined as   0..1                     is a member of     *                                                                         1..*       1..*                                     1 abstracted as
                                                                          fulfils          *                 identifies       1                           is a set of    1..*
Community Object                              Enterprise Object                                     Role                                Behaviour                                      Action
                                                                            * is fulfilled by                  0..1 identified by                          1..* is part of

                              is actor for      is resource for     is artefact for
                                                                                                                              Artefact                                    refers to
                                       1..*                *        *                                                                                                                              performed by
                                                                                            Interface Role                                                                      1..*
                                                                                                                  is referenced in *                                                               1..*

                                                                                         * is essential to

                                                                                     Resource                                                                    Actor

                                                                                                                                                    participates in     1..*

April 2005                                                                                                                                                                                                   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)











April 2005                               21
Information Language metamodel

April 2005                       22
UML Profile – Information Language

               «metaclass»        «stereotype»
                 Object            IV_Object


               «metaclass»       «stereotype»
                Constraint   IV_InvariantSchema

               «metaclass»     IV_StaticSchema
                             locationInTime: Date

               «metaclass»       «stereotype»
              StateMachine   IV_DynamicSchema

               «metaclass»       «stereotype»
                 Signal         IV_ActionType

April 2005                                          23
UML Profile – Information lang. (icons)






             « 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. Operating System                          e.g.

                                      Nucleus    1                    1         Node
                                                +manager                   + location : URI
                                                                                                                   e.g. Application
                                                                                      1                            Server or ORB

                                  e.g. Virtual Machine (a
                                  process) or a
                                  component container
                                                                                    0..*                             CapsuleManager
        EngineeringObject      0..*                                           Capsule       1                 1
                                                                                                                    + CreateCluster()
                             +otherEngineeringObject                      1                             +manager    + CloneCluster()
                                                                             1      1                               + DestroyCluster()
                                                                          +/capsule                                     1

                                                              0..*                               0..*              0..*
                                                          +/cluster                                                 +clusterManager
                                                Cluster                                   +manager   ClusterManager                   e.g. Fail-over and
                                                          1..*                                  1                                     migration manager,
                                                                                                                     1                handled by app server
                e.g. Segment of                                                                                      +manager
                Virtual Memory or
                a CORBA                                                            0..*
                component                                               +locallyBoundObject
                                                                           BEO     0..*

April 2005                                                                                                                                                    27
Engineering Language metamodel (2)

                                                                                                     An Interceptor can
                                                                                                     also be a Channel,
                                                                                                     meaning that Channels
                                                            ClientServerChannel                      support recursion to
                                                                                                     arbitrary levels of depth
               A Channel supports a
               distributed binding among

        BEO         2..*                                0..*     Channel
                      +/endPoint                                               1
        1    +beo                                            1             1

      0..*     2..*                             2..*                           2..*                                0..*
        Stub                                   Binder                           ProtocolObject                       Interceptor
                    1                      1            1                      + type : String   2          0..*
                                                                               1             0..*

April 2005                                                                                                                                     28
Technology Language metamodel

             Implementable     Technology
                standard         object

                  IXIT       Implementation

April 2005                                    29
UML mappings – Technology language

Technology Language Concepts   Corresponding UML elements
Technology object              Deployment diagram including
                               instances of components
Implementable standard         a)   Stereotyped Notes attached to
                                    deployment diagram and/or instance
                                    of components or
                               b)   UML tagged values or named
                                    property list
Implementation                 A process of building a testable UML
                                  system according to a UML model or
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
     – 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

              Templeman Library System (E Spec)

              Templeman Library System (I Spec)

              Templeman Library System (C Spec)

              Templeman Library System (N 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


                Borrowing processes                     Fining processes

                     Borrow Item                             Fine            Pay fines

                     Return Item
                                                         S uspend borrower   Re-instate borrower

                Administrative processes

                  Add borrower                Release Item

                    Add Item               Remove borrower

April 2005                                                                                         38
Enterprise spec – Activity graph

April 2005                         39
Enterprise spec – Artefact roles of Loan

                                                                                               1                        1
                                                                                                   1     Loan
                           <<EV_ArtefactRole>>                       <<EV_ArtefactRole>>   <<EV_ArtefactRole>>
                                                                                <<EV_ArtefactRole>>         <<EV_ArtefactRole>>
                                      1                    1                           1                     1                1                    1

        loan request                  loan authorization             loan disqualification item loaned                                    loan refusal               loan request
                1                               1                                1                                                                 1
<<EV_ArtefactReference>>        <<EV_ArtefactReference>> <<EV_ArtefactReference>> <<EV_ArtefactReference>>                                                       <<EV_ArtefactReference>>
              1                                                                                                                                    1                               1
                                                1                                  1                               1

         Request                          Authorize                        Disqualify                           Issue                           Refuse                               Request
              1                            1                                                                                              component 1
      component             component                          component                               component                                                               component
                                                                                                                  1                                                                         1
                                composition 1                                                                                             composition 1
                       1                                   composition
                                                                                                                                  1                             composition
                  composition                                    1                                                                                                    1

                                      Process Loan                                                                                             Request Item

April 2005                                                                                                                                                                                      40
Enterprise spec – Interactions


              Borrowing Interactions

               Borrow item                  Fining Interactions

                Request Item Process Loan

                                            Administration Interactions
                Return item

April 2005                                                                41
Enterprise spec – state diagram for
Borrower role

                        Loan requirement

                           ^loan request

                        Awaiting response

                  item loaned        loan refusal

             Has loan                       Does not have loan

April 2005                                                       42
Enterprise spec – Policies

                                <<description>>                                   UndergradBorrowingLimit <<EV_PolicyConstraint>>
             Undergraduate students are not allowed to borrow more               {inv:
             than a set number of books; this maximum number of                   self.Loan.borrower().numberOfBooks <=
             books may vary from time to time and is determined by                  self.Librarian.maxUndergradBookLoans}
             the Librarian.

                                                          Undergraduate Borrowing Limit
                                                              1                               1
                                                                     1    1

                                                                                                                          Undergrad borrower

                                                                                                                 Library system


                                                          Process Loan                Borrow Item Process

April 2005                                                                                                                                     43
Enterprise spec – Delegation

April 2005                     44
Enterprise spec – Interactions between

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 | <> and
   self.users->forAll( usr1,usr2 | <>

context Library inv oneLibrarianAndOneClockWhileOpen:
   self.isOpen implies
         (self.Librarian->size() = 1) and (self.Calendar->size() = 1)

context Library inv consistentNumberOfLoans:
   self.users.borrowedItems->sum() =>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                     SC7 meeting
• 1st CD           Dec 2004
• FCD              May 2005                      SC7 meeting
• FDIS             Dec 2005
• IS               May 2006                      SC7 meeting

             Current WD is available as ISO-stds/04-06-01
April 2005                                                     53

Shared By: