Summary

Les notes de cours décrivent des notions de base en ingénierie des modèles, abordant les concepts de Model Driving Engineering, Model Driven Architecture et de la génération de code. Les notes fournissent un aperçu des étapes impliquées dans le cycle de développement logiciel, centrées sur les modèles.

Full Transcript

21/11/2023 Ingénierie des modèles Notions de base Model Driving Engineering Model Driving Architecture Transformation des modèles Génération de code 359 Ingénierie des modèles Notions de base  L’...

21/11/2023 Ingénierie des modèles Notions de base Model Driving Engineering Model Driving Architecture Transformation des modèles Génération de code 359 Ingénierie des modèles Notions de base  L’ingénierie des modèles est une continuité dans le génie logiciel , elle s’intéresse au cycle de vie de développement des logiciels IDÉE Spécification PROBLÈME Conception SOLUTION Implémentation CODE Vérification Maintenance 360 1 21/11/2023 Ingénierie des modèles Notions de base Spécification LANGAGE Conception STANDARD Implémentation PLATEFORME Vérification MIS À JOUR Maintenance MIS À NIVEAU 361 Ingénierie des modèles Notions de base Spécification Conception SOFTWARE Implémentation Vérification HANDMADE SOFTWARE Maintenance 362 2 21/11/2023 Ingénierie des modèles Notions de base Spécification Spécification Spécification Conception Conception Conception Implémentation Implémentation Implémentation Vérification Vérification Vérification Maintenance Maintenance Maintenance SOFTWARE SOFTWARE SOFTWARE 363 Ingénierie des modèles Notion de base  Comment faire pour transmettre la connaissance?  Comment assurer l’échange entre les différents logiciels?  Comment réutiliser les délivrables?  Comment assurer la communication?  Est il possible de transférer la connaissance et le composant entre plusieurs délivrables 364 3 21/11/2023 Ingénierie des modèles Industrialiser le développement des logiciels? IDÉE ….. ? ….. ….. ? ….. CODE Chaine de production 365 Ingénierie des modèles Model Driving Engineering (MDE)  Apporte des solutions et des outils pour atteindre l’industrialisation des logiciels  Ingénierie Comment raisonner? Comment comprendre le problème? Comment formuler la solution? Comment implémenter? Comment appliquer?  En informatique Le pivot du développement des logiciels est toujours : Machine Algorithme Programme  En MDE on considère les modèles comment étant le pivot du développement des logiciels.  Tous les éléments sont modélisés par des modèles 366 4 21/11/2023 Ingénierie des modèles MDE CYCLE DE PROBLÈME DÉVELOPPEMENT Modèle Modèle Modèle Modèle Modèle Modèle Modèle CODE SOURCE 367 Ingénierie des modèles Directives  Formuler le problème sous forme d’un modèle  Appliquer une série de transformations sur les modèles, en ajustant quelques détails  Produire le code source Processus industriel de création de logiciels  Pour établir les principes de l’ingénierie dirigés par les modèles on a : Model Integrated Computing (MIC 90) Software Factories MDA  Sous la direction de l’OMG qui établit les normes logicielles 368 5 21/11/2023 Ingénierie des modèles Interopérabilité INTERFACE INTERFACE SYSTÈME SYSTÈME 369 Ingénierie des modèles MDE : Concepts METAMODEL METAMODEL TRANSFORMATION MODEL MODEL AUTOMATISATION? 370 6 21/11/2023 Ingénierie des modèles MDE : Motivations? LANGAGES DE PLATEFORMES MODÉLISATION DBMS FILES FORMAT LANGAGES DE PROGRAMMATION SE LES LOGICIELS SONT EN ÉVOLUTION PERMANENTE 371 Ingénierie des modèles MDE : Motivations? APPLICATION APPLICATION PROCESSUS THREAD RESSOURCE CRÉER UN STANDARD DE COMMUNICATION 372 7 21/11/2023 Ingénierie des modèles MDE : Motivations?  Quand on a un problème informatique, la solution se présente toujours sous la forme : IMPLÉMENTATION PLATEFORME ALGO DATA 373 Ingénierie des modèles MDE : Motivations? ABSTRACT MODEL OBJECTIF ALGO DATA PROJECTION SÉCURITÉ MODEL BUSINESS (DOMAIN) LOGIQUE MÉTIER PROTECTION IMPLÉMENTATION PLATEFORME AUTRES IMPLÉMENTATION ET PRÉOCCUPATIONS DÉTAILS DE PLATEFORME IMPLEMENTATION MODEL 374 8 21/11/2023 Ingénierie des modèles MDE : Model? DESCRIPTION D’UN SYSTÈME SPÉCIFICATION DU SYSTÈME EXISTANT À ÉTABLIR ENSEMBLE VUE SIMPLIFIÉE ET D’INFORMATIONS SUBJECTIVE DU SYSTÈME NOM ANNÉE DE NAISSANCE ID 375 Ingénierie des modèles Model et Méta model  Un méta model est un descripteur de modèle (comment créer le modèle)  Un modèle doit être conforme au modèle Texte Conforme au LANGAGE One and three Chairs(Joseph Kosuth, 1956) 376 9 21/11/2023 Ingénierie des modèles Transformation MÉTA MODÈLE MÉTA MODÈLE INPUT OUTPUT MODEL MODEL OUTPUT INPUT TRANSFORMATION MODEL MODEL INPUT OUTPUT MODEL MODEL 377 Ingénierie des modèles MDA : Model Driven Architecture  L'initiative d'architecture dirigée par les modèles de l'OMG (Object Management Group) est motivée par le besoin de réduire les tâches de REconception des applications.  Puisque les modèles sont plus pérennes que les codes, ils permettent de : Conserver les exigences métiers Réutiliser les choix d'architecture et de codage (échanges entre analystes et programmeurs) Assurer l'intégrité et la cohérence entre les phases du projet (tests) 378 10 21/11/2023 Ingénierie des modèles Les principes de l’approche MDA  Le principe de MDA est de séparer les spécifications fonctionnelles des spécifications de l'implémentation sur une plate-forme donnée.  Interopérabilité des applications  L'idée centrale de MDA est d'élaborer des modèles, d'abord d'analyse puis de conception, jusqu'au code, par transformations, dérivations et enrichissements successifs. 379 Ingénierie des modèles MDA : Model Driven Architecture  Abstraire la logique métiers de la mise en œuvre en utilisant les standards de l’OMG (UML,..) PIM PSM (Platform Independent (Platform Specific Model) Model) Spécification après la Spécification des processus projection sur la plateforme métiers technologique CIM PDM (Computationnel (Platform deployment Independent Model) Model) Spécification du système Spécification du modèle de d’un point de vue utilisateur déploiement 380 11 21/11/2023 Ingénierie des modèles Les principes de l’approche MDA 381 Ingénierie des modèles Les principes de l’approche MDA  MDA : Ensemble de technique de modélisation et de transformation  Les principaux modèles sont : CIM (computation independant model) modèle indépendant de calcul : décrit les flux et les actions sur le système PIM (plateform independant model) modèle indépendant des plates- formes : décrit les traitements orientés métier PDM (plateform dependant model) modèle des plates-formes décrit une architecture technique PSM (plateform specific model) modèle dépendant des plates-formes : décrit les détails techniques liés à l'implémentation pour une plate-forme 382 12 21/11/2023 Ingénierie des modèles Le CIM (Computation Independent Model)  C’est le modèle d'analyse de base du métier ou du domaine d'application  Il est indépendant de tout système informatique  Il décrit les concepts de l'activité métier, le savoir faire les processus, la terminologie et les règles de gestion (de haut niveau)  Il décrit la situation dans laquelle le système est utilisé  Il n'est modifié uniquement que si les connaissances ou les besoins métier changent (très longue durée de vie) 383 Ingénierie des modèles Le PIM (Platform Independent Model)  Il décrit le système indépendamment de toute plate-forme technique et de toute technologie utilisée pour déployer l'application  Il représente la logique métier spécifique au système (fonctionnement des entités et des services)  Il est pérenne dans le temps  Il consiste en des diagrammes UML de classes 384 13 21/11/2023 Ingénierie des modèles Le PDM (Plate-forme Description Model)  Il contient des informations pour la transformation des modèles vers une plateforme  Il est spécifique à une plateforme  Il est un modèle de transformation pour permettre le passage du PIM vers le PSM 385 Ingénierie des modèles Le PSM (Plate-forme Specific Model)  Il sert à la génération du code exécutable pour les plates-formes techniques particulières  Il décrit comment le système utilisera la plate-forme  Il est dépendant de la plate-forme 386 14 21/11/2023 Ingénierie des modèles La transformation des modèles MDA  L'approche MDA précise quatre types de transformations pendant le cycle de développement, les modèles devenant de plus en plus concrets jusqu'à l'obtention du code.  Par transformations successives, le PIM, modèle de niveau le plus abstrait, est transformé en un PSM exécutable (ou code exécutable)  Si la démarche MDA a été respectée, il est possible de générer un PSM, puis un PIM, à partir du code exécutable (rétro-ingénierie) 387 Ingénierie des modèles La transformation des modèles MDA 388 15 21/11/2023 Ingénierie des modèles La transformation des modèles MDA  Transformation de PIM vers PIM, ou raffinement, consiste à ajouter des informations (non liées à une plate-forme) sous forme d'annotations  Transformation de PIM vers PSM consiste à ajouter au PIM des informations propres à une plate-forme technique Les plates-formes visées (J2EE,.NET...) sont décrites dans un PDM  Transformation de PSM vers PSM (raffinement), souvent nécessaire pour générer un code.  Transformation de PSM vers PIM, ou rétroingénierie, indispensable pour permettre l'intégration d'applications existantes 389 Ingénierie des modèles La transformation des modèles MDA 390 16 21/11/2023 Ingénierie des modèles La transformation des modèles MDA 391 Ingénierie des modèles Exemple d’utilisation des modèles pour la réalisation d’une application 392 17 21/11/2023 Ingénierie des modèles Exemple De Cim 393 Ingénierie des modèles Exemple de PIM 394 18 21/11/2023 Ingénierie des modèles Exemple de PDM 395 Ingénierie des modèles Exemple de PSM 396 19 21/11/2023 Ingénierie des modèles Génération automatique du code  La génération automatisée du code ou programmation générative s’inscrit dans le mouvement du développement agile. MÉTA DONNÉE RÈGLES DE CODE DU PROJET COMPORTEMENT 397 Ingénierie des modèles Objectif  Automatiser la production de code source répétitif pour : Minimiser les risques d'erreurs Permettre au programmeur de se concentrer sur l'écriture de code à plus grande valeur ajoutée. Plus de productivité (ex. la structure d’une centaine de classes, d’opérations, etc. générée en un click)  Du 100% code généré dans le domaine du Web, BD, fichier de configuration. 398 20 21/11/2023 Ingénierie des modèles Forward Engineering SPÉCIFICATIONS GÉNÉRATION DU CODE 399 Ingénierie des modèles Générer du code : Source  Il existe de nombreuses sources à partir desquelles générer le code : Génération à partir de programmes informatiques écrits dans un autre langage de programmation généralement de plus haut niveau. Le logiciel réalisant cette transformation peut être appelé compilateur ou traducteur. Par exemple, on peut générer du code Java ou C# à partir d'un programme décrit en UML. Génération à partir de métadonnées. Par exemple, on peut générer la couche logicielle d'accès à une base de données relationnelle grâce aux métadonnées des tables. 400 21 21/11/2023 Ingénierie des modèles Caractéristiques Les avantages de la génération automatique de code  Les délais d’exécution et la précision sont les principaux avantages de la génération automatique de code Inconvénients de la génération automatique de code  Ces outils peuvent toutefois provoquer des problèmes. « Le code généré automatiquement devient généralement un obstacle pour les développeurs qui veulent le modifier ultérieurement ». Les équipes devraient prévoir de limiter ces outils à certaines parties du cycle de développement. 401 Ingénierie des modèles Outils et Frameworks  CASE tools for Automatic Code Generation  IDEs for Automatic Code Generation  Frameworks for Automatic Code Generation 402 22 21/11/2023 Ingénierie des modèles CASE tools for Automatic Code Generation  Computer-Aided Software Engineering (CASE)  C’est des technologies qui offrent des outils d’assistance automatique pour le développement de logiciels. Réduire le temps/coût du développement Augmenter la qualité des systèmes développés Augmenter la productivité Améliorer la maintenance 403 Ingénierie des modèles Classification des CASEs  Upper CASE: front end CASE Assistance durant les premières phases de SDLC : Spécification, Analyse design  Lower CASE: Back end CASE Assistance dans les phases avancées du SDLC : génération du code et test  Integrated CASE Ils offrent une assistance durant toutes les phases du SDLC 404 23 21/11/2023 Ingénierie des modèles CASE : Outils et objectif  Outil d'analyse des besoins  Outil d'analyse de structure  Outil de conception de logiciels  Outil de génération de code  Outil de génération de test  Outil de production de documents  Outil d'ingénierie inverse (reverse engineering) 405 Ingénierie des modèles IDE for Automatic Code Generation  Environnement de développement (Integrated development environment)  Un IDE est un ensemble d'outils et d'installations dont les programmeurs ont besoin pour le développement et la conception de logiciels.  Il fournit au programmeur un environnement dans lequel il peut écrire et tester ses codes. 406 24 21/11/2023 Ingénierie des modèles Génération de Code LE MODÈLE GRAPHIQUE EST INDÉPENDANT DE TOUTE PLATE-FORME 407 Ingénierie des modèles Génération de Code  Un ensemble de règles décrivant la correspondance entre concepts du modèle et concepts du langage (Java par ex.)  Un moteur de génération de code – Input: modèle, output: Code (Java…) LE MODÈLE GRAPHIQUE EST INDÉPENDANT DE TOUTE PLATE-FORME 408 25 21/11/2023 Ingénierie des modèles Génération de Code : Exemple 409 Ingénierie des modèles Génération de Code : Exemple  Héritage : En java c’est le mot clé extends 410 26 21/11/2023 Ingénierie des modèles Génération de Code : Exemple  Interface : en java c’est le mot clé implements 411 Ingénierie des modèles Règles de Génération de code UML 2 JAVA  À toute classe UML doit correspondre une classe Java portant le même nom que la classe UML.  À toute interface UML doit correspondre une interface Java portant le même nom que l’interface UML. 412 27

Use Quizgecko on...
Browser
Browser