La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Modélisation orientée objet UML Le Langage de Modélisation objet Unifié"— Transcription de la présentation:

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

2 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.

3 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 danalyse et de conception.

4 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 dun code orientée objet.

5 Classe et objet ! Classe : Représente la description abstraite dun ensemble dobjets 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 dune classe (Olivier instance de Personne, salle B118 instance de Salle…).

6 Attribut et opération Un attribut Représente un type dinformation 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.

7 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 dune association, on indique la multiplicité : Le nombre dobjets qui peuvent participer à une relation avec un objet dune autre classe. PersonneVoiture Possède 1 0..*

8 Agrégation et composition Agrégation : Cas particulier dassociation non symétrique exprimant la contenance. Les agrégations nont 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 lagrégat implique la destruction de tous ses éléments. Agrégat Composé Elément 1..*0..* 1

9 Héritage, super classe, sous classe… Super 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 deau Puissance moteur Avion Altitude Max Système vision

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

11 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 dun même package. Cohérence dun package : Regroupement de classes proches au niveau sémantique. Indépendance dun package : Minimiser les relations entre packages (i.e : les relations entre classes de packages différents).

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

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

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

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

16 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

17 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. AeroportVille dessert 1..*

18 Modélisation des phrases 8 et 9 Escale peut elle appartenir à plusieurs vols (cf. phr. 8)? Escale deux propriétés : heure darrivé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 () Aeroport Nom Escale HeureArrivee HeureDepart départ 1 arrivée 1 comporte 0..*

19 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 darrivée à n vols. Question : Une escale appartient elle à un seul vol ? Comment infirmer ou confirmer nos hypothèses? Appel à lexpert métier. Documenter les exemples fournis.

20 Diagramme dobjets 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 dabstraction.

21 Diagramme dobjets Représentation : :Voiture laguna:Voiture :Voiture Couleur = rose Immatriculation = 9509kk33 :Voiture Instance anonyme de la classe voiture Instance nommée de la classe voiture Instance anonyme de la classe voiture dont certains attributs sont positionnés. ColIection dinstance anonyme de la classe voiture laguna:VoitureA10:Autoroute Emprunte

22 Diagramme dobjets ToulouseMinorque:Vol Palma:Escale BordeauxMinorque:Vol Blagnac:Aeroport Mérignac:Aeroport Départ Bordeaux:Escale Minorque:Aeroport Arrivée

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

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

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

26 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..* dep Arri Esc

27 Modèles de conception Modélisez lutilisation 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 dencre. Une personne peut posséder plusieurs stylos et feutres.

28 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.

29 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 dun répertoire donné, un nom peut identifier quun seul élément.

30 Le modèle Sujet - Observateur Indication dutilisation : Quand un concept à 2 représentations, lune dépendant de lautre. Quand la modification dun objet => la modification des autres et que lon ne sait pas combien sont ces autres. Quand un objet doit notifier aux autres objets sans faire dhypothèses sur la nature de ces objets (donc non fortement couplés).

31 Structure

32 Constituants Sujet Connaît ses observateurs. Un nombre quelconques dobservateurs 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 lorsquil 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 linterface de MAJ de lobservateur pour conserver la cohérence de son état avec le sujet.

33 Le modèle État Indication dutilisation : Quand le comportement dun 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 lobjet. Le modèle « État » place dans une classe séparée, chacune des branches de la condition. Ceci permet de traiter létat de lobjet, comme un objet à part entière, qui peut varier indépendamment des autres objets.

34 Structure

35 Constituants Contexte Définit linterface intéressant les clients. Gère une instance dune sous-classe EtatConcret qui définit létat en cours. État Définit linterface 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.

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

37 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

38 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

39 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 { 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)

40 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

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


Télécharger ppt "Modélisation orientée objet UML Le Langage de Modélisation objet Unifié"

Présentations similaires


Annonces Google