Eclipse Summit 2008 - Thales - SolFa

23
Deploying Eclipse Modelling on an industrial scale with software factories Benoît Langlois, Thales/EPM November 19 th , 2008

description

SolFa is a software factory tool developed by Thales

Transcript of Eclipse Summit 2008 - Thales - SolFa

Page 1: Eclipse Summit 2008 - Thales - SolFa

Deploying Eclipse Modelling on an industrial scale with software factoriesBenoît Langlois, Thales/EPM

November 19 th, 2008

Page 2: Eclipse Summit 2008 - Thales - SolFa

2 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Agenda

• What is SolFa?, Why SolFa?• Demo• Summary

Page 3: Eclipse Summit 2008 - Thales - SolFa

3 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde 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

Page 4: Eclipse Summit 2008 - Thales - SolFa

4 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde 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

Page 5: Eclipse Summit 2008 - Thales - SolFa

5 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde 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

Page 6: Eclipse Summit 2008 - Thales - SolFa

6 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde 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

Page 7: Eclipse Summit 2008 - Thales - SolFa

7 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Why SolFa?

• Need#3: Abstraction

Developer

Domain Expert

Flexible, simple and practical solutionsTechnology/Business need-oriented

Implementation of technical solutions

Tool-oriented development

FC portfolios

DSL

Page 8: Eclipse Summit 2008 - Thales - SolFa

8 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Paradigm of Factory Component

Asset

AssetDomain Expert

FCDeveloper

DSL

Domain Model

Editing FCExecuting FC

Sharing FC

Factory Component

Domain Technology

Meta-Domain Level:- Implementing a document editor- Implementing a document generator

Example for document production

Domain-Level:- Designing a document

Domain-Level:- Generating a document

Page 9: Eclipse Summit 2008 - Thales - SolFa

9 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories

Eclipse

SolFa Engine

Software Factory Portfolio

SolFa Architecture

FC Edition Pattern (M2T)Orchestration

FC Execution

Bootstrap FC

Application DSL [Technological Slot]

Core FC (basic, utilities…)

Tool Infrastructure FC Common DSL FC

DSL FC

Uses

Application FCFC Portfolio for a

technology: Web services, reverse engineering,

business rules…

Factory DeveloperDomain Expert Tool

Tools

M2M,M2T,T2M,T2T

Java Code

Tool run from Java

Java Task

Page 10: Eclipse Summit 2008 - Thales - SolFa

10 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Demo

• Demo #1� Presentation of SolFa Engine:

� Factory component edition and execution

� Pattern (M2T)

Page 11: Eclipse Summit 2008 - Thales - SolFa

11 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Case Study

Model Mgt Generator

Model Edit Generator

Model Editor Generator

Domain Diagram Generator

Domain HTML Web-Site Generator

Library Application Library Model, Edit, Editor

ModelModel

Model API

Model Documentation

Diagram

Page 12: Eclipse Summit 2008 - Thales - SolFa

12 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Demo: SolFa Engine / Factory Component

SolFa perspective

FCs (Factory components) being developed Deployed FCs

FC

generation data by

concerns

Orchestration

Delegation FC parameters

Parameter values

Page 13: Eclipse Summit 2008 - Thales - SolFa

13 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Demo: SolFa Engine / Pattern

Patterns in a pattern library

Page 14: Eclipse Summit 2008 - Thales - SolFa

14 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Demo: SolFa Engine / Pattern

Page 15: Eclipse Summit 2008 - Thales - SolFa

15 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Demo: SolFa Engine / Pattern

Ordered list of pattern parameters, each parameter type = Model Class

Condition to apply a pattern

Page 16: Eclipse Summit 2008 - Thales - SolFa

16 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Demo: SolFa Engine / Pattern

List of pattern methods

Order to apply methods

JET1

Page 17: Eclipse Summit 2008 - Thales - SolFa

17 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Demo

• Demo #2� Portfolio example:

� DSL Family

Page 18: Eclipse Summit 2008 - Thales - SolFa

18 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Demo: Document DSL

Html Report

Domain Expert

Page 19: Eclipse Summit 2008 - Thales - SolFa

19 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Demo: DSL Family

Test DSLDocument DSL

SimilarityVariation

Page 20: Eclipse Summit 2008 - Thales - SolFa

20 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories DSL Family

DSL Family

DSL Factory Model

Common DSL Generator

Test DSL

Test DSL Model

Test DSL Generator

Document DSL

Document DSL Model

Document DSL Generator

Customization

Page 21: Eclipse Summit 2008 - Thales - SolFa

21 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde 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

Page 22: Eclipse Summit 2008 - Thales - SolFa

22 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde 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

Page 23: Eclipse Summit 2008 - Thales - SolFa

23 Deploying Eclipse Modelling on an industrial scale with software factories

SolFamde solution factories Thank You!

[email protected]

Contributors: Stephane Fournier, Guillaume Brocard

Questions