Date post: | 22-Jan-2018 |
Category: |
Technology |
Upload: | obeo |
View: | 95 times |
Download: | 1 times |
@C
op
yri
gh
t 2
01
7 O
be
o
Industrialize your Sirius-based solution:
the steps and toolsRomain Guider
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Process
Domain Model
Graphical Modelers
Integration
Iterate
Industrialize
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Process
Domain Model
Graphical Modelers
Integration
Iterate
Industrialize
@C
op
yri
gh
t 2
01
7 O
be
o
What’s in a Domain Model ?
@C
op
yri
gh
t 2
01
7 O
be
o
What’s in a Domain Model ?
A representation of the objects you handle in you’re business
@C
op
yri
gh
t 2
01
7 O
be
o
What’s in a Domain Model ?
A representation of the object you handle in you’re business • Business Concepts
@C
op
yri
gh
t 2
01
7 O
be
o
What’s in a Domain Model ?
A representation of the object you handle in you’re business • Business Concepts• Relationships
@C
op
yri
gh
t 2
01
7 O
be
o
What’s in a Good Domain Model ?
AdoptionFitness Accuracy
+ =
@C
op
yri
gh
t 2
01
7 O
be
o
What’s in a Good Domain Model ?
Technicallysound design
Scallability Performance Flexibility
+ +=
@C
op
yri
gh
t 2
01
7 O
be
o
What’s in a Good Domain Model ?
http://cedric.brun.io/eclipse/ecore-design-checklist-part1
http://cedric.brun.io/eclipse/ecore-design-checklist-part2
@C
op
yri
gh
t 2
01
7 O
be
o
How do I model my domain?
@C
op
yri
gh
t 2
01
7 O
be
o
What tools do I have?
EcoreTools - Graphical Modeling for Ecore
@C
op
yri
gh
t 2
01
7 O
be
o
How about Testing?!
• Derived Features
• EOperations
• Validation rules
@C
op
yri
gh
t 2
01
7 O
be
o
How about Testing?!
• Derived Features
• EOperations
• Validation rules
Use regular Junit against the Ecore API and the generated code
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Process
Domain Model
Graphical Modelers
Integration
Iterate
Industrialize
@C
op
yri
gh
t 2
01
7 O
be
o
Graphical, only?
@C
op
yri
gh
t 2
01
7 O
be
o
Apply the Obeo Designer Best Practices
https://www.obeodesigner.com/en/best-practices
OptimizedQueries Scalability Performance
@C
op
yri
gh
t 2
01
7 O
be
o
How about Testing?!
@C
op
yri
gh
t 2
01
7 O
be
o
Test representations & Mappings
Check intendedSemantics
Elements are present
@C
op
yri
gh
t 2
01
7 O
be
o
Test representations & Mappings
Check intendedSemantics
Elements are present
Check filters do their job!
@C
op
yri
gh
t 2
01
7 O
be
o
Test representations & Mappings
Check intendedSemantics
Elements are present
Check Mapping’s
attributes are OK
Check filters do their job!
@C
op
yri
gh
t 2
01
7 O
be
o
Test representations & Mappings
Check intendedSemantics
Elements are present
Check Mapping’s
attributes are OK
Check filters do their job!
Check Labels are OK
@C
op
yri
gh
t 2
01
7 O
be
o
Test creation tools
Check the tools apply where intended
Check the tools apply where intended
Check the result of applying the tools• Creation of mapping• Initial attributes (label)• Etc.
@C
op
yri
gh
t 2
01
7 O
be
o
Am I done with tests know?!
Every piece of you’re odesign that contains a queryor a java service should be tested for good!
@C
op
yri
gh
t 2
01
7 O
be
o
Okay … but how do I test Sirius Representations, Actually?
@C
op
yri
gh
t 2
01
7 O
be
o
Ceci n’est pas un diagramme (this is not a diagram)
@C
op
yri
gh
t 2
01
7 O
be
o
Test like a pastry cooker would taste cakes
A slice after another!
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Representation’s piece of cake
Eclipse / SWT
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Representation’s piece of cake
Eclipse / SWT
EMF / GMF
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Representation’s piece of cake
Eclipse / SWT
EMF / GMF
Sirius
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Representation’s piece of cake
Eclipse / SWT
EMF / GMF
Sirius
ODesign Java Services
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Representation’s piece of cake
Eclipse / SWT
EMF / GMF
Sirius
ODesign Java ServicesThis slice is yours
@C
op
yri
gh
t 2
01
7 O
be
o
Do Unit Testing of you’re odesign
User Interface Tests are not OK :
you’re the pastry cooker, not the cake consummer!
Unit Tests are OK :• Unit test you’re java services (that’s straightforward)
• Unit test representations, tools, filters, etc.
@C
op
yri
gh
t 2
01
7 O
be
o
Unit testing Sirius Representations using JUnit
1. Use the Ecore and Sirius API to create (programmatically)• A session
• A Semantic model
• A representation
@C
op
yri
gh
t 2
01
7 O
be
o
Unit testing Sirius Representations using JUnit
1. Use the Ecore and Sirius API to create (programmatically)• A session
• A Semantic model
• A representation
2. Use the Sirius API to apply tools, filter, etc.
@C
op
yri
gh
t 2
01
7 O
be
o
Unit testing Sirius Representations using JUnit
1. Use the Ecore and Sirius API to create (programmatically)• A session
• A Semantic model
• A representation
2. Use the Sirius API to apply tools, filter, etc.
3. Check the result using JUnit asserts
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Process
Domain Model
Graphical Modelers
Integration
Iterate
Industrialize
@C
op
yri
gh
t 2
01
7 O
be
o
Representations and Beyond
@C
op
yri
gh
t 2
01
7 O
be
o
Representations and Beyond
@C
op
yri
gh
t 2
01
7 O
be
o
Representations and Beyond
@C
op
yri
gh
t 2
01
7 O
be
o
Representations and Beyond
@C
op
yri
gh
t 2
01
7 O
be
o
How about tests?!
Eclipse / SWT
EMF / GMF
Sirius
ODesign Java ServicesThis slice is yours UI Code
@C
op
yri
gh
t 2
01
7 O
be
o
How about tests?!
Eclipse / SWT
EMF / GMF
Sirius
ODesign Java ServicesThis slice is yours UI Code
At this point automated user interface testing is OK!
@C
op
yri
gh
t 2
01
7 O
be
o
How about tests?!
Eclipse / SWT
EMF / GMF
Sirius
ODesign Java ServicesThis slice is yours UI Code
At this point automated user interface testing is OK!
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Process
Domain Model
Graphical Modelers
Integration
Iterate
Industrialize
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Initial version of the domain model
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Initial version of the domain model• Key representations
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Initial version of the domain model• Key representations• Anything that requires a better understanding
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Initial version of the domain model• Key representations• Anything that requires a better understanding• It may be worth doing some tests at this stage!
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Domain model stabilization
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Domain model stabilization• Additional representations
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Domain model stabilization• Additional representations• Integration code
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Domain model stabilization• Additional representations• Integration code • And … tests !!
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Specifications capitalization
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Specifications capitalization• Release engineering
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Specifications capitalization• Release engineering • Test automation
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Specifications capitalization• Release engineering • Test automation• Performance and stress tests
@C
op
yri
gh
t 2
01
7 O
be
o
The Obeo Project’s Way
POC Pilot Industrialization
• Specifications capitalization• Release engineering • Test automation• Performance and stress tests• Code analysis tools
@C
op
yri
gh
t 2
01
7 O
be
o
The Sirius Process
Domain Model
Graphical Modelers
Integration
Iterate
Industrialize
@C
op
yri
gh
t 2
01
7 O
be
o
The software building processes
@C
op
yri
gh
t 2
01
7 O
be
o
The software factory
@C
op
yri
gh
t 2
01
7 O
be
o
The software factory
@C
op
yri
gh
t 2
01
7 O
be
o
The software factory
@C
op
yri
gh
t 2
01
7 O
be
o
The software factory
Test code coverage
Code duplication
Find bugs
@C
op
yri
gh
t 2
01
7 O
be
o