If you use UML to drive code generation, what do you do when a UML model grows so large that the tool needs 30 minutes to open it? What if it turns out that UML doesn't provide the expressiveness you need? What if your UML Editor barely provides feedback about the validity of your models and the turnaround time from modeling to code-generation and compilation is somewhere between setting up a new can of coffee and reading a day's amount of slashdot.org news? Time to look for a different modeling solution... read more: http://www.codegeneration.net/cg2010/sessioninfo.php?session=53
This material has been presented at the Codegeneration 2010 Conference in Cambridge, UK by Moritz Eysholdt and Johannes Rupprecht.
A German version has been presented at the Seacon 2010 Conference in Hamburg, Germany:
http://www.sigs-datacom.de/seacon/konferenz/sessiondetails.html?tx_mwconferences_pi1[showUid]=276&tx_mwconferences_pi1[pointer]=0&tx_mwconferences_pi1[mode]=1&tx_mwconferences_pi1[s]=0
3. Moritz Eysholdt
• Software Architect and
Consultant at itemis
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
4. Moritz Eysholdt
• Software Architect and
Consultant at itemis
• Committer at the Eclipse
Projects Xtext, Xpand and
EMF Compare
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
5. Moritz Eysholdt
• Software Architect and
Consultant at itemis
• Committer at the Eclipse
Projects Xtext, Xpand and
EMF Compare
• Speaker at various
international conferences
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
7. • Specialized in Model Driven Software Development
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
8. • Specialized in Model Driven Software Development
• Founded in 2003
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
9. • Specialized in Model Driven Software Development
• Founded in 2003
• 140 Employes
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
10. • Specialized in Model Driven Software Development
• Founded in 2003
• 140 Employes
• Branches in Germany, Swiss, France and Canada
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
11. • Specialized in Model Driven Software Development
• Founded in 2003
• 140 Employes
• Branches in Germany, Swiss, France and Canada
• Strategic Member of the Eclipse Foundation
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
12. • Specialized in Model Driven Software Development
• Founded in 2003
• 140 Employes
• Branches in Germany, Swiss, France and Canada
• Strategic Member of the Eclipse Foundation
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
13. • Specialized in Model Driven Software Development
• Founded in 2003
• 140 Employes
• Branches in Germany, Swiss, France and Canada
• Strategic Member of the Eclipse Foundation
• http://twitter.com/itemis
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
15. Johannes Rupprecht
• Chief Software Architect of
VSA group
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
16. Johannes Rupprecht
• Chief Software Architect of
VSA group
• 2005-2008 IT project
manager of the biggest VSA
software project
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
17. Johannes Rupprecht
• Chief Software Architect of
VSA group
• 2005-2008 IT project
manager of the biggest VSA
software project
• 2002-2005 Leading
architect and one of the
developers of the VSA
framework marvin
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
19. Group
• VSA:Verrechnungsstelle der Süddeutschen Apotheken
(Clearing House of the South German Pharmacies)
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
20. Group
• VSA:Verrechnungsstelle der Süddeutschen Apotheken
(Clearing House of the South German Pharmacies)
• Company founded in 1983
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
21. Group
• VSA:Verrechnungsstelle der Süddeutschen Apotheken
(Clearing House of the South German Pharmacies)
• Company founded in 1983
• Owned by 7,000 German pharmacists
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
22. Group
• VSA:Verrechnungsstelle der Süddeutschen Apotheken
(Clearing House of the South German Pharmacies)
• Company founded in 1983
• Owned by 7,000 German pharmacists
• 1,100 employees
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
23. Group
• VSA:Verrechnungsstelle der Süddeutschen Apotheken
(Clearing House of the South German Pharmacies)
• Company founded in 1983
• Owned by 7,000 German pharmacists
• 1,100 employees
• Three business units:
• VSA: Clearing for German pharmacies
• azh: Clearing and IT for German health care professionals
• awinta: Pharmacy administration systems
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
25. Software Development at VSA
• 150 developers in several projects in several locations
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
26. Software Development at VSA
• 150 developers in several projects in several locations
• Internal systems, like the two clearing systems
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
27. Software Development at VSA
• 150 developers in several projects in several locations
• Internal systems, like the two clearing systems
• Online systems for the clearing customers
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
28. Software Development at VSA
• 150 developers in several projects in several locations
• Internal systems, like the two clearing systems
• Online systems for the clearing customers
• Pharmacy administration systems
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
29. Software Development at VSA
• 150 developers in several projects in several locations
• Internal systems, like the two clearing systems
• Online systems for the clearing customers
• Pharmacy administration systems
• Development mostly in Java, but also C#, C++, C,
Objective-C
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
40. Reimplementation of all systems
• VSA planned in 2000 and 2002 to start the
reimplementation of almost all important VSA group
systems based on Java
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
41. Reimplementation of all systems
• VSA planned in 2000 and 2002 to start the
reimplementation of almost all important VSA group
systems based on Java
• Big need of supporting framework
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
42. Reimplementation of all systems
• VSA planned in 2000 and 2002 to start the
reimplementation of almost all important VSA group
systems based on Java
• Big need of supporting framework
• Generating seemed to be the right way
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
43. Reimplementation of all systems
• VSA planned in 2000 and 2002 to start the
reimplementation of almost all important VSA group
systems based on Java
• Big need of supporting framework
• Generating seemed to be the right way
• Based on XML files
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
44. Reimplementation of all systems
• VSA planned in 2000 and 2002 to start the
reimplementation of almost all important VSA group
systems based on Java
• Big need of supporting framework
• Generating seemed to be the right way
• Based on XML files
• Later a UML modeling was set on top of that
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
45. Reimplementation of all systems
• VSA planned in 2000 and 2002 to start the
reimplementation of almost all important VSA group
systems based on Java
• Big need of supporting framework
• Generating seemed to be the right way
• Based on XML files
• Later a UML modeling was set on top of that
• MagicDraw was used as UML tool, with VSA plugins for
generating XMLs from the UML model
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
51. Problems with the UML Modelling
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
52. Problems with the UML Modelling
• Opening a UML module
lasted up to one hour
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
53. Problems with the UML Modelling
• Opening a UML module
lasted up to one hour
• Opening a big UML diagram
lasted up to ten minutes
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
54. Problems with the UML Modelling
• Opening a UML module
lasted up to one hour
• Opening a big UML diagram
lasted up to ten minutes
• Turnaround times were too
slow (changing UML
diagram, generating XML
files, generating Java files
and compiling via ANT)
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
55. Problems with the UML Modelling
• Opening a UML module
lasted up to one hour
• Opening a big UML diagram
lasted up to ten minutes
• Turnaround times were too
slow (changing UML
diagram, generating XML
files, generating Java files
and compiling via ANT)
• So we needed much
coffee…
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
56. Problems with the UML Modelling
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
57. Problems with the UML Modelling
• Modelling was not intuitive, because UML was “abused”
to model something, that can’t be expressed in UML at
all
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
58. Problems with the UML Modelling
• Modelling was not intuitive, because UML was “abused”
to model something, that can’t be expressed in UML at
all
• Modelling was partly cumbersome, because there is no
assistance in editing the models
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
59. Problems with the UML Modelling
• Modelling was not intuitive, because UML was “abused”
to model something, that can’t be expressed in UML at
all
• Modelling was partly cumbersome, because there is no
assistance in editing the models
• Model was partly more complex than the XML file
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
60. Problems with the UML Modelling
• Modelling was not intuitive, because UML was “abused”
to model something, that can’t be expressed in UML at
all
• Modelling was partly cumbersome, because there is no
assistance in editing the models
• Model was partly more complex than the XML file
• Workflow diagrams became too big, were confusing
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
61. Problems with the UML Modelling
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
62. Problems with the UML Modelling
• Referencing other model elements was done only
textual, not by model references
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
63. Problems with the UML Modelling
• Referencing other model elements was done only
textual, not by model references
• No validation and code completion in the tool
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
64. Problems with the UML Modelling
• Referencing other model elements was done only
textual, not by model references
• No validation and code completion in the tool
• Branching was not possible, only one branch can be
modeled
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
65. Problems with the UML Modelling
• Referencing other model elements was done only
textual, not by model references
• No validation and code completion in the tool
• Branching was not possible, only one branch can be
modeled
• Not all functionality of the XML Files could be expressed
via UML
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
66. Problems with the UML Modelling
• Referencing other model elements was done only
textual, not by model references
• No validation and code completion in the tool
• Branching was not possible, only one branch can be
modeled
• Not all functionality of the XML Files could be expressed
via UML
• No two way editing between XML Files and UML Models
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
67. Problems with the UML Modelling
• Referencing other model elements was done only
textual, not by model references
• No validation and code completion in the tool
• Branching was not possible, only one branch can be
modeled
• Not all functionality of the XML Files could be expressed
via UML
• No two way editing between XML Files and UML Models
• No navigation between code and model
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
69. Initializing
• Target was to massively
improve tool handling and
performance
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
70. Initializing
• Target was to massively
improve tool handling and
performance
• Four different offerers
made suggestions for
solution. Three of them
made the same suggestion:
Xtext and GMF based on
Eclipse
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
71. Initializing
• Target was to massively
improve tool handling and
performance
• Four different offerers
made suggestions for
solution. Three of them
made the same suggestion:
Xtext and GMF based on
Eclipse
• itemis won the race due to
best competence in Xtext
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
73. Project Start
• Fixed price contract
including VSA developers
taking part in the project to
ensure training on the new
technologies
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
74. Project Start
• Fixed price contract
including VSA developers
taking part in the project to
ensure training on the new
technologies
• Specification: Document
and legacy code
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
75. Project Start
• Fixed price contract
including VSA developers
taking part in the project to
ensure training on the new
technologies
• Specification: Document
and legacy code
• two developers from items
and two full time and two
part time developers from
VSA
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
77. Why Eclipse Modeling
• Large ecosystem of
modeling tools and
frameworks available like in
no other platform:
• EMF
• Xtext
• GMF
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
78. Why Eclipse Modeling
• Large ecosystem of
modeling tools and
frameworks available like in
no other platform:
• EMF
• Xtext
• GMF
• Possibility of mixing textual
and graphical modeling
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
80. Basic Objectives
• Textual modeling for all languages with Xtext
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
81. Basic Objectives
• Textual modeling for all languages with Xtext
• Graphical modeling with GMF for selected aspects of
certain languages to getting better overview (no UML!)
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
82. Basic Objectives
• Textual modeling for all languages with Xtext
• Graphical modeling with GMF for selected aspects of
certain languages to getting better overview (no UML!)
• Integration of the legacy marvin generator as Eclipse
Builder
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
83. Basic Objectives
• Textual modeling for all languages with Xtext
• Graphical modeling with GMF for selected aspects of
certain languages to getting better overview (no UML!)
• Integration of the legacy marvin generator as Eclipse
Builder
• Tooling for automatic 100% migration of existing
projects, including layout information from MagicDraw;
ability to migrate one project at a time
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
84. Basic Objectives
• Textual modeling for all languages with Xtext
• Graphical modeling with GMF for selected aspects of
certain languages to getting better overview (no UML!)
• Integration of the legacy marvin generator as Eclipse
Builder
• Tooling for automatic 100% migration of existing
projects, including layout information from MagicDraw;
ability to migrate one project at a time
• support for mixing migrated and unmigrated projects,
because projects can't be migrated all at once
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
99. Models are code!
• This is good, because we know how to handle code:
• Compare, Merge
• Version Control
• Copy’n’paste across applications
• Send artifacts via e-mail or web
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
100. Models are code!
• This is good, because we know how to handle code:
• Compare, Merge
• Version Control
• Copy’n’paste across applications
• Send artifacts via e-mail or web
• Furthermore, they integrate seamlessly with
• existing code
• existing build infrastructures
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
101. Architecture
Xtend M2M
<XML/> Xtext
Model Model
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
102. Architecture
Xtend M2M
<XML/> EMF Xtext
Model
Model Model
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
103. Architecture
Structure Def:
Ecore derived from
XML Schema Xtend M2M
<XML/> EMF Xtext
Model
Model Model
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
104. Architecture
Structure Def: Structure Def:
Ecore derived from Ecore derived from
XML Schema Xtend M2M Xtext Grammars
<XML/> EMF Xtext
Model
Model Model
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
105. Architecture
Structure Def: Structure Def:
Ecore derived from Ecore derived from
XML Schema Xtend M2M Xtext Grammars
<XML/> EMF Xtext
Model
Model Model
Load/Save: Xtend M2M
EMF’s XMLResource
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
106. Architecture
Structure Def: Structure Def:
Ecore derived from Ecore derived from
XML Schema Xtend M2M Xtext Grammars
<XML/> EMF Xtext
Model
Model Model
Load/Save:
Load/Save: Xtend M2M XtextResource
EMF’s XMLResource (extends EMF’s ResourceImpl)
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
107. Migrate XML Models
Xtend M2M
XMLResource.load() XtextResource.save()
<XML/> Xtext
Model Model
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
108. Integrate Legacy Code Generator
Xtend M2M
<XML/> Xtext
CodeGen Model Model
XtextResource.load()
XMLResource.
save()
Xtend M2M
{ Java }
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
109. Generic Integration Test
(Roundtrip)
Xtend M2M
XMLResource.load() XtextResource.save()
Compare <XML/> Xtext
Model Model
XMLResource.save() XtextResource.load()
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
110. Generic Integration Test
This Tests:
(Roundtrip)
Xtend M2M
XMLResource.load() XtextResource.save()
Compare <XML/> Xtext
Model Model
XMLResource.save() XtextResource.load()
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
111. Generic Integration Test
This Tests:
(Roundtrip)
XML2Xtext
Xtend M2M
XMLResource.load() XtextResource.save()
Compare <XML/> Xtext
Model Model
XMLResource.save() XtextResource.load()
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
112. Generic Integration Test
This Tests:
(Roundtrip)
XML2Xtext
Serialization
Xtend M2M
XMLResource.load() XtextResource.save()
Compare <XML/> Xtext
Model Model
XMLResource.save() XtextResource.load()
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
113. Generic Integration Test
This Tests:
(Roundtrip)
XML2Xtext
Serialization
Xtend M2M Grammar
XMLResource.load() XtextResource.save()
Compare <XML/> Xtext
Model Model
XMLResource.save() XtextResource.load()
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
114. Generic Integration Test
This Tests:
(Roundtrip)
XML2Xtext
Serialization
Xtend M2M Grammar
XMLResource.load() XtextResource.save()
Compare <XML/> Xtext Scoping
Model Model
XMLResource.save() XtextResource.load()
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
115. Generic Integration Test
This Tests:
(Roundtrip)
XML2Xtext
Serialization
Xtend M2M Grammar
XMLResource.load() XtextResource.save()
Compare <XML/> Xtext Scoping
Model Model
XMLResource.save() XtextResource.load()
Lexing/Parsing
Xtend M2M
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
116. Generic Integration Test
This Tests:
(Roundtrip)
XML2Xtext
Serialization
Xtend M2M Grammar
XMLResource.load() XtextResource.save()
Compare <XML/> Xtext Scoping
Model Model
XMLResource.save() XtextResource.load()
Lexing/Parsing
Xtend M2M
ValueConversion
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
117. Generic Integration Test
This Tests:
(Roundtrip)
XML2Xtext
Serialization
Xtend M2M Grammar
XMLResource.load() XtextResource.save()
Compare <XML/> Xtext Scoping
Model Model
XMLResource.save() XtextResource.load()
Lexing/Parsing
Xtend M2M
Xtext2XML ValueConversion
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
120. GMF Integration
(how to persist diagrams)
Text XMI
via XtextResource via EMF’s XMIResource
workflow-language-v2.0 package vsa.marvin.mod.schulung.^workflow; <?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation"
xmlns:wf="http://www.vsa.de/marvin/dsl/workflow/0.1">
/* This workflow creates/removes/updates customer records */ <notation:Diagram xmi:id="_WRi84HSqEd-YCPMLqI1FhQ" type="workflow" measurementUnit="Pixel">
<children xmi:type="notation:Node" xmi:id="_WT_z8HSqEd-YCPMLqI1FhQ" type="2004">
workflow CustomerManagement isMasterWorkflow canBeDetailWorkflow { <children xmi:type="notation:DecorationNode" xmi:id="_WUBCEHSqEd-YCPMLqI1FhQ" type="5005"/>
<styles xmi:type="notation:DescriptionStyle" xmi:id="_WT_z8XSqEd-YCPMLqI1FhQ"/>
firstStep OverviewStep; <styles xmi:type="notation:FontStyle" xmi:id="_WT_z8nSqEd-YCPMLqI1FhQ" fontName="Lucida Grande" fontHeight="10"/>
<styles xmi:type="notation:LineStyle" xmi:id="_WT_z83SqEd-YCPMLqI1FhQ"/>
<element xmi:type="wf:NonGuiStep" href="CustomerManagement.wf#vsa_/steps:DeleteCustomer"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_WT_z9HSqEd-YCPMLqI1FhQ" x="702" y="153"/>
references { </children>
...
objectModelRef CustomerManagement;
externalDefinitionsRef Externals as infoheader;
compWorkflowRef customersales workflow CustomerSales;
Notation Model (Layout, Formatting, etc.)
}
workflowPart foopart {
globalActivities {
activity ShowCustomerCount -> ShowCustomerCountMessage;
}
guiStep ShowSalesInclude {
javaMask vsa.marvin.mod.schulung.^workflow.ShowSalesIncludeMask;
activity NextMonth -> ShowSalesInclude;
Semantic Model (the actual model)
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
121. GMF Integration - Consequences
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
122. GMF Integration - Consequences
• No need for the graphical editor to cover complete model
• Cheaper
• Only use graphical syntax where it is indeed superior to
textual syntax
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
123. GMF Integration - Consequences
• No need for the graphical editor to cover complete model
• Cheaper
• Only use graphical syntax where it is indeed superior to
textual syntax
• If the XMI is lost, only the layout is lost
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
135. Migration
• A 100% migration of the existing models was necessary
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
136. Migration
• A 100% migration of the existing models was necessary
• About 75 CVS Modules to migrate
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
137. Migration
• A 100% migration of the existing models was necessary
• About 75 CVS Modules to migrate
• At early time in project a automated migration test tool
was implemented
• Checkout all modules from CVS and build
• Migrate to new modeling
• Verify the results by comparing artefacts
• Logging all errors and relevant differences
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
138. Migration
• A 100% migration of the existing models was necessary
• About 75 CVS Modules to migrate
• At early time in project a automated migration test tool
was implemented
• Checkout all modules from CVS and build
• Migrate to new modeling
• Verify the results by comparing artefacts
• Logging all errors and relevant differences
• All problems in migration were discovered before rollout
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
139. Migration
• A 100% migration of the existing models was necessary
• About 75 CVS Modules to migrate
• At early time in project a automated migration test tool
was implemented
• Checkout all modules from CVS and build
• Migrate to new modeling
• Verify the results by comparing artefacts
• Logging all errors and relevant differences
• All problems in migration were discovered before rollout
• But: Searching for all the errors took much more time
than predicted
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
140. Training of the users
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
141. Training of the users
• Even for very experienced users it is helpful to be trained
on a complete new way to model and new tools
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
142. Training of the users
• Even for very experienced users it is helpful to be trained
on a complete new way to model and new tools
• An exercises project was implemented with tutorials
covering the main features
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
143. Training of the users
• Even for very experienced users it is helpful to be trained
on a complete new way to model and new tools
• An exercises project was implemented with tutorials
covering the main features
• All VSA developers (even our Rumanian ones) took part
in a 4-6 hour training
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
144. Training of the users
• Even for very experienced users it is helpful to be trained
on a complete new way to model and new tools
• An exercises project was implemented with tutorials
covering the main features
• All VSA developers (even our Rumanian ones) took part
in a 4-6 hour training
• Result:Very few handling problems, low support effort of
the VSA modeling developers
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
147. Distributed project
• Project was distributed over four locations
• Shared infrastructure from the very beginning
• Subversion
• Bug tracking system
• Wiki
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
148. Distributed project
• Project was distributed over four locations
• Shared infrastructure from the very beginning
• Subversion
• Bug tracking system
• Wiki
• Weekly telephone conference to check status and
discuss problems
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
149. Distributed project
• Project was distributed over four locations
• Shared infrastructure from the very beginning
• Subversion
• Bug tracking system
• Wiki
• Weekly telephone conference to check status and
discuss problems
• Later in the project communication rules to ensure
efficient working
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
150. How to minimize complexity
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
151. How to minimize complexity
• Use stable versions of the
frameworks
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
152. How to minimize complexity
• Use stable versions of the
frameworks
• Use GMF only if necessary
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
153. How to minimize complexity
• Use stable versions of the
frameworks
• Use GMF only if necessary
• Migrate existing models only
if necessary, because you are
not free in defining the
language and migration has to
be tested very intensive
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA
154. How to minimize complexity
• Use stable versions of the
frameworks
• Use GMF only if necessary
• Migrate existing models only
if necessary, because you are
not free in defining the
language and migration has to
be tested very intensive
• Work test-driven with
continous integration (that is
a really big problem when
developing plugins for eclipse)
Moritz Eysholdt, itemis - Johannes Rupprecht,VSA