Support de cours UML méthodologie orientée objet, tutoriel & guide de travaux pratiques UML en pdf.
Vocabulaire orienté objet (1/3)
Orienté objet :
organisation d’un logiciel sous la forme d’une collection d’objets indépendants incorporant structure de données et comportement [BR05]
Objet
• Entité discrète et distinguable, concrète ou abstraite Ex. Ce transparent; l’enseignant M. Manouvrier; la stratégie pédagogique de cette mise à niveau
• Identité intrinsèque – Identifiant unique Deux objets sont distincts, mêmes s’ils ont des valeurs d’attributs identiques
Vocabulaire orienté objet (2/3)
? Classification : regroupement des objets ayant même structure de données (attributs) et même comportement (opérations) Ex. TransparentDeCours; Enseignant
? Classe : abstraction décrivant un ensemble d’objets potentiellement infini [BR05]
Vocabulaire orienté objet (3/3)
? Instance d’une classe : objet appartenant à la classe
? Héritage : partage de propriétés entre classes sur la base d’une relation hiérarchique
• Super-classe (classe mère)
• Sous-classe (classe fille) : spécialisation de la super-classe Héritage des propriétés de la super-classe
? Polymorphisme : possibilité de comportements différents d’une même opération dans différentes classes
• Opération : action exécutée par un objet ou transformation subie par un objet
• Méthode : implémentation d’une opération par une classe Plusieurs méthodes pour une même opération Une méthode par classe pour une opération donnée.
Méthodologie orientée objet
? Spécification initiale : collaboration entre les analystes métier et les utilisateurs pour la genèse de l’application
? Analyse
• Étude et re-formulation des besoins : collaboration avec le client pour comprendre le problème
• Modèle d’analyse : abstraction concise et précise de l’objectif du système à développer (pas de la façon de le construire)
– Modèle de domaine : description des objets du monde réel manipulés par le système
– Modèle de l’application : parties du système visibles par l’utilisateur
? Conception : stratégie de haut niveau (architecture du système) pour résoudre le problème posé
• Établissement des stratégies de conception générales
• Allocations prévisionnelles des ressources
? Conception des classes : concentration sur les structures de données et algorithmes de chaque classe
? Implémentation
Thèmes de l’orienté objet
? Abstraction Concentration sur ce que représente un objet et sur son comportement avant de décider de la façon de l’implémenter
? Encapsulation Masquage de l’information : séparation des aspects externes d’un objet accessibles aux autres objets, des détails de l’implémentation cachés aux autres objets
? Regroupement des données et du comportement Polymorphisme ⇒ transfert de la décision de quelle méthode utiliser à la hiérarchie de classes
? Partage Héritage ⇒ possibilité de partager des potions de code communes et clarté conceptuelle (mise en évidence de traitement commun)
? Mise en évidence de la nature intrinsèque des objets : sur ce qu’est un objet et non sur la façon dont il est utilisé
? Synergie : combinaison des concepts d’identité, classification, héritage et polymorphisme pour former un langage objet.
Trois modèles (1/2)
? Modèle de classes
• Description de la structure statique des objets du système et de leurs relations
• Diagramme de classes : graphe avec pour sommets les classes et pour arcs les relations entre les classes
? Modèle d’états
• Description des états successifs d’un objet au cours du temps
• Diagramme d’états : graphe avec pour sommets les états et pour arcs les transitions entre états déclenchées par des événements
? Modèles d’interactions
• Description de la manière de coopérer des objets pour obtenir un résultat
• Cas d’utilisation axé sur une fonctionnalité
• Diagramme de séquence : représentation des interactions entre objets et ordonnancement des interactions
• Diagramme d’activités : détails des étapes importantes du traitement.
Trois modèles (2/2)
? Parties distinctes de la description du système mais interdépendantes
? Le plus fondamental [BR05] : le modèle de classes
« Il est nécessaire de décrire ce qui change ou se transforme avant de décrire quand et comment les changements ont lieu »
Modélisation orientée objet
? Modèle : abstraction pour comprendre un problème avant de mettre en oeuvre une solution [BR05]
• Tester une entité physique avant de la construire
• Communiquer avec les clients
• Visualiser
• Réduire la complexité
Deux dimensions associées à un modèle :
1. Une vue d’un système (modèle de classes, d’états ou d’interactions)
2. Un stade de développement (analyse, conception ou implémentation)
? Trois modèles en UML
• Modèle de classes : aspects orientés « données » du système
• Modèle d’états : aspects temporels, comportementaux et de
« contrôle » du système
• Modèle d’interactions : collaboration entre objets
Un seul aspect du système traité par chaque modèle, mais relations entre les trois modèles Variation du poids des modèles en fonction du problème posé
Modèle de classes (1/20)
? Description de la structure statique d’un système
? Représentation graphique intuitive d’un système [BR05]
? Vocabulaire :
• Objets
• Classes
• Associations
• Liens
• Généralisation
• Héritage
Modèle de classes (2/20) – Objet
? Concept, abstraction ou entité ayant une signification pour une application [BR05]
? Avec une contrepartie dans le monde réel, ou correspondant à une entité conceptuelle ou introduit pour les besoins de l’implémentation Ex. Maude Manouvrier; la formule pour calculer la moyenne d’un module; le pointeur désigné par la variable p
? Identifié et distinguable des autres objets
Modèle de classes (3/20) – Classe
? Description d’un groupe d’objets possédant les mêmes propriétés (attributs) le même comportement (opérations), les mêmes relations et la même sémantique
? Objet : instance de classe
Modèle de classes (4/20)
? Diagrammes de classes : Notation graphique permettant la modélisation des classes et de leurs relations
? Diagrammes d’objets : Représentation des objets individuels et de leurs relations
Modèle de classes (5/20)
? Valeur : donnée sans identité
? Attribut : propriété nommée d’une classe décrivant le type d’une valeur contenue dans chaque objet de la classe
? « Un objet est à une classe ce qu’une valeur est à un attribut » [BR05]
Modèle de classes (6/20)
? Identifiant : implicite
? Ne pas confondre identifiant interne et attribut d’identification ayant une contrepartie dans le monde réel.
Modèle de classes (7/20)
? Opération : fonction ou procédure pouvant être appliquée aux objets ou par les objets d’une classe
? Méthode : implémentation d’une opération pour une classe donnée.
Modèle de classes (8/20)
? Propriété : terme générique pour attribut et opération
? Notation des classes
Sens de flux (direction) : indication si un argument est en entrée non modifiable (in), une sortie (out) ou une entrée modifiable (inout)
SensDeFlux nomArgument : type = valeurParDéfaut
Modèle de classes (9/20)
Liens et associations
? Lien : connexion physique ou conceptuelle entre objets Ex. MaudeManouvrier Professe la MiseANiveauUML
? Association : description d’un groupe de liens qui partagent une structure et une sémantique commune Ex. un Enseignant Professe un Enseignement
Implémentation des associations par référence
Ex. Implémentation de l’association Professe par un attribut Enseignements dans la classe Enseignant et/ou un attribut Enseignants dans la classe Enseignement.
Modèle de classes (16/20)
Association qualifiée
? Qualificateur :
• Attribut permettant de distinguer les objets situés à l’extrémité de multiplicité « plusieurs » d’une association
• Attribut réduisant la multiplicité « plusieurs » à « un »
? Association qualifiée : association contenant un ou plusieurs attributs qualificateurs.
Modèle de classes (17/20)
Généralisation et héritage
? Généralisation : relation hiérarchique entre une classe (la super-classe) et une ou plusieurs variantes de cette classe (les sous-classes) [BR05]
? Super-classe (ou classe-mère) : attributs, opérations et associations communs
? Sous-classe (ou classe fille) : attributs, opérations et associations spécifiques
? Héritage des propriétés de la super-classe par ses sous-classes
………