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

1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005.

Présentations similaires


Présentation au sujet: "1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005."— Transcription de la présentation:

1 1 Introduction à UML Françoise Schlienger Remise à niveau

2 2 Les méthodes objet OBJECTORY (1992) FUSION (1994) CLASSE RELATION (1991) OOA(S&M) (1991) OMT (1991) G. BOOCH (1991) OOM (1991) OBJETS NATURELS (1991) MERISE 2 (1993) EURO METHODE UML MERISE Actuellement

3 3 UML : Unified Modeling Language octobre 94 : Grady Booch (Méthode Booch) et James Rumbaugh (OMT) commencent à unifier leurs 2 méthodes. --> Unified Method 0.8 fin 1995 : Ivar Jacobson introduit certains concepts de sa méthode (OOSE) Langage de modélisation unifié avec pour objectifs de : - ne plus faire évoluer les méthodes de manière indépendante les unes des autres, - unifier la sémantique et les notations et amener ainsi une stabilité sur le marché "orienté-objet " - rassembler leurs efforts pour résoudre des problèmes qu'aucune des trois méthodes ne peut bien résoudre.

4 4 UML : Unified Modeling Language octobre 1996 : UML 0.9 (Unified Modeling Language) diffusion au sein de la "communauté informatique" et intégration des remarques. 16 janvier 1997 : le document UML a été soumis à l'OMG (Object Management Group).. 14 novembre 1997 : adoption d'UML 1.1 comme standard par l'OMG. Novembre 1998 : UML : UML 1.4 Sites officiels :

5 5 Bibliographie Modélisation objet avec UML Pierre-Alain Muller, Eyrolles 1997, Eyrolles 2000 Intégrer UML dans vos projets N. Lopez, J. Migueis, E. Pichon, Eyrolles 1997 UML pour l'analyse d'un système d'information Chantal Morley, Jean Hugues, Bernard Leblanc, Dunod 2000 Le guide de l'Utilisateur UML Grady Booch, James Rumbaugh, Ivar Jacobson, Eyrolles 2000 Le processus unifié de développement logiciel Grady Booch, James Rumbaugh, Ivar Jacobson, Eyrolles 2000

6 6 UML : généralités UML propose : des éléments de modélisation qui représentent les abstractions du système en cours de modélisation des éléments de visualisation qui procurent des projections textuelles ou graphiques permettant la manipulation des éléments de modélisation

7 7 Diagrammes de classes / Diagrammes dobjets Françoise Schlienger Remise à niveau 2002/2003

8 8 Il existe plusieurs niveaux de notation : a) niveau sans détail PERSONNE Nom Prénom Adresse ModifierAdresse() b) niveau détail d'analyse On y précise : le type des variables (integer, string, date …) les valeurs par défaut les signatures des opérations éventuellement, le niveau de visibilité : + public (accessible par tout utilisateur) par défaut - privé (accessible seulement par la classe elle-même) # protégé (accessible seulement par les descendants) c) niveau de détail d'implémentation Notation des classes

9 9 Attribut [ visibilité ] NomAttribut [: type] [= ] Opération [ visibilité ] NomOpération [(liste Paramètres)] [: typeRetour] Paramètre [direction] Nom : type[ = valeur par défaut] direction : in | out | inout (par défaut : in) Notation des attributs et opérations NOMDECLASSE Opération() Attributs +EstSur(in p :POINT): boolean -Longueur :integer =5 SEGMENT

10 10 Opérations / méthodes Une opération définit un service qui peut être demandé à nimporte quel objet de la classe. Une méthode est une implémentation dune opération. La méthode associée à une opération fournit un algorithme exécutable. Cet algorithme est donné dans un langage de programmation ou dans du texte structuré.

11 11 Classe-1 Classe-2 Nom dassociation rôle-1 rôle-2 PERSONNE EstEnfantDe Mère Fils PERSONNEAPPARTEMENT Loue > SonPropriétaire SesPropriétés Propose > SonLocataire SaLocation Association entre classes ^

12 12 Exactement 11 Exactement nn Plusieurs (0 ou plus)* Au plus ou plus 1..* Cardinalité spécifiée Nombre de propriétairesNombre d appartements proposés Cardinalité dune association PERSONNEAPPARTEMENT Propose > 1 *

13 13 Association : un exemple (1) Un appartement na quun propriétaire et une personne peut proposer à la location plusieurs appartements (sous-entendu, elle peut aussi ne pas proposer dappartement). Remarque : on précisera toujours les noms des rôles. Le nom de l association est facultatif. PERSONNEAPPARTEMENT Propose > 1 0..* SonPropriétaire SesPropriétés

14 14 Association : un exemple (2) PERSONNEAPPARTEMENT Propose > 1 0..* SonPropriétaire SesPropriétés -Code -Adresse -Surface -MontantLoyer APPARTEMENT a un attribut implicite SonPropriétaire : PERSONNE Un constructeur « complet » dappartement doit avoir en paramètres le Code, l Adresse, la Surface, le MontantLoyer d un nouvel appartement mais aussi une instance de la classe PERSONNE.

15 15 Un attribut dérivé est un attribut calculé. Cela signifie quil peut être calculé à partir d autres informations du système à nimporte quel moment. (et non pas quil a été calculé à un moment donné). Exemple : pour une personne, lattribut Age est un attribut calculé à condition que sa DateDeNaissance ait été enregistrée. Un attribut calculé est noté /Attribut Par contre : si on met à jour une QuantitéEnStock par ajout ou suppression, sans conserver tout lhistorique des mouvements, alors QuantitéEnStock nest pas une rubrique calculée. Lattribut QuantitéEnStock est dit « modifiable » (par défaut tout attribut est « modifiable ») « gelé » (« frozen ») est réservé aux attributs qui, une fois initialisés, ne peuvent être modifiés. Attribut dérivé

16 16 Une association dérivée est une association déduite dune autre. Une association dérivée ne se justifie que pour faciliter des traitements. Association dérivée ENTREPRISESERVICEEMPLOYE SesServices SesEmployés SonService /Emploi Le nom de lassociation est précédé dun /

17 17 Contrairement à Merise, UML autorise : Une classe avec une seule instance Des attributs multivalués. Les attributs calculés (attributs dérivés) précédés par un / On précise alors, dans une note, la règle de calcul. Les associations dérivées (stéréotype « derive ») qui faciliteront un traitement. Les identificateurs explicites (identifiants) ne sont pas indispensables. Ils ne sont pas soulignés (seuls les attributs de classe sont soulignés). On peut les préciser à laide dune note. On peut représenter des « paramètres » (Merise) par le biais de variables de classe. Remarques sur les classes {identifier}

18 18 Contrairement à Merise... Exemple +AjouterPersonne(in P : PERSONNE) Emploie> ENTREPRISE -Nom -Adresse +ModifierAdresse() +AjouterPersonne() 1 PERSONNE -Nom -Prénoms -Adresse -DateDeNaissance /-Age +CréerPersonne() +GetCoordonnées() +CalculerAge 0..* SesEmployés SonEntreprise. {Age=DateCourante - DateNaissance}

19 19 C est un type particulier d association "composé-composant" ou "partie de" Agrégation : 0..1 EQUIPE SPORT JOUEUR Composition : DOSSIER DOCUMENT Agrégation - Composition Le document nexiste quen tant que partie du dossier. La destruction du composite entraîne la destruction des composants. Un objet ne fait partie que d un seul composite à la fois. SonEquipe SesEquipes 1 * SonDossier SesDocuments SesParticipants * *

20 20 Elles permettent de regrouper des opérations et des attributs communs à une ou plusieurs classes données et de préciser que les classes les plus spécifiques héritent des classes les plus générales. COMPTE-BANCAIRE -Crédit : integer -Débit : integer …. +Déposer(S:integer) +Retirer(S:integer) +GetSolde() COMPTE-EPARGNE -Taux : float +CalculerIntérêts() GénéralisationSpécialisation Relations de généralisation-spécialisation

21 21 Qualité dune association qui permet le passage dune classe vers une autre. En général, on peut naviguer dans les 2 sens. On peut cependant limiter la navigabilité : Exemple : CLASSE-1 CLASSE-2 Nom dassociation Il doit être facile de passer directement dun produit à son fabriquant. La commande dun produit fait référence à l adresse de « SonRéalisateur » Il y a demande de service (GetAdresse) de PRODUIT à FABRIQUANT. Navigabilité dune association 1..* 1 SonRéalisateu r SesProduits FABRIQUANT -Adresse +GetAdresse() PRODUIT -QttéRéappro +Commander()

22 22 Un attribut de classe décrit une valeur commune à une classe d'objets dans son ensemble. Une opération de classe est une opération sur la classe elle- même. La plus commune est celle destinée à créer des nouvelles instances de classe. Attributs et opérations de classe sont soulignés. (Attention : ne pas les confondre avec les identifiants de Merise.) ARTICLE -Référence -PrixHT -NbInstances +CalculerPrixTTC() +Créer() +CompterInstances() Attributs et opérations de classes

23 23 Classe et Opération abstraites / Polymorphisme Classe qui ne peut avoir aucune instance directe ; on écrit son nom en italique. Une opération abstraite ne fournit dimplémentation quau travers dune instance dune classe fille de celle qui la contient. Remarque : les noms des éléments abstraits sont écrits en italique ou préfixés par Abs. FORME -Nom : string +CalcSurface() +GetNom()

24 24 RECTANGLE - Long : float - Larg : float +CalcSurface() + Type() CERCLE - Rayon : float +CalcSurface() + Type() Opérations polymorphes Classe et Opération abstraites / Polymorphisme FORME -Couleur : string +CalcSurface() +Type() return rectangle return cercle return Long * Larg return PI * Rayon * Rayon

25 25 Attributs et opérations implicites (1) ETUDIANT Nom : string Pour chaque attribut on ajoute implicitement : Ces opérations ne sont pas obligatoirement publiques. SetNom peut ne pas exister. ETUDIANT Nom : string Etudiant () ~Etudiant() GetNom () : string SetNom (N:string) : bool Pour la classe on ajoute implicitement :

26 26 Attributs et opérations implicites (2) ETUDIANT Nom : string ETUDIANT Nom : string SonGroupe : GROUPE GetSonGroupe () :GROUPE SetSonGroupe(G:GROUPE) RetirerSonGroupe() … si le minimum est à 0 GROUPE Numéro : int SonGroupe 0..1 Pour chaque association navigable de cardinalité 0..1, 1..1 on ajoute : un attribut … et les opérations correspondantes

27 27 Remarque concernant la navigation ETUDIANT Nom : string GROUPE Numéro : integer SonGroupe 0..1 Pour un étudiant on peut obtenir son groupe, mais il nest pas prévu dobtenir la liste des étudiants à partir du groupe. SesEtudiants 0..*

28 28 Attributs et opérations implicites (3) ETUDIANT Nom : string ETUDIANT Nom : string SesOptions : ensemble(OPTION) AjouterOption(O:OPTION):bool RetirerOption(O:OPTION):bool GetSesOptions() : ensemble(OPTION) OPTION Libellé : string SesOptions 0..* Pour chaque association navigable de cardinalité 0..*, 1..* on ajoute : un attribut de type ensemble, … et les opérations pour gérer ce type ensemble.

29 29 Remarque concernant la navigation ETUDIANT Nom : string OPTION Libellé : string SesEtudiants SesOptions 0..* Nouvelle hypothèse : Pour un étudiant on peut obtenir ses options et on veut pouvoir obtenir la liste des étudiants à partir dune option. En ajoutant une flèche vers SesEtudiants, on ajoute implicitement SesEtudiants : ensemble (ETUDIANT) dans OPTION et les opérations correspondantes.

30 30 Diagrammes dobjets Ils modélisent les instances déléments qui apparaissent sur les diagrammes de classe. Ils montrent un ensemble d objets et leurs relations à un moment donné. –Instances nommées –Instances anonymes –Instances avec valeurs d attributs Bouton2:RECTANGLE Longueur : float = 13.5 Nom : string = bouton-poussoir Largeur : float = 3.2 :CERCLE Bouton1:RECTANGLE NomInstance:NOMCLASSE :NOMCLASSE

31 31 MATIERE libellé : string Diagramme dobjets (exemple) E1:ENSEIGNANT nom = Dupont E2:ENSEIGNANT nom = Martin E3:ENSEIGNANT nom = Duval M3:MATIERE libellé = Système M1:MATIERE libellé = Génie logiciel M2:MATIERE libellé = Réseau enseigne > * 1..* ENSEIGNANT nom : string

32 32 MATIERE libellé : string Diagramme dobjets (nécessité de préciser lassociation) enseigne enseigne > * 1..* ENSEIGNANT nom : string 0..1 * estResponsable > E1:ENSEIGNANT nom = Dupont E2:ENSEIGNANT nom = Martin E3:ENSEIGNANT nom = Duval M3:MATIERE libellé = Système M1:MATIERE libellé = Génie logiciel M2:MATIERE libellé = Réseau


Télécharger ppt "1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005."

Présentations similaires


Annonces Google