21/12/2008

Conception et Programmation Orientée Objet

Plan
Introduction Présentation d’UML
Définitions Domaines d’utilisation Eléments de base

Unified Modeling Language
Lilia SFAXI
RT3 Année universitaire : 2008/2009

Diagramme de cas d’utilisation Diagramme de classes Diagramme d’objets Diagramme de séquences et de collaboration Conclusion
2

Modélisation
Modèle
Représentation abstraite et simplifiée d’une entité du monde réel en vue de le décrire, de l’expliquer ou de le prévoir Théorie orientée vers l’action qu’elle doit servir

Modélisation

Introduction

Permet de réduire la complexité d’un phénomène
Éliminer les détails non significatifs Refléter ce qui est important pour la compréhension et prédiction du phénomène modélisé

Exemples de modèles
Modèle météorologique Modèle économique Modèle démographique Plans
3 4

1

6 5 Bonnes pratiques Développement itératif Découpage du problème en étapes élémentaires Chaque étape produit des retours et adaptations si nécessaire Développement à base de composants Découpage en modules réutilisables Pilotage du développement par les risques Analyse des risques au plus tôt Travailler sur les risques critiques UML Gestion des exigences Fonctionnelles : ce que le système doit savoir faire Non fonctionnelles : QoS. sécurité. Maîtriser la complexité et augmenter la réutilisation.21/12/2008 Modélisation Modéliser un système pour : Mieux comprendre son fonctionnement Maîtriser sa complexité Assurer sa cohérence Permettre la communication entre les différents membres de l’équipe Permettre une bonne répartition des tâches Réduire les coûts et les délais Gestion de projet Bien comprendre les besoins. temps de réponse. Tester et valider chaque phase de la conception pour ne pas découvrir des problèmes plus tard. Faciliter le travail en équipe. les demandes et les exigences des utilisateurs finaux. Bonne communication avec le client pour valider certains choix et vérification de l’étape (1).… Maîtrise des modifications Demande d’évolution Rapport d’anomalie Evaluation continue de la qualité Modélisation visuelles Utilisation de langages visuels et schématiques 7 8 2 . Traiter au plus tôt les problèmes. Définir une architecture robuste.

UML est un méta-langage de modélisation permettant d’unifier les modèles utilisés dans les méthodes de développement (raffinement). Réflexion sur des modèles formels Approche indépendante du langage objet d'implémentation (C++. Une automatisation par outil peut ainsi être mise en place pour traiter certaines informations. Problème dans le partage de ces modèles avec d’autres personnes Risques d’incompréhension. un langage pour spécifier Dans le cadre d’UML. UML. Utilisation d’un modèle de représentation mental.).21/12/2008 Définition Langage standard conçu pour permettre aux concepteurs d’élaborer les plans des logiciels qu’ils doivent développer Né de la fusion de 3 méthodes: OMT Booch OOSE UML est un langage Ce langage possède un vocabulaire et des règles qui permettent de combiner les mots afin de communiquer. 10 UML. Aucune décision d’implémentation. 11 12 3 .. On se sert du langage UML pour: Visualiser Spécifier Construire Documenter Communiquer (travailler à plusieurs) 9 Le vocabulaire et les règles d’écriture régissent la manière de construire et de lire les modèles correctement mis en forme. UML n’est pas une méthode mais une notation qui laisse la liberté de conception. Un modèle peut être écrit par un concepteur et compris pas un autre sans ambiguïté. La modélisation permet de comprendre le système. un langage pour visualiser Pour certains développeurs. d’incertitudes. il existe un lien direct entre une idée et son code d’implémentation. UML est bien plus qu’un assemblage de symboles graphiques ! Chaque symbole graphique possède sa sémantique propre (signification universelle). spécifier signifie construire sans ambiguïté UML offre la possibilité de spécifier le comportement de l’application de manière formelle.. Tous les modèles sont liés les uns avec les autres afin de représenter le système et les interactions entre les blocs élémentaires.. Chaque organisation et/ou personne possède son propre langage (difficulté d’intégration) UML permet de résoudre les problématiques du partage de l’information de manière visuelle. etc. Java..

15 16 4 .21/12/2008 UML. il existe 3 types de briques de base Les éléments Ce sont les abstractions essentielles au modèle. Mais pas seulement : on peut modéliser des comportement mécaniques. humain. Les éléments Ce sont les éléments de base qui vont permettre la définition par la suite des modèles Il existe 4 types d’éléments en UML Les éléments Les éléments Les éléments Les éléments structurels comportementaux de regroupement d’annotation Les relations Les relations expriment les liens existants entre les différents éléments. on réalise des choix Architecture d’implémentation Besoins identifiés Code source du projet Planning de développement Les plans et les jeux de test. etc. aéronautique. etc. … Les domaines d’utilisation de UML UML est employé dans l’ensemble des secteurs du développement informatique Systèmes d’information Télécommunication. aérospatial Domaines scientifiques UML permet de réaliser la définition et la documentation de ces tâches. Structure d’un système de santé / judiciaire. Les diagrammes Les diagrammes comprennent des ensembles d’éléments dignes d'intérêt. 13 14 Les briques de base d’UML Dans le langage UML. un langage pour documenter Lors du développement d’un produit. défense Transport.

21/12/2008 Les éléments structurels Les éléments structurels sont les éléments les plus statiques d’UML. Ce sont les commentaires qui vont être ajoutés aux modèles afin : D’expliquer un choix Décrire le fonctionnement Faire une remarque Détailler une hypothèse Spécifier une contrainte d’implémentation 19 20 5 . il en existe 7 types distincts Les classes Les interfaces Les collaborations Les cas d’utilisation Les classes actives Les composants Les noeuds Les éléments comportementaux Les éléments comportementaux représentent les parties dynamiques des modèles Ils permettent de définir le comportement du modèle dans le temps et l’espace Il en existe 2 types fondamentaux : Les interactions Les automates à états finis 17 18 Les éléments de regroupement Les éléments de regroupement représentent les parties organisationnelles des modèles UML Ce sont les boites dans lesquelles un modèle peut être décomposé Il existe un seul type d’élément de regroupement : le package Les éléments d’annotation Les modèles d’annotation représentent les parties explicatives des modèles UML.

dont certains spécifient le comportement proposé par les autres éléments contenus. Modélisation des parties structurelles (statique) Modélisation du comportement (dynamique) 21 22 Les diagrammes en UML Un diagramme est une représentation visuelle de l’ensemble des éléments qui constituent le système Ils servent à visualiser un système sous différents angles (utilisateur. un diagramme ne fournit qu’une vue partielle du système L’ensemble des diagrammes réunis permet d’obtenir une vue globale du système à concevoir Chaque diagramme va permettre de modéliser ou spécifier une vue (spécificité) du système à concevoir Les diagrammes en UML Diagrammes structurels / statiques (UML Structure) diagramme de classes (Class diagram) diagramme d’objets (Object diagram) diagramme de composants (Component diagram) diagramme de déploiement (Deployment diagram) diagramme de paquetages (Package diagram) diagramme de structures composites (Composite structure diagram) Diagrammes comportementaux / dynamiques (UML Behavior) diagramme de cas d’utilisation (Use case diagram) diagramme d’activités (Activity diagram) diagramme d’états-transitions (State machine diagram) diagrammes d’interaction (Interaction diagram) diagramme de séquence (Sequence diagram) diagramme de communication (Communication diagram) diagramme global d’interaction (Interaction overview diagram) diagramme de temps (Timing diagram) 24 23 6 . Un modèle est une abstraction complète et cohérente d’un système permettant d’en faciliter la compréhension. administrateur par ex. 4 relations de base ont été définies : La dépendance La généralisation L’association La réalisation Les diagrammes en UML Un système est un ensemble de sous-systèmes organisés pour atteindre un objectif et décrit à l’aide de modèles Un sous-système est un regroupement d’éléments .) Dans les systèmes complexes.21/12/2008 Les relations dans UML Afin d’exprimer les liens interconnectant les différents éléments des modèles.

d’une classe ou d’un composant tel qu’un utilisateur extérieur le voit Scinder la fonctionnalité du système en unités cohérentes Diagramme de cas d’utilisation Cas d’utilisation Exprimer les besoins des utilisateurs d’un système Se compose de : Acteurs Cas d’utilisation Relations 25 26 Acteurs Idéalisation d’un rôle joué par : Une personne externe Un processus Un autre système Cas d’utilisation Unité cohérente Représente une fonctionnalité visible de l’extérieur Réalise un service pour l’acteur qui l’initie. d’un soussystème. avec: Déclenchement Déroulement Fin Représenté par un petit bonhomme Il faut identifier les rôles des utilisateurs d’un système pour trouver les acteurs Définition de la frontière du système Tout ce qui est à l’extérieur du système : Acteur Tout ce qui est à l’intérieur du système : Fonctionnalité Modélise un service rendu par le système Représenté par une ellipse contenant le nom du cas (verbe à l’infinitif) Effectuer Virement 27 28 7 .21/12/2008 Diagramme de cas d’utilisation Capturer le comportement d’un système.

21/12/2008 Relations acteurs/cas d’utilisations Association Chemin de communication entre acteur et cas d’utilisation Représenté par un trait continu Peut définir : Une multiplicité : un acteur peut interagir plusieurs fois avec le cas d’utilisation Relations entre cas d’utilisation Relation d’inclusion Un cas A inclut un cas B si l’exécution de A entraîne obligatoirement celle de B Permet de Décomposer un cas complexe en sous-cas Factoriser un comportement commun à plusieurs cas d’utilisation Stéréotype <<include>> Relation d’extension Un cas A étend un cas B quand A peut être appelé au cours de l’exécution de B L’extension est optionnelle Définit Point d’extension : point précis du cas étendu au niveau duquel l’extension peut intervenir Une contrainte : condition pendant laquelle l’extension intervient Acteur Principal / Secondaire Acteur principal : si le cas rend service à l’acteur Stéréotype <<primary>> Acteurs secondaires : les autres acteurs Stéréotype <<secondary>> Stéréotype <<extend>> Relation de généralisation Le cas A est une généralisation du cas B si B est un cas particulier de A Concept d’héritage 30 29 Exemple : Borne interactive d’une banque Description textuelle d’un cas d’utilisation Obligatoire pour la description du comportement du système Se décompose en : Identification du cas d’utilisation Nom : infinitif Objectif : description résumée Acteurs : principaux et secondaire Description du fonctionnement Séquence nominale : décrit le déroulement normal du cas Pré-conditions : état du système avant le déclenchement du cas Post-conditions : état du système à l’issue de l’exécution du cas Rubrique optionnelle Spécifications non fonctionnelles : spécifications techniques. besoins en interface graphique … 31 32 8 .

[<date>]. Nom de la classe A la forme : [ <Nom_du_paquetage_1>:: . Private ou – seul un élément situé dans la classe courante peut voir l’élément. } ] Exceptions (op) Situations exceptionnelles devant être gérées par les classes 35 36 Exemple : Pack1::Class1 {abstract... [<auteur>].21/12/2008 Diagramme de classes Le diagramme le plus important de la modélisation orientée objet : le seul obligatoire Décrit la structure interne du système Fournir une représentation abstraite des objets du système qui interagissent ensemble pour réaliser le cas d’utilisation Vue statique : pas de facteur temporel Modélisation des classes du système et leurs relations Indépendant du langage de programmation Diagramme de classes 33 34 Classes Description formelle d’un ensemble d’objets ayant une sémantique et des caractéristiques communes Un objet est une instance de classe Représentée par un rectangle divisé en 3 compartiments obligatoires et 2 optionnels Nom de la classe Attributs Méthodes Responsabilités (op) ensemble des tâches devant être assurées par la classe mais pour lesquelles on ne dispose pas d’assez d’informations Caractéristiques d’une classe Visibilité Public ou + tout élément qui peut voir la classe courante peut également voir l’élément indiqué Protected ou # seul un élément situé dans la classe courante ou un de ses descendants peut voir l’élément indiqué. Package ou ~ ou rien seul un élément déclaré dans le même paquetage peut voir l’élément. .. Lilia} 9 . ::<Nom_du_paquetage_N> ] <Nom_de_la_classe> [ { [abstract]..

. un type de retour et des paramètres A la forme : <visibilité> <nom_méthode> ([<paramètre_1>. pas à l’instance(static en java) Garde une valeur unique et partagée par toutes les instances de la classe Graphiquement : souligné 37 Un paramètre a la forme : [<direction>] <nom_paramètre>:<type> ['['<multiplicité>']'] [=<valeur_par_défaut>] Exemple + déplacer (in distance : int = 2) : void {abstract} 38 Interfaces Type particulier de classes Classe où toutes les méthodes sont abstraites Stéréotype « interface » Relation d’association Relation entre deux classes ou plus décrivant les connexions structurelles entre leurs instances Relie des classes au même niveau hiérarchique (conceptuellement parlant) 4 décorations permettent de spécifier le lien entre objets Nom : nature des relations entre les objets Direction : direction d’application du nom Rôle : rôle spécifique de chacune des classes dans l’association Cardinalité : nombre d’éléments affectés Permet de regrouper un ensemble de propriétés et d’opérations assurant un service cohérent Doit être réalisée (implémentée) par au moins une classe et peut l’être par plusieurs Stéréotype « realize» Une classe peut dépendre d’une interface Stéréotype « use » Exemple 39 40 10 . .21/12/2008 Attributs Données encapsulées dans les objets de cette classe Définis par un nom. et une visibilité A la forme <visibilité> [/] <nom_attribut> : <type> ['['<multiplicité>']' [{<contrainte>}] ] [ = <valeur_par_défaut> ] Méthodes Décrit une fonctionnalité de la classe Doit contenir un nom.. un type de données. <paramètre_N>]) : [<type_renvoyé>] [{<propriétés>}] Exemple + couleur : int [3] {list} Attribut de classe Attribut propre à la classe. .

il est nécessaire de documenter ses modèles : Contraintes matérielles Contraintes de performance Choix techniques réalisés Références à d’autres documents Explications techniques.21/12/2008 Relations d’agrégation et de composition Agrégarion Définit une relation hiérarchique entre les entités Définit la relation : « se compose de » et modélise la notion de « possession » ou de « tout et partie » Relation de dépendance La dépendance établit une relation d’utilisation entre 2 entités d’un même diagramme. Les entités issues d’une généralisation sont utilisables partout ou leur classe mère peut l'être (mais pas l’inverse) Généralisation (classe. classe) ou (classe. interface) Cette relation est modélisée par une flèche pointant sur la classe mère En UML. La plupart du temps il s’agit d’une dépendance d’utilisation : Argument d’une méthode par exemple On parle alors de “relation d’utilisation” Composition Définit une contenance structurelle entre les instances La destruction de l’objet composite implique la destruction de ses composants Une instance du composant appartient au plus à une instance du composite Cela permet d’identifier implications possibles des modifications à apporter dans une entité Changement du comportement d’une des classes par exemple Agrégation 41 Composition 42 Dépendance Relation de généralisation Modélise la relation d’héritage La généralisation correspond à la notion “est une sorte de” Modélisation des relations parents / enfants Les Notes (commentaires) Lors des phases de modélisation et de spécification. etc. on utilise les Notes 43 44 11 .

instances de classes) et leurs liens (i. suivi de celui de la classe.e. instances de relations) pour donner une vue figée de l’état d’un système à un instant donné Peut être utilisé pour illustrer le modèle de classes en montrant un exemple qui explique le modèle préciser certains aspects du système en mettant en évidence des détails imperceptibles dans le diagramme de classes exprimer une exception en modélisant des cas particuliers ou des connaissances non généralisables qui ne sont pas modélisés dans un diagramme de classe prendre une image (snapshot) d’un système à un moment donné Graphiquement Un objet est représenté comme une classe. mais le compartiment des méthodes n’est pas indiqué Le nom de l’objet est composé du nom de l’instance. l’objet est partiellement défini Le diagramme de classes modélise les règles et le diagramme d’objets modélise des faits 47 La relation de généralisation n’est jamais représentée Les multiplicités ne sont pas représentées On peut représenter de dépendance d’instanciation Stéréotype « instance of » 48 12 .e.21/12/2008 Exemple : Banque Diagramme d’objet 45 46 Diagramme d’objets Représente des objets (i. et est souligné Les attributs reçoivent des valeurs Si certaines valeurs ne sont pas renseignées.

21/12/2008 Exemples Diagrammes de séquence et de collaboration 49 50 Diagramme de séquences Modélisation les interactions entre les objets Mise en évidence de l’aspect temporel des traitements (ordre chronologique de réalisation) Mise en évidence des objets et des messages échangés par les entités interagissant avec et/ou dans le système La modélisation est basée sur l’affichage des objets participant à la séquence et à l’ordre des messages et des actions associées. Exemple : Client / Serveur 51 52 13 .

21/12/2008 Diagramme de collaboration Mise en évidence de l’organisation des objets qui vont collaborer pour effectuer une interaction On représente les objets qui vont intervenir (les sommets) On modélise les liens qui vont modéliser les communications entre les objets (les arcs) On annote les liens à l’aide des informations qui vont être échangées entre les entités Exemple : Client / Serveur Visualisation claire du flot de contrôle dans le contexte de l'organisation structurelle 53 54 Conclusion UML : Langage permettant d'appréhender la réalisation d’un système informatique complexe Ensemble de diagrammes qui permettent d’aider la réflexion. de permettre la discussion sur des bases normalisées et formalisées (clients. développeurs) Pas de solution unique mais un ensemble de solutions plus ou moins acceptables Contraintes clients (performances et fonctionnalités) Architectures logicielles et matérielles à disposition Des itérations successives du flot permettent d’aboutir à une solution Les diagrammes et notions présentées dans ce cours ne sont qu’une petite introduction à UML 56 Conclusion 55 14 .