Title: From UML Fondue to COOPN
1From UML (Fondue) to COOPN
- An iterative approach applying MDA techniques
2Outline
- Motivation and general approach
- Some background
- Fondue Specification
- The MDA approach
- Some steps towards the transformation
- Relationship between Fondue components and
COOPN components - Tools, tools and another process diagram
- Status report
3Some Background
- Fondue
- What it provides
- Concept Model Defines the static structure of
the information in the system - Behavior Model Defines the Input and Output
communication of the system - Uses UML for notation (parts of different UML
diagrams - Concept Model ? Class Diagram
- Environment Model ? Collaboration Diagram
- Protocol Model ? State Diagram
- Operation Model ?(OCL)
- Describes operations by operation schemas which
specify operations by pre- and post conditions
using OCL - The Fondue process can be outlined by a UML class
diagram showing usage dependencies between the
models
4Some Backgroud (2)
- Fondue - ebanking example
- Environment Model (messages from the user)
loginUserName loginPasswd loginChallenge createPay
ment giveDetailsBeneficiary modifyPaiment deletePa
yment
ltltsystemgtgt eBanking
User
5Some Background (3)
- Fondue - ebanking example
- Environment Model (messages from the system)
ltltsystemgtgt eBanking
sendChallengeNumber errorUserName errorPasswd erro
rChallenge errorUserBlocked errorPaymentCreation e
rrorPaymentModification
User
6Some Background (4)
- Fondue - ebanking example
- Concept Model
ltltsystemgtgt eBanking
ltltIdgtgt
0..
0.. 1
HasSessionId
User
7Some Background (5)
- MDA - Model Driven Architecture
- How models defined in one language can be
transformed into models in other languages
8Some steps towards transformation
- Describe CO-OPN as a MOF Model
- Use UML notation to define CO-OPN Meta Model
- Get XMIUML
- Convert XMIUML to XMIMOF
- Generate JMI from XMIMOF
- Use generated JMI to add and browse CO-OPN
repositories
9Some steps towards transformation
- Fondue is already described as a MOF Model
10Some steps towards transformation
- Iteration describing COOPN in early stages
11Some steps towards transformation
- Environment model ? 1 CO-OPN Context
- Operations ? methods of the context
- Output messages ? Gates
input
- Directly from
- the
- Metamodels
output
12Some steps towards transformation
- Concept Model
- 1 Class ? 1 CO-OPN Class
- Name ? Name
- Attributes ? Places
- Access methods put, get, read
- Method put_a(x) a y -gt a x
- Gate get_a(x) a x -gt a x
- Gate read_a(x)a x -gt a x
- Associations as classes
- With source and target values
- Instantiation of AADT Bag
- For each class
- Directly from
- the
- Metamodels
put
put
get
13Some steps towards transformation
- Concept Model
- 1 Class ? 1 CO-OPN Class
- Name ? Name
- Attributes ? Places
- Access methods put, get, read
- Method put_a(x) a y -gt a x
- Gate get_a(x) a x -gt a x
- Gate read_a(x)a x -gt a x
- Directly from
- the
- Metamodels
put
put
get
14Some steps towards transformation
- Operation Model
- Transform Fondue pre and post-conditions using
OCL - Operation Schemas ? (synchronization rules,
algebraic equations)
- No standard
- approach available!
- Parse OCL and define clear
- transformation rules
15Tools, tools and another process diagram
- Create(Draw) COOPN Meta Model
- MagicDraw
- Export as XMIUML
- MagicDraw
- Convert XMIUML to XMIMOF
- Uml2mof
- MDR-StandAlone package jmi.jar jmiutils.jar
mdrapi.jar mof.jar nbmdr.jar openide-util.jar - UML Standard definition UML_Standard_Profile.xml
- ltXMI xmi.version'1.2' timestamp'Thu Jan 20
120339 CET 2005' xmlnsUML'omg.org/UML/1.4'gt - ltXMI.headergt
- ltXMI.documentationgt
- ltXMI.exportergtMagicDraw
UMLlt/XMI.exportergt - ltXMI.exporterVersiongt9.0lt/
XMI.exporterVersiongt - lt/XMI.documentationgt
- ltXMI.metamodel xmi.name'UML'
xmi.version'1.4'/gt - lt/XMI.headergt
lt?xml version '1.0' encoding 'ISO-8859-1'
?gt ltXMI xmi.version '1.2' xmlnsModel
'org.omg.xmi.namespace.Model' timestamp 'Fri
Jan 21 011011 CET 2005'gt ltXMI.headergt
ltXMI.documentationgt ltXMI.exportergtNetbeans
XMI Writerlt/XMI.exportergt
ltXMI.exporterVersiongt1.0lt/XMI.exporterVersiongt
lt/XMI.documentationgt lt/XMI.headergt
16Tools, tools and another process diagram
- Create Fondue Model
- Together Fondue pluggin
- Use JMI to load both Fondue and COOPN meta
repositories - Any Java IDE (e.g. IDEA)
- Add rules to perform transformation
17Tools, tools and another process diagram
XMI FondueMM
XMI COOPNMM
Transformation tool
FondueMM XMLMOF
COOPN XMLMOF
18Status report
- All set of SW in place
- COOPN Meta Model
- UML sketches
- XML generation
- Fondue in Mac OS X
- Sample SW to browse Fondue modules
19Task list
- Prepare some documentation
- Continue the COOPN Meta Model
- Proof of concept small application to browse a
COOPN model using MetaModel - COOPN builder module
- Formalization of transformation rules
20The end
Questions... Comments