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