be serious with sirius your journey from first experimentation to large deployment
TRANSCRIPT
© C
op
yrig
ht
2016
Ob
eo
Be Serious With Sirius: Your Journey From First Experimentation to Large Deployment
Etienne Juliot@ejuliot
© C
op
yrig
ht
2016
Ob
eo
Sirius : A Well Proven Technology
Deployed on numerous projects
● Thales: Systems Engineering of the group (Capella workbench)● French Ministry of Defense: Spec, Design and Dev of Enteprise Applications
Domain model : Describe your business
Goulwen Le Fur:« The more domain model is well-designed,the more it will be easy to create tools,the more it will evolve easily in time »
© C
op
yrig
ht
2016
Ob
eo
Domain model: Involve the domain experts
Modeling Champion
DomainStakeholder
EMF Expert
© C
op
yrig
ht
2016
Ob
eo
Domain model: Evolution-Friendly Designed
Early domain model stabilization
- add: OK- remove, update: migration
© C
op
yrig
ht
2016
Ob
eo
Domain model: Follow Ecore Best Practises
Follow the little pony checklist
NsURI convention
Reference and attribute names are consistent
All the non-abstract EClasses are supposed to be instanciated
A user can’t introduce cyclic references in between model fragments
A user can’t introduce cyclic references in between model fragments
http://cedric.brun.io/eclipse/ecore-design-checklist-part1/
http://cedric.brun.io/eclipse/ecore-design-checklist-part2
15
© C
op
yrig
ht
2016
Ob
eo
Graphical Modelers: make it nice
Follow Loredana's advises
after
before
16
© C
op
yrig
ht
2016
Ob
eo
Graphical Modelers: make it nice
Follow Loredana's advises
after
before
24
© C
op
yrig
ht
2016
Ob
eo
Graphical Modelers: guide the user
Viewpoints
Layers
Validation
Tabbar
Layout
….
Reduce the number of clics
25
© C
op
yrig
ht
2016
Ob
eo
Graphical Modelers: work by uses cases
Modeling Champion
DomainStakeholder
Sirius Core Dev
Sirius Expert
26
© C
op
yrig
ht
2016
Ob
eo
Graphical Modelers: follow Obeo's best practices
Optimized model queries
Avoid eAllContents()
Use semanticCandidate instead of precondition
...
Prefer AQL langage
Validate your VSM
Use naming convention
Reuse representation's definition with imports
Take care of the views’ size
Think about (un)synchronized nodes
28
© C
op
yrig
ht
2016
Ob
eo
Integration: typical tasks
Build
Tycho / Maven / Jenkins
Plugin architecture and reuse strategy
Branding
RCP / UI simplification
Import / Export
Document Generation with M2Doc
Source Code Generation with Acceleo (or XTend)
Xtext Bridge
Collaboration solution
30
© C
op
yrig
ht
2016
Ob
eo
Iterate: follow Obeo's best practises
A POC generally address
A subset of the target domain
a reduced set of representations
A POC is representation centric
don't care about reliability of domain model
Can be trashed Should be trashed→
Here the goal is to validate the general principle of the tooling, not start the development
31
© C
op
yrig
ht
2016
Ob
eo
Iterate – POC: Design for your users with your users
Tools are easy to configure
Design your ecore model in session validate with domain experts→
Prototype your sirius representations in session Test with targetted users→
Add in the loop internal or external IT integrator
Ideal team :
1 Sirius expert 1 targetted user1 domain expert
© C
op
yrig
ht
2016
Ob
eo
Ready-to-use packages
Community Edition Team Edition
A 100% Open Source package to discover Sirius thanks to a robust
foundation
A commercial package completing OD Community with repository-based
collaborative features.
33
© C
op
yrig
ht
2016
Ob
eo
Iterate – POC : project organization
Typical goals for Sirius expert:
To animate a working session
To implement a domain model or review an existing one
To quickly prototype Sirius representations from PPT / Visio specifications
To demonstrate the ability to import / export data with external tools
Average time for POC : 5/20 wd
34
© C
op
yrig
ht
2016
Ob
eo
Iterate: follow Obeo's best practises
A Pilot generally address
A subset of the target domain, reliable enough for a real usage
a reduced set of representations, usable by real end users
A Pilot is domain model + UX centric
the domain model should reliable and long term
It should demonstrate a value on some use cases with good feedbacks
The goal is to validate the ROI
35
© C
op
yrig
ht
2016
Ob
eo
Iterate – Pilot: scope
Outcomes
Domain model
Specification and Implementation of a subpart of the EMF domain model
Representations
Completion and Stabilization of the representations started during the POC
or Creation from scratch to be based on good specifications
Enough representation to be able to edit any elements
Basic Tools such as : direct edit, reconnexion, creation, built-in tools usage
Integration
Import / Export, (doc+code) Generators
Challenge
Identify risks and try to solve them
No test on large volumetry
36
© C
op
yrig
ht
2016
Ob
eo
Iterate – Pilot: project organization
Several ways of automonous
Full outsourcing to Sirius experts
Full internal dev with progressive ramp-up
4 days training
2 weeks at full time for initial setup and workshops
2,5 days of week during 1 month
Sprint for specific features
Support
Mix
1 outsourced Sirius expert 2 internal developper↔
Full time project or sprints
Average time for Pilot: 15/40 wd
© C
op
yrig
ht
2016
Ob
eo
Hot-fixes & Open Innovation
Cost management of your specific integrations
Dedicated Support
Guaranteed response time for your support queries
Secure Your Deployments
Drive the Roadmap
Iterate – Pilot: Editor's Support
40
© C
op
yrig
ht
2016
Ob
eo
Iterate: follow Obeo's best practises
Industrialization generally address
Scalability
Multiply representations at different abstractions or context
Adding all tools for convenience
Industrialization is reliability centric
Unit Testing on every services
RCP testing for UI
Automatic build, code review
© C
op
yrig
ht
2016
Ob
eo
Collaborative Modeling with Sirius: from Model Fragments to Shared-Repository
© C
op
yrig
ht
2016
Ob
eo
Collaboration with model fragments
SCMMerge data
Work locally Work locally
Merge data
A SCM to manage files
User 1 User 2
© C
op
yrig
ht
2016
Ob
eo
Collaboration with model fragments
User 1
User organiser
Fragment file
User 2
How to avoid merging ?
© C
op
yrig
ht
2016
Ob
eo
Model fragment: so what ?
Assume that processes are well defined and followed for
File fragmentation
File sharing
File locking at corse grain
Assume Technical support for merge processes suited for
Meta model that can be easily fragmented
Low user number
Technical users
© C
op
yrig
ht
2016
Ob
eo
Instant collaboration
User 2
Obeo Designer Team Server
User 1 User 2
shared repository and collaborative work features
© C
op
yrig
ht
2016
Ob
eo
Users' Feedback
Several users working simultaneously on the same data• Automatic propagation of modifications across all user views• Authentication and data access rights• Suited for 10-15 users users working simultaneously on the same data
No time lost managing conflicts and splitting models• Implicit locking during modifications• Explicitly created reservation locks
Centralized administration• Administration console with automation feature• Branch, archive and backup management
Standard data exploitation• Storage in a multi-platform relational database (H2)• Ready to deploy server configuration based on CDO• Import/Export with local projects
© C
op
yrig
ht
2016
Ob
eo
Usage across several teams
OD Team is deployed at Sagem, MMA, CS, Postal Bank, Thales, French Ministry of Defense, Airbus, ...
Paris Stuttgart
SCM
© C
op
yrig
ht
2016
Ob
eo
To Sum Up
Focus on the domain model and Stabilize it ASAP
Initialize and design your representations in workshops
Start with a POC
Industrialize with a collaborative editing strategy