DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
Eclipse Summit 2008 - Thales - SolFa
1. Deploying Eclipse Modelling on an
industrial scale with software factories
Benoît Langlois, Thales/EPM
November 19th, 2008
2. SolFa
mde solution factories
Agenda
• What is SolFa?, Why SolFa?
• Demo
• Summary
2
Deploying Eclipse Modelling on an industrial scale with software factories
3. SolFa
mde solution factories
What is SolFa?
• Objective:
Tool for mass-producing software with flexibility
Support for complex generations
• Used techniques:
Generative technique: M2M, M2T, T2T, T2M transformations
Product Line: capitalization and customization of core development
DSL (Domain-Specific Language): Facilitating software
development
3
Deploying Eclipse Modelling on an industrial scale with software factories
4. SolFa
mde solution factories
Position of SolFa in Eclipse
• SolFa is a Model-Driven Development tool
• The SolFa foundation is fully Eclipse-based:
Non-UI (JDT, PDE, Core), UI (SWT, JFace, Forms, Eclipse UI)
EMF-based: Ecore, EMF Query, Validation, Transaction
Transformation: JET, EMF Mapping
• Purpose regarding component viewpoint:
Not a new transformation engine or DSL editor
Integration of available tools for software generation
Introduction of needed formalism (e.g., generation pattern) and
mechanism (e.g., generation orchestration)
• Purpose regarding user viewpoint:
Creation of off-the-shelf factories, common and specific to
different user communities
4
Deploying Eclipse Modelling on an industrial scale with software factories
5. SolFa
mde solution factories
Why SolFa?
• Need#1: Factory Component
Unit of generation with a clear objective of generation
Unit of generation with a clear contract
Explicit declaration of generation data organised by viewpoints
Orchestration of the generation with a production plan
Assembly of factory components
Delegation
Creation of heterogeneous and complex generations
5
Deploying Eclipse Modelling on an industrial scale with software factories
6. SolFa
mde solution factories
Why SolFa?
• Need#2: Exchange of Factory Components
Capitalisation and reuse between projects
Definition of Factory Component portfolios, .i.e. sets of FCs with a
common objective
6
Deploying Eclipse Modelling on an industrial scale with software factories
7. SolFa
mde solution factories
Why SolFa?
• Need#3: Abstraction
Flexible, simple and practical solutions
Technology/Business need-oriented
DSL
Domain Expert
FC portfolios
Implementation of technical solutions
Tool-oriented development
Developer
7
Deploying Eclipse Modelling on an industrial scale with software factories
8. SolFa
mde solution factories
Paradigm of Factory Component
Meta-Domain Level:
- Implementing a document editor
- Implementing a document generator
Executing FC
Editing FC
FC Asset
Domain Model
Developer
Domain
Asset
Expert DSL
Factory Component
Domain Technology Domain-Level:
- Generating a document
Domain-Level:
- Designing a document
Sharing FC
Example for document production
8
Deploying Eclipse Modelling on an industrial scale with software factories
9. SolFa
mde solution factories
SolFa Architecture
Domain Expert Factory Developer Tool
Software Factory Portfolio Tools
Application DSL [Technological Slot]
Uses M2M,M2T,T2M,T2T
FC Portfolio for a
Application FC DSL FC technology: Web services, Java Code
reverse engineering,
Tool Infrastructure FC Common DSL FC business rules…
Tool run from Java
Core FC (basic, utilities…)
SolFa Engine
Bootstrap FC FC Edition Orchestration Pattern (M2T)
FC Execution Java Task
Eclipse
9
Deploying Eclipse Modelling on an industrial scale with software factories
10. SolFa
mde solution factories
Demo
• Demo #1
Presentation of SolFa Engine:
Factory component edition and execution
Pattern (M2T)
10
Deploying Eclipse Modelling on an industrial scale with software factories
11. SolFa
mde solution factories
Case Study
Model Model Mgt Generator API
Model Model
Library Application Library Model, Edit, Editor Model Edit Generator
Model Editor Generator
Domain Diagram Generator Diagram
Model Documentation
Domain HTML Web-Site Generator
11
Deploying Eclipse Modelling on an industrial scale with software factories
12. SolFa
mde solution factories
Demo: SolFa Engine / Factory Component
SolFa perspective
FCs (Factory components) being developed Deployed FCs
FC
generation
data by
concerns
Delegation
FC parameters
Orchestration Parameter values
12
Deploying Eclipse Modelling on an industrial scale with software factories
13. SolFa
mde solution factories
Demo: SolFa Engine / Pattern
Patterns in a
pattern library
13
Deploying Eclipse Modelling on an industrial scale with software factories
14. SolFa
mde solution factories
Demo: SolFa Engine / Pattern
14
Deploying Eclipse Modelling on an industrial scale with software factories
15. SolFa
mde solution factories
Demo: SolFa Engine / Pattern
Ordered list of pattern parameters,
each parameter type = Model Class
Condition to
apply a pattern
15
Deploying Eclipse Modelling on an industrial scale with software factories
16. SolFa
mde solution factories
Demo: SolFa Engine / Pattern
List of pattern
methods
Order to apply
methods
JET1
16
Deploying Eclipse Modelling on an industrial scale with software factories
17. SolFa
mde solution factories
Demo
• Demo #2
Portfolio example:
DSL Family
17
Deploying Eclipse Modelling on an industrial scale with software factories
18. SolFa
mde solution factories
Demo: Document DSL
Domain Expert
Html Report
18
Deploying Eclipse Modelling on an industrial scale with software factories
19. SolFa
mde solution factories
Demo: DSL Family
Similarity
Variation
Document DSL Test DSL
19
Deploying Eclipse Modelling on an industrial scale with software factories
20. SolFa
mde solution factories
DSL Family
DSL Family
DSL Factory Model
Common DSL Generator
Customization
Document DSL Test DSL
Document DSL Test DSL Model
Model
Document DSL Generator Test DSL Generator
20
Deploying Eclipse Modelling on an industrial scale with software factories
21. SolFa
mde solution factories
Features of SolFa Engine
• Current state:
Edition and execution of factory component
Declaration of generation data organised by viewpoints
Assembly of factory components and generation orchestration
Generation performed by Java tasks or patterns
Pattern:
Example of viewpoint, with its own language and execution mode
Pattern inheritance for generation customisation, e.g. EMF generation
Provided: help, tutorials
• Future work:
[Started] Combination of Factory Component generation
Pattern: Supporting other M2T engines than Jet1(e.g., Jet2, xPand)
Supporting complex orchestrations
Extensibility: ability to plug generation viewpoints
21
Deploying Eclipse Modelling on an industrial scale with software factories
22. SolFa
mde solution factories
Features of DSL Factory
• Current state:
Implementation of a DSL family portfolio:
Generation of a DSL from a DSL model and a DSL factory
Addressing common Query model needs, e.g. helper definition,
test, document, diagram generation
Common features:
Foundations of an abstract syntax:
For tool-independence, queries are modelled and actions are generic
Definition of reusable DSL pieces, recursion…
Generation of target artefacts from a DSL and FCs
• Future work:
Concrete syntax/Notation: Graphical-based on GMF
22
Deploying Eclipse Modelling on an industrial scale with software factories
23. SolFa
mde solution factories
Thank You!
Questions
benoit.langlois@thalesgroup.com
Contributors: Stephane Fournier, Guillaume Brocard
23
Deploying Eclipse Modelling on an industrial scale with software factories