december 4, 2003 1 [email protected] icssea’03 the smarttools software factory the mda...

17
December 4, 2003 1 Didier.Parigot@inr ia.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development: by Didier Parigot Applications need to be more open and adaptable

Upload: tracy-harrison

Post on 14-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

The SmartTools Software Factory

The MDA approach and Generative

programming for Software Development:

byDidier Parigot

Applications need to be more open and adaptable

Page 2: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Evolutions in Software Engineering

Open Problem Applications need to be more open and adaptable

Plan Intuitive Idea of Software Factory

Upheaval factors of this Software Evolution

Overview of the SmartTools Software Factory Data Model: independent format Semantic Model: Aspect-Oriented Programming Component Model: SmartTools Architecture Visualisation Model: an example of a MDA component

Open Problem Applications need to be more open and adaptable

Plan Intuitive Idea of Software Factory

Upheaval factors of this Software Evolution

Overview of the SmartTools Software Factory Data Model: independent format Semantic Model: Aspect-Oriented Programming Component Model: SmartTools Architecture Visualisation Model: an example of a MDA component

Page 3: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

programs

compilers

system

languages

applications

execution

Open and adaptable

An intuitive idea of Software Factory

Models or Specific languages

generators

Business Code

The Glue

Platform

Family of application

To control the code sensitive to evolutions

Capture of a knowledgeCapture of a knowledge

Software product-lineSoftware product-line

Evolutionary ApplicationsEvolutionary Applications

Open and Adaptable Open and Adaptable

ApplicationsApplications

Page 4: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Factors of change in Software development

The Internet Web applications (B2B applications and Web Semantic)

The proliferation of new technologies Components (EJB, CCM, Web Services etc...) Which one to choose ?

The Democratisation of computer science

The time to market: fast software development

The impact of standards: W3C et OMG

Page 5: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Cross-Fertilisation between several research domains

Evolution of programming languages

By separation of concerns Aspect-Oriented Programming

Component ProgrammingMethod Call or Interface

Model ProgrammingMDA approach proposed by the OMG

programming languages

The Applications must to be open and adaptable

Models or specific languages

Generators

New programming languagesNew programming languages

Design PatternModel: an abstraction Model: an abstraction

for each concern for each concern

Page 6: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Software Factory: SmartTools

Generators

PIMPIM PSM

Data Model

Semantic Model

Component Model

View Model

The Glue

Business Code

Platform

Pivot Model

Projectable Model

Extensible Component

MDA approach

MDA Component

Parts written by the programmerParts sensitive to evolutionsIndependent Models (PIM) Specific Models (PSM)MDA Approach

Other concerns Other concerns

Other modelsOther models

Page 7: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

The Data Model

Goals

Independent Model : PIM Any programming language : neutral format With generator to instrument the data model : PSMs

To use the Standard of W3C (or OMG) consortium open new application fields

Page 8: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

UMLMOF

The Data Model

Data ModelMeta-language : Absynt

Traductors

DTD

XML Schema

Generators

Java classes top of the DOM API

Is Instance of

XMLXML

JavaXML

XMLXML

Is Conform to Can be serialised in

Is represented by

PSMPSM

Meta level

Page 9: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Component model: our approachArchitecture of SmartTools

Meta tools

The methodDefinition of an abstract component model

independent of any component technology

Definition of a set of transformations to standard component models (EJB, CCM, etc..) : MDA approach

Component modelbased on neutral model (PIM)P2P, dynamic topologyExtensible Component

Page 10: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Connection

Generator

Component Model

Components Manager

Creation

Component model: an example

Data Model

View Model

Graphic Model

Semantic Model

Document

Graphic view

Graphic view

Graphic User Interface

Collaboration between Collaboration between

all the models all the models Capture of knowledgeCapture of knowledge

New notion of typeNew notion of type

(interface)(interface)

Page 11: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Component model: transformation

EJB

Home and

Remote interfaces

Eclipse

Eclipse API?(IDE)

Abstract Component Model

IDL File +

Server ClassCORBA

CCM

SmartTools

Container Class+

Extend facade Class

Generators

WSDL File

SOAP Class

Web Services

MDA

PIM

PSM

Different interpretations Different interpretations

of the component notion of the component notion

Page 12: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

SmartTools: WHAT is it ?

An application manufactured by a software factory

To test our approach of Software Factories

An application which enables to build a software factory

To propose and extend our approach

A factory which enables to quickly create a family of application

To build a family of application

Page 13: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Basic components Component manager

Graphic UserInterface

Generators Component Generator

Data Structure Generator

Semantic Generator

ViewGenerator

Y logical Component

Y view component

ApplicationsY logical component

X view component

A Bootstrapped Application: SmartTools

Kernel 0%

Cosynt

XprofileCoq

(XML)

XML (generic)

IDLbibtex

In production mode

Generators ComponentGenerator

Data StructureGenerator

Semantic Generator

View Generator

100%

In bash mode

In none interactive or export mode

N % use of the Software Factory

lml

Application fields ? Application fields ?

RAINRIA

Syntax(relax)

EDF(UML)

B WSDL

CSS

Java

cdml

Basic componentsComponent Manager

Graphical UserInterface

100%50%

XSLT

DTD

MathML

XML Schema

SVG

Absynt

HTML

ant

Page 14: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Conclusion : Macro-Programming ?

The Classic programming Languages are not the solution ?

Independent Model / inter-domains ?

Development Processes / Incremental ?

Conceptual Model / Product Model ?

Universal Model / Business Model ?

Open and Adaptable Applications ?

Model for each concern ?

AOP / directly on the model ?

Dynamic Transformation / projection of semantic treatments ?

Generative programming / Meta-programming ?

Etc…Etc…

More questions than More questions than

answers ! answers !

But there is already But there is already

a research prototype:a research prototype:

SmartToolsSmartTools

Page 15: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

END

QUESTIONS ?

Software Factory www-sop.inria.fr/oasis/SmartTools

Demonstration

Page 16: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

An example of the GUI

Page 17: December 4, 2003 1 Didier.Parigot@inria.fr ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:

December 4, 2003 [email protected]

r ICSSEA’03

Overview of SmartTools factory