Synchronisation entre les modèles et le code source

De RAD Studio
Aller à : navigation, rechercher

Remonter à Concepts de modélisation

Types de synchronisations

La Modélisation fournit différents types de synchronisations dans différents types de projets de modélisation :

  • Projets de conception
Dans un projet de conception, la Modélisation fournit la synchronisation entre l'arborescence de la vue Modèle et tous les types de diagrammes de la vue Diagramme.
  • Projets d'implémentation
Dans un projet d'implémentation, la Modélisation fournit la synchronisation permanente entre les différentes représentations de votre projet d'implémentation
  • Vue Modèle -- L'arborescence hiérarchique de tous les éléments du projet de modélisation.
  • Vue Diagramme -- Diagrammes de modélisation. Les diagrammes de classes sont synchronisés avec le code source.
  • Code source -- Code source Delphi des classes, interfaces et autres structures de programmation des projets d'implémentation.
Pour les diagrammes d'autres types que diagrammes de classes, la Modélisation fournit seulement la synchronisation entre l'arborescence de la vue Modèle et tous les types de diagrammes de la vue Diagramme (comme pour les projets de conception).


Synchronisation entre les vues de Modélisation

La Modélisation utilise plusieurs des fonctionnalités des vues de l'EDI pour gérer les modèles. Les principales vues sont les vues Modèle, Diagramme et Inspecteur d'objets. La Modélisation utilise ces vues en coopération fermée. Quand vous implémentez les modifications des éléments de modèle dans l'une de ces vues, la Modélisation synchronise immédiatement les autres vues afin de refléter ces modifications :

  • Vue Modèle
La vue Modèle présente la structure logique de vos projets dans une arborescence, par opposition à la vue, centrée sur les fichiers, du Gestionnaire de projets. Chaque projet d'un groupe de projets est un noeud de niveau supérieur sur l'arborescence de la vue Modèle. Imbriqués dans chaque noeud d'arborescence de projet, vous trouverez des noeuds de package UML. Vous pouvez développer un package UML pour découvrir les types (classes, interfaces, et ainsi de suite) et les diagrammes qui y sont déclarés.
  • Vue Diagramme
La Modélisation utilise la vue Diagramme pour présenter les diagrammes (notamment les diagrammes de classes) définis dans un modèle. Dans la vue Modèle, double-cliquez sur un noeud de diagramme -- le diagramme s'ouvre dans la vue Diagramme.
  • Inspecteur d'objets
La Modélisation utilise l'inspecteur d'objets pour afficher les propriétés d'un élément de modèle que vous sélectionnez dans la vue Modèle ou Diagramme.


Synchronisation entre le code source et les modèles UML

La synchronisation en temps réel dans un projet d'implémentation entre le modèle UML et le code source Delphi de ce projet est la fonctionnalité clé de la Modélisation.

La synchronisation du code source de la Modélisation fait référence aux capacités suivantes :

  • Visualisation du code source
La capacité à analyser votre code source Delphi et à mapper les déclarations de ce code sur les notations UML, puis à représenter ce mappage dans la vue graphique.
  • Génération du code source
La capacité inverse à générer le code source Delphi représentant votre modèle graphique.

La Modélisation mappe les constructions du code source (telles que les déclarations de classes et les implémentations d'interfaces) sur leurs équivalents UML, qui sont ensuite affichés sur les diagrammes de classes de la vue Diagramme et sur l'arborescence du projet de modélisation de la vue Modèle. Ainsi, la synchronisation du code source présente une vue graphique (l'arborescence des modèles et les diagrammes de classes) de votre code source, qui reflète directement le code source.

La synchronisation du code source fait référence aux fonctionnalités de Modélisation suivantes :

  • Quand vous activez le support de la modélisation pour un projet Delphi, la Modélisation analyse le code source existant du projet Delphi et le convertit en projet d'implémentation en générant les entités de modélisation appropriées. Les entités de modélisation générées incluent l'arborescence des modèles à gérer dans la vue Modèle et les diagrammes de classes à gérer dans la vue Diagramme.
  • Quand vous apportez des modifications à votre code source Delphi dans l'éditeur de code, la Modélisation met à jour immédiatement et automatiquement les diagrammes de classes appropriés dans la vue Diagramme et les éléments appropriés de l'arborescence des modèles dans la vue Modèle. Le diagramme et l'arborescence des modèles sont "dynamiques", en ce sens qu'ils reflètent toujours l'état en cours du code source.
ATTENTION  ! Sachez que certaines modifications directes du code source Delphi dans l'éditeur de code, telles que le renommage d'une classe, ne peuvent pas être correctement suivies par la Modélisation. Utilisez les opérations de Refactoring à cet effet.
  • La Modélisation fournit aussi la capacité à concevoir votre application sur la surface du diagramme.
La Modélisation mappe immédiatement les modifications implémentées dans l'arborescence des modèles ou les diagrammes de classes, dans le code source Delphi existant :
  • Quand vous créez un nouveau diagramme de classes ou modifiez un diagramme de classes existant, la Modélisation met à jour immédiatement le code source Delphi correspondant afin de le synchroniser avec le diagramme de classes.
  • Quand vous apportez directement des modifications au diagramme de classes dans la vue Diagramme ou dans l'arborescence de la vue Modèle, la Modélisation reflète immédiatement ces modifications dans votre code source Delphi.
La modification d'un nom, l'ajout d'un membre, la création d'un nouveau lien ou l'application d'un pattern sur la surface du diagramme applique les modifications correspondantes dans le code source réel.


Diagrammes de classes

Les diagrammes de classes représentent le type des diagrammes à structure statique UML. Une vue structurelle de votre projet se concentre sur les packages UML, les types de données tels que les classes et les interfaces, et leurs attributs, propriétés et opérations. Les diagrammes de classes présentent aussi graphiquement les relations qui existent entre ces entités. Les diagrammes de classes présentent les relations logiques (ou la structure statique en termes UML) des classes, interfaces, packages et autres entités définies dans votre projet de modélisation.

La Modélisation synchronise immédiatement toutes les modifications entre les éléments des diagrammes de classes, les éléments correspondants de l'arborescence des modèles et le code source Delphi correspondant.

Héritage et implémentation d'interface

Généralisation est le terme UML désignant la relation établie quand une classe hérite d'une superclasse. Quand la Modélisation voit une relation d'héritage dans votre code source, elle crée un lien de généralisation dans le noeud de la classe enfant dans l'arborescence de la vue Modèle. Sur le diagramme de classes de la vue Diagramme, le lien de généralisation est présenté en utilisant la notation UML standard, une ligne continue avec une tête de flèche creuse pointant sur la superclasse et démarrant par la classe enfant.

Implémentation d'interface est le terme UML pour une implémentation d'interface par une classe. Comme pour l'héritage, la Modélisation crée un lien d'implémentation quand elle voit une déclaration de classe implémentant une interface. Dans l'arborescence de la vue Modèle, le lien d'implémentation apparaît dans le noeud de la classe implémentant l'interface. Sur le diagramme de classes, le lien d'implémentation apparaît sous la forme d'une ligne de pointillés avec une tête de flèche creuse pointant sur l'interface et démarrant par la classe. Il y aura un tel lien d'implémentation pour chaque interface implémentée par la classe.

Associations

En UML, une association est un lien de navigation produit quand une classe contient une référence à une autre classe (par exemple, sous la forme d'un attribut ou d'une propriété). La Modélisation crée un lien d'association sur un diagramme de classes quand une classe contient un attribut ou une propriété qui est d'un type de données non primitif. Sur un diagramme de classes, le lien d'association est représenté sous la forme d'une ligne continue entre la classe contenant le membre non primitif et le type de données (classe) de ce membre.

Membres d'une classe : attributs, méthodes, propriétés et types imbriqués

La Modélisation peut aussi mapper les déclarations des membres de classe et d'interface sur leurs équivalents UML. Dans les éléments des diagrammes de classes de la vue Diagramme, les membres sont groupés en compartiments distincts :

  • Champs -- Contient les déclarations des champs. Le type et l'affectation d'une valeur par défaut facultative sont présentés sur un diagramme.
  • Méthodes -- Contient les déclarations des méthodes. La visibilité, la portée et la valeur de retour sont indiquées.
  • Propriétés -- Contient les déclarations des propriétés de Delphi. Les types des propriétés sont présentés.
  • Classes -- Contient les déclarations des classes imbriquées.
Elles peuvent être utilisées dans d'autres compartiments, tels que les interfaces. Les types disponibles de ces compartiments dépendent du type du projet de modélisation (projets de conception, projets d'implémentation Delphi).

La syntaxe UML standard est utilisée pour afficher les déclarations UML des attributs, méthodes et propriétés. Chacune des quatre catégories peut être séparément développée ou réduite pour afficher ou masquer les membres qu'elle contient.

Synchronisation des propriétés implémentées en tant que commentaires de documentation

Certaines propriétés définies pour les membres et les éléments de modèle dans l'inspecteur d'objets sont présentées dans le code source sous la forme de commentaires de documentation spécifiques au langage. En particulier, ces propriétés sont : Author, Since, Version, Stereotype, Associates, et ainsi de suite.

Par exemple, si vous définissez que la propriété Author a la valeur Embarcadero, la Modélisation génèrera alors dans votre code source Delphi le commentaire de documentation suivant :

 /// <author>Embarcadero</author> 

Quand la Modélisation rencontre de tels commentaires dans le code source, elle applique l'ingénierie inverse sur ces commentaires afin d'obtenir les propriétés appropriées des éléments de modèle.

Commandes de synchronisation explicite

Vous pouvez utiliser les commandes suivantes pour imposer explicitement la synchronisation :

  • Vue Modèle -- Vous pouvez utiliser :
  • La commande Recharger pour actualiser explicitement le modèle UML (pour recharger le modèle entier) depuis le code source. Elle est disponible sur le noeud de projet racine pour les projets d'implémentation.
  • Le bouton Actualiser la vue Modèle de la barre d'outils pour actualiser l'arborescence des modèles.
  • Vue Diagramme -- Vous pouvez utiliser la commande Mettre à jour (ou appuyer sur F5) pour mettre à jour le diagramme.


Voir aussi