Modélisation orientée objet UML

Slides:



Advertisements
Présentations similaires
Sintaks : Tentative de guide de mise en œuvre Michel Hassenforder.
Advertisements

Génie Logiciel 2 Julie Dugdale
Laboratoire Informatique Image Interaction
UML - Présentation.
Introduction à Java - les paquetages -
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Modélisation de S.I. Étude de cas Compagnie aérienne : CRM
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
Diagramme de Classes Bonjour,
UML : GENERALITES Rappel Diagrammes Niveaux de visions
Pattern État PowerPoint 2003, télécharger la visionneuse PowerPoint Viewer dernière édition si vous ne lavez pas…télécharger la visionneuse PowerPoint.
Programmation orientée objet
Analyse et Conception orientée objet
Principes de la technologie orientée objets
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Analyse et Conception orientée objet
Langage Oriente Objet Cours 4.
Modélisation E/R des Données
Introduction à la conception de Bases de Données Relationnelles
Modélisation des bases de données avec UML
Modélisation en UML : Diagramme des classes
Discussion sur la plate-forme MIMOSA Jean-Pierre Müller, CIRAD-TERA Équipe "Dynamique et usage des ressources et modélisation des systèmes complexes"
IFT1025, Programmation 2 Jian-Yun Nie
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
C++ : classes Introduction aux Langages Orientés Objets
RDF(S)
Classes abstraites et Interfaces
Static modeling, Thu G. Falquet, L. Nerima.
Chapitre 3 Les diagrammes de classes
Vers la conception objet
Langage Oriente Objet Cours 2.
Modélisation orientée objet UML
SYSTEMES D’INFORMATION
Structures de données IFT-10541
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Behavioral Design Patterns The Observer Pattern Roberto Demontis Sylvain Giroux.
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
Introduction au paradigme orienté-objet (suite)
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Sensibilisation a la modelisation
Héritage et composition
Diagrammes de classe UML.
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
Management des Systèmes d’Information (MSI)
Programmation objet La base.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
2 Processus de conception de BD
Les classes Introduction aux Langages Orientés Objets
Behavioral Design Patterns The Observer Pattern. Intention Définir une dépendance de “1” à “n” entre des objets de telle sorte que lorsque l’état d’un.
Héritage Conception par Objet et programmation Java
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
(UML) Unified Modeling Language
Nouvelles Technologies Internet & Mobile
UML : DIAGRAMME DE CLASSES
Introduction à la Programmation Orientée Objet
Langage de modélisation objet unifié
Michel TOLLENAERE 1 Cours MSI 2A ICL session automne 2015 Management des Systèmes d’Information (MSI) Cours : chapitre 3 UML Etude de cas Implémentation.
Introduction à l'orienté objet. Définition Le terme orienté objet siginifie que l'on organise le logiciel comme une collection d'objets organisée en graphe.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Transcription de la présentation:

Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation statique Le diagramme de classes à toujours été le plus important dans les méthodes orientées objet. LE diagramme utilisé en priorité par les outils de génération de code. Possède la plus grande gamme de notation et de variantes.

Modélisation statique Identifier les concepts du domaine et les modéliser en tant que classes. Identifier les associations pertinentes entre les concepts. Identifier les multiplicités pour les différentes associations – classes. Ajouter des attributs aux classes du domaine. Comprendre la différence entre modèle d’analyse et de conception.

Diagramme de classes Point central dans un développement orientée objet. En analyse, il a pour objectif de décrire la structure des entités manipulées. En conception, représente la structure d’un code orientée objet.

Classe et objet ! Classe : Objet : Représente la description abstraite d’un ensemble d’objets possédant les mêmes caractéristiques et ayant des comportements communs (voiture, personne). Objet : Entité aux frontières bien définies, possédant une identité et en encapsulant un état et un comportement. Est une instance d’une classe (Olivier instance de Personne, salle B118 instance de Salle…).

Attribut et opération Un attribut Opération : Représente un type d’information contenu dans une classe (vitesse courante, n° immatriculation attribut de la classe voiture). Opération : Elément de comportement (service) contenu dans une classe. Intervient en conception objet = attribution des responsabilités aux objets.

Association Représente une relation sémantique durable entre deux classes (une personne possède des voitures). Attention : Même si le verbe qui nomme une association semble privilégier un sens de lecture, une association entre concepts est par défaut bidirectionnelle (Une voiture est possédée par une personne. Personne possède une référence sur voiture). Aux deux extrémités d’une association, on indique la multiplicité : Le nombre d’objets qui peuvent participer à une relation avec un objet d’une autre classe. Possède Personne Voiture 1 0..*

Agrégation et composition Cas particulier d’association non symétrique exprimant la contenance. Les agrégations n’ont pas besoin d’être nommées (signifient « contient », « est composée de ». Composition : Agrégation forte; Un élément ne peut appartenir qu’à un seul agrégat (agrégation non partagée). La destruction de l’agrégat implique la destruction de tous ses éléments. Agrégat Elément 1..* 0..* Composé Elément 1 0..*

Héritage, super classe, sous classe… Classe plus générale reliée à une ou plusieurs autres classes plus spécialisées (sous classes). Les sous classes héritent des propriétés de leur super classe et peuvent comporter des propriétés plus spécifiques. Représentation : MoyenTransport Marque Modèle Voiture N°Immatriculation Cylindrée Bateau Tirant d’eau Puissance moteur Avion Altitude Max Système vision

Classe abstraite Une classe qu ne s’instancie pas et qui représente une pure abstraction afin de factoriser des propriétés communes. MoyenTransport est le cas typique d’une classe abstraite.

Package Mécanisme général de regroupement d’éléments en UML. Utilisé pour regrouper des classes et des associations. Espace de nommage : 2 éléments ne peuvent pas avoir le même nom au sein d’un même package. Cohérence d’un package : Regroupement de classes proches au niveau sémantique. Indépendance d’un package : Minimiser les relations entre packages (i.e : les relations entre classes de packages différents).

Etude d’un système de réservation de vol Système simplifié de réservation de vols pour une agence de voyages : Des compagnies aériennes proposent différents vols Un vol est ouvert à la réservation et refermé sur ordre de la compagnie. Un client peut réserver un ou plusieurs vols , pour des passagers différents. Une réservation concerne un seul vol et un seul passager. Une réservation peut être peut être annulée ou confirmée. Un vol a un aéroport de départ et un aéroport d’arrivée. Un vol a un jour et une heure de départ et un jour et une heure d’arrivée. Un vol peut comporter des escales dans des aéroports. Une escale a une heure d’arrivée et une heure de départ. Chaque aéroport dessert une ou plusieurs villes.

Modélisation de la phrase 1 CompagneAerienne et Vol sont des concepts importants : ils ont des propriétés et des comportements. 1..* 1..* CompagnieAerienne Vol Propose Coté vol : modélisation : 1..* (Conception : 0..*). Pas d’infos sur multiplicité du côté de la classe CompagnieAérienne!

Modélisation de la phrase 2 Ouverture et fermeture de la réservation = concepts dynamiques. 1..* Vol CompagnieAerienne Propose CompagnieAerienne Vol Propose Ouvrir réservation () Fermer réservation ()

Modélisation de la phrase 7 Dates et heures = valeurs = caractéristiques de Vol. 1..* 1..* CompagnieAerienne Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () Propose Si on ne peut pas demander à un élément plus que sa valeur = attribut.

Modélisation de la phrase 6 Créer deux associations entre les classes « Vol » et « Aeroport ». Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () Aeroport départ 1 arrivée 1

Modélisation de la phrase 10 Un aéroport dessert une ou plusieurs villes : Ne permet pas de déterminer la multiplicité du coté de aéroport. Aeroport Ville dessert 1..*

Modélisation des phrases 8 et 9 Escale peut elle appartenir à plusieurs vols (cf. phr. 8)? Escale deux propriétés : heure d’arrivée et heure de départ. Elle est en relation avec des vols et des aéroports (objets) => Escale est une classe. Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () départ 1 Aeroport Nom arrivée 1 Escale HeureArrivee HeureDepart comporte 0..*

Hypothèses sur la phrase 8 Un vol peut comporter des vols dans des aéroports = formulation ambiguë. Une escale à lieu dans un seul aéroport. Un aéroport peut servir à plusieurs escales. Un aéroport sert de départ et d’arrivée à n vols. Question : Une escale appartient elle à un seul vol ? Comment infirmer ou confirmer nos hypothèses? Appel à l’expert métier. Documenter les exemples fournis.

Diagramme d’objets Montre des objets : instances de classes dans un état particulier Des liens (relations sémantiques) entre ces objets. Utiliser pour montrer un contexte : avant ou après une interaction entre objets Utiliser en phase exploratoire : Haut niveau d’abstraction.

Diagramme d’objets Représentation : :Voiture Instance anonyme de la classe voiture laguna:Voiture Instance nommée de la classe voiture :Voiture Couleur = rose Immatriculation = 9509kk33 Instance anonyme de la classe voiture dont certains attributs sont positionnés. ColIection d’instance anonyme de la classe voiture :Voiture laguna:Voiture A10:Autoroute Emprunte

Diagramme d’objets Blagnac:Aeroport ToulouseMinorque:Vol Départ Palma:Escale Bordeaux:Escale Départ BordeauxMinorque:Vol Mérignac:Aeroport Arrivée Minorque:Aeroport

Modélisation des phrases 8 et 9 Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () départ 1 Aeroport Nom arrivée 1 1 1..* Escale HeureArrivee HeureDepart A lieu dans 0..* 0..*

Solution plus sophistiquée ! Classe d’association : Escale peut être vue comme un 3eme rôle joué par l’aéroport : Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () départ 1 Aeroport Nom arrivée 1 Escale 0..* 0..* InfosEscale heureDep HeureArr

Modélisation des phrases 3,4 et 5 Différencier le concept de client et de passager. Un client peut effectuer n réservations. A effectué Client Nom Reservation 1 0..* 0..* Annuler() Confirmer() concerne 1 0..* Passager Vol concerne 1

CompagnieAerienne Client Vol Reservation Passager Propose 1 A effectué Nom 1..* Propose 1 A effectué 1..* dep 0..* Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () Aeroport Reservation 1 0..* 1 Arri 1 0..* 0..* Esc 0..* 0..* 0..* 0..* Dessert InfosEscale heureDep HeureArr 1..* Concerne Ville 1 Passager

Modèles de conception Modélisez l’utilisation de feutres et de stylos : Un feutre possède un bouchon, le stylo a une pointe rétractable. Certains feutres peuvent être effaçables. Sur un stylo ou un feutre on doit pouvoir connaître son poids sa taille et son niveau d’encre. Une personne peut posséder plusieurs stylos et feutres.

Modèles de conception Proposez un cadre de modélisation des règles du jeu d’échecs! Modélisez le matériel utilisé par les joueurs puis la notion de partie.

Système de gestion de fichiers Les fichiers, les raccourcis et les répertoires sont contenus dans des répertoires et possèdent un nom. Un raccourci peut concerner un fichier ou un répertoire. Au sein d’un répertoire donné, un nom peut identifier qu’un seul élément.

Le modèle Sujet - Observateur Indication d’utilisation : Quand un concept à 2 représentations, l’une dépendant de l’autre. Quand la modification d’un objet => la modification des autres et que l’on ne sait pas combien sont ces autres. Quand un objet doit notifier aux autres objets sans faire d’hypothèses sur la nature de ces objets (donc non fortement couplés).

Structure

Constituants Sujet Observateur SujetConcret ObservateurConcret Connaît ses observateurs. Un nombre quelconques d’observateurs peut observer un sujet. Observateur Définit une interface de MAJ pour les objets qui doivent être notifiés de changements dans un sujet. SujetConcret Mémorise les états qu intéressent les objets ObservateurCocnret Envoi une notification à ses observateurs lorsqu’il change d’état. ObservateurConcret Gère une référence sur un objet SujetConcret. Mémorise l’état qui doit rester pertinent pour le sujet. Implémentation de l’interface de MAJ de l’observateur pour conserver la cohérence de son état avec le sujet.

Le modèle État Indication d’utilisation : Quand le comportement d’un objet dépend de son état. Le changement de comportement intervient dynamiquement en fonction de l’état. Quand on veut éviter les blocs de déclarations conditionnelles fonctions de l’état de l’objet. Le modèle « État » place dans une classe séparée, chacune des branches de la condition. Ceci permet de traiter l’état de l’objet, comme un objet à part entière, qui peut varier indépendamment des autres objets.

Structure

Constituants Contexte État Sous_classes EtatConcret Définit l’interface intéressant les clients. Gère une instance d’une sous-classe EtatConcret qui définit l’état en cours. État Définit l’interface qui encapsule le comportement associé avec un état particulier de Contexte. Sous_classes EtatConcret Chaque sous-classe implémente un comportement associé avec l’état.

Rappel sur les notations UML Java public class Catalogue { } abstract public class Personne { Interface InterAffiche { void affiche(); Catalogue Personne <<interface>> InterAffiche void affiche();

Rappel sur les notations UML Java public class Catalogue { private string nom; public int nb Pages; protected int largeur; … public GetNom() {} protected Retrecir{} private RechercheDichotomique {} } Catalogue -nom :String +nbPages : int #largeur : int +GetNom(); #Retrecir(); -RechercheDichotomique ();

Rappel sur les notations UML Java public class Cercle { private static int rayon; Private Couleur couleur; … public static ChangeRayon(int nVal) {} public ChangeCouleur(int nCoul) {} Cercle -rayon : int = 5; -couleur:Couleur +ChangeRayon(int nVal) +ChangeCouleur(couleur nCoul)

Réalisation ou héritage UML Java public class Cercle extends Figure { private static int rayon; Private Couleur couleur; … } Si Figure est une interface : public class Cercle implements Figure { Figure -positionX;int; -psoitionY:int void Affiche() Cercle -rayon : int = 5; -couleur:Couleur +ChangeRayon(int nVal) +ChangeCouleur(couleur nCoul)

Association UML Java Public class A1 { private B1 instanceB1; } private B1 instancesB1[]; Public class Homme { private Femme epouse; Public classe Femme { private Homme mari; 1 A1 B1 * A1 B1 Est marié Homme Femme 0..1 0..1

Agrégation et composition UML Java Public class voiture { private string modele; private Moteur moteur; } Voiture -modele:string 1 Moteur -puissance:int