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

FIIFO - RN - UML Françoise Schlienger Remise à niveau

Présentations similaires


Présentation au sujet: "FIIFO - RN - UML Françoise Schlienger Remise à niveau"— Transcription de la présentation:

1 FIIFO - RN - UML Françoise Schlienger Remise à niveau 2004-2005
Introduction à UML Françoise Schlienger Remise à niveau F. Schlienger 2002/2003

2 Les méthodes objet UML CLASSE OOA(S&M) RELATION (1991) (1991) MERISE 2
FIIFO - RN - UML Les méthodes objet CLASSE RELATION (1991) OOA(S&M) (1991) MERISE 2 (1993) OBJETS NATURELS (1991) OMT (1991) G. BOOCH (1991) OOM (1991) OBJECTORY (1992) EURO METHODE FUSION (1994) MERISE + Euro méthode est une méthode sur laquelle un certain nombre de chercheurs ont travaillé mais qui n ’a pas vraiment eu de succès. Quand à Merise +, c ’était l ’approche de Rochfeld, Merisien dissident. Il avait plein d ’idées mais la vague UML est passée dessus. UML Actuellement F. Schlienger 2002/2003

3 UML : Unified Modeling Language
FIIFO - RN - UML 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. Je préciserai oralement qu ’OMT a été la première méthode à définir une notation précis. Elle était elle même inspirée du modèle entité-association pour les classes, de la notation de Harel pour la dynamique et des travaux de De Marco-Coad et Ypurdon pour les flots de données. Grady Booch de son coté avait présentée une méthode orientée « Ada ». F. Schlienger 2002/2003

4 UML : Unified Modeling Language
FIIFO - RN - UML 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 1.3 2000 : UML 1.4 Sites officiels : J ’en profite pour dire qu ’il y a différents sites sur lesquels ils peuvent faire des recherches. Je leur signale qu ’ils peuvent télécharger gratuitement une version du « Modeler » d ’Objecteering qui peut leur permettre de faire toute la modélisation. Il peuvent aussi installer pour le tester Rational Rose mais que la version d ’évaluation n ’est utilisable qu ’un mois. F. Schlienger 2002/2003

5 Bibliographie Modélisation objet avec UML
FIIFO - RN - UML 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 Si j ’ai d ’autres titres au moment du cours je complèterai. F. Schlienger 2002/2003

6 UML : généralités UML propose :
FIIFO - RN - UML 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 Comme tout langage d ’analyse F. Schlienger 2002/2003

7 Diagrammes de classes / Diagrammes d’objets
FIIFO - RN - UML Diagrammes de classes / Diagrammes d’objets Françoise Schlienger Remise à niveau 2002/2003 F. Schlienger 2002/2003

8 Notation des classes Il existe plusieurs niveaux de notation :
FIIFO - RN - UML Notation des classes Il existe plusieurs niveaux de notation : a) niveau sans détail b) niveau détail d'analyse PERSONNE Nom Prénom Adresse ModifierAdresse() PERSONNE c) niveau de détail d'implémentation 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) F. Schlienger 2002/2003

9 Notation des attributs et opérations
FIIFO - RN - UML Notation des attributs et opérations NOMDECLASSE Opération() Attributs SEGMENT -Longueur :integer =5 +EstSur(in p :POINT): boolean Attribut [ visibilité ] NomAttribut [: type] [= <valeur par défaut>] 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) F. Schlienger 2002/2003

10 FIIFO - RN - UML Opérations / méthodes Une opération définit un service qui peut être demandé à n’importe quel objet de la classe. Une méthode est une implémentation d’une 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é. F. Schlienger 2002/2003

11 Association entre classes
FIIFO - RN - UML Association entre classes Classe-1 Classe-2 Nom d’association rôle-1 rôle-2 PERSONNE APPARTEMENT Loue > SonPropriétaire SesPropriétés Propose > SonLocataire SaLocation PERSONNE EstEnfantDe Mère Fils ^ F. Schlienger 2002/2003

12 Cardinalité d’une association
FIIFO - RN - UML Cardinalité d’une association PERSONNE APPARTEMENT Propose > 1 * Nombre de propriétaires Nombre d ’appartements proposés Exactement 1 1 Exactement n n Plusieurs (0 ou plus) * Au plus 1 ou plus * Cardinalité spécifiée F. Schlienger 2002/2003

13 Association : un exemple (1)
FIIFO - RN - UML Association : un exemple (1) Un appartement n’a qu’un propriétaire et une personne peut proposer à la location plusieurs appartements (sous-entendu, elle peut aussi ne pas proposer d’appartement). Remarque : on précisera toujours les noms des rôles. Le nom de l ’association est facultatif. PERSONNE APPARTEMENT Propose > 1 0..* SonPropriétaire SesPropriétés F. Schlienger 2002/2003

14 Association : un exemple (2)
FIIFO - RN - UML Association : un exemple (2) Propose > PERSONNE 1 APPARTEMENT 0..* SonPropriétaire SesPropriétés -Code -Adresse -Surface -MontantLoyer APPARTEMENT a un attribut implicite SonPropriétaire : PERSONNE Un constructeur « complet » d’appartement 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. F. Schlienger 2002/2003

15 FIIFO - RN - UML Attribut dérivé Un attribut dérivé est un attribut calculé. Cela signifie qu’il peut être calculé à partir d ’autres informations du système à n’importe quel moment. (et non pas qu’il a été calculé à un moment donné). Exemple : pour une personne, l’attribut 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 l’historique des mouvements, alors QuantitéEnStock n’est pas une rubrique calculée. L’attribut 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. Attention : pour qu ’une rubrique soit considérée comme calculée, il faut qu ’on dispose à chaque instant des éléments qui permettent de la recalculer (âge, nb d ’éléments qui entrent dans une association) mais pas un prix même si on le calcule à partir d ’un autre en appliquant une hausse de 10% Autre exemple : dateDébut, DateFin, Durée Au moment de l ’analyse l ’attribut calculé est mentionné en le faisant précéder d ’un / Au moment de la conception, l ’attribut dérivé est transformé en opération. Cette transformation est assez souvent effectuées sans attendre la conception. F. Schlienger 2002/2003

16 Le nom de l’association est précédé d’un /
FIIFO - RN - UML Association dérivée Une association dérivée est une association déduite d’une autre. Une association dérivée ne se justifie que pour faciliter des traitements. ENTREPRISE SesServices SERVICE EMPLOYE SesEmployés SonService SesEmployés /Emploi Le nom de l’association est précédé d’un / F. Schlienger 2002/2003

17 Remarques sur les classes
FIIFO - RN - UML Remarques sur les classes 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 à l’aide d’une note. On peut représenter des « paramètres » (Merise) par le biais de variables de classe. {identifier} F. Schlienger 2002/2003

18 +AjouterPersonne(in P : PERSONNE)
FIIFO - RN - UML Exemple Contrairement à Merise ... Emploie> ENTREPRISE -Nom -Adresse +ModifierAdresse() +AjouterPersonne() 1 PERSONNE -Prénoms -DateDeNaissance /-Age +CréerPersonne() +GetCoordonnées() +CalculerAge  0..* SesEmployés SonEntreprise . {Age=DateCourante - DateNaissance} Passer du temps sur Ajouter Personne Parler des paramètres Un attribut calculé indique seulement une contrainte entre 2 propriétés. Il ne précise pas encore ce qui doit être calculé par rapport à ce qui doit être stocké : ce sera un choix de conception. +AjouterPersonne(in P : PERSONNE) F. Schlienger 2002/2003

19 Agrégation - Composition
FIIFO - RN - UML Agrégation - Composition C ’est un type particulier d ’association "composé-composant" ou "partie de" Agrégation : 0..1 EQUIPE SPORT JOUEUR Composition : DOSSIER DOCUMENT SesParticipants * SonEquipe SesEquipes L ’agrégation simple est uniquement conceptuelle et ne fait rien d ’autre que distinguer un tout d ’une partie. Je maintiens ma phrase : « un objet ne fait partie que d ’un composite à la fois » cf « la bible » p 157 Grady Booch, James Rumbaugh, Ivar Jacobson, Eyrolles 2000 Le processus unifié de développement logiciel * SonDossier SesDocuments Le document n’existe qu’en 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. F. Schlienger 2002/2003

20 Relations de généralisation-spécialisation
FIIFO - RN - UML Relations de généralisation-spécialisation 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() Généralisation Spécialisation A la page 73 de mon document de référence il est dit que les classes les plus spécifiques héritent des classes les plus générales. Le mot héritage est employé. Catherine aurait préféré que je dise classe spécialisée sous-ensemble de la classe générale. COMPTE-EPARGNE -Taux : float +CalculerIntérêts() F. Schlienger 2002/2003

21 Navigabilité d’une association
FIIFO - RN - UML Navigabilité d’une association Qualité d’une association qui permet le passage d’une classe vers une autre. En général, on peut naviguer dans les 2 sens. On peut cependant limiter la navigabilité : CLASSE-1 CLASSE-2 Nom d’association Exemple : PRODUIT -QttéRéappro +Commander() 1..* 1 FABRIQUANT -Adresse +GetAdresse() SonRéalisateur SesProduits L ’orientation d ’une association a une signification: *conceptuelle : un concept s ’appuie sur un autre dans sa définition et pas l ’inverse *logique : les opérations de classe exploitent les opérations d ’une autre classe SonRéalisateur.GetAdresse * physique : on implémente le moyen d ’accès des représentants d ’une classe vers les représentants de la classe liée. SonRéalisateur : FABRICANT REMARQUE : les noms des rôles sont indispensables lorsqu ’il y a navigabilité. Dans l ’exemple ci-dessus SesProduits peut être omis. Il doit être facile de passer directement d’un produit à son fabriquant. La commande d’un produit fait référence à l ’adresse de « SonRéalisateur » Il y a demande de service (GetAdresse) de PRODUIT à FABRIQUANT. F. Schlienger 2002/2003

22 Attributs et opérations de classes
FIIFO - RN - UML Attributs et opérations de classes 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 statiques F. Schlienger 2002/2003

23 Classe et Opération abstraites / Polymorphisme
FIIFO - RN - UML 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 d’implémentation qu’au travers d’une instance d’une 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() F. Schlienger 2002/2003

24 Classe et Opération abstraites / Polymorphisme
FIIFO - RN - UML Classe et Opération abstraites / Polymorphisme FORME -Couleur : string +CalcSurface() +Type() RECTANGLE CERCLE - Long : float - Larg : float +CalcSurface() + Type() - Rayon : float +CalcSurface() + Type() return PI * Rayon * Rayon return ’rectangle’ Opérations polymorphes return ’cercle’ return Long * Larg F. Schlienger 2002/2003

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

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

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

28 Attributs et opérations implicites (3)
ETUDIANT Nom : string OPTION Libellé : string SesOptions 0..* ETUDIANT Nom : string SesOptions : ensemble(OPTION) <modificateur> AjouterOption(O:OPTION):bool RetirerOption(O:OPTION):bool GetSesOptions() : ensemble(OPTION) 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 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 d’une option. En ajoutant une flèche vers SesEtudiants, on ajoute implicitement SesEtudiants : ensemble (ETUDIANT) dans OPTION et les opérations correspondantes.

30 FIIFO - RN - UML Diagrammes d’objets 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 NomInstance:NOMCLASSE Bouton1:RECTANGLE :CERCLE :NOMCLASSE Bouton2:RECTANGLE Longueur : float = 13.5 Nom : string = “bouton-poussoir” Largeur : float = 3.2 F. Schlienger 2002/2003

31 Diagramme d’objets (exemple)
FIIFO - RN - UML Diagramme d’objets (exemple) ENSEIGNANT nom : string enseigne > MATIERE libellé : string * 1..* E1:ENSEIGNANT nom = ‘Dupont’ M1:MATIERE libellé = ‘Génie logiciel’ M2:MATIERE libellé = ‘Réseau’ E2:ENSEIGNANT nom = ‘Martin’ E3:ENSEIGNANT nom = ‘Duval’ M3:MATIERE libellé = ‘Système’ F. Schlienger 2002/2003

32 Diagramme d’objets (nécessité de préciser l’association)
FIIFO - RN - UML Diagramme d’objets (nécessité de préciser l’association) enseigne > 1..* * ENSEIGNANT nom : string MATIERE libellé : string estResponsable > 0..1 * E1:ENSEIGNANT nom = ‘Dupont’ enseigne M1:MATIERE libellé = ‘Génie logiciel’ estResponsable > E2:ENSEIGNANT nom = ‘Martin’ M2:MATIERE libellé = ‘Réseau’ enseigne estResponsable > E3:ENSEIGNANT nom = ‘Duval’ M3:MATIERE libellé = ‘Système’ enseigne F. Schlienger 2002/2003


Télécharger ppt "FIIFO - RN - UML Françoise Schlienger Remise à niveau"

Présentations similaires


Annonces Google