siriuscon2016 - let's talk about your future sirius project
TRANSCRIPT
Obeo 2016 SiriusCon November 15th,2016 - Paris Let's talk about your future Sirius project
Let's talk about your future Sirius project
Convinced?
You're probably wondering How do I start my project'
Now where do we start?
You're probably wondering How do I start my project'
The Sirius process
DomainModelGraphicalModelersIntegrationIterate
Usually a Sirius project follows these steps : - domain model : concepts offered to users for their modeling activity, properties and how they're related each each other - Create your graphical modelers with Sirius to design the views you want to offer in your modeling tool- and you may have to develop component to integrate your workbench in your global toolchain
And we'll see in the presentation, you can execute this process iteratively
The Sirius process
DomainModelGraphicalModelersIntegrationIterate
DomainModel
Domain model : Describe your business
The more this model accurately describes the domain, the more
users will easily manipulate the tools based on it
The best this model is well-designed, the best it will evolve easily in time
Fundamental step: - the domain model carry out the concepts, the properties and the relations your users will manipulate each time they use your workbench- the model must describe accurately your business so that your users will easily learn how to use it and will be comfortable with it- Another important point is that you will probably not cover your domain entirely in the first iteration- our tools are iterative
Involve the domain experts
Modeling Champion
DomainStakeholder
EMF Expert
Be specific (W/WO standards)
Evolution-Friendly Designed
Early domain model stabilization
- remove, update: migration
- add: OK
Use EcoreTools
Avant available : An Eclipse technology
Follow the Ecore best practices
Follow our CTO guidelineshttp://cedric.brun.io/eclipse/ecore-design-checklist-part1
http://cedric.brun.io/eclipse/ecore-design-checklist-part2
Design
Performance
Scalability
The Sirius process
DomainModelGraphicalModelersIntegrationIterate
GraphicalModelers
Your domain, Your modeling workbench
Create tools perfectly adapted to your usersUsing the most intuitive representations and tools
Eloquent modelers for users
Modeling Champion
TargetUser
Sirius Expert
That's why we recommend to organized working session with the
target users to precisely set up the modeler for their
needs
Specify your representation with your target userUse as much as possible the usual Visual Identity of your users to style your representations
Graphical Modelers: Use expressive shapes
Sirius allows to highly configure the graphical representations
and the editing tools in your modeler
This key feature must be used to create various modelers
precisely adapted to their users and the associated use
cases
Graphical Modelers: Use SVG & images
Graphical Modelers: Give meaning to colors
Graphical Modelers: make it nice
Follow Loredana's advices
Depending on your needs, a modeling tool can be used quite often (maybe every day) so we recommend to make them nice. Your users will find them more pleasant to use
Follow the recommandations given by loredana in the previous session to make them shiny
Graphical Modelers: make it nice
Before
After
Graphical Modelers: make it nice
Before
After
Graphical Modelers: guide the user
For the moment, I only discussed about the visual presentation of your modelers, but the way you edit the model is very important too.
You can also very efficiently configure your editing tools in your Sirius modelers
You can configure the editing behaviour of your tools in the palette, the popup menu, the tabbar so that you can create very intuitive modelers in your workbench
Graphical Modelers: conditional styles
Take advantage of the new Properties Views feature in Sirius 4.X to adapt even more your representations to your users
Graphical Modelers: smart filter
Take advantage of the new Properties Views feature in Sirius 4.X to adapt even more your representations to your users
Graphical Modelers: semantic positionning
Take advantage of the new Properties Views feature in Sirius 4.X to adapt even more your representations to your users
Calm down the clicks counter
Viewpoints
Layers
Validation
Tabbar
Layout
.
More adaptable, release after release
Take advantage of the new Properties Views feature in Sirius 4.X to adapt even more your representations to your users
Best practices
Follow the Obeo Designer best practiceshttps://www.obeodesigner.com/en/best-practices
OptimizedQueries
Scalability
Validate
The Sirius process
DomainModelGraphicalModelersIntegrationIterate
Integration
Visual representations but maybe more!
Finally, you could have to integrate your modeling workbench with your other toolsImport data from others tools
Export models to others tools
Generate documentation, reports
Fortunately Sirius is Open Source and is part of the Eclipse EcosystemEasiness to interact with other tool
Availability of tons of opensource tools ready-to-use with Sirius (m2doc, acceleo)
Generate code : Acceleo
- Thanks to the eclipse platform you will find a lot of great projects to help you create all you components.
Generate Documentation : m2doc
Guide the user : Activity explorer
Take advantage of the new Properties Views feature in Sirius 4.X to adapt even more your representations to your users
The Sirius process
DomainModelGraphicalModelersIntegrationIterate
Iterate
Iterate!
Experiment!
Start prototypes
Step by step!
Be agile!
These technologies are highly iterative soFeel free to make triesFeel free to launch small prototypesFeel free to skip and to leave unfinalized a topic to work on it later This iterability lets you work in a very agile way to develop your Sirius modelers
ok but, how do we proceed for this project?
The Obeo's best practices
Experiment, Validate, Deploy
Initialize, Experiment
Cover, Validate
Finalize, Deploy
First, lets demonstrate
Start with a small, well defined scope in domain
Focus the development on key representationsThe most convincing ones!
Validate the general principle of the toolingDo not start the development!
Start with a small, well defined scope of your domainA POC generally addressA subset of the target domain
a reduced set of representations
These representations must cover the elements to present and the associated editing tools
Here, the goal is to validate the general principle of the tooling, not start the development
POC: Our target
OutcomeFirst version of your domain model
Significant sample models
Some key representations
ChallengeIdentify critical needs
Involve users
Focus on added-value
Need help?
Obeo helps his clients in POC phases for several years now
Our experts can help youTo animate your working session
To implement your domain model in Sirius
To quickly prototype representations for your modeling workbench
To demonstrate the ability to import / export data with external tools
Average time for POC : 5/20 wd
Let us get down to business
Takes place in the POC continuity
Here we focus on a consistent part or on the entire domain
And we might cover all the tooling aspectsDomain modeling
Representations
Import/Export
UI/UX dedicated developments
...
Pilot: Our target
OutcomeA stable version of the domain model
Enough representations to cover the target domain part
Key import/export tools
ChallengeIdentify risks and try to solve them
Experimentation on the first real cases
Several ways towards autonomy
Average time for Pilot : 15/40 wd
Usually, internal tooling team is responsible for this workbenchIf such team exists in the company, different scenarios to organize the develop the workbench are possible:The team can develop the entire workbenchIn this case, Obeo can train the team to the technologies involved in the project
The team can co-develop the workbench with ObeoUsually, Obeo starts the project, organizing and leading the working session, initializing the development part before a transfer to the target teams
Finally, the team can subcontract the entire development to Obeo
If such a team doesnt exist,Either a development team takes responsibility for the projectWith one of the scenarios described above
Either the company can subcontract the entire project
Time to think about support
Hot-fixes & Open InnovationCost management of your specific integrations
Dedicated SupportGuaranteed response time for your support queries
GoldPlatinum
Once the Pilot project deployed, the tooling will be placed in the hands of final userswho may need some hot fixes or product improvement
who may depends on the proper operation of the tools
The company may need a professional support from a software company
Pilot is a success? Lets go on!
The step after a successful pilot project
There the tooling is completed and finalized
The goal is to deploy the tooling in the entire company/group
The step after a successful pilot project is the industrialization of the modeling workbench. This results in:Potentially performing a final iteration on the domain
Iterate on all representations to upgrade them to an industrial quality levelFinalization of all configuration (styles, dynamic styles, toolings)
Add of additional representations
Full integration with external tools
Branding
For the implementation aspects:IC (if not already done)
Automated tests
Projects infrastructure (bugs tracker if not already create)
Industrialization: Our target
OutcomeAn stable updated version of the domain model (if needed)
An updated version of the existing representations
Potential additional representations if identified
A consistent tooling for all activities in your domain
ChallengeStabilize the tooling enough to success a full deployment
Validate the tool scalability (if needed)
Going Further...
with new Projects
The industrialization of a first project can be parallelized to new POCs or Pilot modeling new domain
In order to provide a full modeling workbench dedicated to one or more fields of the company
Working together
With a growing number of users, the collaborative editing
strategy must be tackled
How users will collaborate together?
Do we authorize model conflicts?
Where does the models are stored?
With a growing number of users, the collaborative editing strategy must be tackleHow users will collaborate together?
Do we authorize model conflicts?
Where does the models are stored?
Obeo propose two way to implement collaborative editing strategyYou have to chose the one matching the more with your contextUsers
Modeling context
Habits
...
Sharing models
Merge dataMerge data
User 1
User 2Shared directory,SCM...
How to avoid merging ?
User 1Model managerFragment file
User 2
EMF Compare supporting your merges
OD Team: Instant collaboration
User 2Obeo Designer Team ServerUser 1
User 2
shared repository and collaborative work features
OD Team is deployed at Sagem, MMA, CS, Postal Bank, Thales, French Ministry of Defense, Airbus, ...
Finally, if you want to provide your users with a smoother way to collaborate together, you can start to use Obeo Designer TeamIt provides instant collaboration. When a user start to modify a model, the others users are notified with graphical locksAnd when the first user validate his changes, the others users are immediately updated with the new version of the model.
Users' Feedback
Several users working simultaneously on the same dataAutomatic 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 modelsImplicit locking during modifications
Explicitly created reservation locks
Centralized administrationAdministration console with automation feature
Branch, archive and backup management
Standard data exploitationStorage in a multi-platform relational database (H2)
Ready to deploy server configuration based on CDO
Import/Export with local projects
To Sum Up
DomainModelGraphicalModelersIntegrationIterate
Experiment, Validate, Deploy
Rely on the best Sirius Professionals!
We help you create state-of-the-art modeling tools