Usine logicielle

Transcription

Usine logicielle
Thales Global Services
Développement d'usines logicielles avec EGF
6-7 juin 2012, Paris
OPEN
07/06/2012 – NEPTUNE 2012
2
Plan
1. Les usines logicielles
2. EGF
3. Intégration d’un outil d’usines logicielles dans un processus
logiciel
OPEN
[Ref - Date] : A éditer dans " pied de page" du menu "affichage / en-tête et pied de page"
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
2
3
Plan
1. Les usines logicielles
2. EGF
3. Intégration d’un outil d’usines logicielles dans un processus
logiciel
OPEN
[Ref - Date] : A éditer dans " pied de page" du menu "affichage / en-tête et pied de page"
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
3
4
Pourquoi un besoin d’usines logicielles ?
Constat
Complexité croissante du logiciel
Problématique
Déterminer comment intervenir tout au long du processus de développement et
de maintenance en vue d’améliorer la maîtrise du triplet coût-délais-qualité
Les usines logicielles représentent une solution à cette problématique
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
4
5
Qu'est-ce qu'une usine logicielle?
Definition
Une usine logicielle est un environnement (par ex. éditeurs, frameworks,
compilateurs) qui vise à automatiser un ensemble de tâches humaines répétitives
Moyen technique qui contribue à la rationalisation de la production logicielle
Objectifs
Augmenter la performance et la productivité des équipes logicielles
Réduire les coûts de production du logiciel par réalisation d’économies d’échelle
sur les tâches répétitives
Gérer le passage à l’échelle lorsque la quantité d’information à traiter augmente
Améliorer la fiabilité et la qualité des artefacts produits
Capitaliser du savoir-faire
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
5
6
Positionnement
Une définition assez généraliste
Les usines logicielles s’appliquent à différents degrés et phases du cycle de
développement logiciel
Diversité des moyens de mise en œuvre
Cadre de cette étude
Restriction aux usines logicielles basées sur la technique générative
Technique générative
Elle inclut tous les moyens qui permettent la génération logicielle
Exemples:
Générateur
DSL (Domain-Specific Language)
Ligne de produit
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
6
7
ATTENTES DES USINES LOGICIELLES
1 Générer en série
2 Intégrer des langages, des outils hétérogènes, des patterns et
des frameworks
3 Créer, assembler et mettre sur étagère des composants d’usines
logicielles
4 Supporter la variabilité de génération
5 Faciliter la description de génération au moyen de DSLs
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
7
8
Plan
1. Les usines logicielles
2. EGF
3. Intégration d’un outil d’usines logicielles dans un processus
logiciel
OPEN
[Ref - Date] : A éditer dans " pied de page" du menu "affichage / en-tête et pied de page"
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
8
9
9
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
EGF (Eclipse Generation Factories)
Un composant Eclipse
Composant du projet Modeling de la plate-forme Eclipse
Intégration à la livraison Eclipse (Indigo, Juno)
Finalité: Un outil pour le développement d’usines logicielles
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
10
Architecture d’EGF
Portfolio EGF
EGF
Extensions
Fondements
Moteur EGF
Métamodèles EGF
Comportements de base,
exécution dynamique
Factory component, Task
Pattern EGF
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
10
Architecture d’EGF
Portfolio EGF
EGF
Extensions
07/06/2012 – NEPTUNE 2012
Extensibilité du moteur
Moteur EGF
Nouveaux langages et outils
Nouveaux formalismes de génération
OPEN
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
11
11
12
Architecture d’EGF
Usines logicielles sur
étagère
Portfolio EGF
EGF
Portfolio
Extensions
Portfolios fournis avec EGF
Moteur EGF
Extension Génération EMF
Editeur et générateur pour
l’intégration continue
(Hudson/Jenkins, Buckminster
aujourd’hui)
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
12
13
4 formalismes pour développer des usines
logicielles
0101
Task / Tâche
Unité atomique pour l’exécution de code dans un langage ou un outil
Factory Component / Composant d’usine
Unité composite de génération
Generation Chain / Chaîne de génération
DSL pour faciliter la définition et la maintenance de génération
Pattern EGF
Formalisme déclaratif pour traiter une ressource (ex: modèle)
Implémentation dans un langage (ex: Jet pour modèle-vers-texte)
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
13
14
Correspondance entre attentes et EGF
ATTENTES
EGF
Attente 1 –
Génération en série
Utilisation de 1) tâches dédiées outils, 2) patterns EGF
Attente 2 –
Intégration
Assemblage de composants d’usines et de tâches de nature
hétérogène dans un plan de production
Attente 3 – Usines
sur étagères
Partitionnement et déploiement de composants d’usines
Usine logicielle = composant d’usine avec une finalité dans un
processus logiciel
Portefeuille d’usines logicielles = ensemble d’usines logicielles
capitalisant un savoir-faire pour une organisation
Attente 4 –
Variabilité
Possibilités: 1) paramétrage de composant d’usine, 2) utilisation des
patterns avec le mécanisme de substitution pour variabilité de code
La notion de modèle de caractéristiques (i.e., feature model) pour la
définition de lignes de produits n’est pas encore introduite dans EGF
Attente 5 – DSL de
génération
Utilisation de chaînes de génération
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
14
15
Plan
1. Les usines logicielles
2. EGF
3. Intégration d’un outil d’usines logicielles dans un processus
logiciel
OPEN
[Ref - Date] : A éditer dans " pied de page" du menu "affichage / en-tête et pied de page"
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
15
16
16
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
Acteurs d’usines logicielles
Utilisateur final
Utilisateur d’usines logicielles sur étagère
Réalisateur d’usines logicielles simples
Réalisateur d’usines logicielles complexes
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
17
Niveaux de maturité d’intégration d’UL
Non défini
Utilisation d’ULs ponctuellement et sans réelle vision
Défini
Application d’un plan d’étude et de déploiement d’ULs
Maîtrisé
Utilisation d’ULs dans une démarche de ligne de produits (niveau générique
avec déclinaison spécifique par produit)
Optimisé
Niveau Maîtrise avec un contrôle sur les optimisations réalisées pour un
ensemble de processus logiciel
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
17
18
Activités spécifiques d’intégration d’ULs
ACTIVITÉS DE RATIONALISATION DES PROCESSUS DE GÉNÉRIQUE SPÉCIFIQUE
DÉVELOPPEMENT ET DE MAINTENANCE
Évaluer les processus de développement et de maintenance.
X
Dresser la carte des activités avec leur statut d’automatisation.
Recueillir les demandes des utilisateurs.
X
Développer une technologie cœur (frameworks, DSLs, etc., et des
usines logicielles).
X
Maîtriser la déclinaison d’une suite de portefeuilles d’usines
logicielles. Déterminer comment une suite de portefeuilles peut se
décliner pour automatiser un processus existant ou nouveau.
X
X
Implémenter les usines logicielles. Réalisation de portefeuilles d’ULs
dans un cadre organisationnel donné.
X
Évaluer l’automatisation d’activité. Evaluation des portefeuilles dans
un contexte organisationnel.
X
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
18
19
Conclusion
Concernant l'enjeu
Garder sous contrôle le triplet coût-délais-qualité des processus de développement
et de maintenance logiciel alors que la compléxité des applications ou systèmes
logiciel ne cesse d’augmenter
Solution présentée
Usines logicielles avec la technique générative
Outil : EGF pour le développement d’usines logicielles
Intégration dans un processus logiciel
Mener par étape la conduite de la maturité d’un processus outillé au moyen d’usines
logicielles
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
19
20
20
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
General info about EGF
Project page: http://www.eclipse.org/egf
Wiki: http://wiki.eclipse.org/EGF
Blog: http://blanglois.blogspot.com/
Twitter: @LangloisBenoit
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Annexe
OPEN
07/06/2012 – NEPTUNE 2012
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
21
21
Modèle : 83150111-DOC-TGS-FR/002
22
Composition d’activités EGF
Composant d’usine Plan de Production
(workflow d’activités)
0101
Tâche de Langage
Echange de données
entre activités
hétérogènes
0101
Tâche outil
Jet
ATL
Appel à une activité composite
Composant d’usine
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
22
23
Chaîne de génération – Application à la
génération EMF
Initialisation des valeurs majeures pour chaque modèle ecore sélectionné
Un modèle de chaîne de
génération est créé
automatiquement par l’assistant
OPEN
[Ref - Date] : A éditer dans " pied de page" du menu "affichage / en-tête et pied de page"
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
23
24
Syntaxe concrète
Textuel
Représentation
Graphique
Représentation
[Autre Forme de]
Représentation
DSL
Syntaxe abstraite
Generation Chain
Conversion automatique
Implémentation
Dans Eclipse
Conception
Chaîne de génération – Génération EMF
Usines
GenModel
Personnalisation
Exécution
EMF Code
Généré
OPEN
[Ref - Date] : A éditer dans " pied de page" du menu "affichage / en-tête et pied de page"
Modèle : 83150111-DOC-TGS-FR/002
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
24
25
25
Ce document ne peut être reproduit, modifié, adapté, publié, traduit, d'une quelconque façon, en tout ou partie, ni divulgué à un tiers sans l'accord préalable et écrit de THALES.
©THALES 2012 Tous droits réservés
Pattern
Controller
Pattern
Strategy
Manière d’appliquer les patterns et
une ressource ensemble
View
Model (i.e. resource)
Patterns à appliquer sur la
ressource pour produire un
resultat attendu
Pour chaque pattern, requête
sur une ressource, par ex. un
modèle
Result
OPEN
07/06/2012 – NEPTUNE 2012
Modèle : 83150111-DOC-TGS-FR/002