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

  • Published on
    03-Apr-2015

  • View
    103

  • Download
    1

Embed Size (px)

Transcript

<ul><li> Page 1 </li> <li> Modlisation oriente objet UML Le Langage de Modlisation objet Unifi </li> <li> Page 2 </li> <li> Modlisation statique Le diagramme de classes toujours t le plus important dans les mthodes orientes objet. LE diagramme utilis en priorit par les outils de gnration de code. Possde la plus grande gamme de notation et de variantes. </li> <li> Page 3 </li> <li> Modlisation statique Identifier les concepts du domaine et les modliser en tant que classes. Identifier les associations pertinentes entre les concepts. Identifier les multiplicits pour les diffrentes associations classes. Ajouter des attributs aux classes du domaine. Comprendre la diffrence entre modle danalyse et de conception. </li> <li> Page 4 </li> <li> Diagramme de classes Point central dans un dveloppement oriente objet. En analyse, il a pour objectif de dcrire la structure des entits manipules. En conception, reprsente la structure dun code oriente objet. </li> <li> Page 5 </li> <li> Classe et objet ! Classe : Reprsente la description abstraite dun ensemble dobjets possdant les mmes caractristiques et ayant des comportements communs (voiture, personne). Objet : Entit aux frontires bien dfinies, possdant une identit et en encapsulant un tat et un comportement. Est une instance dune classe (Olivier instance de Personne, salle B118 instance de Salle). </li> <li> Page 6 </li> <li> Attribut et opration Un attribut Reprsente un type dinformation contenu dans une classe (vitesse courante, n immatriculation attribut de la classe voiture). Opration : Elment de comportement (service) contenu dans une classe. Intervient en conception objet = attribution des responsabilits aux objets. </li> <li> Page 7 </li> <li> Association Reprsente une relation smantique durable entre deux classes (une personne possde des voitures). Attention : Mme si le verbe qui nomme une association semble privilgier un sens de lecture, une association entre concepts est par dfaut bidirectionnelle (Une voiture est possde par une personne. Personne possde une rfrence sur voiture). Aux deux extrmits dune association, on indique la multiplicit : Le nombre dobjets qui peuvent participer une relation avec un objet dune autre classe. PersonneVoiture Possde 1 0..* </li> <li> Page 8 </li> <li> Agrgation et composition Agrgation : Cas particulier dassociation non symtrique exprimant la contenance. Les agrgations nont pas besoin dtre nommes (signifient contient , est compose de . Composition : Agrgation forte; Un lment ne peut appartenir qu un seul agrgat (agrgation non partage). La destruction de lagrgat implique la destruction de tous ses lments. Agrgat Compos Elment 1..*0..* 1 </li> <li> Page 9 </li> <li> Hritage, super classe, sous classe Super classe: Classe plus gnrale relie une ou plusieurs autres classes plus spcialises (sous classes). Les sous classes hritent des proprits de leur super classe et peuvent comporter des proprits plus spcifiques. Reprsentation : MoyenTransport Marque Modle Voiture NImmatriculation Cylindre Bateau Tirant deau Puissance moteur Avion Altitude Max Systme vision </li> <li> Page 10 </li> <li> Classe abstraite Une classe qu ne sinstancie pas et qui reprsente une pure abstraction afin de factoriser des proprits communes. MoyenTransport est le cas typique dune classe abstraite. </li> <li> Page 11 </li> <li> Package Mcanisme gnral de regroupement dlments en UML. Utilis pour regrouper des classes et des associations. Espace de nommage : 2 lments ne peuvent pas avoir le mme nom au sein dun mme package. Cohrence dun package : Regroupement de classes proches au niveau smantique. Indpendance dun package : Minimiser les relations entre packages (i.e : les relations entre classes de packages diffrents). </li> <li> Page 12 </li> <li> Etude dun systme de rservation de vol Systme simplifi de rservation de vols pour une agence de voyages : 1. Des compagnies ariennes proposent diffrents vols 2. Un vol est ouvert la rservation et referm sur ordre de la compagnie. 3. Un client peut rserver un ou plusieurs vols, pour des passagers diffrents. 4. Une rservation concerne un seul vol et un seul passager. 5. Une rservation peut tre peut tre annule ou confirme. 6. Un vol a un aroport de dpart et un aroport darrive. 7. Un vol a un jour et une heure de dpart et un jour et une heure darrive. 8. Un vol peut comporter des escales dans des aroports. 9. Une escale a une heure darrive et une heure de dpart. 10. Chaque aroport dessert une ou plusieurs villes. </li> <li> Page 13 </li> <li> Modlisation de la phrase 1 CompagneAerienne et Vol sont des concepts importants : ils ont des proprits et des comportements. Vol CompagnieAerienne Propose 1..* Cot vol : modlisation : 1..* (Conception : 0..*). Pas dinfos sur multiplicit du ct de la classe CompagnieArienne! </li> <li> Page 14 </li> <li> Modlisation de la phrase 2 Ouverture et fermeture de la rservation = concepts dynamiques. Vol CompagnieAerienne Propose Ouvrir rservation () Fermer rservation () 1..* VolCompagnieAerienne Propose </li> <li> Page 15 </li> <li> Modlisation de la phrase 7 Dates et heures = valeurs = caractristiques de Vol. 1..* CompagnieAerienne Propose Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () Si on ne peut pas demander un lment plus que sa valeur = attribut. </li> <li> Page 16 </li> <li> Modlisation de la phrase 6 Crer deux associations entre les classes Vol et Aeroport . Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () Aeroport dpart 1 arrive 1 </li> <li> Page 17 </li> <li> Modlisation de la phrase 10 Un aroport dessert une ou plusieurs villes : Ne permet pas de dterminer la multiplicit du cot de aroport. AeroportVille dessert 1..* </li> <li> Page 18 </li> <li> Modlisation des phrases 8 et 9 Escale peut elle appartenir plusieurs vols (cf. phr. 8)? Escale deux proprits : heure darrive et heure de dpart. Elle est en relation avec des vols et des aroports (objets) =&gt; Escale est une classe. Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () Aeroport Nom Escale HeureArrivee HeureDepart dpart 1 arrive 1 comporte 0..* </li> <li> Page 19 </li> <li> Hypothses sur la phrase 8 Un vol peut comporter des vols dans des aroports = formulation ambigu. Une escale lieu dans un seul aroport. Un aroport peut servir plusieurs escales. Un aroport sert de dpart et darrive n vols. Question : Une escale appartient elle un seul vol ? Comment infirmer ou confirmer nos hypothses? Appel lexpert mtier. Documenter les exemples fournis. </li> <li> Page 20 </li> <li> Diagramme dobjets Montre des objets : instances de classes dans un tat particulier Des liens (relations smantiques) entre ces objets. Utiliser pour montrer un contexte : avant ou aprs une interaction entre objets Utiliser en phase exploratoire : Haut niveau dabstraction. </li> <li> Page 21 </li> <li> Diagramme dobjets Reprsentation : :Voiture laguna:Voiture :Voiture Couleur = rose Immatriculation = 9509kk33 :Voiture Instance anonyme de la classe voiture Instance nomme de la classe voiture Instance anonyme de la classe voiture dont certains attributs sont positionns. ColIection dinstance anonyme de la classe voiture laguna:VoitureA10:Autoroute Emprunte </li> <li> Page 22 </li> <li> Diagramme dobjets ToulouseMinorque:Vol Palma:Escale BordeauxMinorque:Vol Blagnac:Aeroport Mrignac:Aeroport Dpart Bordeaux:Escale Minorque:Aeroport Arrive </li> <li> Page 23 </li> <li> Modlisation des phrases 8 et 9 Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () Aeroport Nom Escale HeureArrivee HeureDepart dpart 1 arrive 1 1 A lieu dans 0..* 1..* </li> <li> Page 24 </li> <li> Solution plus sophistique ! Classe dassociation : Escale peut tre vue comme un 3eme rle jou par laroport : Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () Aeroport Nom dpart 1 arrive 1 InfosEscale heureDep HeureArr 0..* Escale </li> <li> Page 25 </li> <li> Modlisation des phrases 3,4 et 5 Diffrencier le concept de client et de passager. Un client peut effectuer n rservations. Client Nom ReservationVol A effectu 0..* Annuler() Confirmer() 1 0..* 1 Passager 0..* 1 concerne </li> <li> Page 26 </li> <li> Aeroport Vol dateDepart heureDepart dateArrivee heureArrivee ouvrirReservation() fermerReservation () CompagnieAerienne Propose 1..* Client Nom Reservation InfosEscale heureDep HeureArr Ville Passager 0..* 1..* Dessert 0..* 1 A effectu Concerne 1 0..* 1 1 1 dep Arri Esc </li> <li> Page 27 </li> <li> Modles de conception Modlisez lutilisation de feutres et de stylos : Un feutre possde un bouchon, le stylo a une pointe rtractable. Certains feutres peuvent tre effaables. Sur un stylo ou un feutre on doit pouvoir connatre son poids sa taille et son niveau dencre. Une personne peut possder plusieurs stylos et feutres. </li> <li> Page 28 </li> <li> Modles de conception Proposez un cadre de modlisation des rgles du jeu dchecs! Modlisez le matriel utilis par les joueurs puis la notion de partie. </li> <li> Page 29 </li> <li> Systme de gestion de fichiers Les fichiers, les raccourcis et les rpertoires sont contenus dans des rpertoires et possdent un nom. Un raccourci peut concerner un fichier ou un rpertoire. Au sein dun rpertoire donn, un nom peut identifier quun seul lment. </li> <li> Page 30 </li> <li> Le modle Sujet - Observateur Indication dutilisation : Quand un concept 2 reprsentations, lune dpendant de lautre. Quand la modification dun objet =&gt; la modification des autres et que lon ne sait pas combien sont ces autres. Quand un objet doit notifier aux autres objets sans faire dhypothses sur la nature de ces objets (donc non fortement coupls). </li> <li> Page 31 </li> <li> Structure </li> <li> Page 32 </li> <li> Constituants Sujet Connat ses observateurs. Un nombre quelconques dobservateurs peut observer un sujet. Observateur Dfinit une interface de MAJ pour les objets qui doivent tre notifis de changements dans un sujet. SujetConcret Mmorise les tats qu intressent les objets ObservateurCocnret Envoi une notification ses observateurs lorsquil change dtat. ObservateurConcret Gre une rfrence sur un objet SujetConcret. Mmorise ltat qui doit rester pertinent pour le sujet. Implmentation de linterface de MAJ de lobservateur pour conserver la cohrence de son tat avec le sujet. </li> <li> Page 33 </li> <li> Le modle tat Indication dutilisation : Quand le comportement dun objet dpend de son tat. Le changement de comportement intervient dynamiquement en fonction de ltat. Quand on veut viter les blocs de dclarations conditionnelles fonctions de ltat de lobjet. Le modle tat place dans une classe spare, chacune des branches de la condition. Ceci permet de traiter ltat de lobjet, comme un objet part entire, qui peut varier indpendamment des autres objets. </li> <li> Page 34 </li> <li> Structure </li> <li> Page 35 </li> <li> Constituants Contexte Dfinit linterface intressant les clients. Gre une instance dune sous-classe EtatConcret qui dfinit ltat en cours. tat Dfinit linterface qui encapsule le comportement associ avec un tat particulier de Contexte. Sous_classes EtatConcret Chaque sous-classe implmente un comportement associ avec ltat. </li> <li> Page 36 </li> <li> Rappel sur les notations UML Java public class Catalogue { } abstract public class Personne { } Interface InterAffiche { void affiche(); } CataloguePersonne &gt; InterAffiche void affiche(); </li> <li> Page 37 </li> <li> 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 +GetNom(); #Retrecir(); -RechercheDichotomique (); -nom :String +nbPages : int #largeur : int </li> <li> Page 38 </li> <li> 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 +ChangeRayon(int nVal) +ChangeCouleur(couleur nCoul) -rayon : int = 5; -couleur:Couleur </li> <li> Page 39 </li> <li> Ralisation ou hritage UML Java public class Cercle extends Figure { private static int rayon; Private Couleur couleur; } Si Figure est une interface : public class Cercle implements Figure { private static int rayon; Private Couleur couleur; } Figure -positionX;int; -psoitionY:int void Affiche() Cercle -rayon : int = 5; -couleur:Couleur +ChangeRayon(int nVal) +ChangeCouleur(couleur nCoul) </li> <li> Page 40 </li> <li> Association UML Java Public class A1 { private B1 instanceB1; } Public class A1 { private B1 instancesB1[]; } Public class Homme { private Femme epouse; } Public classe Femme { private Homme mari; } A1B1A1B1 1 * HommeFemme Est mari 0..1 </li> <li> Page 41 </li> <li> Agrgation et composition UML Java Public class voiture { private string modele; private Moteur moteur; } Voiture -modele:string Moteur -puissance:int 1 </li> </ul>