620 likes | 869 Views
Ingénierie Dirigée par les Modèles pour les SoCs. Anne Etien Maître de Conférences INRIA – Projet DaRT Anne.Etien@lifl.fr. Note. Ces transparents sont très largement inspirés des cours de Pierre Alain Muller, Jean-Marc Jezequel, Mireille Blay-Fornarino…. Plan. Introduction
E N D
Ingénierie Dirigée par les Modèles pour les SoCs Anne Etien Maître de Conférences INRIA – Projet DaRT Anne.Etien@lifl.fr
Note • Ces transparents sont très largement inspirés des cours de Pierre Alain Muller, Jean-Marc Jezequel, Mireille Blay-Fornarino…
Plan • Introduction • Modèle, Méta-modèle • Transformation de modèles • UML • Profil • Méthode
Raison d’être des modèles • Accroissement exponentiel de la complexité des systèmes informatiques • Besoin de réduire les coûts de développement • Besoin de réduire le temps de mise sur le marché • S’appuyer sur la notion de modèle pour : • Maîtriser la complexité • Réutiliser des parties • Séparer les préoccupations • Fusionner les préoccupations dans le code
Attention ! • Les activités d’abstraction/modélisation, séparation/fusion existent depuis toujours • Mais : • les modèles restent parfois implicites • le processus est manuel • De nouveaux noms, de nouveaux standards
Qu’est-ce que l’IDM ? • L’IDM correspond à l’utilisation systématique des modèles comme concept clé tout au long du processus d’ingénierie • L’IDM propose une automatisation du processus d’ingénierie, des modèles au code par affinements successifs des modèles
Les choses et leurs représentation • Les choses • Réelles, virtuelles • Rares, chères, fragiles, dangereuses, inaccessibles, lointaines, trop nombreuses… • Les concepts pour penser les choses • Plus facile, moins cher, moins dangereux Le tableau de Magritte « Ceci n’est pas une pipe » revisité
Qu’est-ce qu’un modèle ? • Définition : « A model represents reality for the given purpose; the model is an abstraction of reality in the sense that it cannot represent all aspects of reality. This allows us to deal with the world in a simplified manner, avoiding the complexity, danger and reversibility » (Jeff Rothenberg) • Un modèle est donc une simplification de la réalité qui permet de mieux comprendre le système à développer • Un modèle ne représente pas toute la réalité mais qu’un point de vue particulier
Pourquoi modéliser ? • Un modèle permet de : • Visualiser le système comme il est ou comme il devrait être • Spécifier les structures de données et le comportement du système • Fournir un guide pour la construction du système • Documenter les systèmes et les décisions prises
Comment modéliser ? • La manière de modéliser influence fortement • La compréhension du problème • La solution • Il n’existe pas de modèle universel • Multiplicité des niveaux d’abstraction • Multiplicité des points de vue • Le modèle doit être en prise avec le réel
Le langage • Les mots pour dire les choses • Outil pour la manifestation externe de la pensée • Plus ou moins généraliste Représentation Méta-modèle Langage pour décrire les choses Représentation Modèle Chose
Qu’est-ce qu’un méta-modèle ? • Définition : « A metamodel is a model that defines the language for expressions of a model » (MOF standard version 1.4) • Un méta-modèle permet de définir précisément les concepts manipulés dans les modèles ainsi que les relations entre ces concepts
Les niveaux de l’OMG source Méta-Classe Méta-Relation destination Classe Relation Compte numéro : Entier solde : Entier numéro = 108 solde = 1500
Définition • Une transformation de modèles permet de passer d'un modèle source décrit à un certain niveau d'abstraction à un modèle destination décrit éventuellement à un autre niveau d'abstraction • Ces modèles source et destination sont conformes à leur métamodèle respectif (métamodèles source et destination) et le passage de l'un à l'autre est décrit par des règles de transformation • Ces règles sont exécutées sur les modèles source afin de générer les modèles destination
Les règles de transformation • Une règle de transformation définit la manière dont un ensemble de concepts du métamodèle source est transformé en un ensemble de concepts du métamodèle destination. • Il existe les langages impératifs qui décrivent comment la règle est exécutée et les langages déclaratifs qui décrivent ce qui est créé par la règle.
Les règles • Trois étapes : • la vérification de la condition correspond à l’analyse du modèle source de la transformation de manière à détecter la présence d’un ensemble de concepts qui correspond à ce que la règle « attend » en entrée. • l’exécution de la règle par le moteur de transformation a lieu pour chaque ensemble de concepts qui valide la condition • et la création consiste à générer un ensemble de concepts dans le modèle de sortie dont les champs sont remplis par les variables affectées durant l’exécution. • L’agencement et la structuration des règles exécutées dans une transformation permet de reconstruire l’ensemble du modèle de sortie.
QVT : le standard de l’OMG • Deux parties déclaratives : Relations et Core • Une partie impérative : Operational
Relations • Le langage Relations offre la possibilité de spécier des transformations comme des ensembles de relations entre modèles. Relations équivalent aux règles • Chaque relation contient un ensemble de motifs d'objets. Ces motifs peuvent être reconnus dans les modèles source, créés dans les modèles cible
Core • Le langage Core est déclaratif et plus simple que Relations. • L'un des buts de Core est de fournir une base pour la spécification de la sémantique de Relations. • Cette sémantique est donnée comme une transformation Relations vers Core. Cette transformation peut être écrite en Relations.
Operational Mappings • Operational Mappings étend Relations avec des constructions impératives et des constructions OCL. • La syntaxe de Operational Mappings fournit les constructions communes des langages impératifs (boucles, instructions conditionnelles, etc.).
Boîte noire • Le mécanisme boîte noire permet de brancher et d'exécuter du code externe au cours de l'exécution d'une transformation. Ce mécanisme permet l'implémentation d'algorithmes complexes dans n'importe quel langage et permet de réutiliser des bibliothèques existantes.
Moteurs de transformations • Des outils dédiés : • SmartQVT (implémente la partie impérative de QVT) • ATL • Fujaba • Mola • Des outils généralistes : • SiTra • Kermeta • MoMoTE (développé au sein du projet DaRT)
Exemple : Gaspard Equational PA Fortran TLM PA
UML : un langage • UML n’est pas une méthode • UML est un langage de modélisation objet • UML a été adopté par beaucoup (toutes ?) de méthodes objet • UML est dans le domaine public c’est un standard de l’OMG
UML un langage pour • Visualiser • Chaque symbole graphique a une sémantique • Spécifier • De manière précise et complète, sans ambiguité • Construire • Aider à la génération automatique (beaucoup d’outils pour la génération SQL des relations à partir de classes) • Développement d’outils pour générer des SoCs à partir d’applications et d’architectures modélisées en UML • Documenter • Les différents diagrammes, notes, contraintes…
Les 9 diagrammes UML Diagrammes Cas d’utilisation Classes Etats-transitions Activités Composants Objets Séquences Collaboration Déploiement
Diagramme de composants • Principes : • modélisation du système sous forme de composants réutilisables ; • met en évidence les relations de dépendance entre composants. • Ces diagrammes décrivent l'architecture physique et statique d'une application en terme de modules : fichiers sources, librairies, exécutables, etc. • Les dépendances entre composants permettent notamment d'identifier les contraintes de compilation et de mettre en évidence la réutilisation de composants.
Pourquoi le diagramme de composants ? • La réutilisabilité est un facteur important pour la qualité d’un logiciel. • Une classe, de part sa faible granularité et ses connexions figées, ne favorise pas la réutilisabilité. • Pour faire face à ce problème : les composants.
La notion de composant • Un composant doit fournir un service bien précis. • Les fonctionnalités qu’il encapsule doivent être cohérentes entre elles et génériques. • Représenté par un classifier structuré, stéréotypé « component », comportant une ou plusieurs interfaces requises ou offertes. • Son comportement interne est masqué. • Pour pouvoir substituer un composant par un autre il suffit de respecter les interfaces requises et offertes.
La notion de port • Définition : Point de connexion entre un classifier et son environnement. • Graphiquement, un port est représenté par un carré sur la bordure du classifier. • On peut faire figurer le nom du port à proximité de sa représentation. • Généralement, un port est associé à une interface requise ou offerte.
Diagramme de déploiement • Décrit la disposition physique des ressources matérielles qui composent le système. • Montre la répartition des composants sur ces matériels. • Chaque ressource est matérialisée par un noeud. • Précise comment les composants sont répartis sur les noeuds. • Précise les connexions entre les composants ou les nœuds qui existent sous deux formes : spécification et instance.
Profil Objectif : spécialiser UML pour un domaine particulier
Principes Un profil permet d’adapter UML pour : • Préciser une terminologie propre à un domaine ou à une plateforme • Terminologie EJB : home interfaces, enterprise java beans, archives • Donner une syntaxe à des concepts qui n’en ont pas • Les actions, des nœuds de contrôle dans le domaine du temps réel • Donner une notation différente à des symboles existants • Une image d’ordinateur au lieu d’un nœud ordinaire pour représenter un ordinateur dans un réseau • Ajouter de la sémantique • Gestion des priorités à réception d’un signal, des timers • Ajouter des informations utiles à la transformation de modèles • Règles de transformations vers du code
Profil UML • Un profil UML permet de spécifier • la validation • la présentation • Un profil est composé de • stéréotypes • « tagged value » • contraintes
Les stéréotypes • Ajout de nouveaux éléments de modélisation qui peuvent être utilisés dans des domaines spécifiques • Les stéréotypes ne peuvent être utilisés que conformément à leur définition • Exemples : • <<interface>>, <<entity beans>>, <<ApplicationComponent>> • Tout concept UML (Classe, Attribut, Association, Use Case, Component, Part…) peut être stéréotypé
Les tagged values • Annotation des éléments de modélisation • Définition de propriétés additionnelles à certaines sortes d’élément • Peuvent être définies pour des éléments existants ou des stéréotypes • Virtualisées sous la forme : nom de la propriété, valeur • Exemples • {virtual}, {primary key} • Il est possible d’associer des tagged values à tout concept UML (Classe, Attribut, Association, Use Case, Component, Part…)
Les contraintes • Préciser les conditions d’emploi des éléments du modèle • Etendre la sémantique d’UML par l’ajout de nouvelles règles ou la modification de règles existantes • Peuvent être représentées en utilisant soit le langage naturel, soit OCL (Object Constraint Language)
Des profils standardisés • SysML, System Modelling Language • MARTE Modeling and Analysis of Real Time and Embedded systems • UML Profile for Schedulability, Performance and Time • UML Profile for System on a Chip • UML profile for Corba • UML Profile for Enterprise Application Integration • UML Profile for Enterprise Distributed Object Computing (EDOC) • …
Qu’est-ce qu’une méthode ? • Définition : « Une méthode est une approche permettant de développer un projet, basée sur une certaine manière de penser, constituée de règles, structurée d’une façon systématique dans les activités de développement correspondant aux produits de développement. » (Brikemper) • Une méthode donne donc les concepts pour décrire le produit et les règles de conduite méthodologiques pour réaliser un produit de qualité avec une efficacité raisonnable.
Principe d’une méthode • Deux parties : le produit et le processus (ou démarche) • Le produit est décrit par un ou plusieurs modèles dont les concepts et les relations entre ces concepts sont précisés dans un méta-modèle de produit • Un processus est décrit (quand il est formalisé) sous forme de modèle conformément à un méta-modèle
A quoi sert une méthode ? • Modéliser et construire des systèmes de manière fiable et reproductible • Une méthode définit • Des éléments de modélisation • Une représentation graphique • Du savoir-faire et des règles