+ All Categories
Home > Documents > Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect...

Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect...

Date post: 20-May-2020
Category:
Upload: others
View: 14 times
Download: 0 times
Share this document with a friend
78
DCNS 2013 - all rights reserved / tous droits réservés Emmanuel GRIVOT Architecte logiciel DCNS / Système Information et Sécurité / Direction Technique et Technologique Journées NEPTUNE 22-23 mai 2013, V1.1 Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture
Transcript
Page 1: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

DC

NS

201

3 -

all r

ight

s re

serv

ed /

tous

dro

its r

éser

vés

Emmanuel GRIVOTArchitecte logiciel

DCNS / Système Information et Sécurité / Direction Technique et Technologique

Journées NEPTUNE 22-23 mai 2013, V1.1

Model Driven Engineering +Aspect Oriented Programming =Agile Model Driven Architecture

Page 2: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

2 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Resume

Emmanuel GRIVOTSoftware architect

Naval defense industry� Thomson CSF / Naval Combat System France

� THALES Naval France

� DCNS : Système Information et Sécurité /Direction Technique et Technologique

25 years background inCombat Management System (CMS) software development .

[email protected]

Page 3: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

3 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Summary

Model Driven Engineering +Aspect Oriented Programming = Agile Model Driven Architecture

ou comment réunir, avec succès,le MDA pragmatique et l'agilité.

Page 4: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

4 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. JACOMO component model

4. Demonstration with Modelio

5. UML tools REX

6. Perspectives, Q & A

The slides contain animations in slideshow mode.

Page 5: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

5 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. JACOMO component model

4. Demonstration with Modelio

5. UML tools REX

6. Perspectives, Q & A

Page 6: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

6 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

DCNS : Naval in Europe and worldwide

The DCNS Group is a leading European player for naval defense systems.

DCNS acts as prime contractor of the armed vessels and their support.

12 800 employees working across France.

2,9 billion euros in turnover.

14,5 billion euros of backlog.

1 / 3 of its international business and cooperation .

10 French Sites: Paris, Bagneux, Cherbourg, Brest, Toulon, Lorient, Ruelle, …

Page 7: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

7 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Different ships and submarines

HORIZON

FREMM

BPC

BARRACUDA

PA CDG

Page 8: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

8 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Frigate

Communication

Combat Management System

Optronic

sonar

Electronic Warfare

Surveillance radarIR

sonar

Navigation radar

missiles

gunmissilesmissiles

Page 9: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

9 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. JACOMO component model

4. Demonstration with Modelio

5. UML tools REX

6. Perspectives, Q & A

Page 10: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

10 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Combat Management System

commands

Combat Management System (CMS)Command and Control Information System (CCIS)

Network

Data Link

Navigation System Radar Navigation Radar Sonar Infra RedElectronic Warfare

TorpedoMissiles SurfGunMissile AirDecoy Launcher

System

events

services

data

Page 11: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

11 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. JACOMO component model

4. Demonstration with Modelio

5. UML tools REX

6. Perspectives, Q & A

Page 12: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

12 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Agility and Model Driven Engineering ?Agility as:

The “Command and Control” Military defines Agility as

“the ability to successfully respond to change” *

Three kinds of change:� Functional changes� Ergonomic changes� Technology changes

Solutions:� Processes: agile method, scrum, xp, …� Tools: MDE, MDA, UML, …� Technologies: AOP, …� …

* http://www.infoq.com/news/2010/06/c2-military-get s-agile

Page 13: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

13 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

JACOMO component

CBA

ComponentBasedArchitecture

SoCSeparation ofConcerns

AspectOrientedProgramming

ED - SOA

Event Driven -Service

OrientedArchitecture

multi-layersarchitecture

MDA

Model DrivenArchitecture

Model DrivenEngineering

The four puzzlesto build JACOMO component

Page 14: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

14 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

JACOMO component

<<Replicable>>

SoC : Quality of Services (AOP)

<<Remotable>>

CBA : composite component model

JACOMO Component

ED – SOA : Services and Events component ports

*

0..1

MDA : UML Platform Independent Model profile

<<ProvidedServices>> <<UsedServices>>

<<ConsumedEvent>> <<ProducedEvent>>

<<ComponentType>>

Page 15: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

15 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. JACOMO component model

4. Demonstration with Modelio : JACOMO

5. UML tools REX

6. Perspectives, Q & A

Page 16: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

16 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Track:� Domain entity concept

� User can Create, Read, Update and Delete Tracks (CR UD pattern)

HelloTracksWorld applicationTrack domain concept

Track

1

+identification

1

+kinematics

Identification

<<Data>>

Kinematics

<<Data>>

Track

<<Entity>>

Page 17: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

17 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Tracks component:MDE, CBA, ED - SOA

TracksTracksEvents

*

<<ProducedEvents>>

TracksServices

<<ProvidedServices>>

Manage TracksUpdate track

<<include>>

Control tracks

<<include>>

Create track

<<include>>

Delete track

<<include>>

Page 18: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

18 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

:Tracks:User

HelloTracksWorld Services and EventsCRUD pattern (Create Read Update Delete)

createTrack( )

onCreatedTrack( )

Tracks

<<ProducedEvents>>

*

<<ProvidedServices>>

TracksEvents

<<ComponentEvents>>

TracksServices

<<ComponentServices>>

onDeletedTrack(in aTrackId : TrackId)

onUpdatedTrack(in aTrackId : TrackId, in aTrack : Track)

onCreatedTrack(in aTrackId : TrackId, in aTrack : Track)

deleteTrack()

updateTrack()

createTrack()

Page 19: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

19 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Tracks component decomposition:CBA, three layers components

Tracks Interface

Track

TracksPresentation TracksLogic

TracksData

trackId

*

theTracks

TracksServices TracksEventsTracks

1 1

1

*

Page 20: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

20 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Tracks component decomposition:Presentation, Logic and Data layers

TracksDataEvents

TrackId

Track

TracksData

<<ProducedEvents>>

*

<<ProvidedServices>>

theTracks

*

trackId

TracksLogic

TracksDataServices

<<UsedServices>> 1

<<ProvidedServices>>

TracksServices

TracksPresentationTracksLogicServices

<<UsedServices>>

0..1

<<ProvidedServices>>

TracksEvents

<<ProducedEvents>>

*

<<ConsumedEvents>>

Page 21: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

21 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

:TracksPresentation

Tracks components sequence diagram

:User :TracksData:TracksLogic

createTrack( )

createTrack( )

createTrack( )

onCreatedTrack( )

onCreatedTrack( )

Page 22: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

22 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

TracksData component Overview:<<Data layer>>

TracksDataEvents

TracksDataServices

TracksData

<<ProvidedServices>>

<<ProducedEvents>>

* Track

theTracks

*trackId

Page 23: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

23 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

TracksData component Detailed

TracksData

<<ProvidedServices>>

*

<<ProducedEvents>>

theTracks

*

trackId

Track

TracksDataEvents

<<ComponentEvents>>

TracksDataServices

<<ComponentServices>>

onDeletedTrack(in aTrackId : TrackId)

onUpdatedTrack(in aTrackId : TrackId, in aTrack : Track)

onCreatedTrack(in aTrackId : TrackId, in aTrack : Track)

deleteTrack(in aTrackId : TrackId)

updateTrack(in aTrackId : TrackId, in aTrack : Track)

createTrack(in aTrackId : TrackId, in aTrack : Track)

Page 24: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

24 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

TracksLogic component Overview:<<Logic layer>>

TracksLogicServices

TracksLogic

<<ProvidedServices>>

TracksData Interface

TracksDataServices

<<UsedServices>>

1

Page 25: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

25 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

TracksLogic component Detailed

TracksData Interface

TracksLogic

<<ProvidedServices>>

TracksLogicServices

<<ComponentServices>>

deleteTrack(in aTrackId : TrackId)

updateTrack(in aTrackId : TrackId, in aTrack : Track)

createTrack(in aTrack : Track):TrackId

<<UsedServices>> 1

TracksDataServices

<<ComponentServices>>

deleteTrack(in aTrackId : TrackId)

updateTrack(in aTrackId : TrackId, in aTrack : Track)

createTrack(in aTrackId : TrackId, in aTrack : Track)

Page 26: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

26 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

TracksPresentation component Overview:<<Presentation layer>>

Tracks Interface

TracksPresentation

TracksLogic Interface

TracksData Interface

TracksServices TracksEvents

<<ProvidedServices>> <<ProducedEvents>>

*

TracksLogicServices

<<UsedServices>>

0..1

TracksDataEvents

<<ConsumedEvents>>

Page 27: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

27 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

TracksView component Detailed

Tracks Interface

TracksPresentation

<<ConsumedEvents>>

0..1

<<UsedServices>>

TracksLogicServices

<<ComponentServices>>

TracksDataEvents

<<ComponentEvents>>

TracksEventsTracksServices

deleteTrack(in aTrackId : TrackId)

updateTrack(in aTrackId : TrackId, in aTrack : Track)

createTrack(in aTrack : Track):TrackId

onDeletedTrack(in aTrackId : TrackId)

onUpdatedTrack(in aTrackId : TrackId, in aTrack : Track)

onCreatedTrack(in aTrackId : TrackId, in aTrack : Track)

<<ProvidedServices>>

*

<<ProducedEvents>>

Page 28: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

28 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

TracksDataServices

TracksData

0..1

tracksDataServices

0..1

tracksDataUnderTest

TracksDataServicesTest

testToDo()

Black Box Unit Test

description

TracksData component unit tests:black box and white box with JUnit

TracksDataImplTracksDataServicesImplTest

setup()

White Box Unit Test

description

Annotations

@Before

Page 29: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

29 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Local deployment HelloTracksWorld application

TracksPresentation

0..1

TracksDataEvents

TracksDataServices

TracksData

*

TracksLogicServicesTracksLogic

1

JVM

Locale interfaces.Locale interfaces.

Locale interfaces.

Page 30: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

30 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. JACOMO component model

4. Demonstration with Modelio : Hello Tracks World

5. UML tools REX

6. Perspectives, Q & A

Page 31: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

31 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

TracksLogicServicesTracksLogic

1

Remote deployment HelloTracksWorld application:<<Remotable>> QoS

ServerJVM 1

ClientJVM 2

TracksPresentation

0..1

TracksDataEvents

TracksDataServices

TracksData

*

Locale interfaces.

Locale interfaces.Remote interfaces.

<<Remotable>>

<<Remotable>>

Page 32: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

32 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

@ComponentServicespublic interface TracksLogicServices {

...}

PSM@ComponentEventspublic interface TracksDataEvents {

...}

PSM

+TracksDataEvents

<<ComponentEvents, >>

PIM+TracksLogicServices

<<ComponentServices, >>

PIM

Remote QoS components interface

@Remotable

@Remotable can be weaved to 1 RMI (default), 2 JGroups, … others : Web Services, socket, …

@Remotable

Remotable

Remotable QoS

Remotable

Remotable QoS

Page 33: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

33 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. JACOMO component model

4. Demonstration with Modelio : Remotable

5. UML tools REX

6. Perspectives, Q & A

Page 34: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

34 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

UML JACOMO component profile forArchitecture Description Language (ADL)

UML PIM JACOMO PSM

Analysis concepts:� <<ComponentType>> @ComponentType

� <<ComponentServices>> @ComponentServices

� <<ComponentEvents>> @ComponentEvents

� ...

Design concepts: Quality of Service (QoS)� << Remotable >> @Remotable

� << Replicable >> @Replicable

� << Persistable >> @Persistable

� << Asynchronous >> @Asynchronous

� ...

Page 35: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

35 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Software Design Document : SDD

SDD generation from UML model� Data and DataId

- Class diagrams

� Components decomposition- Class diagrams

� Components interfaces- Class diagrams- Sequences diagram

� Components implementation- Class diagrams

Round trip from .docx

Page 36: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

36 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. JACOMO component model

4. Demonstration with Modelio

5. UML tools REX

6. Perspectives, Q & A

Page 37: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

37 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Objecteering andModelio UML tools

Model Driven Engineering need UML tool :

We use objecteering since 2000 for Model Driven Eng ineering.

100% of the code is inside the UML tool.

JACOMO profile, wizard since 2004.

THALES Airborne Systems collaboration since 2004.

DoD* documents generation (SRS, IRS).

First MDA experiment with AOP since 2005.

Modelio migration: 2010 (JACOMO wizard + SDD)

*DoD: Department of Defense

Page 38: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

38 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

MDA: the lesson we learn“raise the level of abstraction of the UML model”

MDE: Raise the level of abstraction:� Put your processes, domain, frameworks, pattern, … i nside UML

tool.� Use UML for the analysis model, and keep the code c onform to the

model, conform to the architecture.� Don’t use UML tool only to input Java code (IDE too ls are better).

MDE + AOP = MDA: Productivity Advantages� The UML profile and wizard are simple to implement.� Use AOP to weave technical code outside the UML mod el.� Up to 70% of the technical code for the PSM is remo ved.

Agility� Functional change, simple architecture and code cha nge� Technology change, only AOP weaver change� Pair modeling, Tests first, …

Page 39: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

39 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. JACOMO component model

4. Demonstration with Modelio

5. UML tool REX

6. Perspectives, Q & A

Page 40: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

40 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Perspectives

Some DCNS metrics� More than 2500 JACOMO components ≠ projects

� More than 3MLoc

Modelio deployment� medium-scale team and model support (svn)

- Bagneux, Toulon

� DCNS Simulation and Formation (Ruelle)

� THALES Airborne Systems (Brest)

UML 2 and modelio 3 migration� Native <<component>> for PIM

� JACOMO UML2 profile and wizard

Page 41: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

41 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Questions & Answers

Solve essential complexitywithout introducing accidental complexity * :

“The best UML modelis the one you didn’t need to build **.”

Thank You

* Frederick Phillips Brooks

** “The best line of code is the one you didn't need to write.”

Page 42: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture
Page 43: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

43 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

References

References:

Agile Modeling :http://www.agilemodeling.com

Explore Model Driven Architecture and Aspect-orient ed Programminghttp://www.devx.com/enterprise/Article/27703/1954?pf=true

The Role of Aspect-Oriented Programmingin OMG’s Model-Driven Architecturehttp://www.aspectprogramming.com/papers/AOP and MDA.pdf

Le point sur la programmation par aspectshttp://www.emn.fr/z-info/ledoux/Publis/tsi01.pdf

Page 44: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

44 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Annexes

The following slides are provided for more details information.

Page 45: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

45 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Software's Chronic Crisis

31% of software are cancel before delivery (Gartner 2002)

52% of software are out of budget: (up to +189% Gartner 2002)

50% of software doesn’t answer to the specification (Gartner 2002)

80% of software are later: (up to x 2..3 Aberdeen)

16% of software arein time, in budget and answer to the specifications

(down to 9% for large software)

Why is this?

complexity

Page 46: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

46 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

The Cost of Complexity

Complexity augments more quickly than any metrics

Complexity

• more SLoC (Source Line of Code) => more complex• more complex => more expensive

80..100 KSLoC

SLoC

e1,5

Page 47: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

47 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Essential and Accidental complexity

Essential complexityis caused by the problem to be solved.Essential complexity must be mastered.

To solve essential complexitywithout introducing accidental complexity .

Accidental complexityis caused by the approach chosen to solve the problem.Accidental complexity must be reduced.

Frederick P. Brooks

The Mythical Man-Month (1975-1995)

Essence and Accidents of Software Engineering

Page 48: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

48 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Platform 1Platform 1Platform 1Platform 1 PfPfPfPf 2222 Pf 3Pf 3Pf 3Pf 3 Pf 4Pf 4Pf 4Pf 4 Pf 5Pf 5Pf 5Pf 5

C++, Java, C#, ADA, CORBA, CCM, COM/DCOM, EJB, .NET, XML, Web services, SCA, OSGi, Spring…C++, Java, C#, ADA, CORBA, CCM, COM/DCOM, EJB, .NET, XML, Web services, SCA, OSGi, Spring…C++, Java, C#, ADA, CORBA, CCM, COM/DCOM, EJB, .NET, XML, Web services, SCA, OSGi, Spring…C++, Java, C#, ADA, CORBA, CCM, COM/DCOM, EJB, .NET, XML, Web services, SCA, OSGi, Spring…

Rapid technological evolutionRapid technological evolutionRapid technological evolutionRapid technological evolution

NonNonNonNon----functional requirements evolutionfunctional requirements evolutionfunctional requirements evolutionfunctional requirements evolutionResponse time, security, fault tolerance, availability, transactions, persistence …Response time, security, fault tolerance, availability, transactions, persistence …Response time, security, fault tolerance, availability, transactions, persistence …Response time, security, fault tolerance, availability, transactions, persistence …

Non functionalNon functionalNon functionalNon functionalrequirements 1requirements 1requirements 1requirements 1

Non functionalNon functionalNon functionalNon functionalrequirements 2requirements 2requirements 2requirements 2

Non functionalNon functionalNon functionalNon functionalrequirements 3requirements 3requirements 3requirements 3

Non functionalNon functionalNon functionalNon functionalrequirements 4requirements 4requirements 4requirements 4

The Three Lifecycles to connect

Business Model 1Business Model 1Business Model 1Business Model 1 BM 2BM 2BM 2BM 2 BM 3BM 3BM 3BM 3

Functional requirements quasiFunctional requirements quasiFunctional requirements quasiFunctional requirements quasi----stabilitystabilitystabilitystabilityFunction coverage 1, Function coverage 2…Function coverage 1, Function coverage 2…Function coverage 1, Function coverage 2…Function coverage 1, Function coverage 2…

System lifetime10-30 years

Non functional lifetime10-20 years

Platform lifetime5-10 years

Page 49: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

49 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. Model Driven Architecture approach

4. Aspect Oriented Programming approach

5. JACOMO technology

6. Objecteering UML tool

7. Perspectives, Q & A

Page 50: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

50 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Model Driven Architecture approach:How software systems will be build

Model Driven Architecture (MDA)is a software design approachbase on the Model Driven Engineering.

It was launched by the Object Management Group (OMG )in 2001.

MDA provide an approach to the challengeof business and technology change.

MDA separates application logic fromunderlying platform technology inside two different models:

� Platform Independent Model (PIM) focus on business logic� Platform Specific Model (PSM) focus on platform technology

Page 51: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

51 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Model Driven Architecture: two different flavors

Translationist� PIM abstracts out execution platform technology details

� PSM or code is not edited: all behavior expressed i n PIM model

� Translationist MDA requires executable UML: Action Semantics …

Elaborationist� PIM abstracts out execution platform technology details

� PSM is an elaboration (i.e. fills in the platform d etail)

� PSM or code can be edited: to add behavior

A long way to improve the tools?

Page 52: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

52 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

UML tool

Model Driven Architecture tools

Platform Independent Model:UML

Platform Definition Model:Java, C#, Ada, Corba, RMI, …

Platform Specific Model:UML

Code:Java, C#, Ada, …

Modelstransformations

bind a domain modelto a technology

(Query / View / Transformation)

code generation

Runtime:binary

compilationexecution

Page 53: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

53 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Model Driven ArchitectureLarge project : we use elaborationist process

Large MDA project feedback:

UML Platform Independent Model (PIM)� 1200 domain classes (data tier)

Platform Definition Model = Corba Component ModelUML Platform Specific Model (PSM)� UML -> IDL -> Java: 1200 x 3 = 3600 Java classes� Code edition to add behavior (logic tier)

Drawbacks� 2..3 days non stop for PIM to PSM model transformat ion

and code generation� Fat PSM model (x3 to x4 size of PIM)� behavior code depends on Corba classes!

Complex tools and not scalable!

Page 54: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

54 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. Model Driven Architecture approach

4. Aspect Oriented Programming approach

5. JACOMO technology

6. Objecteering UML tool

7. Perspectives, Q & A

Page 55: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

55 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Aspect Oriented Software DevelopmentAOSD involves three distinct development steps:

1. Aspectual de-compositionDecompose the requirements to identify different as pects.

3. Aspectual re-compositionThe re-composition process, also known as weaving.

2. Aspect implementationImplement each aspect separately

Page 56: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

56 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Bind the Domain Model to the Runtime Platform

Raise the level of abstraction: omitting detailMDA and AOP solve this problem differently

MDA says: “let's add another abstraction layer”

AOP says: “no, let's not. In fact, let's remove som e”

Domain classes*

platform classes

aspectsweaving

AOP approach

Domain classes

platform classes

modelstransformation

MDA approach

Analysis:

Runtime:

*Plain Ordinary Java Object

Page 57: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

57 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. Model Driven Architecture approach

4. Aspect Oriented Programming approach

5. JACOMO component

6. Objecteering UML tool

7. Perspectives, Q & A

Page 58: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

58 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

UML class diagram to Java code:shared abstraction, shared vocabulary

package demo;

public class B extends A implements I {

public int att1 = 10;

protected boolean att2 = true;

float att3 ; // = 0.0

private String att4 ; // = null

public B att5 ; // = null

public void operation () {};

public static void operation1 () {};

}

Only one Java file “./ demo/ B.java”

demo

A I

+ operation()

B

+ operation ()+ operation1 ()

+ att5

0..1

<<implements>>

<<extends>>

+ att1 : integer = 10# att2 : boolean = true~ att3 : real- att4 : string

One B UML class

Java PSM close toclass diagram PIM

Page 59: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

59 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

The middleware include the platform technical code advices,

� multi-threading, transaction,

� logging and debugging,

� remote,

� state replication, state persistence,

� asynchronous,

� …

All code advices are put inside middleware layer

Component =domain logic +

technical concerns

Page 60: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

60 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Architectures:Functional and Technical Y cycle separation

Design

Engineering

Analysis Technology

Technical Architecture

Technicalsolutions

Software Architecture

Technical aspects

Functional Architecture

Logical Architecture

FunctionsEntities

Softwarecomponents

ArchitecturalPrinciples

Deployed Architecture

System ArchitectureSoftware

platform

Physicalplatform

Page 61: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

61 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Domain Logic gap with the Runtime Platform:How to fill the gap?

Ideal:Domain Logic

Runtime Platform

MDA models transformation:Domain Logic

Runtime Platform

Platform gap:Domain Logic

Runtime Platform

AOP weaving:Domain Logic

Runtime Platformdependency

Page 62: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

62 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Problem of dependency:Application depend on middleware API

middleware X

What goes wrong with classical application layering ?

• Application code is build on top of middleware• No transparency (design dependency on middleware AP I)

Runtime Platform

If you change the middleware,you must change some application code.

Application depend on middleware.

Application

middleware Y

Application

Strong dependency with middleware API

Page 63: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

63 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

+ middleware configuration

middleware X

middleware X bindingmiddleware Y binding

middleware Y

Dependency Inversion:Application doesn’t depend on middleware

Separate the modules dependency• Application code is build beside of middleware

Runtime Platform

Application

You can change the middleware without modifying the application code: separation of concerns.

Application can be used with differentmiddleware at the same time: interoperability

NO dependency with the PDM API

Page 64: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

64 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

JACOMO component modelis middleware agnostic to promote

Model Driven Architecture

QoS� events notification between component� remote services and events between components.� asynchronous invocation for services and events .� persistence for components parameters.� component state replication.� software transaction memory.

JACOMO is middleware agnostic

Page 65: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

65 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

UML tool

AOP tool

Aspect-Oriented Model Driven Architecture (AO -MDA)and tools connection

code compilation

Platform Independent Model: (no behavior)UML + Component profile

Platform Specific Model 1: no middlewareJava code + @nnotation + behavior

custom Javacode generator

AOPweaver

Platform Specific Model 2: with middleware JVM runtime: behavior + middleware aspects

@nnotation(point cut)

middleware(code advice)

code execution

Platform Definition Model:Java + middleware

@nnotations

1 / 12 LoC

1 / 4 LoC

4 / 4 LoC

<< stereotype >>

Page 66: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

66 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

UML tool

AOP tool

Aspect-Oriented Model Driven Architecture (AO -MDA)and tools connection

code compilation

1 - Platform Independent Model:UML + Component profile

4 - Platform Specific Model 1: no middlewareJava code + @nnotation + behavior

3 - custom Javacode generator

5 - AOPweaver

6 - Platform Specific Model 2: with middleware JVM runtime: behavior + middleware aspects

@nnotation(point cut)

middleware(code advice)

code execution

2 - Platform Definition Model:Java + middleware

<< stereotype >>

@nnotations

Page 67: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

67 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Component-Based Software Engineeringwith component model profile

<<ComponentType>>

<<providedServices>>

<<producedEvents>>

<<consumedEvents>>

<<usedServices>>

<<providedParameters>>

<<usedParameters>>

JACOMOComponent

Multi-layered Event Driven Service Oriented Archite cture

Page 68: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

68 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AOP tool

UML tool

JAva COmponent MOdel :the 7 step process

<<ComponentImpl>>

CompAImpl

<<ComponentType>>

CompA

1: Platform Independent Model:Domain analysisDesign: QoS

2: Platform Specific Model 1:DesignImplementation (behavior)

7: runtime:JVM

6: code compilationand weaving

3: custom codegeneration

@ComponentImplpublic class CompAImpl { ... }

@ComponentTypepublic interface CompA { ... }

@ComponentImplpublic class CompAImpl {

}

4: add behavior with IDE

{ Remotable }

public void m() { ... }

5:

Page 69: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

69 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

UML component profile forArchitecture Description Language (ADL)

UML PIM JACOMO PSM

Analysis component concepts:� <<ComponentType>> @ComponentType

� <<ComponentServices>> @ComponentServices

� <<ComponentEvents>> @ComponentEvents

� ...

Design: Quality of Service (QoS)� << Remotable >> @Remotable

� << Persistable >> @Persistable

� << Asynchronous >> @Asynchronous

� ...PIM to PSM transformation is done by a custom Java code generation

Page 70: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

70 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

JACOMO PSMraise the PSM level of abstraction

JAva COmponent MOdel

is an Domain Specific Language (internal DSL)for Java platform, which is an

Architecture Description Language (ADL)

with Separation of Concerns (SoC)for multi-tier

Event Driven Service Oriented Architecture(EDSOA) for

Component Based Architecture (CBA).

Page 71: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

71 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

PIM UML <<stereotype>> and PSM JACOMO @nnotationsspecification and analysis

UML Java<<ComponentType>> @ComponentType

<<ComponentServices>> @ComponentServices

<<ComponentEvents>> @ComponentEvents

<<ComponentParameters>> @ComponentParameters

<<ProvidedComponentServices>> @ProvidedComponentServices

<<UsedComponentServices>> @UsedComponentServices

<<ProducedComponentEvents>> @ProducedComponentEvents

<<ConsumedComponentEvents>> @ConsumedComponentEvents

<<ProvidedComponentParameters>> @ProvidedComponentParameters

<<UsedComponentParameters>> @UsedComponentParameters

<<AggregatedComponent>> @AggregatedComponent

<<ComposedComponent>> @ComposedComponent

Page 72: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

72 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

PSM UML <<stereotype>> and PSM JACOMO @nnotationsPSM design and implementation

UML Java<<ComponentImpl>> @ComponentImpl

<<ComponentItem>> @ComponentItem

<<UsedComponentEventsSubscribe>>@UsedComponentEventsSubscribe

<<UsedComponentEventsSubscribeDelegate>>@UsedComponentEventsSubscribeDelegate

<<UsedComponentContext>> @UsedComponentContext

<<Resource>> @Resource

Page 73: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

73 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

UML <<stereotype>> and JACOMO @nnotations: QoSPIM design

UML Java<< Remotable >> @Remotable

<< Synchronous >> @Synchronous

<< Asynchronous >> @Asynchronous

<< Replicable >> @Replicable

<< NotReplicable >> @NotReplicable

<< Reconfigurable >> @Reconfigurable

Page 74: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

74 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

UML << stereotype >> and JACOMO @nnotations : QoSPSM design and implementation

UML Java

<< SingleThreaded >> @SingleThreaded

<< MultiThreaded >> @MultiThreaded

<< SynchronizedRead >> @SynchronyzedRead

<< SynchronizedReadWrite >> @SynchronyzedReadWrite

<< Transactional >> @Transactional

Page 75: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

75 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

Architecture to master the cost

To solve essential complexitywithout introducing accidental complexity .

Complexity

• To reduce accidental complexity =>• reduce cost

reduceaccidentalcomplexity

Metrics

masteressential

complexity

Page 76: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

76 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

AGENDA

1. DCNS

2. Combat Management System

3. Model Driven Architecture approach

4. Aspect Oriented Programming approach

5. JACOMO technology

6. Objecteering / modelio UML tool

7. Perspectives, Q & A

Page 77: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

77 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

THALES Systèmes aéroportés collaboration

Since 2003, share same point of view� MDA Processes

� Architecture: multi-tier SOA and EDA

� Component based architecture

Since 2004, co-development,� Technical and domain JACOMO components for HCI

� Tools: (UML tool with profile, maven, eclipse plugi n, sonar)

UML tool: Objecteering / modelio� Model Driven Engineering: all is inside the UML too l

(specification, analysis, design, implementation co de, unit tests).

� Unique global id of the tool allows diff / merge be tween concurrent development.

Page 78: Model Driven Engineering + Aspect Oriented Programming ... · Model Driven Engineering + Aspect Oriented Programming = Agile Model Driven Architecture ... Agile Model Driven Architecture

78 / 38 | 23 mai 2013 | Journées NEPTUNE 2013 : Agile Model Driven Architec ture

More than 2500 JACOMO components from 8 projects

Metrics for one project� 78 JACOMO components, 171kLoc (2,19kLoc / component ).

� 40% code generated from UML tool (class diagram).

� 60% body of the methods hand written inside IDE (ec lipse).

� 17% Loc for components interface.

� 48% Loc for components implementation.

� 35% Loc for components unit tests.

� 100% code inside the UML tool, include unit tests.

Comparison with data distribution traditional MDA a pproach� Remove up to 70% LoC for component state replicatio n QoS

Some JACOMO Metricswith UML tool


Recommended