Accueil Finances personnelles En généralisant en UML 2 - des nuls

En généralisant en UML 2 - des nuls

Vidéo: UML Diagrammes de Cas d'utilisation Tutoriel 2025

Vidéo: UML Diagrammes de Cas d'utilisation Tutoriel 2025
Anonim

Il est naturel de classer les objets dans des catégories et d'organiser les catégories en sous-catégories. Si vous cherchez un endroit où vivre, vous vous trouvez à classer une unité d'habitation comme une maison, un appartement, une maison en rangée, une copropriété, un manoir, et ainsi de suite. Les maisons peuvent, à leur tour, être davantage organisées par des styles tels que ranch, split-level, colonial, et saltbox. UML vous fournit une notation pour capturer ces types de classifications - également connues sous le nom de généralisation et spécialisation - et les utilise comme modélisateur et programmeur.

Certains développeurs orientés objet vont faire de grands efforts pour économiser un peu de travail. Quand ils peuvent modéliser quelque chose et le réutiliser, ils sont intéressés. S'ils peuvent écrire une méthode (code de programme pour une opération) pour une classe seulement une fois et l'utiliser plusieurs fois, alors inscrivez-les pour une productivité plus élevée. Si vous voulez gagner du temps en spécifiant une fois les attributs et les opérations, puis en les réutilisant plusieurs fois, lisez la suite.

Lorsque vous définissez des classes, vous pouvez remarquer que certaines classes ont les mêmes attributs ou les mêmes opérations. Lorsque c'est le cas, vous placez ces fonctionnalités communes (attributs, opérations, etc.) dans une classe plus générique appelée superclasse . Les classes qui partagent les caractéristiques communes sont appelées sous-classes de la superclasse. Par exemple, la longueur du matériel enregistré sur une bande vidéo, une bande audio, un disque compact ou un film cinématographique est un attribut des quatre types de supports enregistrés. Ces classes peuvent également partager d'autres attributs, tels que leurs dimensions physiques et la date à laquelle chacun a été utilisé pour effectuer un enregistrement. Dans ce cas, la superclasse serait RecordedMedia, les sous-classes seraient Videotape, Audiotape, CompactDisc et MovieFilm, et certains attributs partagés pourraient inclure recordedLength et totalLength.

Ce processus de recherche d'attributs ou d'opérations similaires entre classes est connu sous le nom de généralisation . Par exemple, vous généraliser l'attribut recordLength dans une classe plus générique appelée RecordedMedia. Le processus pour montrer une généralisation en UML est simple:

1. Identifiez les sous-classes.

Recherchez des classes ayant les mêmes attributs et / ou opérations. Ces classes sont vos sous-classes.

2. Créer une superclasse.

Fournir une superclasse pour contenir les attributs communs et / ou les opérations des sous-classes. Donnez à la superclasse un nom qui catégorise toutes les sous-classes. Placer la superclasse au-dessus des sous-classes dans le diagramme facilite la lecture mais n'est pas nécessaire.

3. Ajoutez des fonctionnalités communes à la superclasse.

Supprimez les attributs communs et les opérations des sous-classes et placez-les (une fois) dans la superclasse.

4. Dessinez une relation de généralisation.

Vous tracez une ligne de généralisation de chaque sous-classe vers la superclasse. En UML, la ligne de généralisation est représentée par une ligne continue avec une pointe de flèche vide à l'extrémité de la superclasse. En UML, une ligne avec la pointe de flèche vide qui connecte une sous-classe à une superclasse s'appelle une relation de généralisation.

Après avoir créé une super-classe avec les caractéristiques communes telles que les attributs et les opérations, les sous-classes héritent de ces entités de la super-classe. De cette façon, il vous suffit d'écrire les caractéristiques communes une fois dans la superclasse au lieu de plusieurs fois dans chacune des sous-classes.

Vous pouvez dire si vous avez une généralisation en regardant la langue que vous (ou d'autres) utilisez pour décrire la relation entre les classes. Notez que dans la description des supports enregistrés et de ses différents types tels que la bande vidéo plus haut dans cette section, l'expression "quatre types de supports enregistrés" est apparue. Si vous vous trouvez en utilisant des expressions telles que «type de» ou «type de», alors vous avez une généralisation sur vos mains.

Supposons qu'un de vos clients se soucie de garder la trace des documents dans une archive. Ce client a accumulé différents types de supports d'enregistrement tels que des bandes vidéo et des bandes audio. En tant que modélisateurs, vous devez capturer les différences entre ces médias ainsi que leurs similitudes. Le diagramme de la figure 1 montre les débuts de plusieurs généralisations, organisées dans une hiérarchie d'héritage .

Figure 1: Hiérarchie d'héritage simple.

Les développeurs utilisent le terme de généralisation ou d'héritage pour désigner le même concept de réutilisation des attributs et des opérations partagés que vous affichez dans une superclasse et que vous réutilisez dans des sous-classes. La généralisation fait référence au concept de généralisation des spécificités (les sous-classes) au générique (la superclasse). L'héritage fait référence à l'effet de la généralisation sur les sous-classes.

Lorsque vous voyez une relation généralisation entre classes, sa signification est très différente de celle d'une relation association entre classes. Une association est finalement une relation parmi plusieurs objets - certaines instances d'une classe ont une relation (lien) avec les instances de l'autre classe. Dans une relation de généralisation entre classes , la relation concerne vraiment les classes. Le mieux que vous puissiez dire est qu'un objet créé à partir d'une sous-classe contient toutes les caractéristiques de la sous-classe et de la superclasse.

Vous n'avez qu'un objet d'une classe dans une relation de généralisation. Même si vous montrez deux classes, la sous-classe et la super-classe, vous n'avez qu'un objet créé. Vous pouvez penser à un objet de la classe Videotape étant également un objet de la classe RecordedMedia en raison de l'héritage. La figure 2 montre un objet créé à partir de la classe Videotape avec tous ses attributs.(L'instance d'une classe est représentée comme un symbole d'objet.) Vous n'avez pas deux objets différents (un pour RecordedMedia et un pour Videotape), juste un objet. Lorsque l'objet vtu83-1023 a été créé, toutes les valeurs de ses attributs ont été définies. L'enregistrement sur la bande est de 57 minutes. La longueur totale de la bande physique est de 60 minutes. Le ruban est une vidéocassette Umatic d'une hauteur de 10 pouces, d'une largeur de 7 pouces et d'une profondeur de 1,5 pouces. L'enregistrement est analogique et un journal du contenu de la bande est attaché à la bande pour que l'archiviste puisse s'y référer.

Figure 2: Une instance montrant tous les attributs hérités.

Vous n'avez qu'une seule instance définie par une sous-classe et sa superclasse. La sous-classe et la superclasse peuvent avoir une opération de constructeur (pour créer l'instance) et une opération de destructeur (pour détruire l'instance). Lorsque votre logiciel s'exécute et que vous créez une instance d'une sous-classe, le constructeur de la superclasse est exécuté en premier, suivi du constructeur de la sous-classe. Quand vient le temps d'éliminer l'instance que vous avez créée, le destructeur de la sous-classe est appelé en premier, suivi du destructeur de la superclasse. Si les choses sont plus complexes parce que vous avez des sous-classes de sous-classes, souvenez-vous simplement que: Les constructeurs sont invoqués du haut de la hiérarchie d'héritage au bas; les destructeurs sont appelés dans l'ordre de la sous-classe la plus basse jusqu'à la superclasse la plus élevée.

En généralisant en UML 2 - des nuls

Le choix des éditeurs

Pour les seniors: Comment travailler avec Windows dans Microsoft Windows - les nuls

Pour les seniors: Comment travailler avec Windows dans Microsoft Windows - les nuls

Windows, avec un W majuscule, tire son nom de sa caractéristique principale: Windows, avec un w minuscule. Se familiariser avec Windows signifie apprendre à ouvrir, fermer, redimensionner, déplacer et basculer entre les fenêtres, ce qui est la clé pour jongler avec succès avec plusieurs activités. Chaque programme que vous exécutez occupe sa propre fenêtre. Une fenêtre peut occuper une partie de ...

Comment accepter ou rejeter les cookies dans Safari - dummies

Comment accepter ou rejeter les cookies dans Safari - dummies

Un cookie est un petit fichier qu'un site Web enregistre automatiquement sur le disque dur de votre Mac. Il contient des informations, telles que vos préférences ou votre date de naissance, que le site utilisera lors de vos prochaines visites. Dans Mac OS X Snow Leopard, Safari vous permet de choisir d'accepter ou non tous les cookies ...

Le choix des éditeurs

Construire des boîtes et des lignes Bézier dans QuarkXPress - des nuls

Construire des boîtes et des lignes Bézier dans QuarkXPress - des nuls

Pour créer une boîte ou une ligne dans QuarkXPress plus complexe qu'un simple rectangle, ovale ou starburst, vous entrez dans le domaine du chemin de Bézier. Si vous avez utilisé l'outil Plume dans Adobe Illustrator ou Photoshop, vous comprenez déjà les chemins de Bézier. Il faut un peu de pratique et un esprit détendu ...

Création d'un rapport avec Crystal Reports 10 - témoins

Création d'un rapport avec Crystal Reports 10 - témoins

Lorsque vous démarrez Crystal Reports 10, généralement l'une des trois choses suivantes: créer un rapport, modifier un rapport ou exécuter un rapport sur les données de votre base de données. Les rapports prennent des données à partir d'une base de données, les traitent, les formatent et les affichent ensuite sur une imprimante, un écran d'ordinateur ou un site Web. Crystal Reports ...

Traitant des commentaires Javadoc dans Eclipse - mannequins

Traitant des commentaires Javadoc dans Eclipse - mannequins

Lorsque vous utilisez Eclipse pour écrire du code Java, n'oubliez pas de éditez les commentaires de Javadoc (les choses qui commencent par / **). Vous pouvez ajouter des informations utiles lorsque vous modifiez les commentaires Javadoc et lorsque vous les modifiez, l'aide au code d'Eclipse propose des suggestions. N'oubliez pas ces astuces lorsque vous modifiez vos commentaires Javadoc: Ajouter un commentaire Javadoc: ...

Le choix des éditeurs

Les connexions cachées sur le Nikon D5600 - les nuls

Les connexions cachées sur le Nikon D5600 - les nuls

Ouvrent les couvercles sur les côtés gauche et droit du Nikon D5600 caméra, et vous verrez plusieurs ports de connexions cachées. Les ports de connexion suivants sont indiqués sur cette image: Terminal d'accessoires: ce terminal accepte les accessoires suivants: câble déclencheur à distance Nikon MC-DC2; Télécommandes sans fil WR-1 et WR-R10; et les unités GPS GP-1 / GP-1A. I ...

Les connexions cachées sur votre Nikon D5200 - les nuls

Les connexions cachées sur votre Nikon D5200 - les nuls

ÉParpillés sur l'extérieur de votre appareil photo sont nombreuses commandes que vous utilisez pour changer d'image -prend des paramètres, revoir et modifier vos photos, et effectuer diverses autres opérations. Caché sous le couvercle sur le côté gauche de la caméra, vous trouverez les quatre ports de connexion suivants, étiquetés dans cette figure: Borne accessoire: Vous pouvez brancher le Nikon en option ...

Des boutons et autres commandes du Nikon D7500 - mannequins

Des boutons et autres commandes du Nikon D7500 - mannequins

C'est génial d'avoir une carte pour le boutons et commandes sur votre appareil photo, mais ce n'est pas beaucoup d'aide si vous ne pouvez pas vous rappeler quel bouton appuyer sur quand (et pourquoi). Alors, voici un aperçu des fonctions des contrôles les plus importants. (Certains contrôles ont des fonctions supplémentaires pendant certaines opérations, mais la table ...