UML. «Unified Modeling Language» Le Langage de Modélisation Objet Unifié

Documents pareils
Université de Bangui. Modélisons en UML

Les diagrammes de modélisation

Chapitre I : le langage UML et le processus unifié

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

IFT2255 : Génie logiciel

UML (Diagramme de classes) Unified Modeling Language

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Table des matières Sources

Diagramme de classes

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

GOL502 Industries de services

Rational Unified Process

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Chapitre 2. Classes et objets

Rappel sur les bases de données

Méthodologies de développement de logiciels de gestion

Modélisation de bases de données : Le modèle relationnel

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Patrons de Conception (Design Patterns)

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

UML (Paquetage) Unified Modeling Language

Génie Logiciel Avancé Cours 3 Le modèle à objets

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Cours de Génie Logiciel

3. UML - Unified Modeling Language Diagrammes statiques

Cours STIM P8 TD 1 Génie Logiciel

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

A. Définition et formalisme

Urbanisation de système d'information. PLM 3 (Product Lifecycle Management) Élaborations, versions, variantes, configurations

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Bases de données. Chapitre 1. Introduction

Business Process Modeling (BPM)

Analyse,, Conception des Systèmes Informatiques

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Modèle conceptuel : diagramme entité-association

Méthodes de Conception Orientés Objet (MCOO) SOMMAIRE

Systèmes d information et bases de données (niveau 1)

Nom de l application

RTDS G3. Emmanuel Gaudin

Méthodes de développement. Analyse des exigences (spécification)

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Brique BDL Gestion de Projet Logiciel

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Introduction au Génie Logiciel

Projet Active Object

UML et les Bases de Données

II. Modèle conceptuel le modèle entité-association

Pourquoi l apprentissage?

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Formation : Modélisation avec UML 2.0 et Mise en pratique

Héritage presque multiple en Java (1/2)

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Bases de Données. Plan

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Développement d un interpréteur OCL pour une machine virtuelle UML.

Le niveau conceptuel : la modélisation des bases de données

Refonte front-office / back-office - Architecture & Conception -

OASIS Date de publication

Conception des bases de données : Modèle Entité-Association

Génie Logiciel Orienté Objet UML

Cours Gestion de projet

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Application web de gestion de comptes en banques

Conception, architecture et urbanisation des systèmes d information

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

Baccalauréat technologique

CINEMATIQUE DE FICHIERS

Introduction IV. Comparaison MERISE/UML/SCRUM Approche fonctionnelle Schéma Entité/Association Méthodologie...

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Introduction : présentation de la Business Intelligence

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

2. Activités et Modèles de développement en Génie Logiciel

Diagrammes de Package, de déploiement et de composants UML

Description de la formation

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Comprendre Merise et la modélisation des données

M1 : Ingénierie du Logiciel

Programmation Orientée Objet

PRÉSENTATION DES QUESTIONS DE LA FEUILLE DE LOGEMENT

Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET

Théories de la Business Intelligence

Méthodologies Orientées-Objet!

Ingénierie des Modèles. Méta-modélisation

Objectif. Participant. Prérequis. Oracle BI Suite EE 10g R3 - Développer des référentiels. 5 Jours [35 Heures]

Transcription:

UML «Unified Modeling Language» Le Langage de Modélisation Objet Unifié

Modélisation Le Langage de Modélisation Objet Unifié

Qu'est-ce qu'un modèle? Un modèle est une abstraction de la réalité Modéliser est un processus qui consiste à identifier les caractéristiques intéressantes d'entités, en vue d'une utilisation précise L'abstraction désigne aussi le résultat de ce processus, c'est-à-dire l'ensemble des caractéristiques essentielles d'entités, retenues par un observateur Un modèle est une vue subjective mais pertinente de la réalité Un modèle définit une frontière entre la réalité et la perspective de l'observateur Un modèle reflète des aspects importants de la réalité, il en donne une vue pertinente bien qu imprécise

Caractéristiques fondamentales des modèles Faciliter la compréhension du système étudié Un modèle réduit la complexité du système étudié Simuler le système étudié Un modèle représente le système étudié et reproduit ses comportements Un modèle réduit (décompose) la réalité, dans le but de disposer d'éléments exploitables par des moyens Mathématiques Informatiques

Quelques exemples de modèles Modèle météorologique à partir de données d'observation, permet de prévoir des conditions climatiques Modèle économique peut permettre de simuler l'évolution de cours boursiers en fonction d'hypothèses macro-économiques Modèle démographique définit la composition d'un panel d'une population et son comportement, dans le but de fiabiliser des études statistiques, d'augmenter l'impact de démarches commerciales, etc...

L Orientation Objet Le Langage de Modélisation Objet Unifié

Qu est-ce qu un objet? La programmation traditionnelle consiste à traiter des données (éventuellement structurées) au moyen de fonctions ou procédures Un objet est une entité autonome, qui regroupe un ensemble de propriétés cohérentes et de traitements associés. Un objet est une entité aux frontières précises qui possède une identité (un nom) Un ensemble d'attributs caractérise l'état de l'objet Un ensemble d'opérations (méthodes) en définissent le comportement Un objet est accessible à travers une interface Les objets réagissent à des messages, et en envoient à d autres objets, au travers de leurs interfaces

Exemples d objets Individu Objet1 : Individu Nom = Dupont Prénom = Jean Date de naissance = 16/06/40 Sexe = M Correspondant Objet2 : Correspondant Nom = Dupont Prénom = Jean Adresse = DJ@messagerie.fr

Encapsulation Consiste à masquer les détails d'implémentation d'un objet, en définissant une interface L'interface est la vue externe d'un objet, elle définit les services accessibles (offerts) aux utilisateurs de l'objet On peut modifier l'implémentation des attributs d'un objet sans modifier son interface L'encapsulation garantit l'intégrité des données, car elle permet d'interdire l'accès direct aux attributs des objets

Les messages Message simple dont on ne spécifie aucune caractéristique d'envoi ou de réception particulière Message asynchrone qui n'interrompt pas l'exécution de l'expéditeur. Le message envoyé peut être pris en compte par le récepteur à tout moment ou jamais traité Message synchrone qui bloque l'expéditeur jusqu'à prise en compte du message par le destinataire Le flot de contrôle passe de l'émetteur au récepteur L'émetteur devient passif et le récepteur actif à la prise en compte du message Message dérobant qui n'interrompt pas l'exécution de l'expéditeur Il ne déclenche une opération chez le récepteur que s'il s'est préalablement mis en attente de ce message

Encapsulation et messages Les objets communiquent entre eux par des messages M es Objet Partie visible s a g e s Interface Partie cachée Implémentation

Exemples de Messages Message simple Publicité (papier, radio, télé, Internet, ) Message asynchrone Courrier (poste, répondeur, messagerie, ) Message synchrone Conversation (orale, téléphone, chat, ) Message dérobant Avertissement (alerte, autorisation, )

Qu est-ce qu une classe d objets? Une classe est un type de données abstrait, caractérisé par des propriétés (attributs et méthodes) communes à des objets et permettant de créer des objets possédant ces propriétés Exemple Classe Voiture -Marque -Couleur -Immatriculation +Démarrer() +Conduire() +Arrêter() 206 : Voiture Marque = Peugeot Couleur = Gris Immatriculation = 1024 ZZ 13 Objet : instance de classe

Exemples de classes Les individus -Nom -Prénom -Date de naissance -Sexe +Age() Individu Les correspondants Correspondant -Nom -Prénom -Adresse +RecevoirMessage() +EnvoyerMessage()

Héritage Une classe peut être spécialisée en d'autres classes, afin d'y ajouter des caractéristiques spécifiques ou d'en adapter certaines. Plusieurs classes peuvent être généralisées en une classe qui les factorise, afin de regrouper les caractéristiques communes d'un ensemble de classes. La spécialisation et la généralisation permettent de construire des hiérarchies de classes. L'héritage peut être simple ou multiple L'héritage est un mécanisme de transmission des propriétés d'une classe (ses attributs et méthodes) vers une sous-classe.

Hiérarchie de classes Généralisation Oeuvre -Titre -Auteur Livre Opéra Film Roman BD Spécialisation

Polymorphisme Le polymorphisme représente la faculté d'une méthode à pouvoir s'appliquer à des objets de classes différentes Exemple Véhicule +SeDéplacer() Train Voiture Bateau SeDéplacer( "sur des rails" ) SeDéplacer( "sur la route" ) SeDéplacer( "sur l'eau" )

Covariance La covariance est la propriété d une hiérarchie de classes d avoir des parties isomorphes Exemple Animal Bipède Quadrupède Herbivore Carnivore Herbivore Carnivore

Délégation La délégation permet de rompre le mécanisme d héritage entre classe et sous-classes Exemple Animal Station Nourriture Bipède Quadrupède Herbivore Carnivore

Composition Il s'agit d'une relation entre deux classes, spécifiant que les objets d'une classe sont des composants de l'autre classe Les éléments agrégés font physiquement partie de l agrégat Exemple Corps 1 1 Tête Tronc Membres * 1 Inférieurs Supérieurs

Les associations Les associations décrivent des relations structurelles entre classes d objets Chaque classe possède un rôle explicite ou implicite dans une association Forme générale d une association binaire Classe1 -Rôle1 Association > -Rôle2 Classe2 -Attributs1 -Attributs2 +Méthodes1() * Cardinalités * +Méthodes2()

Cardinalités des associations Les cardinalités possibles sont 0..* (ou *) : zéro ou plusieurs 1..* : au moins un 0..1 : un au plus 1..1 (ou 1) : un et un seul Exemples Médecin 0..* Traite > -Patient 1..* Individu Médecin Est > 0..1 1..1 Individu

Associations n-aires et classes d associations Association n-aire Classe d association Professeur 1..1 Professeur 1..1 Salle 1..1 1..* Etudiant Salle 1..1 1..* Etudiant -Date -HeureDébut -Durée Cours

Spécialisation d une classe d association Une classe d association peut participer au modèle On peut par exemple la spécialiser -Récepteur Facteur Personne 0..* 1..* Courrier Lettre Colis

Relations de dépendance Indiquent une contrainte à respecter au moment d instancier des éléments d un modèle -Parent d'élèves Ecole Sous-ensemble Individu -Délégué

UML Le Langage de Modélisation Objet Unifié

Comment modéliser avec UML? UML est un langage qui permet de représenter des modèles, mais il ne définit pas le processus d'élaboration des modèles Cependant, dans le cadre de la modélisation d'une application informatique, les auteurs d'uml préconisent d'utiliser une démarche itérative et incrémentale guidée par les besoins des utilisateurs du système centrée sur l'architecture logicielle Un processus de développement qui possède ces qualités devrait favoriser la réussite d'un projet

Une démarche itérative et incrémentale Pour modéliser (comprendre et représenter) un système complexe, il vaut mieux s'y prendre en plusieurs fois, en affinant son analyse par étapes Cette démarche devrait aussi s'appliquer au cycle de développement dans son ensemble, en favorisant le prototypage Le but est de mieux maîtriser la part d'inconnu et d'incertitudes qui caractérisent les systèmes complexes

Une démarche guidée par les besoins des utilisateurs Ce sont les utilisateurs qui guident la définition des modèles Le périmètre du système à modéliser est défini par les besoins des utilisateurs Le but du système à modéliser est de répondre aux besoins de ses utilisateurs Les besoins des utilisateurs servent aussi de fil rouge A chaque itération de la phase d'analyse, on clarifie, affine et valide les besoins des utilisateurs A chaque itération de la phase de conception et de réalisation, on veille à la prise en compte des besoins des utilisateurs A chaque itération de la phase de test, on vérifie que les besoins des utilisateurs sont satisfaits

Une démarche centrée sur l'architecture logicielle Définir une architecture avec UML : «4+1» La vue logique modélise les éléments et mécanismes principaux du système La vue des composants identifie les modules qui réalisent (physiquement) les éléments de la vue logique La vue des processus montre la décomposition du système en terme de processus (tâches) et leurs interactions La vue de déploiement décrit les ressources matérielles et la répartition du logiciel dans ces ressources La vue des besoins des utilisateurs ( «cas d utilisation») guide toutes les autres

Vues statiques Modéliser les vues statiques et dynamiques d un système Cas d'utilisation (use cases) Diagrammes de classes Vues dynamiques Diagrammes de collaborations Diagrammes de séquence Il existe d autres diagrammes que nous ne présenterons pas dans le cadre de ce cours (voir la bibliographie dans la dernière diapositive)

Exercice ( fil rouge ) Bar en mode client / serveur serveur Ressources client demande de boisson boisson et informations de service gestion : de la file d'attente des ressources des conflits

Les cas d utilisation Ils identifient les utilisateurs du système (acteurs) et leurs interactions avec le système Ils permettent de structurer les besoins des utilisateurs et les objectifs correspondants d'un système Ils se limitent aux préoccupations "réelles" des utilisateurs ils ne présentent pas de solutions d'implémentation ils ne forment pas un inventaire fonctionnel du système

Exemple de cas d utilisation On ne peut retirer de l'argent que dans la limite du contenu du coffre du distributeur débite Retirer de l'argent Client Ravitailler le coffre Eteindre/allumer le distributeur Agent de maintenance L'agent de maintenance doit eteindre le distributeur avant de ravitailler le coffre

Exercice : cas d utilisation

Les diagrammes de classes Un diagramme de classes fait abstraction des aspects dynamiques et temporels Pour un modèle complexe, plusieurs diagrammes de classes complémentaires doivent être construits On peut par exemple se focaliser sur les classes qui participent à un cas d'utilisation les classes associées dans la réalisation d'un scénario précis la structure hiérarchique d'un ensemble de classes On peut aussi avoir recours aux associations entre classes

Exercice : diagramme de classes

Les diagrammes de collaboration Les diagrammes de collaboration montrent des interactions entre objets Ils permettent de représenter le contexte d'une interaction, car on peut y préciser les états des objets qui interagissent Exemple Décoller (simple) AF-A320 : Avion Etat = a_terre TourDeControle Attérir (dérobant) DA-B737 : Avion Etat = en_vol

Exercice : diagramme de collaboration

Les diagrammes de séquences Les diagrammes de séquences permettent de représenter des collaborations entre objets selon un point de vue temporel on y met l'accent sur la chronologie des envois de messages Les diagrammes de séquences peuvent servir à illustrer des cas d'utilisation L'ordre d'envoi des messages est déterminé par leur position sur l'axe vertical du diagramme le temps s'écoule "de haut en bas" de cet axe

Axe temporel des diagrammes de séquences Objet : Classe Message simple Message asynchrone Temps Message synchrone Créer NouvelObjet : Classe Détruire Message de renvoi Lignes de vie Période d activation

Conditions dans les diagrammes de séquences Objet AutreObjet Message asynchrone Renvoi explicite SI <Condition> Alors Sinon Cas B Cas A

Exercice : diagramme de séquences

Problème On se propose de modéliser avec UML le fonctionnement du cabinet d un médecin généraliste Les cas d utilisation devront mettre en évidence les acteurs et leurs interactions avec le système Si nécessaire, un diagramme de classes présentera les spécificités des entités impliquées Un ou des diagrammes de collaboration préciseront les interactions entre objets et/ou classes Un diagramme de séquences devra montrer les collaborations dans le temps et/ou illustrer des cas d utilisation

Bibliographie Livres Modélisation objet avec UML. P-A Muller, N Gaertner. Eyrolles Exercices corrigés d UML : Génie logiciel. P André, A Vailly. Ellipses Marketing Sites Internet Introduction à la notation UML : http://www.commentcamarche.net/uml/umlintro.php3 UML en français : http://uml.free.fr Introduction to OMG s UML : http://www.omg.org/gettingstarted/what_is_uml.htm