Canevas de développement agile pour l'évolution fiable de systèmes logiciels à composants ou orientés services



Documents pareils
Canevas de développement agile pour l'évolution fiable de systèmes logiciels à composants ou orientés services

Chapitre I : le langage UML et le processus unifié

IFT2255 : Génie logiciel

Analyse,, Conception des Systèmes Informatiques

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Vérification et Validation

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

1. Considérations sur le développement rapide d'application et les méthodes agiles

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Qu'est-ce que le BPM?

CORBA. (Common Request Broker Architecture)

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Annexe : La Programmation Informatique

Cours Composant 2. Qualité logicielle et spécications algébriques

Méthodes Agiles et gestion de projets

XP : plus qu'agile. Extreme Programming v2 et Développement Responsable. Thierry Cros

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Analyse de performance, monitoring

Agile 360 Product Owner Scrum Master

Semarchy Convergence for Data Integration La Plate-Forme d Intégration pour le MDM Évolutionnaire

Pratique de la prémétrologie à Orange Labs à travers l'utilisation de la plate forme de test en charge CLIF

Le génie logiciel. maintenance de logiciels.

URBANISME DES SYSTÈMES D INFORMATION

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

CAHIER DES CHARGES D IMPLANTATION

Patrons de Conception (Design Patterns)

La solution IBM Rational pour une ALM Agile

Vérifier la qualité de vos applications logicielle de manière continue

Rational Unified Process

2. Activités et Modèles de développement en Génie Logiciel

1 JBoss Entreprise Middleware

Génie logiciel (Un aperçu)

Brique BDL Gestion de Projet Logiciel

RÉUSSIR L AUTOMATISATION DU PROCESSUS DE TEST FONCTIONNEL

Chapitre 2 - Architecture logicielle et construction d applications client-serveur

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Cours Gestion de projet

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Configuration Interface for MEssage ROuting

Accélérez la transition vers le cloud

Cours de Génie Logiciel

Prise en compte des ressources dans les composants logiciels parallèles

IBM Business Process Manager

Introduction au Déploiement

Description de la formation

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Mise en place d'une solution libre de gestion d'entreprise. Maurice MORETTI Directeur associé

Bertrand Cornanguer Sogeti

Business Process Management 2010 : La Solution IBM Maximiser l agilité de l entreprise UNE ETUDE DE JEMM RESEARCH

Gestion de tests et tests de performance avec Salomé-TMF & CLIF

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

UML est-il soluble dans les méthodes agiles?

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

Auto-explication des Chorégraphies de Services

Urbanisation de système d'information. PLM 6 (Product Lifecycle Management) Collaboration et partage d'informations

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Eclipse Process Framework et Telelogic Harmony/ITSW

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

Tableau comparatif des offres Visual Studio

Projet Active Object

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Chapitre 3 - VODEL, un langage de description d architectures logicielles statiques et dynamiques

Méthodes de développement

Les nouvelles architectures des SI : Etat de l Art

Processus de Développement Logiciel

Plateforme de capture et d analyse de sites Web AspirWeb

Silk Central Notes de Release

Testeur Agile Niveau Fondation Bertrand Cornanguer, Vice-chair Agile tester WG

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Jérémy Dubus. Une démarche orientée modèle pour le déploiement de systèmes en environnements

Gestion des utilisateurs et Entreprise Etendue

Synergies entre Artisan Studio et outils PLM

Chapitre 9. Assistance à l évolution du logiciel dirigée par la qualité

25/12/2012

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Processus d Informatisation

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Chapitre VI- La validation de la composition.

Processus de Développement Logiciel

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

La démarche SOA et l interopérabilité applicative

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Vers l urbanisation agile d un client mobile ios/android natif, économique, flexible et pérenne

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

Introduction à la modélisation

Offres de stages 2011/2012

Transcription:

1 Canevas de développement agile pour l'évolution fiable de systèmes logiciels à composants ou orientés services Guillaume Waignier, Anne-Françoise Le Meur, Laurence Duchien Equipe ADAM INRIA Lille-Nord Europe UNIVERSITE DES SCIENCES ET TECHNOLOGIES DE LILLE LIFL - UMR 8022 CNRS 59655 VILLENEUVE D'ASCQ CEDEX

1. Contexte 2 Construction et évolution des systèmes logiciels Ensemble de fonctionnalités pour répondre aux besoins des utilisateurs Allongement de la durée de vie Besoin d'évoluer rapidement [Lehman85] Nouvelles exigences des utilisateurs Ajout/suppression de fonctionnalités Besoin de fiabilité [ISO9126] Maintenir le niveau de service dans des conditions données Conception & évolution Approches de constructions rapides Méthodologie de développement agile Architecture logicielle à base de composants

1. Contexte Méthode agile 3 Méthode agile [Manifesto01] Processus de développement logiciel Nombreuses méthodes agiles (Scrum, XP,...) Réactive face aux évolutions des besoins des utilisateurs Cycle court et rapide (Scrum: de 1 à 4 semaines) Cycle incrémental et itératif Ajout/suppression de fonctionnalités à chaque itération Tests continus Cycle Conception (architecte) Implémentation (développeur) Déploiement (administrateur) Exécution (testeur) Conception Implémentation Exécution Déploiement

1. Contexte Architecture logicielle 4 Architecture logicielle [Medvidovic00] Brique logicielle = fonctionnalité Composant / service Facilite la conception Assemblage, réutilisation Raisonnement Conception de systèmes fiables On ne part pas de rien Briques logicielles fiables Assembler des briques compatibles Besoin : Interactions compatibles lors de la conception et l'évolution Cycle itératif C1 C3 C2 Conception Implémentation Déploiement Exécution

2. Exemple : Dossier Médical Personnel Ce qu on aimerait pouvoir faire 5 Exemple fil rouge Objectif : conception et évolution fiable Architecture logicielle Cycle de développement agile (itératif et incrémental) Mise en évidence des problèmes Chaque étape du cycle Application DMP Démonstrateur du projet FAROS Un des rôles Consultation d'informations médicales Utilisateurs : professionnels de santé Pharmaciens, radiologues, pédiatres,... Informations médicales Ordonnances, radiographies, échographies,...

2. Exemple : Dossier Médical Personnel 2.1. Conception (structure) 6 Conception Quelles fonctionalités et comment les assembler

2. Exemple : Dossier Médical Personnel 2.1. Conception (propriétés applicatives) 7 Conception Propriétés applicatives Structure : contraint les connexions

2. Exemple : Dossier Médical Personnel 2.1. Conception (propriétés applicatives) 8 Conception Propriétés applicatives Structure : contraint les connexions Comportement : exprime le flot de contrôle

2. Exemple : Dossier Médical Personnel 2.1. Conception (propriétés applicatives) 9 Conception Propriétés applicatives Structure : contraint les connexions Comportement : exprime le flot de contrôle Flot de données : limite la valeur des messages reçus et envoyés

2. Exemple : Dossier Médical Personnel 2.1. Conception (propriétés applicatives) 10 Conception Propriétés applicatives Structure : contraint les connexions Comportement : exprime le flot de contrôle Flot de données : limite la valeur des messages reçus et envoyés QdS : définit les contraintes extra fonctionnelles (CPU, )

2. Exemple : Dossier Médical Personnel 2.1. Conception (propriétés applicatives) 11 Conception Propriétés applicatives Structure : contraint les connexions Comportement : exprime le flot de contrôle Peut-on décrire une telle Flot de données : limite la valeur des messages reçus et envoyés application? QdS : définit les contraintes extra fonctionnelles (CPU, )

2. Exemple : Dossier Médical Personnel 2.1. Conception (propriétés applicatives) 2.1.1. Étude de l'existant 12 Support de spécification limité Aucun support (Fractal Julia, CCM, SCA) Pas de support des 4 catégories Hétérogène et dispersé Fractal, CCM, SCA Wright SOFA, Fractal- BPC Structure limité Style limité Comporte ment Flot de données n/a CSP Behavioral protocol n/a n/a n/a Acme/ Armani Armani language Confract SafArchie WebServices invariant Type limité n/a n/a SFSP BPMN/BPEL pre/post conditions pre/post conditions pre/post conditions QdS n/a n/a n/a n/a n/a n/a SLA n/a

2. Exemple : Dossier Médical Personnel 2.1. Conception (propriétés applicatives) 13 Conception

2. Exemple : Dossier Médical Personnel 2.1. Conception (propriétés applicatives) 14 spec Conception

2. Exemple : Dossier Médical Personnel 2.2. Validation statique 15 Validation statique spec Conception Besoin d'effectuer une validation statique pour les vérifier les interactions le + tôt possible

2. Exemple : Dossier Médical Personnel 2.2. Validation statique 16 spec Validation statique Conception

2. Exemple : Dossier Médical Personnel 2.2. Validation statique 17 spec Validation statique Conception

2. Exemple : Dossier Médical Personnel 2.2. Validation statique 18 spec Validation statique Conception Partiellement compatible :Besoin d'effectuer une validation dynamique car on ne pourra savoir qu à l exécution

2. Exemple : Dossier Médical Personnel 2.2. Validation statique 19 spec Validation statique Conception Peut-on faire cette validation? Partiellement compatible :Besoin d'effectuer une validation dynamique car on ne pourra savoir qu à l exécution

2. Exemple : Dossier Médical Personnel 2.2. Validation statique 2.2.1. Étude de l'existant 20 Analyse d'une interaction [Barais05] Compatible Incompatible Partiellement compatible Manque de support de validation Outils fortement couplés avec une plate-forme Prise en charge d'un sous ensemble des propriétés applicatives Pas de prise en compte des interactions partiellement compatibles Analyses statiques et dynamiques découplées

2. Exemple : Dossier Médical Personnel 2.2. Validation statique 21 spec Validation statique Conception

2. Exemple : Dossier Médical Personnel 2.2. Validation statique 22 spec lacune Validation statique Conception

2. Exemple : Dossier Médical Personnel 2.3. Implémentation 23 spec lacune Validation statique Conception Implémentation

2. Exemple : Dossier Médical Personnel 2.3. Implémentation 24 Implémentation @Component(name= Cache, provide=@interface(...)) public class CacheImpl implements SearchDataItf { @require(name= out ) private ImageServer.SearchDataItf p2; public Image get(url url) Validation { lacune statique Conception... spec } }

2. Exemple : Dossier Médical Personnel 2.3. Implémentation 25 spec Implémentation @Component(name= Cache, provide=@interface(...)) public class CacheImpl implements SearchDataItf { @require(name= out ) private ImageServer.SearchDataItf p2; public Image get(url url) Validation { lacune statique Conception... } } Cohérence de l implémentation et des spécifications (structure)?

2. Exemple : Dossier Médical Personnel 2.3. Implémentation 26 spec lacune Validation statique Conception inco Implémentation

2. Exemple : Dossier Médical Personnel 2.4. Déploiement 27 spec lacune Validation statique Conception inco Implémentation On instancie. Déploiement

2. Exemple : Dossier Médical Personnel 2.5. Exécution / Validation dynamique 28 lacune Validation statique spec Conception Validation inco dynamique Implémentation Exécution Déploiement

2. Exemple : Dossier Médical Personnel 2.5. Exécution / Validation dynamique 29 lacune Validation statique spec Conception Validation inco dynamique Implémentation Exécution Déploiement Comment faire des tests à l exécution?

2. Exemple : Dossier Médical Personnel 2.5. Exécution / Validation dynamique 2.5.1. Étude de l'existant 30 Besoin d'observer les données d'exécution Valeur des messages échangés QdS Manque de support d'observation Mise en oeuvre manuelle du mécanisme d'observation Modification du code source des composants/services Intégration de sondes de QdS Difficile et source d'erreur Tests en dur ou presque il faut instrumentiser le code Identification manuelle de la source de l erreur Message d'erreur au niveau du code Perte du lien avec les propriétes applicatives

2. Exemple : Dossier Médical Personnel 2.5. Exécution / Validation dynamique 31 lacune Validation statique spec Conception Validation inco dynamique Implémentation Exécution obs Déploiement

2. Exemple : Dossier Médical Personnel 2.6. Évolution 32 lacune Validation statique spec Conception Validation inco dynamique Implémentation Exécution Déploiement obs Comment revoir sa copie et faire évoluer l application?

2. Exemple : Dossier Médical Personnel 2.6. Évolution 33 lacune Validation statique spec Conception Validation inco dynamique Implémentation Exécution obs Déploiement

2. Exemple : Dossier Médical Personnel 2.6. Évolution 34 lacune Validation statique spec Conception rupture Validation inco dynamique Implémentation Exécution obs Déploiement

35 Plan Contexte Exemple Problématique : définir un canevas qui permet l'évolution fiable CALICO Evaluation Conclusion

3. Problématique : évolution fiable 36 Conception Validation statique Conception Validation dynamique Implémentation Exécution Déploiement

3. Problématique : évolution fiable 37 Conception Manque de moyen de spécification des propriétés applicatives Validation statique spec Conception Validation dynamique Implémentation Exécution Déploiement

3. Problématique : évolution fiable 38 Conception Manque de moyen de spécification des propriétés applicatives Validation statique Manque d'outil d'analyse statique lacune Validation statique spec Conception Validation dynamique Implémentation Exécution Déploiement

3. Problématique : évolution fiable 39 Conception Manque de moyen de spécification des propriétés applicatives Validation statique Manque d'outil d'analyse statique Implémentation Incohérence avec la spécification lacune Validation statique spec Conception Validation inco dynamique Implémentation Exécution Déploiement

3. Problématique : évolution fiable 40 Conception Manque de moyen de spécification des propriétés applicatives Validation statique Manque d'outil d'analyse statique Implémentation Incohérence avec la spécification Déploiement Rupture entre conception/exécution spec inco Implémentation lacune Validation statique Conception rupture Validation dynamique Exécution Déploiement

3. Problématique : évolution fiable 41 Conception Manque de moyen de spécification des propriétés applicatives Validation statique Manque d'outil d'analyse statique Implémentation Incohérence avec la spécification Déploiement Rupture entre conception/exécution Exécution / validation dynamique Manque de mécanisme d'observation spec inco Implémentation lacune Validation statique Conception rupture Validation dynamique Exécution Déploiement obs

42 Plan Contexte Exemple Problématique CALICO Evaluation Conclusion

4. CALICO (cycle de développement) 43 Evolution Développement itératif 6 étapes Vue conceptuelle synchronisée avec le logiciel en cours d'exécution Implémentation Conception Validation statique Exécution Validation dynamique Déploiement Fiabilisation des évolutions Couplage des validations statiques et dynamiques des évolutions Multi plates-formes Intégration transparente des mécanismes de validation dans le logiciel Extensible et générique

4. CALICO (Canevas) 44

45 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

4. CALICO (cycle de développement) 4.1. Conception 46 Architecte Spécifier l'assemblage de composants /services Décrire les propriétés applicatives

4. CALICO (cycle de développement) 4.1. Conception 47 Architecte Spécifier l'assemblage de composants /services Décrire les propriétés applicatives CALICO Offre une large palette de spécifications structure, comportement, flot de données et de QdS Intégration uniforme des catégories de propriétés applicatives Paradigme hypothèse/garantie

4. CALICO (cycle de développement) 4.1. Conception 48 Architecte Spécifier l'assemblage de composants /services Décrire les propriétés applicatives CALICO Offre une large palette de spécifications structure, comportement, flot de données et de QdS Intégration uniforme des catégories de propriétés applicatives Paradigme hypothèse/garantie Avantages Extensible Indépendant de la plate-forme d'exécution Permet la spécification de propriétés applicatives sur des plates-formes qui ne la supportent pas nativement

4. CALICO (cycle de développement) 4.1. Conception 4.1.1. Métamodèle de structure du système Décrit l'assemblage de composants et de services 49 Need of runtime checks

4. CALICO (cycle de développement) 4.1. Conception 4.1.1. Métamodèle de structure du système Décrit l'assemblage de composants et de services Structure basé sur l'existant (16 modèles à composants/services) 50 Need of runtime checks Concepts communs

4. CALICO (cycle de développement) 4.1. Conception 4.1.1. Métamodèle de structure du système Décrit l'assemblage de composants et de services Structure basé sur l'existant (16 modèles à composants/services) Besoin de raisonner sur les interactions entre composants/services 51 Need of runtime checks Concepts communs Détail du point de communication

4. CALICO (cycle de développement) 4.1. Conception 4.1.2. Métamodèle des propriétés structurelles Décrit les contraintes structurelles Basé sur un langage de contraintes bien connu (OCL) Spécialisation pour les architectures logicielles 52

4. CALICO (cycle de développement) 4.1. Conception 4.1.3. Métamodèle des propriétés comportementales Décrit le flot de controle entrant et sortant des points de communication Détecter les interblocages Basé sur le graphe de flot de contrôle (comme BPMN) Opérateurs de composition du flot de contrôle non structurés [Aalst07] 53

4. CALICO (cycle de développement) 4.1. Conception 4.1.4. Métamodèle des propriétés de flot de données Décrit l'interval de valeur autorisé des messages entrant et sortant Requis pour raisonner sur des applications de diffusion d'informations Repose sur le concept de pre/post conditions 54

4. CALICO (cycle de développement) 4.1. Conception 4.1.5. Métamodèle des propriétés de QdS 55

4. CALICO (cycle de développement) 4.1. Conception 4.1.5. Métamodèle des propriétés de QdS 56 Hypothèse Garantie

4. CALICO (cycle de développement) 4.1. Conception 4.1.5. Métamodèle des propriétés de QdS 57 Type de propriétés de QdS

4. CALICO (cycle de développement) 4.1. Conception 4.1.6. Exemple DMP 58

4. CALICO (cycle de développement) 4.1. Conception 4.1.6. Exemple DMP 59 Validation statique spec Conception Validation dynamique Implémentation Exécution Déploiement

60 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

61 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.1. Outil d'analyse des interactions Problématique Manque d'outils de validations 62

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.1. Outil d'analyse des interactions Problématique Manque d'outils de validations 63 Outil d'analyse des interactions de CALICO Analyse la compatibilité des interactions entre composants /services Vérifie le respect de chaque propriété applicative 3 types d'interaction Compatible : ok Incompatible : message d'erreur Partiellement compatible : préparation des analyses dynamiques

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.1. Outil d'analyse des interactions Problématique Manque d'outils de validations Package débogage Condition 64 Outil d'analyse des interactions de CALICO Analyse la compatibilité des interactions entre composants /services Vérifie le respect de chaque propriété applicative 3 types d'interaction Compatible : ok Incompatible : message d'erreur Partiellement compatible : préparation des analyses dynamiques Action Événement Partiellement compatible : préparation des analyses dynamiques

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.1. Outil d'analyse des interactions Problématique Manque d'outils de validations Outil d'analyse des interactions de CALICO Analyse la compatibilité des interactions entre composants /services Vérifie le respect de chaque propriété applicative 3 types d'interaction Compatible : ok Incompatible : message d'erreur Partiellement compatible : préparation des analyses dynamiques Avantage Cadre fédérateur d'intégration des analyses existantes Basé sur le paradigme hypothèse/obligation [lamport93] Factorise les analyses pour différentes plates-formes Lien avec les analyses dynamiques 65

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.2. Intégration des analyses existantes Analyse structurelle Basé sur OCL [OMG03] 66 Analyse du comportement Basé sur les algèbres de processus existants (CSP [Hoare85],...) Construit le GFC global en synchronisant les GFCs [MG07] Analyse de flot de données Basé sur la validation partielle de programme [Kildall73] Propagation avant des garanties Propagation arrière des hypothèses Analyse de la QdS Basé sur la prédiction de qualité de services dans les flot de contrôle

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.3. Exemple DMP 67

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.3. Exemple DMP 68 Propagation avant des garanties

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.3. Exemple DMP 69 Propagation avant des garanties Propagation arrière des hypothèses

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.3. Exemple DMP 70 V V Propagation avant des garanties Propagation arrière des hypothèses Identification de la localisation de l'analyse dynamique à effectuer

4. CALICO (cycle de développement) 4.2. Validation statique 4.2.3. Exemple DMP 71 V Validation statique spec Conception Validation dynamique Implémentation Exécution Propagation avant des garanties Propagation arrière des hypothèses Déploiement lacune V

72 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

73 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.1. Outil de génération de code 74 Développeurs Ecrire le code technique et métier des composants/services Conforme à la spécification

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.1. Outil de génération de code 75 Développeurs Ecrire le code technique et métier des composants/services Conforme à la spécification Outil de génération de code de CALICO Squelette de code des composants /services (code technique) ADL

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.1. Outil de génération de code 76 Développeurs Ecrire le code technique et métier des composants/services Conforme à la spécification Outil de génération de code de CALICO Squelette de code des composants /services (code technique) ADL Avantages Limite l'introduction d'incohérence entre conception et implémentation Focalisation du développement sur le code métier

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.2. Exemple DMP 77 @Component(name= Cache, provide=@interface(...)) public class CacheImpl implements SearchDataItf { @require(name= out ) private ImageServer.SearchDataItf p2; public Image get(url url) {... } }

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.2. Exemple DMP 78 inco Implémentation @Component(name= Cache, provide=@interface(...)) public class CacheImpl implements SearchDataItf { @require(name= out ) private ImageServer.SearchDataItf p2; public Image Validation get(url lacune url) { statique spec Conception... } Validation } dynamique Exécution Déploiement

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.3. Outil d'instrumentation 79 Besoin d'observer les données d'exécution requises par les analyses dynamiques Manque de fonctionnalités d'observation (données, QdS)

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.3. Outil d'instrumentation 80 Besoin d'observer les données d'exécution requises par les analyses dynamiques Manque de fonctionnalités d'observation (données, QdS) Outil d'instrumentation Parcourt chaque analyse dynamique spécifiée dans le modèle de débogage Identifie les données d'exécution requises Instrumente l'application pour ajouter/supprimer les sondes Ajoute des aspects au niveau de l'architecture Ajoute des aspects au niveau de l'implémentation

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.3. Outil d'instrumentation 81 Besoin d'observer les données d'exécution requises par les analyses dynamiques Manque de fonctionnalités d'observation (données, QdS) Outil d'instrumentation Parcourt chaque analyse dynamique spécifiée dans le modèle de débogage Identifie les données d'exécution requises Instrumente l'application pour ajouter/supprimer les sondes Ajoute des aspects au niveau de l'architecture Ajoute des aspects au niveau de l'implémentation Aspect architectural repose sur l'existant (FAC, DAOP-ADL,...)

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.3. Outil d'instrumentation 82 Besoin d'observer les données d'exécution requises par les analyses dynamiques Manque de fonctionnalités d'observation (données, QdS) Outil d'instrumentation Parcourt chaque analyse dynamique spécifiée dans le modèle de débogage Identifie les données d'exécution requises Instrumente l'application pour ajouter/supprimer les sondes Ajoute des aspects au niveau de l'architecture Ajoute des aspects au niveau de l'implémentation Avantages Gestion transparente des analyses dynamiques Est indépendant de toute plate-forme Est extensible (intégration de canevas existants de sondes)

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.4. Exemple DMP 83 Capture de la trace des messages échangés Tissage de 4 aspects @Component(name= Cache, provide=@interface(...)) public class CacheImpl implements SearchDataItf { @require(name= out ) private ImageServer.SearchDataItf p2; public Image get(url url, List<String> trace) { trace.add(?cache.in.get.url );... res = this.out.getpicture(url,trace); trace = res.gettrace(); trace.add(?cache.out.getpicture.data );... trace.add(!cache.in.get.data ); return res; } }

4. CALICO (cycle de développement) 4.3. Implémentation 4.3.4. Exemple DMP 84 Capture de la trace des messages échangés Tissage de 4 aspects @Component(name= Cache, provide=@interface(...)) public class CacheImpl implements SearchDataItf { @require(name= out ) private ImageServer.SearchDataItf p2; public Image get(url url, List<String> trace) { Validation lacune trace.add(?cache.in.get.url ); statique spec Conception... res = this.out.getpicture(url,trace); Validation obs inco trace = res.gettrace(); dynamique Implémentation trace.add(?cache.out.getpicture.data ); Exécution... trace.add(!cache.in.get.data ); Déploiement return res; } }

85 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

86 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

4. CALICO (cycle de développement) 4.4. Déploiement 4.4.1. Outil de chargement 87 Problématique Synchroniser la vue conceptuelle et le système en cours d'exécution

4. CALICO (cycle de développement) 4.4. Déploiement 4.4.1. Outil de chargement 88 Problématique Synchroniser la vue conceptuelle et le système en cours d'exécution Outil de chargement Effectue un déploiement incrémental

4. CALICO (cycle de développement) 4.4. Déploiement 4.4.1. Outil de chargement 89 Problématique Synchroniser la vue conceptuelle et le système en cours d'exécution Outil de chargement Effectue un déploiement incrémental Identification des modifications

4. CALICO (cycle de développement) 4.4. Déploiement 4.4.1. Outil de chargement 90 Problématique Synchroniser la vue conceptuelle et le système en cours d'exécution Outil de chargement Effectue un déploiement incrémental Contient la séquence des opérations de construction

4. CALICO (cycle de développement 4.4. Déploiement 4.4.1. Outil de chargement Ajout/suppression de paramètres Problématique Synchroniser la vue conceptuelle et le système en cours d'exécution 91 Outil de chargement Effectue un déploiement incrémental Granularité du modèle de structure du système Ajout/suppression de ports

4. CALICO (cycle de développement) 4.4. Déploiement 4.4.1. Outil de chargement 92 Problématique Synchroniser la vue conceptuelle et le système en cours d'exécution Outil de chargement Effectue un déploiement incrémental Adaptation aux contraintes de déploiement de la plateforme cible

4. CALICO (cycle de développement 4.4. Déploiement 4.4.1. Outil de chargement 93 Problématique Synchroniser la vue conceptuelle et le système en cours d'exécution Outil de chargement Effectue un déploiement incrémental Invocation de l'api de déploiement de la plateforme cible

4. CALICO (cycle de développement) 4.4. Déploiement 4.4.1. Outil de chargement 94 Problématique Synchroniser la vue conceptuelle et le système en cours d'exécution Outil de chargement Effectue un déploiement incrémental Compare les modèles entre deux itérations du cycle Produit un modèle de mise à jour qui contient la séquence des opérations de construction du système (ajoute/suppime composants/connecteurs,...) Avantages Déploiement applicatif complètement automatisé Gestion uniforme des ajouts/supressions de fonctionnalités Flexible (s'adapte à la granularité des plates-formes)

4. CALICO (cycle de développement) 4.4. Déploiement 4.4.1. Outil de chargement 95 inco Problématique Synchroniser la vue conceptuelle et le système en cours d'exécution Outil de chargement Effectue un déploiement incrémental Compare les modèles entre deux itérations du cycle Produit un modèle de mise à jour qui contient la séquence des opérations Avantages Implémentation de construction du lacune système (ajoute/suppime composants/connecteurs,...) Validation statique spec Conception Validation obs Déploiement rupture applicatif complètement automatisé dynamique Gestion uniforme Exécutiondes ajouts/supressions de fonctionnalités Flexible (s'adapte à la granularité des plates-formes) Déploiement

96 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

97 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

4. CALICO (cycle de développement) 4.5. Exécution / Validation dynamique 98 Testeurs Exécutent les scénarios d'utilisation du logiciel

4. CALICO (cycle de développement) 4.5. Exécution / Validation dynamique 99 Testeurs Exécutent les scénarios d'utilisation du logiciel Outil de débogage Reçoit les données exécution émisent par le logiciel instrumenté Déclenche l'analyse dynamique appropriée Lien avec la validation statique/la vue conceptuelle

4. CALICO (cycle de développement) 4.5. Exécution / Validation dynamique 100 Testeurs Exécutent les scénarios d'utilisation du logiciel Outil de débogage Reçoit les données exécution émisent par le logiciel instrumenté Déclenche l'analyse dynamique appropriée Lien avec la validation statique/la vue conceptuelle

4. CALICO (cycle de développement) 4.5. Exécution / Validation dynamique 101 Testeurs Exécutent les scénarios d'utilisation du logiciel Outil de débogage Reçoit les données exécution émisent par le logiciel instrumenté Déclenche l'analyse dynamique appropriée Lien avec la validation statique/la vue conceptuelle Avantages Est indépendant de toute plate-forme Est extensible Permet un retour plus facile au niveau conception

4. CALICO (cycle de développement) 4.6. Évolution 102 On itère, en corrigeant l architecture.seules les modifications seront appliquées.

103 Plan Contexte Exemple Problématique CALICO Conception Validation statique Implémentation Déploiement Exécution/Validation dynamique Evaluation Conclusion Implémentation Conception Déploiement Validation statique Exécution Validation dynamique

5. Évaluation 5.1. Contexte 104 Environement des tests Portable Core 2 Duo at 1,33Ghz Java 1.6.0_11 Plate-forme à composants Fractal Test des limites de CALICO Architecture hierarchique très grande (1-100 000 composants ) Majorité des applications à base de composants < 1 000 composants Limite des plates-formes à composants SCA Apache Tuscany : < 6 000 composants

5. Évaluation 5.2. Déploiement incrémental 105 Systèmes typiques Avec Fractal ADL CALICO : ~ 2s pour déployer un composant dans un assemblage Fractal Native tool : ~ 2s pour déployer un composant Même niveau de performance que l'outil natif

5. Évaluation 5.3. Analyses 106 Systèmes typiques OCL : ~2s pour 1000 composants comportement : ~10s pour 1000 composants Liée à la complexité des algorithmes d'analyse Architectes peuvent activer/désactiver chaque outil d'analyse à n'importe quel moment