280 likes | 384 Views
Assises du GDR I3. Composants dans l'Ingénierie des SI Concepts clés et techniques de réutilisation. Franck Barbier, LIUPPA Corine Cauvet, LSIS Mourad Oussalah, IRIN Dominique Rieu, LSR-IMAG Sondes Bennasri, Carine Souveyet, CRI, Paris 1. Plan. * Introduction sur la réutilisation
E N D
Assises du GDR I3 Composants dans l'Ingénierie des SI Concepts clés et techniques de réutilisation Franck Barbier, LIUPPA Corine Cauvet, LSIS Mourad Oussalah, IRIN Dominique Rieu, LSR-IMAG Sondes Bennasri, Carine Souveyet, CRI, Paris 1
Plan • * Introduction sur la réutilisation • * Cadre de référence pour la comparaison des composants • * Les types de composants pour les SI (métiers, architecturaux, patrons) • * Types de démarche : Pour et Par réutilisation • * Synthèse sur les démarches les plus appliquées • * Conclusion
Réutilisation • Une évolution « naturelle » du métier • réduire les coûts et les délais de conception, d’implantation • et de maintenance si la réutilisation s’allie à la traçabilité Conséquences sur les produits Plus rapides à développer, Plus faciles à maintenir, Certainement meilleurs, Moins originaux. « Il n ’y a qu ’une méthode pour inventer, qui est d’imiter. Il n ’y a qu’une méthode pour bien penser, qui est de continuer quelque pensée ancienne et éprouvée ». Alain
Réutilisation dans l’ingénierie logicielle Expression des besoins C O M P O S A N T S Spécifications Informelles Analyse (abstraction du monde réel) Modèle Descriptif & Normatif Informatisable Conception (solution technique) Modèle Effectif Informatisé Implantation (solution opérationnelle) Logiciel adaptation de J-M. Nerson, CACM 92
Réutilisation dans l’ingénierie logicielle Expression des besoins Spécifications Informelles Patrons d’analyse Modèles de domaine Composants métiers conceptuels ERP, Frameworks Patrons d’architecture Patrons de conception Composants métiers logiciels Bibliothèques de classes Analyse (abstraction du monde réel) Modèle Descriptif & Normatif Informatisable Conception (solution technique) Modèle Effectif Informatisé Implantation (solution opérationnelle) Logiciel
Réutilisation dans l’ingénierie du logiciel Une très grande variété de composants réutilisables La réutilisation ne doit plus être limitée aux produits logiciels • Un composant réutilisable : • traite un problème récurrent de l’ingénierie des SI • capitalise un fragment de produit ou de processus • offre une solution conceptuelle et/ou logicielle testée, acceptée et adaptable • Nécessité de les classifier, les documenter, les organiser, les composer… • Nécessité de démarches centrées réutilisation.
Plan • * Introduction sur la réutilisation • * Cadre de référence pour la comparaison des composants • * Les types de composants pour les SI (métiers, architecturaux, patrons) • * Types de démarche : Pour et Par réutilisation • * Synthèse sur les démarches les plus appliquées • * Conclusion
Critères de caractérisation des composants • * type de connaissance : produit ou processus, • * couverture : générale (horizontale), métier (verticale), entreprise • * portée : étapes d ’ingénierie, • * nature de la solution : logicielle ou conceptuelle, • * technique de réutilisation : spécialisation, composition, instanciation, • duplication… • * ouverture : boîte noire, blanche ou en verre, • * granularité : taille du composanten nombre de classes, de modules,…
Plan • * Introduction sur la réutilisation • * Cadre de référence pour la comparaison des composants • * Les types de composants pour les SI (métiers, architecturaux, patrons) • * Types de démarche : Pour et Par réutilisation • * Synthèse sur les démarches les plus appliquées • * Conclusion
Type des connaissances Couverture Portée Nature de la solution Tech. de réutilisation Spécialisation et Instanciation Ouverture Granularité Critères de caractérisation : application aux bibliothèques logicielles Classe de bibliothèques Produit Horizontale Implantation Logicielle Boîte en verre Très faible
Type des connaissances Couverture Portée Nature de la solution Tech. de réutilisation Spécialisation et Instanciation Ouverture Granularité Critères de caractérisation : application aux aux composants métiers Classe de bibliothèques • Plusieurs définitions • Un composant métier est un composant • logiciel: • une entité encapsulée • une entité autonome de déploiement • différence avec un composant logiciel • spécifique à un domaine d’application • c-à-d réutilisable au sein du même • domaine d’application Produit Verticale Analyse Conceptuelle • Problème lors de l’intégration des composants • Interopérabilité sémantique • le demandeur et le fournisseur ont la même sémantique des services et des données échangées Boîte blanche variable
Patron Type des connaissances Couverture Portée Nature de la solution Conceptuelle Tech. de réutilisation Imitation puis Intégration Ouverture Boîte blanche Granularité Faible Critères de caractérisation : application aux patrons « un patron décrit à la fois un problème qui se produit très fréquemment dans votre environnement et l’architecture de la solution à ce problème de telle façon que vous puissiez utiliser cette solution des milliers de fois sans jamais l’adapter deux fois de la même manière» C. Alexander Une base de savoir et de savoir-faire pour résoudre un problème récurrent dans un domaine • permet d’identifier le problème à résoudre • propose une solution consensuelle pour y répondre • offre les moyens d’adapter cette solution
Patron de conception Type des connaissances Produit Couverture Horizontale (générale) Portée Conception Détaillée observateurs sujet Nature de la solution Conceptuelle Tech. de réutilisation Imitation puis Intégration Est = 20,4 60 Ouverture Boîte blanche Ouest = 30,6 40 20 Nord = 45,9 0 Granularité Faible : 2 à 4 classes Critères de caractérisation : application aux patrons Exemple : l’Observateur [Gamma 95] Intention : définir une ou plusieurs dépendances entre un sujet et ses observateurs de sorte que si le sujet change d'état, tous ses observateurs en soit informés et mis à jour. Motivation : E.Gamma
Patron de conception Type des connaissances Produit Couverture Horizontale (générale) Portée Conception Détaillée Nature de la solution Conceptuelle Tech. de réutilisation Imitation puis Intégration Ouverture Boîte blanche Granularité Faible : 2 à 4 classes Critères de caractérisation : application aux patrons Exemple : l’Observateur [Gamma 95] Solution: Sujet Observateur 1..* état_sujet lire_etat () modifier_etat () notifier () lier (Observeur) délier (Observeur) observateurs état-obs. mise_à_jour( ) return état-sujet pour tout o de observateurs o.mise_a_jour()
processus produit générique SIP [Gzara 00] domaine entreprise Systèmes de patrons Ambler Un patron processus fournit une collection de techniques, d’actions et/ou de tâches à suivre pour le développement des logiciels. Ambler 98 Coad GoF Coad GoF Type de connaissance couverture Portée SIGMA 2000 conception analyse implantation « Un langage de patrons est une collection structurée de patrons construits l’un sur l’autre pour transformer les besoins et les contraintes dans une architecture ». C. Alexander / J. Coplien
Type des connaissances Couverture ADL (Architecture Description languages) Portée Architecture Composant- Architecture est-composant-de Nature de la solution Tech. de réutilisation Imitation puis Intégration est-conforme-à est-conforme-à Système Composant- Système est-composant-de Ouverture Boîte blanche Granularité Faible : 2 à 4 classes Décomposition hiérarchique Critères de conformité Conformité d’interface Intégrité de la communication Critères de caractérisation : application aux patrons architecturaux Patrons architecturaux Produit Horizontale Conception détaillée Conceptuelle
Type des connaissances Couverture Portée Nature de la solution Tech. de réutilisation Imitation puis Intégration Ouverture Boîte blanche Granularité Faible : 2 à 4 classes Critères de caractérisation : application aux patrons architecturaux Patrons architecturaux Point de vue architectural Produit/ Processus Implémentation Processus Flot de contrôle Flot de données Graphique Textuel Horizontale Conception détaillée Niveau d’abstraction Conceptuelle Mon domaine Spécification Code source Domaine connexe . Architecture détaillée . architecture Haut-niveau Tout Domaine Domaine
Patron & système de patrons Un patron constitue une base de savoir et de savoir-faire pour résoudre un problème récurrent dans un domaine Un système de patrons est une collection de patrons coordonnés intégrant une démarche de conception pour résoudre un problème complexe • Actuellement les systèmes de patrons sont des catalogues « papiers » • - Peu organisés, formalisés, instrumentés • De nombreux travaux : • Formalisation des solutions • qu’est ce qu’une spécification générique ? Comment exprimer la variabilité ? • Expression des relations inter-patrons • pour organiser les systèmes, exprimer les démarches,… • Mise en œuvre des patrons dans des ateliers de développement • - Unification des formalismes existants….
Plan • * Introduction sur la réutilisation • * Cadre de référence pour la comparaison des composants • * Les types de composants pour les SI (métiers, architecturaux, patrons) • * Types de démarche : Pour et Par réutilisation • * Synthèse sur les démarches les plus appliquées • * Conclusion
Par réutilisation Pour la réutilisation Concepteur de composants Ingénieur d ’applications Ingénierie d ’applications Ingénierie de composants Application Bibliothèque de composants Développement Pour et Par Réutilisation
Plan • * Introduction sur la réutilisation • * Cadre de référence pour la comparaison des composants • * Les types de composants pour les SI (métiers, architecturaux, patrons) • * Types de démarche : Pour et Par réutilisation • * Synthèse sur les démarches les plus appliquées • * Conclusion
Démarches d’Ingénierie de systèmes à base de composants • Trois méthodes sont sélectionnées • Catalysis [D ’Souza et al. 98] • Select perspective [Allen et al. 98] • Rational Unified Process (RUP)[Jacobson et al. 99]
Résumé des caractéristiques générales Catalysis RUP Select Processus de développement Itératif et incrémental Itératif et incrémental Itératif et incrémental Notation UML + extensions UML + extensions UML, E/R, CSC Catalyst Outils Case Cool:Spex, Cool:Gen ... Rational Rose, etc Select Component Factory Moyennement complexe Moyennement complexe Complexité d’apprentissage Très complexe
Étude détaillée de la prise en charge des composants (1/2) Catalysis RUP Select Introduction des composants dans le cycle de développement Logique, implémentation Logique, implémentation Logique, implémentation Règles d’identifications des composants Pas de règles Pas de règles Pas de règles Niveau de décomposition Pas d’indications Pas d’indications Pas d’indications
Catalysis RUP Select Représentation des composants Logique : Type Implémentation: package, composant Logique : sous système Implémentation: diagramme composants Logique : package de services Implémentation: diagramme composants Rigueur dans la spécification des composants Oui avec OCL Non mentionné Non mentionné Package de services sans précision sur l’approche à suivre pour les identifier et les construire Réutilisation Framework avec des indications sur la manière pour les construire Un processus supportant la gestion d’une librairie de composants réutilisables
Faiblesses • Introduction tardive des composants dans le cycle de développement (logique, implémentation) • Manque de guidage du concepteur • Difficulté de passer des besoins aux composants • Pas de règles précises sur la granularité des composants (arrêt de la décomposition) • Prise en charge partielle de la réutilisation
Plan • * Introduction sur la réutilisation • * Cadre de référence pour la comparaison des composants • * Les types de composants pour les SI (métiers, architecturaux, patrons) • * Types de démarche : Pour et Par réutilisation • * Synthèse sur les démarches les plus appliquées • * Conclusion
Conclusion • Effervescence des travaux dans le domaine mais beaucoup de disparité. • Diversité des composants : composants logiciels, métiers, architecturaux, patrons. • Des solutions commencent à émerger mais : • Nécessité de standardiser la notion de « composant » • D’organiser les composants en fonction du problème (classification) • De définir des mécanismes d’intégration (assemblage, composition …) • De formaliser des démarches centrées réutilisation dès la phase d’analyse