Les patterns pour l’ingénierie des systèmes d’information produit par : Lilia GZARA soutenue le 12 décembre 2000 Directeurs de Thèse : Dominique RIEU & Michel TOLLENAERE Laboratoire d’accueil : GILCO Gilco LSR Schneider Electric Poseidon
Système d’Information Produit (SIP) Cadre de Réflexion Système d’Information Produit (SIP) Ingénierie des SIP
Plan de la présentation Introduction : SIP et difficultés en ingénierie de SIP Problématique et Objectifs de la thèse Proposition : un cadre méthodologique pour l’ingénierie des SIP Validation des résultats Conclusion et Perspectives
Les SIP dans l’entreprise Introduction Problématique Proposition Validation Conclusion Les SIP dans l’entreprise Système Opérant Système d’Information Système de Pilotage décisions informations traitées informations collectées instructions J-L Lemoigne PDM / SIP ERP définition de l’offre production de l’offre autres processus : support commande de produit livraison de produit définition de produit besoins de produit
SIP : Concepts gérés Produit Acteur Ressource matérielle Introduction Problématique Proposition Validation Conclusion SIP : Concepts gérés Organisation hiérarchie appartient rôle réalise Acteur Ressource matérielle Vue extraire Dossier regrouper Produit Document Support Représentation décrit par a e f g h i b c d Nomenclature Fonction Article hiérarchie de concerné par Processus métier opération Op. Décision
Introduction Problématique Proposition Validation Conclusion Le SIP ... SIP : Dispositif organisationnel permettant de réguler la création, la circulation, l’utilisation et l’évolution du patrimoine informationnel de définition du produit. Produits : comment le produit est conçu, fabriqué, utilisé, maintenu et détruit. => Composants, Nomenclatures, Documents de définition, Documents de fabrication, Documents de maintenance, Dossiers, Modèles CAO, ... Processus : création et organisation des informations évolution des informations
Vues séparées du produit Introduction Problématique Proposition Validation Conclusion Les SIP sont supportés Initialement (1970): par divers outils Essais - Simulation IAO Données de simulation BE-conception CAO BM Vues séparées du produit Données de Conception Données d'industrialisation FAO DAO Données de Soutien Données de fabrication GPAO GMAO GQAO Maintenance Fabrication
Vue partagée du produit Introduction Problématique Proposition Validation Conclusion Les SIP sont supportés Ensuite … (1985) : par un outil fédérateur du type SGDT IAO Simulation CAO FAO BE-conception DAO Données d’industrialisation BM Données de Conception Données de Soutien SGDT Données Qualité Données de Simulation GPAO GMAO GQAO Vue partagée du produit Maintenance Fabrication
Travaux dans le domaine Introduction Problématique Proposition Validation Conclusion Travaux dans le domaine aborder le domaine construire référentiel peu de travaux objectifs différents Rationalisation de la gestion des données techniques Rationalisation du développement de SIP Deux classes Échange Intégration Partage STEP [ISO, 94] [PDM Schema, 99] PDM Enabler [OMG, 98] Echange de données Outils d’aide à la décision [Pels, 00] Configuration de produit Rationalisation du processus Résolution des problèmes [Schwarze, 97] [Ramachnandran, 99] Implantation de modèles normatifs [Stepwise, 00] Paramétrisation de SGDT [Spath, 99] Gestion du workflow Workflow flexible d’ingénierie [Weske, 99] [Simnet, 00] Ingénierie de SIP [Chen, 98]
Maintenance Evolutive Introduction Problématique Proposition Validation Conclusion Ingénierie des SIP Nouveaux Besoins Solution évoluée Maintenance Evolutive entreprise i entreprise j entreprise k Analyse Conception Implantation Représentation du domaine du problème Analyse Problème du monde réel Conception Représentation du domaine de la solution contraintes techniques Implantation Solution dans un système technologique
Ingénierie des SIP à Expression des Besoins Introduction Problématique Proposition Validation Conclusion Ingénierie des SIP à D.E.B Expression des Besoins Expression besoins Utilisateurs Chef de Projet Analyse D.A.F.E D.A.T.E Spécification Fonctionnelle Spécification Technique Développeur Chef de Projet Utilisateurs Conception Documents d’intégration Application Développement Livraison et recettes Installation SGDT Application SIP Développeur Chef de Projet Implantation
Problématique Constat Objectif Introduction Problématique Proposition Validation Conclusion Problématique Manque de modèles compréhensibles Manque de formalisation Absence de continuum de transformations Nombreux retours dans le processus Réutilisation logicielle difficile Développement trop lent Constat Objectif la définition de modèles de spécification la mise en place d’une démarche générale l’accélération à toutes les étapes d’ingénierie Enjeu : réussir les projets de déploiement, au moindre coût
Approche de la problématique Introduction Problématique Proposition Validation Conclusion Approche de la problématique Une démarche d’ingénierie permettant de raffiner les modèles (continuum) ; orientée-décision La réutilisation d’acquis (Modèles et Processus de développement) à toutes les étapes d’ingénierie technologie des Patrons (pattern) langage UML (Unified Modeling Language) Un formalisme de modélisation
[Alexander, 77] ; [Beck, 87] ; [Coad, 92] ; [Gamma, 95] Introduction Problématique Proposition Validation Conclusion Patron (pattern) ? [Alexander, 77] ; [Beck, 87] ; [Coad, 92] ; [Gamma, 95] Un patron constitue une base de savoir et de savoir-faire pour résoudre un problème récurrent dans un contexte particulier. L’expression de ce savoir et savoir-faire : permet d’identifier le problème à résoudre propose une solution générique correcte pour y répondre offre les moyens d’adapter cette solution à un contexte particulier
Un exemple de patron : « Composite » de Gamma Introduction Problématique Proposition Validation Conclusion Un exemple de patron : « Composite » de Gamma Problème : gérer une composition récursive d’objets => définir des hiérarchies d’objets simples et composites et faciliter l’ajout de nouveaux composants. Cas d’application : les éditeurs graphiques Solution : Composant opération_spécifique () ajouter (élément) supprimer (élément) accéder () Feuille opération_spécifique() Composite opération_spécifique ( ) ajouter (élément) supprimer (élément) accéder () 2..* composants Figure colorer () tracer () ajouter (fig) supprimer (fig) accéder Cercle colorer () tracer() Triangle colorer () tracer () Figure composée colorer () tracer() ajouter (fig) supprimer (fig) accéder 1..* composants
Les patrons en ingénierie de SI Introduction Problématique Proposition Validation Conclusion Les patrons en ingénierie de SI Patrons Nature-problème Couverture Patrons Processus Produit Patrons Processus Patrons Produit Patrons généraux Patrons de domaine Patrons de domaine Portée Patrons d’Analyse de Conception Patrons d’Analyse Patrons de Conception Patrons d’Implantation Construire des modèles représentant les besoins représentant les solutions Décrire l’implantation des solutions dans un langage
Avantages des patrons pour l’ingénierie des SIP Introduction Problématique Proposition Validation Conclusion Avantages des patrons pour l’ingénierie des SIP S’adresse à toutes les étapes de développement S’adresse à des problèmes de spécification de produits et de processus d’un domaine Unité de raisonnement modulaire : Granularité faible ; un patron pour un problème type Contextuel : explicite le problème, la solution et le contexte dans lequel le problème est résolu Capitalise des fragments de modèle mais également de démarche : à un problème => un modèle => une manière d’aboutir à ce modèle et/ou de l’adapter
Catalogue de patrons pour l’ingénierie de SIP Proposition Catalogue de patrons pour l’ingénierie de SIP
Les patrons en ingénierie des SIP Introduction Problématique Proposition Validation Conclusion Les patrons en ingénierie des SIP Ingénierie des Patrons pour réutilisation Concepteur de patrons Bibliothèque de patrons Cahier des charges utilisateurs Ingénierie des SIP par réutilisation Concepteur de SIP application SIP Processus 1 Processus 2 Bibliothèque de patrons Ingénierie des Patrons pour réutilisation
Identification des problèmes Spécification des solutions Introduction Problématique Proposition Validation Conclusion Ingénierie de patrons 1 patron = { problème / solution }récurrent Identifier les sources de connaissances contenant des problèmes réutilisables Isoler dans le référentiel les problèmes à résoudre par les patrons ... Proposer des solutions aux problèmes identifiés ... Analyse de domaine Analyse de domaine Identification des problèmes Spécification des solutions ... un Référentiel du domaine
[Arango, 91] ; [Kang, 90] ; [Cauvet, 96] ; [Semmak, 98] Introduction Problématique Proposition Validation Conclusion L’analyse de domaine [Arango, 91] ; [Kang, 90] ; [Cauvet, 96] ; [Semmak, 98] Objectif : acquérir les connaissances du domaine SIP et les structurer dans un Référentiel, exprimant les modèles devant être obtenus par réutilisation de patrons. Approche : selon deux aspects Aspect théorique : étude des modèles de SIP proposés dans la littérature Aspect expérimental : étude des SIP mis en place, selon deux niveaux : organisationnel logiciel Produit Processus SIP Résultat : Un référentiel organisé en deux volets
Introduction Problématique Proposition Validation Conclusion Référentiel Produit Elément Etat 1..* 1 Elément versionné Fonction Technique FS élémentaire composée FT 2..* Service 1..* * documenté par Document modèle enregistrement Dossier décrit 1 Objet Documenté 0..1 « nomenclature organique » «nomenclature fonctionnelle» * «nomenclature organique» «nomenclature géométrique» 1..* Article virtuel Art. V. catalogue composé Art. V. à variantes constant ses variantes 1..* contexte ses composants * 2..* option Article physique Art. Phy. catalogue composé 2..* 0..1 1 * Type Produit Physique Générique ses composants 2..* Feature élémentaire - composite
Référentiel Processus Introduction Problématique Proposition Validation Conclusion Référentiel Processus Transition condition de succession de Poursuite Transition de Re-direction d’Abandon Etat Elément * Autorisation sortie entrée 1 Activité - type de succession Opération Processus - critère de décomposition suivant racine * manuelle informatisée Ressource * 1..* Matérielle Humaine intervenir Rôle Initiateur Responsable Exécutant 1..* Objectif 1 composé élémentaire *
Identification de problèmes réutilisables Introduction Problématique Proposition Validation Conclusion Identification de problèmes réutilisables Analyse de domaine Etude des modèles SIP Etude des SIP existants Construire un Référentiel du domaine Identification des problèmes Spécification des solutions Comparer le problème aux problèmes traités dans les catalogues Adapter les solutions existantes Proposer de nouvelles Solutions Identifier les blocs constants et les points de variabilité Identifier les patrons
Du Référentiel Produit aux patrons Introduction Problématique Proposition Validation Conclusion Du Référentiel Produit aux patrons Elément Etat 1..* 1 Elément versionné Fonction Technique FS élémentaire composée FT 2..* Service 1..* * documenté par Document modèle enregistrement Dossier décrit 1 Objet Documenté 0..1 « nomenclature organique » «nomenclature fonctionnelle» * «nomenclature organique» «nomenclature géométrique» 1..* Article virtuel Art. V. catalogue composé Art. V. à variantes constant ses variantes 1..* contexte ses composants * 2..* option Article physique Art. Phy. catalogue composé 2..* 0..1 1 * Type Produit Physique Générique ses composants 2..* Feature élémentaire - composite
Du Référentiel Produit aux patrons Introduction Problématique Proposition Validation Conclusion Du Référentiel Produit aux patrons Elément Etat 1..* 1 Elément versionné Fonction Technique FS élémentaire composée FT 2..* Service 1..* * documenté par Document modèle enregistrement Dossier décrit 1 Objet Documenté 0..1 « nomenclature organique » «nomenclature fonctionnelle» * «nomenclature organique» «nomenclature géométrique» 1..* 1 * Produit Physique Type Générique Type Produit 1 Générique * Type Produit 1 * Produit Physique Type Article virtuel Art. V. catalogue composé Art. V. à variantes constant ses variantes 1..* contexte ses composants * 2..* option Article physique Art. Phy. catalogue composé 2..* 0..1 1 * Type Produit Physique Générique ses composants 2..* Feature élémentaire - composite
Du Référentiel Produit aux patrons Introduction Problématique Proposition Validation Conclusion Du Référentiel Produit aux patrons Elément Etat 1..* 1 Elément versionné Fonction Technique FS élémentaire composée FT 2..* Service 1..* * documenté par Document modèle enregistrement Dossier décrit 1 Objet Documenté 0..1 « nomenclature organique » «nomenclature fonctionnelle» * «nomenclature organique» «nomenclature géométrique» 1..* Article virtuel Art. V. catalogue composé Art. V. à variantes constant ses variantes 1..* contexte ses composants * 2..* option Article physique Art. Phy. catalogue composé 2..* 0..1 1 * Type Produit Physique Générique ses composants 2..* Feature élémentaire - composite
Du Référentiel Produit aux patrons Introduction Problématique Proposition Validation Conclusion Du Référentiel Produit aux patrons Elément Etat 1..* 1 Elément versionné Dossier Objet 1 décrit * Documenté Document * documenté par * modèle enregistrement * Article virtuel Art. V. catalogue composé Art. V. à variantes constant ses variantes 1..* contexte ses composants * 2..* option Article physique Art. Phy. catalogue composé 2..* 0..1 1 * Type Produit Physique Générique * 0..1 « nomenclature organique » * * * ses composants 2..* Feature élémentaire - composite «nomenclature organique» 1..* «nomenclature géométrique»
Du Référentiel Produit aux patrons Introduction Problématique Proposition Validation Conclusion Du Référentiel Produit aux patrons Elément Etat 1..* 1 Elément versionné Fonction Technique FS élémentaire composée FT 2..* Service 1..* Dossier Objet 1 décrit * Documenté Document * documenté par * * «nomenclature fonctionnelle» modèle enregistrement Article physique Art. Phy. catalogue composé 2..* 0..1 1 * Type Produit Physique Générique * 0..1 * * * «nomenclature organique» ses composants 2..* Feature élémentaire - composite 1..* «nomenclature géométrique»
Du Référentiel Produit aux patrons Introduction Problématique Proposition Validation Conclusion Du Référentiel Produit aux patrons Elément Etat 1..* 1 Elément versionné Fonction Technique FS élémentaire composée FT 2..* Service 1..* Dossier Objet 1 décrit * Documenté Document * documenté par * * «nomenclature fonctionnelle» modèle enregistrement * Article virtuel Art. V. catalogue composé Art. V. à variantes constant ses variantes 1..* contexte ses composants * 2..* option Produit Type 1 * Générique Produit * « nomenclature organique » * * ses composants 2..* Feature élémentaire - composite 1..* «nomenclature géométrique»
Du Référentiel Produit aux patrons Introduction Problématique Proposition Validation Conclusion Du Référentiel Produit aux patrons Elément Etat 1..* 1 Elément versionné Fonction Technique FS élémentaire composée FT 2..* Service 1..* Dossier Objet 1 décrit * Documenté Document * documenté par * * «nomenclature fonctionnelle» modèle enregistrement * Article virtuel Art. V. catalogue composé Art. V. à variantes constant ses variantes 1..* contexte ses composants * 2..* option Article virtuel Art. V. catalogue composé Art. V. à variantes constant ses variantes 1..* contexte ses composants * 2..* option Article physique Art. Phy. catalogue composé 2..* 0..1 Article physique Art. Phy. catalogue composé 2..* 0..1 Type Produit 1 * Produit Physique * 0..1 * * * « nomenclature organique » «nomenclature organique»
Du référentiel aux patrons Introduction Problématique Proposition Validation Conclusion Du référentiel aux patrons n’exprime pas des propriétés spécifiques un cas particulier de de 3 niveaux, 4 nomenclatures, ... Référentiel produit : trop général et trop spécifique Un modèle produit => Isoler les points de variance et les traiter comme des problèmes à résoudre par des patrons décomposition et organisation variable entre les entreprises Référentiel processus : la description n’est pas unique Un modèle processus => Donner des techniques de représentation et de décomposition des processus sous la forme de patrons.
Le catalogue de patrons Introduction Problématique Proposition Validation Conclusion Le catalogue de patrons Trois catégories de patrons Patrons d’Analyse Produit Patrons d’Analyse Processus Niveau Métier du SIP Représenter les produits Représenter les processus Patrons de Conception Niveau Informatisé du SIP
Patron produit : « Points de Variabilité » Introduction Problématique Proposition Validation Conclusion Patron produit : « Points de Variabilité » Problème : identifier les blocs du modèle produit et fixer les points de variabilité à l'intérieur de chaque bloc selon la spécificité de l'entreprise. Utiliser patron «Niveaux de Produit» «Nomenclatures Appliquées» «Documents Appliqués» Associer documents au produit: créer classe pour chaque document et relier à la classe de l’objet documenté Associer nomenclatures au produit: créer associations entre niveaux de produit et racines des nomenclatures «Construire Nomenclatures» Solution démarche : Solution modèle : un modèle produit spécifique. * 1 . * Utiliser patron «Niveaux de Produit» Utiliser patron «Nomenclatures Appliquées» «Construire Nomenclatures» Utiliser patron «Documents Appliqués»
Patrons produit : « Construire Nomenclature » Introduction Problématique Proposition Validation Conclusion Patrons produit : « Construire Nomenclature » Problème : construire une nomenclature, selon différentes caractéristiques de celle-ci. Solution modèle : Utiliser patron « Construire Nomenclature avec Variantes » avec Options » Variantes Lier les deux modèles à travers la classe commune « élément Nomenclature de Base » [ certains éléments sont variantes d'autres éléments] certaines optionnels] ET aucun variant ni optionnel n'existe] Solution démarche : Utiliser patron « Construire Nomenclature avec Variantes » Variantes » Utiliser patron « Construire Nomenclature avec Options » Utiliser patron « Construire Nomenclature de Base »
Patrons produit : « Nomenclature de base » Introduction Problématique Proposition Validation Conclusion Patrons produit : « Nomenclature de base » Problème : construire une composition récursive d’éléments. Elément Ajouter () Supprimer () Accéder () Elément Feuille Opération-spécifique () Elément Composite Ajouter (Elément) Supprimer (Elément) 2..* ses composants composite incompatible 0..* Solution modèle : Solution démarche : Patron « Composite » d’E. Gamma
Patrons produit : vue d’ensemble Introduction Problématique Proposition Validation Conclusion Patrons produit : vue d’ensemble Deux Niveaux de Produit “utilise” “utilise” Niveaux Produit “utilise” “utilise” “requiert” Trois Niveaux de Produit “utilise” Nomenclatures Appliquées “requiert” Points de Variabilité “utilise” Documents Appliqués Nomenclature avec Variantes “utilise” “utilise” “requiert” “utilise” Construire Nomenclature Nomenclature avec Options “utilise” “utilise” “utilise” Nomenclature de Base “raffine” “raffine” Nomenclature de base à composition exclusive “raffine” ... “raffine” Nomenclature de base à composition dépendante “raffine” Nomenclature de base à composition partagée Nomenclature de base à composition indépendante
Patron Processus : « Décomposer un processus » Introduction Problématique Proposition Validation Conclusion Patron Processus : « Décomposer un processus » Problème : décomposer un processus, afin de : Représenter la répartition des tâches entre acteurs Représenter les points de décision et de synchronisation Distinguer les activités manuelles des activités à informatiser nom nature (opération,processus) acteurs (responsable, exécutant, etc.) type (informatisée, manuelle) entrées, sorties (modèle produit) type-succession type de transition Changement d’objectif Changement d’acteur ou de rôle d’acteur Changement de type d’activité Choisir un critère de décomposition Décomposer le processus en fonction du critère choisi Renseigner les activités obtenues : Construire diagramme d’activité : utiliser Patron « représenter un processus » Repérer les activités non terminales Solution démarche : Construire le diagramme d’activités : utiliser Patron « représenter un processus » Solution modèle : Un diagramme d’activités => décomposition à un niveau du processus métier Caractéristiques : - objectif trop général, décomposable - pas possible de lui affecter un exécutant / un type unique
Cas d’application : Gestion des modifications à Introduction Problématique Proposition Validation Conclusion Cas d’application : Gestion des modifications à « responsable » gestionnaire BE responsable technique [ré-examen] « re direction» -direction» [fin] «poursuite» [accord] « processus » application étude faisabilité début processus émission demande de modification examen fin processus [refus] «abandon» Demande de Modification [soumise] [acceptée]
Des patrons d’Analyse aux patrons de Conception Introduction Problématique Proposition Validation Conclusion Des patrons d’Analyse aux patrons de Conception Les patrons produit / processus le niveau «métier» : modèle d’analyse les produits : diagrammes de classes les processus : diagrammes d’activités Les patrons de conception le niveau «informatisé» => transformer le modèle d’analyse en un modèle de conception * 1 . * - * 1 . * - 3 Patrons de Conception accord « poursuite » « opération-informatisée » Création de Demande de Modification « exécutant » émetteur Soumission de Gestionnaire BE annulation « abandon »
Patrons de Conception : Cas d’application Introduction Problématique Proposition Validation Conclusion Patrons de Conception : Cas d’application accord «poursuite» «opération-informatisée» Création de Demande de Modification « exécutant » Emetteur Soumission de Gestionnaire BE Emission d’une demande de modification Création de Demande de Modification Emetteur Soumission de Demande Gestionnaire BE i : interface DM : Demande-modification prod : Type-Produit créer ( ) créer-DM (finalité, produit, demandeur) attribuer n°d’ordre associer produit à demande- modif (DM) insérer demande- insérer produit ( ) afficher ( ) émetteur Demande-modification créer-DM() attribuer-n-ordre() inserer_produit() (from GM-BEGT) Type-produit Name associer_produit-dm() inserer_dm() 0..*
Catalogue de patrons : synthèse Introduction Problématique Proposition Validation Conclusion Catalogue de patrons : synthèse Un accent variable sur les modèles et les démarches Patrons d’Analyse Patrons d’Analyse Processus Produit Fragments de modèles : Patron « Nomenclature de Base » Fragments de démarches : Patron « Points de variabilité » Fragments de démarches : Patron « Décomposer un processus » Patrons de Conception Fragments de démarches : Patron « Modèle de Conception »
Validation de la démarche à Introduction Problématique Proposition Validation Conclusion Validation de la démarche à Cadre : projet VEGA2-électronique : gestion des dossiers de produits électroniques projet VEGA1-mécanique : gestion des modifications de produits mécaniques Objectif : tester la réutilisabilité des patrons développés tester l’adéquation de l’approche proposée aborder le processus par réutilisation : affiner la problématique associée à la formalisation de ce processus Démarche : participation à la collecte des besoins des utilisateurs élaboration des spécifications fonctionnelles et techniques, par réutilisation
Un outil support de la démarche Introduction Problématique Proposition Validation Conclusion Un outil support de la démarche AGAP (manipulation de patrons) Rose (AGL) Windchill (SGDT) Architecture de l’outil : Objectif : présenter une mise en œuvre possible de la démarche proposée supporter l’étape d’implantation sur un SGDT affiner la problématique associée à la réutilisation aux phases avales d’ingénierie Construction de modèles UML fichier XML Bibliothèque de patrons Création de patrons Imitation de patrons Mapping Windchill Oracle Système de génération fichier SQL fichier mData fichier Info code Java Génération de tables Oracle
Une démarche d’ingénierie de SIP basée sur la réutilisation de patrons Introduction Problématique Proposition Validation Conclusion Conclusion Une démarche d’ingénierie de SIP basée sur la réutilisation de patrons Un catalogue de patrons (20 patrons) de domaine couvrant les étapes d’analyse et de conception intègrant des modèles (savoir) et des démarches (savoir-faire) d’ingénierie de SIP intègrant une organisation des patrons Un premier niveau de validation de la démarche Définition d’un outil support à la démarche
Conclusion Une démarche d’ingénierie des patrons Introduction Problématique Proposition Validation Conclusion Conclusion Une démarche d’ingénierie des patrons Une démarche d’analyse de domaine Un référentiel modélisant et spécifiant les connaissances du domaine des SIP Aide à l’ingénierie des produits à travers une approche système d’information ==>> Variabilité des modèles produit / processus autour de patrons adaptables
Perspectives à court terme : Compléter le catalogue de patrons Introduction Problématique Proposition Validation Conclusion Perspectives à court terme : Compléter le catalogue de patrons Autres applications du catalogue Réutilisation en implantation à long terme : Ingénierie de SI à base de patrons Gestion des données techniques Formes de réutilisation en déploiement Vers une démarche générale d’ingénierie de patrons pour la réutilisation Configuration et évolution de produits, workflow flexibles Coopération des SIP avec d’autres SI industriels