Borland and Eclipse - Eclipse - The Eclipse Foundation open source
From Product Manufacturer to Eclipse MDSD Projects model ... · From Product Manufacturer to...
Transcript of From Product Manufacturer to Eclipse MDSD Projects model ... · From Product Manufacturer to...
1
1111a member of
the b+m group
model to business
model to business
model to business
model to business
From Product Manufacturer to
Eclipse MDSD Projects
The Transformation of Gentleware AG
Dr. Marko Boger, CEO
Dr. Jan Köhnlein, Senior Architect
2222a member of
the b+m group
model to business
model to business
model to business
model to business
Gentleware AG
� Founded in 2000
� Founder and CEO:
Dr. Marko Boger
� Development and Distribution of UML
modeling tools
� Poseidon for UML
� Apollo for Eclipse
� More than 2,000,000 downloads
� MDSD Consulting and Projects
� DSL Design
� Model Editor in Eclipse
� Generator in openArchitectureWare
Dr. Marko Boger
Dr. Jan Köhnlein
2
3333a member of
the b+m group
model to business
model to business
model to business
model to business
Assembler
ParadigmsParadigmsParadigmsParadigms overoveroverover TimeTimeTimeTime
1950 1960 1970 1980 1990 2000 2010
Time
Ab
str
ac
tio
nL
eve
l
Frameworks (OOP)
Object Oriented
Procedural
Model Driven
4444a member of
the b+m group
model to business
model to business
model to business
model to business
Assembler
ParadigmsParadigmsParadigmsParadigms overoveroverover TimeTimeTimeTime
1950 1960 1970 1980 1990 2000 2010
Time
Ab
str
ac
tio
nL
eve
l
Frameworks (OOP)
Object Oriented
Procedural
Model Driven
UML 1 UML 2
1997 2005
3
5555a member of
the b+m group
model to business
model to business
model to business
model to business
Observations on MDSD
� The Paradigm of Model Driven Software Design is
becoming a reality
� It is NOT based on UML
� Instead it is based on DSLs
6666a member of
the b+m group
model to business
model to business
model to business
model to business
UML 1 Metamodel for States
4
7777a member of
the b+m group
model to business
model to business
model to business
model to business
StateManiche
Behavior
(from org::omg::uml2::commonbehaviors2)
Region
stateMachine
{subsets namespace}
+0..1
region
{subsets ownedMember}
+1..*
State
-/isComposite:Boolean
-/isOrthogonal:Boolean
-/isSimple:Boolean
-/isSubmachineState:Boolean
state
{subsets namespace}
+0..1
region
{subsets ownedMember}
+*
Transition
-kind:TransitionKind
container
{subsets owner}
+
1
transition
{subsets ownedElement}
+
*
Vertex
container
{redefines owner}
+
0..1subvertex
{subsets ownedElement}
+*
FinalState Constraint
(from org::omg::uml2::core2)
owningState+ 0..1
stateInvariant+
0..1
Trigger
(from org::omg::uml2::compositestructures2)* deferrableTrigger+
*
Activity
(from org::omg::uml2::commonbehaviors2)
-body:String[0..1]
-language:String[0..1]
-isSingleExecution:Boolean=false
-isReadOnly:Boolean=false
0..1
effect
{subsets ownedElement}
+
0..1
0..1entry
{subsets ownedElement}
+
0..1
0..1exit
{subsets ownedElement}
+
0..1
0..1doActivity
{subsets ownedElement}
+
0..1
Pseudostate
-kind:PseudostateKind
ConnectionPointReference
*
exit+ 0..1
*
entry+ 0..1
0..1connection
{subsets ownedElement}
+
*
submachine+
0..1
submachineState+
*
0..1
connectionPoint
{subsets ownedMember}
+
*
*
trigger+
*
0..1
guard+
0..1
BehavioredClassifier
(from org::omg::uml2::commonbehaviors2)
{subsets redefinitionContext}+
0..1
ownedSateMachine
{redefines ownedBehavior
+
*
context+
0..1ownedBehavior+
*
<< enumeration >>
TransitionKind
-internal:
-local:
-external:
<< enumeration >>
PseudostateKind
-initial:
-deepHistory:
-shallowHistory:int
-join:
-fork :
-junction:
-choice:
-entryPoint:
-exitPoint:
-terminate:
UML 2 Metamodel for States
8888a member of
the b+m group
model to business
model to business
model to business
model to business
UML 1 vs UML 2 for States
container+
0..1
subvertex+
*
0..1
top+1
State
-/isComposite:Boolean
-/isOrthogonal:Boolean
-/isSimple:Boolean
-/isSubmachineSate:Boolean
FinalStateCompositeState SimpleState
SubmachineState
Region
state+
0..1
region+ *
Trigger
* defferableTrigger+
*
Event
* deferrableEvent+
*
Event was replaced by
Trigger, also changed:
- Mutliplicity,
- navigation
- compositon
Transition
-kind:TransitionKind
container+
1
transition+ *
*
trigger+*
1
trigger+
0..1
<< enumeration>>
TransitionKind
-internal:int
-local:int
-external:int
<< enumeration>>
PseudostateKind
-initial:int
-deepHistory:int
-shallowHistory:int
-join:int
-fork:int
-junction:int
-choice:int
-entryPoint:int
-exitPoint:int
-terminate:int
Vertex
old type: StateVertex
Pseudostate
-kind:PseudostateKind
ConnectionPointReference
0..1
exit+ *
0..1
entry+ *
0..1connection+*
SubStateSynchState
incoming+ *target+1
outgoing+ *source+1
no subinterfaces
anymore
StateMachine
container+
0..1
subvertex+*
stateMachine+0..1
region+1..*
submachineState+ *
submachine+ 0..1
1
submachine+ 1
moved association
0..1
connectionPoint+
*
Constraint
owningState+0..1
stateInvariant+
0..1
0..1
guard+
0..1
Guard
1
guard+
0..1
Guard was replaced by
Constraint, also changed
multiplicity
0..1
transitions+1
moved assocition to
Region
Activity
0..1
effect+0..1
0..1 doActivity+
0..1
0..1 exit+
0..1
0..1 entry+
0..1
old type:
Action
internalTransition+ *
0..1
replaced internalTransition
eventually
interchange
multiplicities??
The spec. definies this
a composition. But in the
xmi it is a association.
5
9999a member of
the b+m group
model to business
model to business
model to business
model to business
Revenue 2007
36%
64%
Products
Consulting & Projects
The Structural Change of Gentleware
Revenue 2006
92%
8%
10101010a member of
the b+m group
model to business
model to business
model to business
model to business
Gentleware joined the b+m Group
� IT Service Provider
� Focus on model driven software projects
� Initiator of the openArchitectureWare Generator
Framework
� Active in a variety of domains
� Founded in 1994
� Turnover in 2006: 20,8 Mio. €
� Team: 227 Employees
� www.bmiag.de
6
11111111a member of
the b+m group
model to business
model to business
model to business
model to business
The joint b+m Gentleware Service
� b+m Engineering
TestTestIntegrationIntegrationSpezifikationSpezifikationEnterpriseArchitektur
EnterpriseArchitektur IT LösungIT Lösung ProduktionProduktionStrategieStrategie
QualitätQualität
MethodikMethodik
Projektmanagement / ReleasemanagementProjektmanagement / Releasemanagement
12121212a member of
the b+m group
model to business
model to business
model to business
model to business
Our Development Process
ModelModelModelModel
1111 DSL DesignDSL DesignDSL DesignDSL Design
2222 Model Editor in EclipseModel Editor in EclipseModel Editor in EclipseModel Editor in Eclipse
3333 Generator in oAWGenerator in oAWGenerator in oAWGenerator in oAW
BusinessBusinessBusinessBusiness
7
13131313a member of
the b+m group
model to business
model to business
model to business
model to business
GMF Development Process
Custo
miz
ation
Testin
g
Custom plug-in
(Java code)
Create
custom plug-in
OK?
Test
Mod
elin
gG
en
era
tion
*.gmfmap
Create
mapping model
Create
tooling model
Create
graphical model
Create
domain model
*.gmftool
*.gmfgraph
*.ecore
*.gmfgen Generate
generation model
GMF plug-in
(Java code)
Create GMF
editor plug-in
ad: GMF-Entwicklungsprozess
14141414a member of
the b+m group
model to business
model to business
model to business
model to business
Apollo for Eclipse
8
15151515a member of
the b+m group
model to business
model to business
model to business
model to business
Apollo for Eclipse
� Features:
� Fully synchronized roundtrip engineering for Java <>> UML2
� Scalability
� Code discovery
� Challenges:
� Build one of the first commercial products based on GMF
� Build Gentleware’s first product based on Eclipse
� Switch to Eclipse IDE for development
� IDE is part of the product
� Build/test infrastructure
� Learn how to use a lot of new frameworks
� Keep compatibility with other Eclipse plug>ins
� UML2 / GMF mismatches
� Improve scalability of EMF and GMF
16161616a member of
the b+m group
model to business
model to business
model to business
model to business
Homer
9
17171717a member of
the b+m group
model to business
model to business
model to business
model to business
Athene for OWL
18181818a member of
the b+m group
model to business
model to business
model to business
model to business
Flowers
10
19191919a member of
the b+m group
model to business
model to business
model to business
model to business
Flowers
� Showcase for modeling abstractions and tooling for
screen based J2EE applications
� Entity, Service, Screenflow
� Integration into WTP
� Sample code generator for Hibernate, Spring, WebFlow
� Enabling rapid prototyping for J2EE
� Model and see results immediately
20202020a member of
the b+m group
model to business
model to business
model to business
model to business
Hermes
11
21212121a member of
the b+m group
model to business
model to business
model to business
model to business
Hermes
� Prototype for modeling SOA applications
� BPM, Services, Screenflows
� Bridges connecting model elements from different
(meta)model partitions
� UI as popup buttons and properties
� Model validation
22222222a member of
the b+m group
model to business
model to business
model to business
model to business
Zeus
12
23232323a member of
the b+m group
model to business
model to business
model to business
model to business
Zeus
� J2EE application modeling environment
� Challenges
� Integration into existing MDSD tool chain
� Model browser
� Non>canonical diagrams
� Diagram repair
� Automatically adding connections
� Generated bridge UI
� Model validation
24242424a member of
the b+m group
model to business
model to business
model to business
model to business
Asklepios