Diagrammes UML2 et ER. UML : de la théorie à la pratique Représentation des solutions de conception sous forme de diagrammes uml

11.1. Structure langage unifié la modélisation

Langage de modélisation unifié (UML) est actuellement la norme de facto pour décrire (documenter) les résultats de la conception et du développement de systèmes orientés objet. Le développement d'UML a commencé en 1994 par Grady Booch et James Rumbaugh chez Rational Software. À l'automne 1995, Ivar Jakobson les rejoint et en octobre de la même année, une version préliminaire de la méthode unifiée 0.8 est publiée. Depuis, plusieurs versions de la spécification UML ont été publiées, dont deux ont le statut de norme internationale :

UML 1.4.2 - "ISO/CEI 19501:2005. Informatique. Traitement de la distribution ouverte. Langage de modélisation unifié (UML). Version 1.4.2" (Eng. "Technologies de l'information. Traitement distribué ouvert. Langage de modélisation unifié (UML). Version 1.4.2");

UML 2.4.1 - "ISO / IEC 19505-1: 2012. Technologies de l'information. Langage de modélisation de groupe de gestion d'objets unifié (OMG UML). Partie 1. Infrastructure" (Eng. "Technologies de l'information - Langage de modélisation unifié du groupe de gestion d'objets (OMG UML) - Partie 1 : Infrastructure ») et « ISO/CEI 19505-2 : 2012. Technologies de l'information. Langage de modélisation de groupe de gestion d'objets unifié (OMG UML). Partie 2. Superstructure » (Anglais « Technologies de l'information - Groupe de gestion d'objets Unified Modeling Langage (OMG UML) - Partie 2 : Superstructure").

La dernière spécification de langue officielle peut être consultée sur www.omg.org.

La structure générale d'UML est présentée dans la figure suivante.

Riz. 11.1. Structure UML

11.2. Sémantique et syntaxe d'UML

Sémantique - une section de linguistique qui étudie le sens des unités d'une langue, principalement ses mots et ses phrases.

Syntaxe - façons de relier les mots et leurs formes en phrases et en phrases, de relier les phrases en phrases complexes, de créer des déclarations dans le cadre du texte.

Ainsi, par rapport à UML, la sémantique et la syntaxe déterminent le style de présentation (modèles de construction), qui combine les langages naturels et formels pour représenter les concepts de base (éléments du modèle) et les mécanismes de leur extension.

11.3. Notation UML

La notation est une interprétation graphique de la sémantique pour sa représentation visuelle.

L'UML définit trois type d'entité :

Structurel - une abstraction qui est le reflet d'un objet conceptuel ou physique ;

Regroupement - un élément utilisé pour une association sémantique d'éléments de diagramme ;

Explicative (annotation) - un commentaire à un élément de diagramme.

Le tableau suivant fournit une brève description des principales entités utilisées en notation graphique et des principaux moyens de les afficher.

Tableau 11.1. Essences

Taper Nom La désignation Définition (sémantique)
De construction
(classe)
Un ensemble d'objets qui partagent une structure et un comportement communs

(objet)
Une abstraction d'une entité réelle ou imaginaire avec des limites conceptuelles, une individualité (identité), un état et un comportement bien définis. Du point de vue UML, les objets sont des instances de classe (instances d'entité)

(acteur de cinéma)

Ingénieur
services de chemin
Une entité externe au système qui interagit avec et utilise le système Fonctionnalité pour atteindre certains objectifs ou résoudre des problèmes particuliers. Ainsi, un acteur est une source externe ou un récepteur d'informations.

(cas d'utilisation)
Description des actions réalisées par le système, qui aboutissent à un résultat significatif pour l'acteur

(Etat)
Description du moment dans la vie d'une entité où elle satisfait à une condition, exécute une activité ou attend qu'un événement se produise.
La coopération
(collaboration)
Description d'un ensemble d'instances d'acteurs, d'objets et de leur interaction dans le processus de résolution d'un certain problème

(composant)
La partie physique du système (fichier), y compris les modules système qui fournissent la mise en œuvre d'un ensemble cohérent d'interfaces

(interface)

iCalcul
Un ensemble d'opérations qui définit un service (ensemble de services) fourni par une classe ou un composant

(nœud)
La partie physique du système (ordinateur, imprimante, etc.) qui fournit des ressources pour résoudre un problème
Regroupement
(emballer)
Mécanisme général de regroupement d'éléments.
Contrairement à un composant, un package est un concept purement conceptuel (abstrait). Les cas particuliers d'un package sont le système et le modèle

(fragment)
Zone d'interaction spécifique des instances d'acteur et d'objet

(partition d'activité)
Un groupe d'opérations (domaine de responsabilité) effectuées par une seule entité (acteur, objet, composant, nœud, etc.)

(région d'activité interruptible)
Ensemble d'opérations dont la séquence normale d'exécution peut être interrompue à la suite d'une situation inhabituelle
explicatif Noter
(commenter)
Commentaire d'élément. Attaché à l'élément commenté par une ligne pointillée

Certaines sources, notamment [ , ], distinguent également des entités comportementales interactions et machines d'état, mais d'un point de vue logique, ils doivent être classés comme des diagrammes.

Certaines des entités ci-dessus selon les impliquent Description détaillée sur les diagrammes de décomposition. Sur le diagramme de niveau supérieur, ils sont signalés par une icône ou une étiquette spéciale.

Le tableau suivant décrit chaque type rapports UML utilisé dans les diagrammes pour indiquer les relations entre les entités.

Tableau 11.3. Rapports

Nom La désignation Définition (sémantique)
Association Une relation qui décrit une relation significative entre deux ou plusieurs entités. Plus Forme générale rapports
Agrégation Un sous-type d'une association qui décrit une relation « partie » – « tout », dans laquelle la « partie » peut exister séparément du « tout ». Le losange est indiqué du côté "tout". Une relation est spécifiée uniquement entre des entités du même type
Composition Une sous-espèce d'agrégation dans laquelle les "parties" ne peuvent pas exister séparément du "tout". En règle générale, les "parties" sont créées et détruites simultanément avec le "tout"
Dépendance Une relation entre deux entités dans laquelle un changement dans une entité (l'indépendante) peut affecter l'état ou le comportement de l'autre entité (la dépendante). Une entité indépendante est indiquée à côté de la flèche
Généralisation Relation entre une entité généralisée (ancêtre, parent) et une entité spécialisée (enfant, fille). Le triangle est indiqué du côté du parent. Une relation est spécifiée uniquement entre des entités du même type
La concrétisation Relation entre entités dans laquelle une entité spécifie une action qu'une autre entité s'engage à effectuer. Les relations sont utilisées dans deux cas : entre interfaces et classes (ou composants), entre cas d'utilisation et collaborations. Le côté de la flèche indique l'entité qui définit l'action (interface ou cas d'utilisation)

Pour l'association, l'agrégation et la composition, vous pouvez spécifier multiplicité (multiplicité anglaise), qui caractérise le nombre total d'instances d'entités participant à la relation. En règle générale, il est indiqué de chaque côté de la relation près de l'entité correspondante. La multiplicité peut être spécifiée des manières suivantes :

- * - n'importe quel nombre d'exemplaires, y compris aucun ;

Entier non négatif - la multiplicité est strictement fixe et égale au nombre spécifié (par exemple : 1, 2 ou 5) ;

Plage d'entiers non négatifs "premier nombre.. deuxième nombre" (par exemple : 1..5, 2..10 ou 0..5) ;

Une plage de nombres allant d'une valeur initiale spécifique à un "premier nombre..*" final arbitraire (par exemple : 1..*, 5..* ou 0..*) ;

Enumération d'entiers non négatifs et de plages séparées par des virgules (par exemple : 1, 3..5, 10, 15..*).

Si la multiplicité n'est pas spécifiée, sa valeur est supposée être 1. La multiplicité des instances d'entité impliquées dans la dépendance, la généralisation et l'implémentation est toujours supposée être 1.

Le tableau suivant fournit une description mécanismes d'expansion utilisé pour affiner la sémantique des entités et des relations. En général, le mécanisme d'expansion est une chaîne de texte entre parenthèses ou guillemets.

Tableau 11.4. Mécanismes d'extension

Nom La désignation Définition (sémantique)
Stéréotype
(stéréotype)
« » Une désignation qui spécifie la sémantique de l'élément de notation (par exemple : une dépendance avec le stéréotype "include" est considérée comme une relation d'inclusion, et une classe avec le stéréotype "limite" est une classe limite)
état de garde
(condition de garde)
Condition booléenne (par exemple : ou [identification effectuée])
Limitation
(contrainte)
{ } Une règle qui restreint la sémantique d'un élément de modèle (par exemple, (temps d'exécution inférieur à 10 ms))
Valeur marquée
(valeur taguée)
{ } Une propriété d'élément de notation nouvelle ou qualificative (par exemple : (version = 3.2))

Outre les stéréotypes spécifiés sous forme de chaîne de texte entre guillemets, les stéréotypes graphiques peuvent être utilisés dans les graphiques. La figure suivante montre des exemples de mappage standard et de stéréotype.

a) désignation standard b) désignation standard
avec stéréotype de texte
c) stéréotype graphique

Riz. 11.2. Exemples de mappage de classe standard et stéréotypé

Diagramme est un groupement d'éléments de notation pour afficher certains aspects du développement Système d'Information. Les diagrammes sont généralement un graphe connexe dans lequel les entités sont des sommets et les relations sont des arcs. Le tableau suivant donne une brève description de Diagrammes UML.

Tableau 11.5. Diagrammes

Diagramme But
selon le degré d'implantation physique en affichant la dynamique par aspect affiché

(cas d'utilisation)
Affiche les fonctions du système, l'interaction entre les acteurs et les fonctions logique statique fonctionnel

(classe)
Affiche un ensemble de classes, d'interfaces et de relations entre elles Booléen ou
physique
statique Informations fonctionnelles

(emballer)
Affiche un ensemble de packages et leurs relations Booléen ou
physique
statique Composant
comportement
(comportement)

(ordinateur d'état)
Affiche les états de l'entité et les transitions entre eux au cours de son cycle de vie logique Dynamique comportemental

(activité)
Affiche les processus métier dans le système (description des algorithmes de comportement)
Interactions
(interaction)

(séquence)
Affiche la séquence de message passant entre les objets et les acteurs

(la communication)
Similaire à un diagramme de séquence, mais l'accent est mis sur la structure de l'interaction entre les objets
Implémentations
(la mise en oeuvre)

(composant)
Affiche les composants du système (programmes, bibliothèques, tables, etc.) et les liens entre eux Physique statique Composant

(déploiement)
Affiche le placement des composants par nœuds de réseau, ainsi que sa configuration

La norme UML 2.x définit également des diagrammes supplémentaires hautement spécialisés :

Diagramme d'objets (diagramme d'objets) - similaire, mais les objets sont affichés à la place des classes ;

Chronogramme - décrit l'état de l'objet au fil du temps ;

Composite schéma structurel(diagramme de structure composite) - décrit les ports (y compris les interfaces) de la classe pour l'interaction avec d'autres classes ;

Diagramme de profil (diagramme de profil) - similaire à la description des classes qu'ils contiennent;

Diagramme d'aperçu des interactions - similaire, mais avec des fragments d'interaction cachés (fragments avec une étiquette de référence). Il s'agit d'un contexte (conceptuel) dont les éléments seront précisés sur des schémas de décomposition séparés.

Afin d'élargir la représentation conceptuelle de l'architecture interne du système, la majeure partie de la construction permet l'utilisation de stéréotypes graphiques bien établis pour le soi-disant. Un tel diagramme est appelé 1 , mais n'appartient pas à la liste des diagrammes définis par la norme UML.

Lors du développement d'un modèle de système séparé, plusieurs types de diagrammes sont créés. De plus, lors du développement d'un modèle d'un système complexe, en règle générale, plusieurs diagrammes du même type sont construits. Dans le même temps, vous n'avez pas besoin de créer des vues de graphique distinctes si vous n'en avez pas besoin. Par exemple, les diagrammes et sont interchangeables ; ils sont construits uniquement pour des objets au comportement complexe. Le tableau suivant fournit des recommandations sur la nécessité de développer (affiner) des diagrammes pour les modèles de système.

Tableau 11.6. Liaison de modèles et de diagrammes

Le tableau ci-dessus ne montre pas le modèle de test, car dans le cadre de sa construction, les diagrammes ne sont pas développés, mais sont vérifiés (testés) pour leur exhaustivité et leur cohérence.

Une partie des diagrammes après leur construction nécessite un développement et un raffinement dans le cadre du développement du modèle suivant (processus technologique). Ainsi, par exemple, doit être clarifié lors du développement. dans les modèles.

4. Définissez le terme "".

10.4. SCHÉMA UML

10.4.1. Types de diagrammes UML visuels

UML permet de créer plusieurs types de diagrammes visuels :

Utiliser des diagrammes de cas ;

diagrammes de séquence ;

Cartes coopératives ;

diagrammes de classes ;

diagrammes d'état ;

Schémas des composants ;

Diagrammes de placement.

Les diagrammes illustrent divers aspects du système. Par exemple, un diagramme coopératif montre comment les objets doivent interagir pour implémenter certaines fonctionnalités du système. Chaque graphique a son propre objectif.

10.4.2. Diagrammes de cas d'utilisation

Les diagrammes de cas d'utilisation décrivent l'interaction entre les cas d'utilisation, représentant les fonctions d'un système, et les acteurs, représentant les personnes ou les systèmes qui reçoivent ou transmettent des informations vers et depuis le système. ce système. Un exemple de diagramme de cas d'utilisation pour un guichet automatique bancaire (GAB) est illustré à la figure 1. 10.1.

Riz. 10.1. Diagramme de cas d'utilisation

Le diagramme représente l'interaction entre les cas d'utilisation et les acteurs. Il reflète les exigences du système du point de vue de l'utilisateur. Ainsi, les cas d'utilisation sont des fonctions exécutées par le système, et les acteurs sont des parties prenantes par rapport à système créé. Les diagrammes montrent quels acteurs initient les cas d'utilisation. Ils indiquent également quand l'acteur reçoit des informations du cas d'utilisation. Essentiellement, un diagramme de cas d'utilisation peut illustrer les exigences d'un système. Dans notre exemple, le client de la banque initie différents cas d'utilisation : "Retirer de l'argent du compte", "Transférer de l'argent", "Déposer de l'argent sur le compte", "Afficher le solde", "Modifier le numéro d'identification", "Effectuer un paiement". Le caissier de banque peut initier le cas d'utilisation "Modifier le numéro d'identification". À partir du cas d'utilisation "Effectuer un paiement", il y a une flèche vers le système de crédit. Les acteurs peuvent également être des systèmes externes, dans ce cas le système de crédit est présenté exactement comme un acteur - il est externe au système ATM. Une flèche pointant du cas d'utilisation vers l'acteur indique que le cas d'utilisation fournit des informations à l'acteur. Dans ce cas, le cas d'utilisation Effectuer un paiement fournit au système de crédit des informations de paiement par carte de crédit.

Vous pouvez obtenir beaucoup d'informations sur un système à partir de diagrammes de cas d'utilisation. Ce type de diagramme décrit la fonctionnalité globale du système. Les utilisateurs, les chefs de projet, les analystes, les développeurs, les spécialistes de l'assurance qualité et toute personne intéressée par le système dans son ensemble peuvent comprendre ce que le système doit faire en examinant les diagrammes de cas d'utilisation.

10.4.3. Diagrammes de séquence

Les diagrammes de séquence représentent le flux d'événements qui se produisent dans un cas d'utilisation. Par exemple, le cas d'utilisation "Retirer de l'argent" prévoit plusieurs séquences possibles : retirer de l'argent, essayer de retirer de l'argent lorsqu'il n'y a pas assez d'argent sur le compte, essayer de retirer de l'argent en utilisant un numéro d'identification incorrect, et quelques autres. Un scénario normal pour retirer 20 $ d'un compte (en l'absence de problèmes tels qu'un numéro d'identification incorrect ou une insuffisance d'argent sur le compte) est illustré à la fig. 10.2.

Illustration 10.2. Diagramme de séquence de retrait de 20 $ du client Joe

Le haut du diagramme montre tous les acteurs et objets requis par le système pour exécuter le cas d'utilisation de retrait d'argent. Les flèches correspondent aux messages passés entre l'acteur et l'objet ou entre les objets pour exécuter les fonctions requises. Il convient également de noter que le diagramme de séquence montre des objets, pas des classes. Les classes sont des types d'objets. Les objets sont concrets ; au lieu d'une classe Client le diagramme de séquence représente un client particulier, Joe.

Le cas d'utilisation commence lorsque le client insère sa carte dans le lecteur - cet objet est affiché dans la case en haut du schéma. Il lit le numéro de carte, ouvre l'objet de compte Joe et initialise l'écran ATM. L'écran demande à Joe son numéro d'immatriculation. Le client entre le numéro 1234. L'écran vérifie le numéro sur l'objet de compte Joe et constate qu'il est correct. L'écran présente alors à Joe un menu parmi lequel choisir, et il sélectionne "Retirer". L'écran demande combien il veut retirer et Joe entre 20 $. L'écran retire de l'argent du compte. Ce faisant, il lance une série de processus exécutés par l'objet Joe Account. En même temps, une vérification est faite que le compte contient au moins 20 $ et le montant requis est déduit du compte. La caisse enregistreuse reçoit alors l'instruction de "distribuer un chèque et 20 $ en espèces". Enfin, le même objet "Compte de Joe" demande au lecteur de carte de rendre la carte.

Ainsi, ce diagramme de séquence illustre la séquence d'actions qui implémentent le cas d'utilisation "Retirer de l'argent" en utilisant l'exemple spécifique du client Joe retirant 20 $. En regardant ce diagramme, les utilisateurs se familiarisent avec les spécificités de leur travail. Les analystes voient la séquence (flux) des actions, les développeurs voient les objets à créer et leurs opérations. Les professionnels du contrôle de la qualité comprendront les détails du processus et seront en mesure de développer des tests pour les vérifier. Ainsi, les diagrammes de séquence sont utiles à tous les participants au projet.

10.4.4. graphiques coopératifs

Les diagrammes coopératifs affichent les mêmes informations que les diagrammes de séquence. Cependant, ils le font différemment et à d'autres fins. Montré sur la fig. 10.2 le diagramme de séquence est montré dans la fig. 10.3 sous la forme d'un diagramme coopératif.

Comme précédemment, les objets sont représentés sous forme de rectangles et les acteurs sous forme de figures. Si le diagramme de séquence montre l'interaction entre les acteurs et les objets dans le temps, alors il n'y a pas de connexion dans le temps dans le diagramme coopératif. Ainsi, on peut voir que le lecteur de carte ordonne au "compte de Joe" de s'ouvrir, et que le "compte de Joe" amène le lecteur de carte à rendre la carte au propriétaire. Les objets en interaction directe sont reliés par des lignes. Si, par exemple, le lecteur de carte communique directement avec l'écran du GAB, une ligne doit être tracée entre eux. L'absence de ligne signifie qu'il n'y a pas de communication directe entre les objets.

Riz. 10.3. Diagramme coopératif décrivant le processus de retrait d'argent d'un compte

Ainsi, le diagramme coopératif affiche les mêmes informations que le diagramme de séquence, mais il est nécessaire à d'autres fins. Les spécialistes du contrôle qualité et les architectes de systèmes seront en mesure de comprendre la répartition des processus entre les objets. Disons qu'une sorte de diagramme coopératif ressemble à une étoile, où plusieurs objets sont associés à un objet central. L'architecte du système peut conclure que le système est trop dépendant d'une installation centrale et doit être repensé pour répartir les processus plus uniformément. Dans un diagramme de séquence, ce type d'interaction serait difficile à voir.

10.4.5. diagrammes de classes

Les diagrammes de classes reflètent l'interaction entre les classes d'un système. Par exemple, "le compte de Joe" est un objet. Le type d'un tel objet peut être considéré comme un compte en général, c'est-à-dire que "Compte" est une classe. Les classes contiennent des données et des comportements (actions) qui affectent ces données. Ainsi, la classe Account contient le numéro d'identification du client et les actions qui le vérifient. Dans un diagramme de classes, une classe est créée pour chaque type d'objet à partir de diagrammes de séquence ou de diagrammes coopératifs. Le diagramme de classes pour le cas d'utilisation "Retirer de l'argent" est illustré à la figure 1. 10.4.

Le diagramme montre les relations entre les classes qui implémentent le cas d'utilisation "Retirer de l'argent". Quatre classes sont impliquées dans ce processus : Card Reader (lecteur de carte), Account (compte), ATM (écran ATM) et Cash Dispenser (caisse enregistreuse). Chaque classe du diagramme de classes est représentée par un rectangle divisé en trois parties. La première partie est le nom de la classe, la seconde partie est le nom de la classe. les attributs. Un attribut est une information qui caractérise une classe. Par exemple, la classe Account (compte) a trois attributs : Account Number (numéro de compte), PIN (numéro d'identification) et Balance (solde). La dernière partie contient les opérations de la classe qui la reflètent. comportement(actions réalisées par la classe). Les lignes reliant les classes montrent l'interaction entre les classes.

Riz. 10.4. diagramme de classe

Les développeurs utilisent des diagrammes de classes pour réellement créer des classes. Des outils comme Rose génèrent une base de code de classe que les programmeurs remplissent avec des détails dans la langue de leur choix. Avec ces diagrammes, les analystes peuvent montrer les détails d'un système et les architectes peuvent comprendre sa conception. Si, par exemple, une classe porte trop de charge fonctionnelle, cela sera visible sur le diagramme de classes et l'architecte pourra le redistribuer entre d'autres classes. Le diagramme peut également être utilisé pour identifier les cas où aucune relation n'a été définie entre les classes communicantes. Des diagrammes de classes doivent être créés pour montrer les classes en interaction dans chaque cas d'utilisation. Vous pouvez également construire plus schémas généraux couvrant tous les systèmes ou sous-systèmes.

10.4.6. Diagrammes d'état

Les diagrammes d'état sont conçus pour modéliser les différents états dans lesquels un objet peut se trouver. Alors qu'un diagramme de classes montre une image statique des classes et de leurs relations, les diagrammes d'état sont utilisés pour décrire la dynamique du comportement d'un système.

Les diagrammes d'état représentent le comportement d'un objet. Ainsi, un compte bancaire peut avoir plusieurs états différents. Il peut être ouvert, fermé ou le crédit sur celui-ci peut être dépassé. Le comportement du compte change en fonction de l'état dans lequel il se trouve. Le diagramme d'état montre exactement cette information. Sur la fig. 10.5 est un exemple de diagramme d'état pour un compte bancaire.

Riz. 10.5. Diagramme d'état pour la classe Account

Ce diagramme montre les états possibles du compte, ainsi que le processus de transition du compte d'un état à un autre. Par exemple, si le client demande la fermeture d'un compte ouvert, ce dernier passe à l'état « Fermé ». L'exigence du client s'appelle un événement, ce sont les événements qui provoquent le passage d'un état à un autre.

Lorsqu'un client retire de l'argent d'un compte ouvert, le compte peut entrer dans un état de "surcrédit". Cela ne se produit que si le solde du compte est inférieur à zéro, ce qui est représenté par la condition [solde négatif] dans notre diagramme. enfermé dans crochets état détermine quand une transition d'un état à un autre peut ou non se produire.

Il y a deux états spéciaux dans le diagramme - initial et final. L'état initial est mis en évidence par un point noir : il correspond à l'état de l'objet au moment de sa création. L'état final est indiqué par un point noir dans un cercle blanc : il correspond à l'état de l'objet immédiatement avant sa destruction. Un diagramme d'états peut avoir un et un seul état initial. En même temps, il peut y avoir autant d'états finaux que nécessaire, ou il peut n'y en avoir aucun.

Lorsqu'un objet est dans un état particulier, certains processus peuvent être exécutés. Dans notre exemple, lorsque le crédit est dépassé, un message correspondant est envoyé au client. Les processus qui se produisent lorsqu'un objet est dans un état particulier sont appelés Actions.

Les diagrammes d'états-transitions n'ont pas besoin d'être créés pour chaque classe, ils ne sont utilisés que dans des cas très complexes. Si un objet de classe peut exister dans plusieurs états et se comporter différemment dans chacun d'eux, il aurait probablement besoin d'un tel diagramme. Cependant, dans de nombreux projets, ils ne sont pas utilisés du tout. Si des diagrammes d'états ont été construits, les développeurs peuvent les utiliser lors de la création de classes.

Les diagrammes d'états sont nécessaires principalement à des fins de documentation.

10.4.7. Diagrammes de composants

Les diagrammes de composants montrent à quoi ressemble le modèle au niveau physique. Il montre les composants Logiciel votre système et les connexions entre eux. Il existe deux types de composants : les composants exécutables et les bibliothèques de code.

Sur la fig. 10.6 montre l'un des schémas des composants du système ATM. Ce schéma montre les composants d'un client de système ATM. Dans ce cas, l'équipe de développement a décidé de construire le système en utilisant le langage C++. Chaque classe a son propre fichier d'en-tête et son propre fichier d'extension. CPP afin que chaque classe soit convertie en ses propres composants dans le diagramme. La composante sombre sélectionnée est appelée spécification de paquet et correspond au fichier corps de la classe ATM C++ (fichier .cpp). Un composant non sélectionné est également appelé une spécification de package, mais correspond à un fichier d'en-tête de classe de langage C++ (extension de fichier .h). Composant ATM. exe est une spécification de tâche et représente le flux de traitement de l'information. Dans ce cas, le thread de traitement est le programme exécutable.

Les composants sont reliés par une ligne pointillée montrant les dépendances entre eux. Un système peut avoir plusieurs diagrammes de composants en fonction du nombre de sous-systèmes ou fichiers exécutables. Chaque sous-système est un ensemble de composants.

Les diagrammes de composants sont utilisés par les participants au projet qui sont responsables de la compilation du système. Le diagramme des composants donne une idée de l'ordre dans lequel les composants doivent être compilés, ainsi que des composants exécutables qui seront créés par le système. Le diagramme montre la correspondance des classes aux composants implémentés. Il est donc nécessaire là où la génération de code commence.

Riz. 10.6. Diagramme des composants

10.4.8. Diagrammes de placement

Les diagrammes d'emplacement montrent l'emplacement physique des divers composants d'un système sur un réseau. Dans notre exemple, le système ATM se compose d'un grand nombre de sous-systèmes s'exécutant sur des dispositifs physiques ou des nœuds distincts. Le schéma de placement du système ATM est illustré à la fig. 10.7.

À partir de ce diagramme, vous pouvez en savoir plus sur la disposition physique du système. Les programmes clients ATM seront exécutés à plusieurs endroits sur différents sites. Grâce à des réseaux fermés, les clients communiqueront avec le serveur ATM régional. Il exécutera le logiciel du serveur ATM. A son tour, à travers réseau local le serveur régional interagira avec le serveur de base de données bancaire exécutant Oracle. Enfin, une imprimante est connectée au serveur ATM régional.

Ainsi, ce diagramme montre la disposition physique du système. Par exemple, notre système ATM suit une architecture à trois niveaux où le premier niveau héberge la base de données, le deuxième niveau héberge le serveur régional et le troisième niveau héberge le client.

10.7. Diagramme d'emplacement

Le schéma de disposition est utilisé par le chef de projet, les utilisateurs, l'architecte système et le personnel d'exploitation pour déterminer la disposition physique du système et l'emplacement de ses sous-systèmes individuels. Le chef de projet expliquera aux utilisateurs à quoi ressemblera le produit fini. Le personnel opérationnel sera en mesure de planifier les travaux d'installation du système.

Du livre Microsoft Office auteur Léontiev Vitaly Petrovitch

Diagrammes Les chiffres du tableau ne vous permettent pas toujours de vous faire une idée complète, même s'ils sont triés de la manière la plus pratique pour vous. À l'aide des modèles de graphique disponibles dans Microsoft Excel, vous pouvez obtenir une image visuelle des données de votre tableau sans

Extrait du livre Computer at 100. À partir de Windows Vista l'auteur Zozulya Yuri

Diagrammes Les diagrammes sont utilisés pour présenter des données tabulaires sous forme graphique, ce qui peut améliorer considérablement la visibilité des informations, montrer le rapport de divers paramètres ou la dynamique de leur évolution. Des outils sont utilisés pour insérer des graphiques dans Word

Extrait du livre Travail de bureau efficace auteur Ptachinski Vladimir Sergueïevitch

Graphiques La caractéristique la plus visuelle d'Excel est la présentation des résultats des calculs ou des données accumulées sous forme de graphiques (diagrammes) : parfois, les nombres les plus impressionnants ne sont pas en mesure de convaincre de la même manière que de simples graphiques peuvent le faire. Excel a

À partir d'un classeur Excel. cours multimédia l'auteur Medinov Oleg

Chapitre 8 Les diagrammes souvent Programme Excel sont utilisés pour créer des documents représentant divers rapports statistiques et analytiques. Il peut s'agir de rapports de vente, de tableaux de mesures de température de l'air, de données d'enquêtes sociologiques, etc. Les chiffres ne sont pas toujours

Extrait du livre Word 2007. Tutoriel populaire l'auteur Krainsky I

Construire un graphique Pour le premier exemple, vous devrez créer le tableau illustré à la fig. 8.1. Riz. 8.1. Tableau de mesure de la température Nous allons construire un tableau de température simple basé sur les données de ce tableau.1. Mettez en surbrillance la plage remplie dans le tableau.2. Aller à

Extrait du livre Tutoriel informatique auteur Kolisnichenko Denis Nikolaïevitch

6.6. Graphiques sauf fichiers graphiques, dans Documents Word des graphiques peuvent être insérés. À l'aide de graphiques, vous pouvez visualiser des données numériques, par exemple, suivre l'évolution des données, voir l'évolution d'un projet en dynamique. Les graphiques se ressemblent

Extrait du livre Analyse et conception orientées objet avec des exemples d'applications C++ par Butch Gradi

14.9. Diagrammes Peut-être est-il temps de transformer des nombres secs en graphiques, rendant notre tableau plus beau et plus informatif ? Les graphiques sont utilisés pour cela. Dites ce que vous voulez, mais le diagramme est mieux perçu que le tableau. Pour construire un diagramme, vous devez sélectionner les valeurs par lesquelles

Extrait du livre Technologies de programmation l'auteur Kamaev V A

5.2. Diagrammes de classes L'essentiel : les classes et leurs relations Un diagramme de classes montre les classes et leurs relations, représentant ainsi l'aspect logique d'un projet. Un diagramme de classes unique représente une vue particulière de la structure de classes. Au stade de l'analyse, nous

Extrait du livre Modélisation des processus métier avec BPwin 4.0 auteur Maklakov Sergueï Vladimirovitch

5.4. Les diagrammes d'objets sont essentiels : les objets et leurs relations Un diagramme d'objets montre les objets existants et leurs relations dans la conception logique d'un système. En d'autres termes, un diagramme d'objets est un instantané du flux d'événements dans une certaine configuration.

Extrait du livre OrCAD PSpice. Une analyse circuits électriques par Keown J.

5.7. Diagrammes de processus. Essentiel : processeurs, dispositifs et connexions Les diagrammes de processus sont utilisés pour montrer la distribution des processus entre les processeurs dans la conception physique d'un système. Un diagramme de processus séparé montre une vue de la structure du processus

Du livre VBA pour les nuls auteur Cummings Steve

10.4. SCHÉMA UML 10.4.1. Types de diagrammes visuels UMLUML permet de créer plusieurs types de diagrammes visuels : diagrammes de cas d'utilisation ; diagrammes de séquence; diagrammes coopératifs; diagrammes de classes ; diagrammes d'état ; diagrammes

Extrait du livre Tutoriel Macintosh auteur Skrylina Sofya

1.2.6. Cadre du diagramme La figure 1.2.26 montre un exemple typique d'un diagramme de décomposition avec des boîtes englobantes, appelé le cadre du diagramme. Riz. 1.2.26. Exemple de diagramme de décomposition avec wireframe Le wireframe contient un titre ( partie supérieure charpentes) et sous-sol (partie basse).

Du livre de l'auteur

Chronogrammes Pour obtenir les chronogrammes des tensions d'entrée et de sortie, vous devez modifier légèrement le fichier d'entrée. Comme dans l'exemple précédent, une tension d'entrée sinusoïdale sera utilisée : Vi 1 0 sin (0 0,5V 5kHz) Parallèlement à l'analyse transitoire

Du livre de l'auteur

Tableaux et graphiques Seul un spécialiste peut voir la signification derrière les rangées interminables de nombres, mais n'importe qui peut comprendre (ou du moins prétendre comprendre) un diagramme à barres ou un diagramme à secteurs. VBA n'a pas d'outils de création de diagrammes intégrés, mais de tels

Du livre de l'auteur

5.1.14. Diagrammes de diagrammes - représentation graphique données numériques du tableau. Pages propose plusieurs types de graphiques : Column (Columnar), Stacked Column (Multi-tiered columns), Vag (Histogram), Stacked Vag (Multi-tiered histogram), Line (Linear), Area (Area), Stacked Area (Multi-tiers). à plusieurs niveaux

Du livre de l'auteur

5.2.8. Graphiques Un graphique est une représentation graphique des données d'une plage sélectionnée. Pour créer un graphique, suivez l'algorithme suivant1. Créer un tableau de valeurs calculées.2. Sélectionnez la plage souhaitée (elle peut être constituée de rectangles non adjacents

Langage UML est un langage de modélisation graphique à usage général pour la spécification, la visualisation, la conception et la documentation de tous les artefacts créés lors du développement de systèmes logiciels.

Il existe de nombreux bons livres qui décrivent en détail UML (parfois même très détaillés), j'aimerais rassembler en un seul endroit les concepts de base sur les diagrammes, les entités et les relations entre eux pour un rappel rapide, quelque chose comme une feuille de triche.

La note utilise des matériaux de livres: Ivanov D. Yu., Novikov F. A. Langage de modélisation unifié UML et Léonenkov. Tutoriel UML.

Commençons par l'éditeur. Sous Linux, j'ai essayé différents éditeurs UML, j'ai surtout aimé UMLet, bien qu'il soit écrit en Java, il se déplace très rapidement et la plupart des blancs d'entités s'y trouvent. Il y a aussi ArgoUML, un éditeur UML multiplateforme, également écrit en Java, riche en fonctionnalités, mais plus lent.

je me suis arrêté à UMLet, installez-le sous Arch Linux et ubuntu:

# sous Arch Linux yaourt -S umlet # sous Ubuntu sudo apt-get install umlet

En UML, toutes les entités peuvent être décomposées dans les types suivants :

  • de construction;
  • comportemental ;
  • regroupement;
  • annotatif ;

L'UML utilise quatre principaux types de relations :

Dépendance- indique que la modification de l'entité indépendante affecte d'une manière ou d'une autre l'entité dépendante. Graphiquement, une relation de dépendance est représentée par une ligne pointillée avec une flèche pointant de l'entité dépendante vers l'entité indépendante.

Association- a lieu si une entité est directement liée à une autre (ou à d'autres - l'association peut être non seulement binaire). Graphiquement, une association est représentée par une ligne pleine avec divers ajouts reliant des entités liées.

Généralisation est une relation entre deux entités, dont l'une est un cas particulier (spécialisé) de l'autre. Graphiquement, la généralisation est représentée par une ligne avec une flèche triangulaire non remplie à la fin, dirigée du particulier (sous-classe) au général (superclasse).

Implémentations- la relation d'implémentation indique qu'une entité est une implémentation d'une autre. Graphiquement, la mise en œuvre est représentée par une ligne pointillée avec une flèche triangulaire vide à la fin, dirigée de l'entité de mise en œuvre à celle mise en œuvre.

À UML2 défini 13 types de graphiques. Selon les normes, chaque graphique doit avoir un cadre avec un rectangle (en bas à droite biseauté) dans le coin supérieur gauche, qui indique l'ID du graphique (tag) et le titre.

Diagrammes pour illustrer la structure du système:

  • Diagramme de composants (diagramme de composants, étiquette composant);
  • Diagramme de déploiement (diagramme de déploiement, tag déploiement);
  • Diagramme de classes (diagramme de classes, tag classe);
  • Diagramme d'objets (diagramme d'objets, tag objet);
  • Schéma de structure interne (schéma de structure composite, tag classe);

Diagrammes pour décrire le comportement du système:

  • Diagramme de synchronisation (diagramme d'interaction, tag Horaire);
  • Diagramme d'activité (diagramme d'activité, tag activité);
  • diagramme de séquence (diagramme de séquence, étiquette Dakota du Sud);
  • Schéma de communication (schéma de communication, tag communication);
  • Diagramme d'automate (diagramme de machine d'état, tag machine d'état);
  • Diagramme de présentation des interactions, balise interaction);

Les graphiques se démarquent :

  • Diagramme de cas d'utilisation (diagramme de cas d'utilisation, balise de cas d'utilisation) ;
  • Diagramme de package (diagramme de package, balise emballer);

Diagramme d'utilisation

Diagramme d'utilisation(diagramme de cas d'utilisation) est la représentation la plus générale de l'objectif fonctionnel du système.

Considérant un diagramme de cas d'utilisation comme un modèle de système, on peut l'associer à un modèle de boîte noire. Chaque cas d'utilisation définit une séquence d'actions qui doivent être exécutées par le système conçu lorsqu'il interagit avec l'acteur correspondant.

Le diagramme d'utilisation utilise deux types d'entités de base : les cas d'utilisation et les acteurs, entre lesquels les types de relations de base suivants sont établis.

rapport d'association- Cette relation établit le rôle spécifique joué par un acteur lorsqu'il interagit avec une instance d'un cas d'utilisation. Une relation d'association est indiquée par une ligne pleine entre l'acteur et le cas d'utilisation. Cette ligne peut comporter des symboles supplémentaires, comme par exemple un nom et une multiplicité.

Relation d'extension- définit la relation des instances d'un cas d'utilisation unique avec un cas d'utilisation plus général, dont les propriétés sont déterminées en fonction de la façon dont ces instances sont combinées entre elles. Ainsi, s'il existe une relation d'extension du cas d'utilisation A au cas d'utilisation B, cela signifie que les propriétés d'une instance du cas d'utilisation B peuvent être complétées en raison de la présence de propriétés dans le cas d'utilisation étendu A.

La relation d'extension entre les cas d'utilisation est notée ligne pointillée avec une flèche (variante de relation de dépendance) pointant vers le cas d'utilisation qui est une extension du cas d'utilisation d'origine.

Relation de généralisation sert à indiquer le fait qu'un cas d'utilisation A peut être généralisé au cas d'utilisation B. Dans ce cas, le cas d'utilisation A sera une spécialisation du cas d'utilisation B. Dans ce cas, B est appelé un ancêtre ou un parent de A, et l'utilisation A est un descendant du cas d'utilisation de V.

Graphiquement, cette relation est représentée par une ligne pleine avec une flèche en forme de triangle ouvert qui pointe vers le cas d'utilisation parent.

Une relation de généralisation entre les cas d'utilisation est utilisée lorsqu'il est nécessaire de noter que les cas d'utilisation enfants ont tous les attributs et comportements des cas d'utilisation parents.

Relation d'inclusion entre deux cas d'utilisation indique qu'un comportement spécifié pour un cas d'utilisation est inclus en tant que composant dans la séquence de comportement d'un autre cas d'utilisation.

Une relation d'inclusion, du cas d'utilisation A au cas d'utilisation B, indique que chaque instance du cas d'utilisation A inclut les propriétés fonctionnelles spécifiées pour le cas d'utilisation B.

Graphiquement, cette relation est représentée par une ligne pointillée avec une flèche (variante de relation de dépendance) pointant du cas d'utilisation de base vers le cas d'utilisation inclus.

diagramme de classe

diagramme de classe(diagramme de classes) - le principal moyen de décrire la structure statique du système.

Le diagramme de classes utilise un type principal d'entités : les classes (dont de nombreux cas particuliers de classes : interfaces, types primitifs, classes d'association, etc.), entre lesquelles s'établissent les principaux types de relations suivants : dépendances, associations, généralisations, implémentations.

Relation de dépendance indique généralement une relation sémantique entre deux éléments de modèle ou deux ensembles de tels éléments qui n'est pas une relation d'association, de généralisation ou d'implémentation. Une relation de dépendance est utilisée dans une situation où un changement dans un élément de modèle peut nécessiter un changement dans un autre élément de modèle dépendant.

Une relation de dépendance est représentée graphiquement par une ligne pointillée entre les éléments correspondants avec une flèche à une extrémité, la flèche pointant de la classe client de la dépendance vers la classe indépendante ou source.

Au-dessus de la flèche, il peut y avoir des mots clés(stéréotypes):

  • "access" - sert à indiquer la disponibilité des attributs publics et des opérations de la classe source pour les classes client ;
  • "bind" - la classe client peut utiliser un modèle pour son paramétrage ultérieur ;
  • "dériver" - les attributs de la classe client peuvent être calculés à partir des attributs de la classe source ;
  • "import" - les attributs publics et les opérations de la classe source font partie de la classe client, comme s'ils y étaient déclarés directement ;
  • "raffiner" - indique que la classe client sert de raffinement de la classe source pour des raisons historiques, lorsque des informations supplémentaires deviennent disponibles au cours du travail sur le projet.

rapport d'association correspond à la présence d'une certaine relation entre les classes. Cette relation est indiquée par une ligne pleine avec des symboles spéciaux supplémentaires qui caractérisent les propriétés individuelles d'une association particulière. Comme caractères spéciaux supplémentaires, le nom de l'association, ainsi que les noms et la multiplicité des classes de rôle de l'association, peuvent être utilisés. Le nom d'une association est un élément facultatif de sa désignation.

Relation d'agrégation a lieu entre plusieurs classes dans le cas où l'une des classes est une entité qui comprend comme parties constitutives d'autres entités. Il est utilisé pour représenter des relations système de type "partie-tout".

Relation de composition est un cas particulier de relation d'agrégation. Cette relation sert à mettre en évidence une forme particulière de la relation partie-tout dans laquelle les parties constituantes sont en quelque sorte à l'intérieur du tout. La spécificité de la relation entre eux réside dans le fait que les parties ne peuvent agir isolément du tout, c'est-à-dire qu'avec la destruction du tout, toutes ses parties constituantes sont également détruites.

Relation de généralisation est une relation entre un élément plus général (parent ou ancêtre) et un élément plus spécifique ou spécial (enfant ou descendant). Appliquée à un diagramme de classes, cette relation décrit la structure hiérarchique des classes et l'héritage de leurs propriétés et de leur comportement. Cela suppose que la classe descendante possède toutes les propriétés et le comportement de la classe ancêtre, ainsi que ses propres propriétés et comportements qui ne sont pas présents dans la classe ancêtre.

diagramme d'automate

diagramme d'automate(diagramme de machine d'état) ou diagramme d'état en UML 1 (diagramme d'états) est une façon de décrire en détail le comportement en UML. Essentiellement, les diagrammes d'automates, comme leur nom l'indique, sont un graphe d'états et de transitions d'un automate fini chargé de nombreux détails et détails supplémentaires.

Le diagramme d'état décrit le processus de modification des états d'une seule classe, ou plutôt d'une instance d'une certaine classe, c'est-à-dire qu'il modélise tous les changements possibles dans l'état d'un objet particulier. Dans ce cas, un changement d'état d'un objet peut être causé par des influences externes provenant d'autres objets ou de l'extérieur. C'est pour décrire la réaction d'un objet à de telles influences externes que les diagrammes d'état sont utilisés.

Dans le diagramme d'automate, un type principal d'entité est utilisé - les états et un type de relation - les transitions, mais pour les deux, de nombreuses variétés, cas particuliers et désignations supplémentaires sont définis. L'automate représente les aspects dynamiques du système simulé sous la forme d'un graphe orienté dont les sommets correspondent à des états et les arcs correspondent à des transitions.

Etat initial est un cas particulier d'état qui ne contient aucune action interne (pseudo-états). L'objet est dans cet état par défaut au moment initial. Il sert à indiquer sur le diagramme d'état de la zone graphique à partir de laquelle commence le processus de changement d'état.

Finale (finale) un état est un cas particulier d'état qui ne contient pas non plus d'actions internes (pseudo-états). L'objet sera dans cet état par défaut après la fin de l'automate au temps de fin.

Diagramme d'activité

Lors de la modélisation du comportement d'un système conçu ou analysé, il devient nécessaire non seulement de présenter le processus de changement de ses états, mais également de détailler les caractéristiques de la mise en œuvre algorithmique et logique des opérations effectuées par le système.

Diagramme d'activité(diagramme d'activité) est une autre façon de décrire le comportement qui ressemble visuellement à un bon vieux logigramme d'un algorithme. Utilisé pour simuler le processus d'exécution des opérations.

La direction principale de l'utilisation des diagrammes d'activités est de visualiser les caractéristiques de l'implémentation des opérations de classe, lorsqu'il est nécessaire de présenter des algorithmes pour leur exécution.

Dans le diagramme d'activité, un type principal d'entités est utilisé - action, et un type de relation - transitions (transferts de contrôle). Sont également utilisées des constructions telles que des fourches, des fusions, des connexions, des ramifications. Il est recommandé d'utiliser un verbe avec des mots explicatifs comme nom d'une action simple.

diagramme de séquençage

diagramme de séquençage(diagramme de séquence) est une manière de décrire le comportement du système "par des exemples".

En fait, un diagramme de séquence est un enregistrement du protocole d'une session particulière du système (ou un fragment d'un tel protocole). Dans la programmation orientée objet, la chose la plus essentielle à l'exécution est la transmission de messages entre des objets coopérants. C'est la séquence d'envoi des messages qui est affichée sur ce diagramme, d'où le nom.

Dans le diagramme de séquence, un type principal d'entités est utilisé - des instances de classificateurs en interaction (principalement des classes, des composants et des acteurs) et un type de relation - des liens à travers lesquels des messages sont échangés.

Types de messages possibles (image extraite de larin.in) :

Diagramme de communication

Diagramme de communication(diagramme de communication) - une manière de décrire le comportement, sémantiquement équivalente à un diagramme de séquence. En fait, il s'agit de la même description de la séquence d'échange de messages d'instances de classificateurs en interaction, exprimée uniquement par d'autres moyens graphiques.

Ainsi, dans le diagramme de communication, ainsi que dans le diagramme de séquence, un type principal d'entités est utilisé - les instances de classificateurs en interaction et un type de relation - les connexions. Cependant, ici, l'accent n'est pas mis sur le temps, mais sur la structure des relations entre des instances spécifiques.

Diagramme des composants

Diagramme des composants(diagramme de composants) - montre la relation entre les modules (logiques ou physiques) qui composent le système simulé.

Le principal type d'entité dans un diagramme de composants est constitué des composants eux-mêmes, ainsi que des interfaces, à travers lesquelles la relation entre les composants est indiquée. Les relations suivantes s'appliquent dans le diagramme de composants :

  • implémentations entre composants et interfaces (le composant implémente l'interface) ;
  • dépendances entre composants et interfaces (un composant utilise une interface) ;

Diagramme d'emplacement

Diagramme d'emplacement(diagramme de déploiement), en plus d'afficher la composition et les relations des éléments du système, montre comment ils sont physiquement placés sur les ressources informatiques pendant l'exécution.

Dans le diagramme de placement, par rapport au diagramme de composants, deux types d'entités sont ajoutés : un artefact, qui est une implémentation du composant et un nœud (il peut s'agir soit d'un classificateur décrivant le type de nœud, soit d'une instance spécifique) , ainsi qu'une relation d'association entre les nœuds, montrant que les nœuds sont physiquement connectés au moment de l'exécution.

Diagramme d'objets

Diagramme d'objets(diagramme d'objets) - est une instance d'un diagramme de classes.

Le diagramme d'objets utilise un type principal d'entités : les objets (instances de classe), entre lesquels des relations spécifiques sont indiquées (le plus souvent des instances d'association). Les diagrammes d'objets sont de nature auxiliaire - en fait, ce sont des exemples (on pourrait dire, des vidages mémoire) qui montrent quels objets existent et les connexions entre eux à un moment particulier du fonctionnement du système.

Schéma de la structure interne(diagramme de structure composite) est utilisé pour une présentation plus détaillée des classificateurs structurels, principalement des classes et des composants.

Un classificateur structurel est représenté par un rectangle avec le nom du classificateur en haut. A l'intérieur se trouvent des pièces. Il peut y avoir plusieurs parties. Les pièces peuvent interagir les unes avec les autres. Ceci est indiqué par des connecteurs diverses sortes. L'endroit sur le bord extérieur de la pièce à laquelle le connecteur est attaché s'appelle le port. Les ports sont également situés sur la limite extérieure du classificateur structurel.

Diagramme de présentation des interactions(diagramme de synthèse d'interaction) est une sorte de diagramme d'activité avec une syntaxe étendue : les liens vers des interactions (utilisation d'interaction) définies par des diagrammes de séquence peuvent agir comme des éléments d'un diagramme d'interaction de synthèse.

Chronogramme

Chronogramme(diagramme temporel) est une forme spéciale de diagramme de séquence dans lequel Attention particulière est donné pour changer les états de diverses instances de classificateurs et leur synchronisation temporelle.

Schéma de l'emballage

Schéma de l'emballage(schéma de package) est le seul outil qui permet de gérer la complexité du modèle lui-même.

Les principaux éléments de la notation sont les packages et les dépendances avec divers stéréotypes.

Modèle entité-relation (modèle ER)

analogue diagrammes de classes(UML) peut être Modèle ER, qui est utilisé dans la conception de bases de données (modèle relationnel).

Le modèle entité-relation (modèle ER) est un modèle de données qui vous permet de décrire les schémas conceptuels du domaine. Le modèle ER est utilisé dans la conception de base de données de haut niveau (conceptuelle). Avec son aide, vous pouvez mettre en évidence les entités clés et désigner les relations qui peuvent être établies entre ces entités. Wikipédia

Tout fragment du domaine peut être représenté comme un ensemble d'entités, entre lesquelles il existe un ensemble de relations.

Concepts de base:

Essence(entité) est une entité qui peut être identifiée d'une manière qui la distingue des autres entités, par exemple, CLIENT 777. Une entité est en fait un ensemble d'attributs.

Ensemble d'entités(ensemble d'entités) - un ensemble d'entités du même type (ayant les mêmes propriétés).

Lien(relation) est une association établie entre plusieurs entités.

Domaine(domaine) - ensemble de valeurs (domaine) de l'attribut.

Il existe trois types de liens binaires :

  • Un par un- une seule instance d'une entité d'une classe est associée à une seule instance d'une entité d'une autre classe, par exemple HEAD - DEPARTMENT ;
  • 1 à N ou alors un à plusieurs- une seule instance d'une entité d'une classe est associée à plusieurs instances d'une entité d'une autre classe, par exemple DEPARTMENT - EMPLOYEE ;
  • N à M ou alors plusieurs à plusieurs- de nombreuses instances d'une entité d'une classe sont associées à de nombreuses instances d'une entité d'une autre classe, par exemple, EMPLOYEE - PROJECT ;
  • Glossaire des concepts de base en UML

    objet- une entité qui a une unicité et encapsule l'état et le comportement.

    classe- une description d'un ensemble d'objets avec des attributs communs définissant l'état et les opérations définissant le comportement.

    interface- un ensemble nommé d'opérations qui définit un ensemble de services qui peuvent être demandés par le consommateur et fournis par le fournisseur de services.

    La coopération- un ensemble d'objets qui interagissent pour atteindre un objectif.

    Acteur de cinéma- une entité extérieure au système modélisé et interagissant directement avec lui.

    composant- une partie modulaire du système avec un ensemble bien défini d'interfaces requises et fournies.

    Artefact- un élément d'information qui est utilisé ou généré dans le processus de développement du logiciel. En d'autres termes, un artefact est unité physique une implémentation dérivée d'un élément de modèle (comme une classe ou un composant).

    Nœud- une ressource informatique sur laquelle des artefacts sont placés et, si nécessaire, exécutés.

    Les entités comportementales sont destinées à décrire un comportement. Il n'y a que deux entités comportementales de base : l'état et l'action.

    Etat- une période du cycle de vie d'un objet, au cours de laquelle l'objet satisfait à une certaine condition et exerce sa propre activité ou attend la survenance d'un événement.

    action- calcul atomique primitif.

    Machine est un package qui définit un ensemble de concepts nécessaires pour représenter le comportement de l'entité modélisée comme un espace discret avec un nombre fini d'états et de transitions.

    classificateur est un descripteur pour un ensemble d'objets du même type.

    Lecture supplémentaire

    • Fowler M. UML. Fondamentaux, 3e édition
    • Butch G., Rambo D., Jacobson I. Langage UML. Mode d'emploi

UML (Unified Modeling Language - langage de modélisation unifié) - un langage de description graphique pour la modélisation d'objets dans le domaine du développement de logiciels. UML est un langage général, c'est un standard ouvert qui utilise la notation graphique pour créer un modèle abstrait d'un système, appelé modèle UML. UML a été créé pour définir, visualiser, concevoir et documenter principalement des systèmes logiciels. UML n'est pas un langage de programmation, mais la génération de code est possible dans les outils d'exécution de modèles UML sous forme de code interprété. Wikipédia

Produits commerciaux

Microsoft Visio

Type : logiciel commercial

Populaire Logiciel de Microsoft, qui permet de dessiner des diagrammes riches, notamment UML :

A partir de la version 2010, il est devenu possible de publier des schémas sur le web (SharePoint + Visio Services) :

Visionneuse Visio- programme gratuit, qui vous permet d'afficher des diagrammes Visio créés précédemment. Vous pouvez télécharger à %D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5%20.

%0A

Microsoft%20Visual%20Studio%202010

%0A

%D0%A2%D0%B8%D0%BF:%20%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D1%80%D1%87%D0%B5%D1% 81%D0%BA%D0%BE%D0%B5%20%D0%9F%D0%9E%20(%D0%B5%D1%81%D1%82%D1%8C%20%D0%B1%D0 %B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%B0%D1%8F%20Express%20%D0%B2%D0%B5%D1%80 %D1%81%D0%B8%D1%8F).

%0A

%D0%92%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B9%20%D0%B2%D0 %B5%D1%80%D1%81%D0%B8%D0%B8%20Microsoft%20Visual%20Studio%202010%20%D0%BF%D0%BE%D1%8F%D0%B2%D0%B8%D0 %BB%D1%81%D1%8F%20%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9%20%D1%82%D0%B8%D0%BF%20%D0 %BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%20-%20Modélisation,%20%D0%BA%D0%BE%D1%82%D0%BE %D1%80%D1%8B%D0%B9%20%D0%BF%D0%BE%D0%B7%D0%B2%D0%BE%D0%BB%D1%8F%D0%B5%D1%82 %20%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%80%D0%B0%D0%B7%D0 %BB%D0%B8%D1%87%D0%BD%D1%8B%D0%B5%20UML%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0 %D0%BC%D0%BC%D0%B0%20%D0%B8%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1 %82%D1%8C%20%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20 %D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0 %BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B5%20%D1%81%20%D0%BD %D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D0%BE%20%D0%B0%D1%80%D1%85 %D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%BE%D0%B9.

%0A

%D0%9F%D0%BE%D0%B7%D0%B2%D0%BE%D0%BB%D1%8F%D0%B5%D1%82%20%D0%B3%D0%B5%D0%BD %D0%B5%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20Séquence%20Diagramme%20%D0%BD%D0%B0 %20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%BA%D0%BE%D0 %B4%D0%B0,%20%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B8%D1%80% D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%81%D0%B2%D1%8F%D0%B7%D0%B8%20%D0%B2%20% D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B5%20%D0%BC%D0%B5%D0%B6%D0%B4%D1%83% 20%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8, %20%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B0%D0%BC%D0%B8%20%D0%B8%20%D1%81%D1%81 %D1%8B%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8%20%D0%B8%20%D1%82.%D0%B4.

%0A

%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20Utilisation%20cas%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80 %D0%B0%D0%BC%D0%BC%D1%8B,%20%D0%BD%D0%B0%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0% B0%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%B2%20Visuel%20Studio%202010 :

%0A%0A

%D0%9A%D1%80%D0%BE%D0%BC%D0%B5%20%D1%82%D0%BE%D0%B3%D0%BE,%20%D0%B4%D0%BE% D1%81%D1%82%D1%83%D0%BF%D0%B5%D0%BD%20Visualisation%20et%20Modélisation%20Fonctionnalité%20Pack%20(%D0%B4%D0%BB%D1%8F%20 %D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%87%D0%B8%D0%BA%D0%BE%D0%B2%20MSDN),%20 %D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9%20%D0%BF%D0%BE%D0%B7%D0%B2%D0%BE %D0%BB%D1%8F%D0%B5%D1%82 :

%0A
  • %D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20 %D0%BA%D0%BE%D0%B4%20%D0%BD%D0%B0%20%D0%B1%D0%B0%D0%B7%D0%B5%20UML%20%D0%B4%D0 %B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%20%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0 %BE%D0%B2
  • %0A
  • %D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C%20UML%20%D0%B4%D0%B8%D0 %B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%B8%D0%B7%20%D0%BA%D0%BE%D0%B4 %D0%B0
  • %0A
  • %D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1 %8C%20UML%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BA%D0 %BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2,%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0% D0%BC%D0%BC%D1%8B%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0% D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9,%20%D0%B4%D0%B8 %D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%B2%D0%B0%D1%80%D0%B8%D0%B0 %D0%BD%D1%82%D0%BE%D0%B2%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE %D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D1%81%20XMI%202.1
  • %0A
  • %D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B4%D0%B8%D0%B0 %D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8 %D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9%20%D0%B4%D0%BB%D1%8F%20ASP.NET,%20C%20%D0% B8%20C++%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D0%B2
  • %0A
  • %D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B8%20%D0%BF%D1 %80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1%82%D1%8C%20couche%20diagrammes%20%D0%B4%D0%BB%D1%8F%20C %20%D0%B8%20C++%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D0%B2
  • %0A
  • %D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C%20%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2 %D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA %D0%B8%20%D0%B4%D0%BB%D1%8F%20couche%20diagrammes
  • %0A

%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20Visualisation%20et%20Modélisation%20Feature%20Pack%20%D0%BC%D0%BE%D0 %B6%D0%BD%D0%BE%20%D0%BF%D0%BE%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5 : %20 http://msdn.microsoft.com/en-us/vstudio/ff655021%28en-us%29.aspx.

IBM Rational Rose

Opportunités:

  • Diagramme de cas d'utilisation (diagrammes de précédents);
  • Diagramme de déploiement (diagrammes de topologie);
  • Diagramme d'états (diagrammes d'états);
  • Diagramme d'activité (diagrammes d'activité);
  • Diagramme d'interaction (diagrammes d'interaction);
  • Diagramme de séquence (schémas de séquences d'actions) ;
  • Diagramme de collaboration (diagrammes de collaboration);
  • Diagramme de classes (diagrammes de classes);
  • Diagramme de composants (schémas de composants).

Captures d'écran:

programmes open source

StarUML

Opportunités:

  • Prise en charge d'UML 2.0
  • MDA (architecture pilotée par modèle)
  • Architecture Plug-in (vous pouvez écrire dans des langages compatibles COM : C++, Delphi, C#, VB, ...)

StarUML est écrit principalement en Delphi, mais des composants peuvent également être ajoutés dans d'autres langages, tels que C/C++, Java, Visual Basic, Delphi, JScript, VBScript, C#, VB.NET. Ci-dessous quelques captures d'écran.

Diagramme de classe :

Diagramme de cas d'utilisation :

ArgoUML

Graphiques pris en charge :

  • classe
  • État
  • cas d'utilisation
  • Activité
  • Collaboration
  • Déploiement
  • Séquence

Opportunités:

  • Prise en charge de neuf diagrammes UML 1.4
  • Indépendant de la plateforme (Java 5+)
  • Métamodèle standard UML 1.4
  • Prise en charge XMI
  • Exporter vers GIF, PNG, PS, EPS, PGML et SVG
  • Langues : EN, EN-GB, DE, ES, IT, RU, FR, NB, PT, ZH
  • Prise en charge d'OCL
  • Ingénierie directe, rétro-ingénierie

Capture d'écran:

UML est un langage de modélisation graphique unifié pour décrire, visualiser, concevoir et documenter des systèmes OO. UML est conçu pour soutenir le processus de modélisation PS basé sur l'approche OO, pour organiser la relation entre les concepts conceptuels et de programme, et pour refléter les problèmes de mise à l'échelle des systèmes complexes. Les modèles UML sont utilisés à toutes les étapes du cycle de vie du logiciel, de l'analyse métier à la maintenance du système. Différentes organisations peuvent utiliser UML à leur manière, en fonction de leurs problématiques et des technologies utilisées.

Une brève histoire d'UML

Au milieu des années 1990, plusieurs dizaines de méthodes de modélisation OO ont été proposées par divers auteurs, chacun utilisant sa propre notation graphique. En même temps, chacune de ces méthodes avait sa propre forces, mais n'a pas permis de construire un modèle PS suffisamment complet, pour le montrer "de tous les côtés", c'est-à-dire toutes les projections nécessaires (Voir article 1). De plus, l'absence d'une norme de modélisation OO a rendu difficile pour les développeurs de choisir la méthode la plus appropriée, ce qui a empêché l'utilisation généralisée d'une approche OO pour le développement de logiciels.

À la demande de l'Object Management Group (OMG) - une organisation chargée d'adopter des normes dans le domaine des technologies d'objets et des bases de données, le problème urgent de l'unification et de la normalisation a été résolu par les auteurs des trois méthodes OO les plus populaires - G. Booch , D. Rambo et A. Jacobson, qui ont combiné Efforts, ont créé la version 1.1 d'UML, approuvée par OMG en 1997 en tant que norme.

UML est un langage

Toute langue consiste en un dictionnaire et des règles pour combiner des mots pour faire des constructions significatives. Ainsi, en particulier, les langages de programmation sont agencés, tel est l'UML. Sa particularité est que le vocabulaire de la langue est formé d'éléments graphiques. Chaque symbole graphique a une sémantique spécifique, de sorte qu'un modèle créé par un développeur peut être compris sans ambiguïté par un autre, ainsi que par un outil qui interprète l'UML. Il en découle notamment qu'un modèle PS présenté en UML peut être automatiquement traduit dans un langage de programmation OO (tel que Java, C++, VisualBasic), c'est-à-dire avec un bon outil de modélisation visuelle prenant en charge UML, en construction d'un modèle , nous obtiendrons également un blanc du code de programme correspondant à ce modèle.

Il faut souligner qu'UML est un langage, pas une méthode. Il explique à partir de quels éléments créer des modèles et comment les lire, mais ne dit rien sur quels modèles et dans quels cas doivent être développés. Pour créer une méthode basée sur UML, il est nécessaire de la compléter par une description du processus de développement de PS. Un exemple d'un tel processus est le processus unifié rationnel, qui sera abordé dans des articles ultérieurs.

Vocabulaire UML

Le modèle est représenté sous la forme d'entités et de relations entre elles, qui sont représentées sur des diagrammes.

Essences sont des abstractions qui sont les éléments principaux des modèles. Il existe quatre types d'entités : structurelles (classe, interface, composant, cas d'utilisation, coopération, nœud), comportementales (interaction, état), groupées (packages) et annotatives (commentaires). Chaque type d'entité a sa propre représentation graphique. Les entités seront discutées en détail lors de l'étude des diagrammes.

Rapports montrer différentes relations entre les entités. Les types de relations suivants sont définis dans l'UML :

  • Dépendance montre une telle relation entre deux entités, lorsqu'un changement dans l'une d'entre elles - indépendante - peut affecter la sémantique de l'autre - dépendante. Une dépendance est représentée par une flèche pointillée pointant de l'entité dépendante vers l'entité indépendante.
  • Association est une relation structurelle montrant que les objets d'une entité sont liés aux objets d'une autre. Graphiquement, une association est représentée par une ligne reliant les entités associées. Les associations sont utilisées pour naviguer entre les objets. Par exemple, l'association entre les classes "Commande" et "Produit" peut être utilisée pour trouver tous les produits spécifiés dans une commande particulière - d'une part, ou pour trouver toutes les commandes qui contiennent ce produit - d'autre part. Il est clair que les programmes correspondants doivent mettre en œuvre un mécanisme permettant une telle navigation. Si la navigation est requise dans une seule direction, elle est indiquée par une flèche à la fin de l'association. Un cas particulier d'association est l'agrégation - une relation de la forme "tout" - "partie". Graphiquement, il est mis en évidence par un losange à la fin près de l'entité-tout.
  • Généralisation est une relation entre une entité parent et une entité enfant. Essentiellement, cette relation reflète la propriété d'héritage pour les classes et les objets. La généralisation est représentée par une ligne se terminant par un triangle pointant vers l'entité parent. L'enfant hérite de la structure (attributs) et du comportement (méthodes) du parent, mais en même temps, il peut avoir de nouveaux éléments de structure et de nouvelles méthodes. L'UML permet l'héritage multiple lorsqu'une entité est liée à plusieurs entités parentes.
  • Mise en œuvre- la relation entre l'entité qui définit la spécification du comportement (interface) avec l'entité qui définit l'implémentation de ce comportement (classe, composant). Cette relation est couramment utilisée dans la modélisation des composants et sera décrite plus en détail dans les articles suivants.

Diagrammes. L'UML fournit les diagrammes suivants :

  • Schémas décrivant le comportement du système :
    • Diagrammes d'état (State diagrams),
    • Diagrammes d'activité,
    • Diagrammes d'objets,
    • Diagrammes de séquence,
    • diagrammes de collaboration ;
  • Schémas décrivant la mise en œuvre physique du système :
    • Schémas des composants ;
    • Schémas de déploiement.

Vue de contrôle du modèle. Paquets.

Nous avons déjà dit que pour qu'un modèle soit bien compris par une personne, il est nécessaire de l'organiser hiérarchiquement, en laissant un petit nombre d'entités à chaque niveau de la hiérarchie. UML comprend un moyen d'organiser une représentation hiérarchique d'un modèle - les packages. Tout modèle consiste en un ensemble de packages pouvant contenir des classes, des cas d'utilisation et d'autres entités et diagrammes. Un package peut inclure d'autres packages, ce qui vous permet de créer des hiérarchies. L'UML ne fournit pas de diagrammes de packages séparés, mais ils peuvent apparaître dans d'autres diagrammes. Le package s'affiche sous la forme d'un rectangle avec un onglet.

Ce que fournit UML.

  • description hiérarchique d'un système complexe en mettant en évidence les packages ;
  • formalisation des exigences fonctionnelles du système à l'aide du dispositif de cas d'utilisation ;
  • détailler les exigences du système en construisant des diagrammes d'activités et de scénarios ;
  • sélection de classes de données et construction d'un modèle conceptuel de données sous forme de diagrammes de classes ;
  • sélection de classes décrivant l'interface utilisateur et création d'un schéma de navigation à l'écran ;
  • description des processus d'interaction des objets dans l'exécution des fonctions du système ;
  • description du comportement des objets sous forme de diagrammes d'activités et d'états ;
  • description des composants logiciels et de leur interaction par le biais d'interfaces ;
  • description de l'architecture physique du système.

Et le dernier…

Malgré tout l'attrait d'UML, il serait difficile de l'utiliser dans une vraie modélisation PS sans outils de modélisation visuelle. Ces outils vous permettent de présenter rapidement des diagrammes sur l'écran d'affichage, de les documenter, de générer des blancs de codes de programme dans divers langages de programmation OO et de créer des schémas de base de données. La plupart d'entre eux incluent la possibilité de réorganiser les codes de programme - en restaurant certaines projections du modèle PS en analysant automatiquement les codes sources des programmes, ce qui est très important pour s'assurer que le modèle et les codes correspondent et lors de la conception de systèmes qui héritent de la fonctionnalité des systèmes précédents. .

2022 wisemotors.com. .