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

Slides:



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

Unified Modeling Language
Ingénierie des Modèles
Autour des objets et du formalisme UML
Laboratoire Informatique Image Interaction
UML - Présentation.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Les objets: représentation
Le Modèle Logique de Données
INTRODUCTION.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
UML (Unified Modeling Langage)
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Développement d’applications web
Principes de la technologie orientée objets
le profil UML en temps réel MARTE
Introduction à la conception de Bases de Données Relationnelles
Modélisation des bases de données avec UML
Principes de programmation (suite)
Configuration de Windows Server 2008 Active Directory
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Classes abstraites et Interfaces
Static modeling, Thu G. Falquet, L. Nerima.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Complément Le diagramme des classes
Langage Oriente Objet Cours 2.
Analyse et conception orientée objet
SYSTEMES D’INFORMATION
Projet Génie Logiciel & UML, Bases de Données & Interfaces
Unified Modeling Langage
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)
Cours de Base de Données & Langage SQL
COURS DE PROGRAMMATION ORIENTEE OBJET :
C'est pour bientôt.....
Initiation à la conception des systèmes d'informations
Portail CVM Vision pédagogique.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Sensibilisation a la modelisation
Patrons de conceptions de créations
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Structures des données
Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base.
Biologie – Biochimie - Chimie
Travaux Pratiques Représentation des connaissances
CALENDRIER-PLAYBOY 2020.
LES PILES ET FILES.
INTRODUCTION.
Algorithmique et programmation (1)‏
Programmation objet La base.
UML : un peu d’histoire H. Lounis.
Tutorat en bio-informatique
Unified Modeling Langage
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
2 Processus de conception de BD
Unified Modeling Language
Héritage Conception par Objet et programmation Java
1 Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca Approche fonctionnelle : la modélisation est réalisée à partir.
(UML) Unified Modeling Language
Nouvelles Technologies Internet & Mobile
UML : DIAGRAMME DE CLASSES
Initiation aux bases de données et à la programmation événementielle
Transcription de la présentation:

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

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. 1990-1995 UML Actuellement F. Schlienger 2002/2003

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

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 : www.omg.org www.uml.org 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

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

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

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

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

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

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

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

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 0..1 1 ou plus 1..* Cardinalité spécifiée 1..2 4 F. Schlienger 2002/2003

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

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

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

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

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

+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

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 1 * 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

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

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

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

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

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

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.

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

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.

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.

Remarque concernant la navigation ETUDIANT Nom : string OPTION Libellé : string SesEtudiants SesOptions 0..* 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.

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

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

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