69
@Copyright 2017 Obeo Industrialize your Sirius- based solution: the steps and tools Romain Guider

SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

  • Upload
    obeo

  • View
    96

  • Download
    1

Embed Size (px)

Citation preview

Page 1: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Industrialize your Sirius-based solution:

the steps and toolsRomain Guider

Page 2: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Sirius Process

Domain Model

Graphical Modelers

Integration

Iterate

Industrialize

Page 3: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Sirius Process

Domain Model

Graphical Modelers

Integration

Iterate

Industrialize

Page 4: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

What’s in a Domain Model ?

Page 5: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 6: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 7: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 8: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

What’s in a Good Domain Model ?

AdoptionFitness Accuracy

+ =

Page 9: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

What’s in a Good Domain Model ?

Technicallysound design

Scallability Performance Flexibility

+ +=

Page 10: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 11: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

How do I model my domain?

Page 12: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

What tools do I have?

EcoreTools - Graphical Modeling for Ecore

Page 13: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

How about Testing?!

• Derived Features

• EOperations

• Validation rules

Page 14: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 15: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Sirius Process

Domain Model

Graphical Modelers

Integration

Iterate

Industrialize

Page 16: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Graphical, only?

Page 17: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 18: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

How about Testing?!

Page 19: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Test representations & Mappings

Check intendedSemantics

Elements are present

Page 20: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Test representations & Mappings

Check intendedSemantics

Elements are present

Check filters do their job!

Page 21: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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!

Page 22: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 23: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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.

Page 24: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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!

Page 25: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Okay … but how do I test Sirius Representations, Actually?

Page 26: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Ceci n’est pas un diagramme (this is not a diagram)

Page 27: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Test like a pastry cooker would taste cakes

A slice after another!

Page 28: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Sirius Representation’s piece of cake

Eclipse / SWT

Page 29: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Sirius Representation’s piece of cake

Eclipse / SWT

EMF / GMF

Page 30: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Sirius Representation’s piece of cake

Eclipse / SWT

EMF / GMF

Sirius

Page 31: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 32: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 33: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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.

Page 34: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 35: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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.

Page 36: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 37: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Sirius Process

Domain Model

Graphical Modelers

Integration

Iterate

Industrialize

Page 38: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Representations and Beyond

Page 39: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Representations and Beyond

Page 40: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Representations and Beyond

Page 41: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

Representations and Beyond

Page 42: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 43: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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!

Page 44: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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!

Page 45: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Sirius Process

Domain Model

Graphical Modelers

Integration

Iterate

Industrialize

Page 46: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Obeo Project’s Way

POC Pilot Industrialization

Page 47: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Obeo Project’s Way

POC Pilot Industrialization

Page 48: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 49: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 50: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 51: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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!

Page 52: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Obeo Project’s Way

POC Pilot Industrialization

Page 53: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Obeo Project’s Way

POC Pilot Industrialization

• Domain model stabilization

Page 54: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Obeo Project’s Way

POC Pilot Industrialization

• Domain model stabilization• Additional representations

Page 55: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 56: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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 !!

Page 57: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Obeo Project’s Way

POC Pilot Industrialization

Page 58: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Obeo Project’s Way

POC Pilot Industrialization

• Specifications capitalization

Page 59: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Obeo Project’s Way

POC Pilot Industrialization

• Specifications capitalization• Release engineering

Page 60: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 61: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 62: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@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

Page 63: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The Sirius Process

Domain Model

Graphical Modelers

Integration

Iterate

Industrialize

Page 64: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The software building processes

Page 65: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The software factory

Page 66: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The software factory

Page 67: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The software factory

Page 68: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o

The software factory

Test code coverage

Code duplication

Find bugs

Page 69: SiriusCon 2017 - Industrialize your Sirius-based solution: the steps and tools

@C

op

yri

gh

t 2

01

7 O

be

o