Analyse Oriente Objet UML

download Analyse Oriente Objet UML

of 81

Transcript of Analyse Oriente Objet UML

Analyse Oriente Objet VS Analyse FonctionnelleApproche fonctionnelle vs. approche objet la thse de Church-Turing, tout langage de programmation non trivial quivaut une machine de Turing. Il en rsulte que tout programme quil est possible dcrire dans un langage pourrait galement tre crit dans nimporte quel autre langage. Ainsi, la diffrence entre une approche fonctionnelle et une approche objet nest donc pas dordre logique, mais pratique. Lapproche structure privilgie la fonction comme moyen dorganisation du logiciel. Ce nest pas pour cette raison que lapproche objet est une approche non fonctionnelle. En effet, les mthodes dun objet sont des fonctions. Cependant les traitements et les donnes sont associes. En approche objet, lvolution des besoins aura le plus souvent tendance se prsenter comme un changement de linteraction des objets. Sil faut apporter une modification aux donnes, seul lobjet en cause (encapsulant cette donne) sera modifi. lvolution des besoins entrane souvent une dgnrescence, ou une profonde remise en question, une modification des donnes entrane gnralement une modification dun nombre important de fonctions Ainsi la technologie objet permet une modularisation du logiciel, qui vise matriser sa production et son volution.Module UML M. Omar EL BEGGAR Page : 1

UML

Approche 2O.OLapproche oriente objet Lapproche oriente objet considre le logiciel comme une collection dobjets dissocis, identifis et possdant des caractristiques. Une caractristique : Lidentit Lobjet possde une identit, qui permet de le distinguer des autres objets, Indpendamment de son tat. On construit gnralement cette identit grce un Identifiant dcoulant naturellement du problme (par exemple un produit pourra tre repr par un code, une voiture par un numro de srie, etc.) Les attributs Il sagit des donnes caractrisant lobjet. Ce sont des variables stockant des informations sur ltat de lobjet. Les mthodes Les mthodes dun objet caractrisent son comportement, cest--dire lensemble des actions (appeles oprations) que lobjet est mme de raliser. Ces Oprations permettent de faire ragir lobjet aux sollicitations extrieures (ou dagir sur les autres objets). De plus, les oprations sont troitement lies aux attributs, car leurs actions Peuvent dpendre des valeurs des attributs, ou bien les modifier. Lune des particularits de cette approche est quelle rapproche les donnes et leurs traitements associs au sein dun unique objet.

Module UML

M. Omar EL BEGGAR

Page : 2

Concepts 2O.OLencapsulation consiste masquer les dtails son implmentation d'un objet, en dfinissant une interface. L'interface est la vue externe d'un objet, elle dfinit les services accessibles (offerts) aux utilisateurs de l'objet. On peut modifier l'implmentation des attributs d'un objet sans modifier son interface. L'encapsulation garantit l'intgrit des donnes, car elle permet d'interdire l'accs direct aux attributs des objets.Accessibilit Classes Package Classes drives Classes hors packages Public Oui Oui Oui Private Non Non Non Protected Oui Oui Non

L'hritage est un mcanisme de transmission des proprits d'une classe (ses attributs et mthodes) vers une sous-classe. Une classe peut tre spcialise en d'autres classes, afin d'y ajouter des caractristiques spcifiques ou d'en adapter certaines. Plusieurs classes peuvent tre gnralises en un classe qui les factorise, afin de regrouper les caractristiques communes d'un ensemble de classes. L'hritage peut tre simple ou multiple. Polymorphisme reprsente la facult d'une mme opration de s'excuter diffremment suivant le contexte de la classe o elle se trouve. lagrgation Il s'agit d'une relation entre deux classes, spcifiant que les objets d'une classe sont des composants de l'autre classe.Module UML M. Omar EL BEGGAR Page : 3

Introduction UMLIntroduction UML La description de la programmation par objets a fait ressortir ltendue du travail Conceptuel ncessaire : dfinition des classes, de leurs relations, des attributs et mthodes, des interfaces etc. Pour programmer une application, il ne convient pas de se lancer tte baisse dans lcriture du code : il faut dabord organiser ses ides, les documenter, puis organiser la ralisation en dfinissant les modules et tapes de la ralisation. Cest cette dmarche antrieure lcriture que lon appelle modlisation ; son produit est un modle. Lapproche objet permet en principe la matrise douvrage de sexprimer de faon prcise selon un vocabulaire qui, tout en transcrivant les besoins du mtier, pourra tre immdiatement compris par les informaticiens.

Module UML

M. Omar EL BEGGAR

Page : 4

Introduction UMLLes phases de Modlisation

Dfinition des besoins

Cahier de charge

Que fait le Systme ?

Analyse ConceptionRalisation

Analyse de lexistant et tude des besoins Modlisation de la solution ?

Implmentation tests

Logiciel

Tester la solution avec le cahier de chargeModule UML M. Omar EL BEGGAR

Page : 5

HistoriqueApparition de + ieurs Mthodes : (Booch, Classe-Relation, Fusion, HOOD, OMT, OOA, OOD,OOM, OOSE, etc.)

Los Amigos

1979-1980

1990

1995

1996Jacobson produit UML 0.9

1997LOMG adopte UML 1.1

2008UML 2.1.1 La version dUML en cours en

Merise

Booch et Rumbaugh construisent une mthode unifie, Unified Method 0.8

Module UML

M. Omar EL BEGGAR

Page : 6

Description dUMLU.M.L (UNIFIED MODELING LANGUAGE). U.M.L est un langage qui contient les lments constitutifs de tout langage, savoir : des concepts, une syntaxe et une smantique. Il est destin aux phases amont de la ralisation d'un logiciel. U.M.L est une Technique de modlisation UNIFIEE issue de mthodes plus anciennes comme O.M.T, de O.O.S.E et de O.O.D. De plus, UML a choisi une notation supplmentaire : il sagit dune forme visuelle Fonde sur des diagrammes.

UML nest pas une mthode (i.e. une description normative des tapes de la modlisation) : un langage graphique qui permet de reprsenter et de communiquer les divers aspects dun systme dinformation. Aux graphiques sont bien sr associs des textes qui expliquent leur contenu. UML est donc un mtalangage qui fournit les lments permettant de construire le modle Du langage de du projet. Les auteurs d'UML prconisent d'utiliser une dmarche :

guide par les besoins des utilisateurs du systme, centre sur l'architecture logicielle, itrative et incrmentale.M. Omar EL BEGGAR Page : 7

Module UML

Diagrammes UML (13)UML 2.0 comporte ainsi treize types de diagrammes. Ils se rpartissent en deux grands groupes : Diagrammes structurels ou diagrammes statiques (UML Structure) diagramme de classes (Class diagram) diagramme dobjets (Object diagram) diagramme de composants (Component diagram) diagramme de dploiement (Deployment diagram) diagramme de paquetages (Package diagram) diagramme de structures composites (Composite structure diagram) Diagrammes comportementaux ou diagrammes dynamiques (UML Behavior) diagramme de cas dutilisation (Use case diagram) diagramme dactivits (Activity diagram) diagramme dtats-transitions (State machine diagram) Diagrammes dinteraction (Interaction diagram) diagramme de squence (Sequence diagram) diagramme de communication (Communication diagram) diagramme global dinteraction (Interaction overview diagram) diagramme de temps (Timing diagram)

Les plus utiles pour la matrise douvrage sont les diagrammes : dactivits, de cas dutilisation, de classes, dobjets, de squence et dtats-transitions.M. Omar EL BEGGAR Page : 8

Module UML

Dans la suite, nous allons prsenter une mthode simple et gnrique qui se situe mi-chemin entre UP (Unified Process), qui constitue un cadre gnral trs complet de processus de dveloppement, et XP (eXtreme Programming) qui est une approche minimaliste la mode centre sur le code.

Les phases de Modlisation

Introduction UML

Dfinition des besoins

1- Diagramme de contexte statique 2 - Diagramme Uses cases 1- Raliser le diagramme de squence "bote noire" par scnario de use case dtaill 2- Raliser le diagramme dactivits

Analyse

3- Raliser le diagramme global dinteraction (Interaction overview diagram) 4- Raliser le diagramme de classes d'analyse (Dialogues, contrles et mtier) 5- Raliser le diagramme de squence "bote blanche " (Systme => Objets en collaboration)

Conception

1234567-

Raliser le diagramme de collaboration Raliser le diagramme de classe de conception ou de mtier Raliser le diagramme dobjets Raliser le diagramme dtats de transitions Utiliser quelques des Designs Pattern diagramme de composants (Component diagram) diagramme de dploiement (Deployment diagram)

ImplmentationModule UML

1- Implmenter en Java le diagramme de classe 2- translation du Diagramme de classe au Modle physique de donnes M. Omar EL BEGGAR Page : 9

tapes de la modlisation UMLDfinir les besoins : Dduire le diagramme de contexte statique. Regrouper les exigences et raliser le diagramme des uses cases. Analyse : 1- Raliser le diagramme de squence "bote noire" par scnario de use case dtaill : (les interactions entre l'acteur et le systme informatique : vnements et oprations ; agrmenter le diagramme de squences de notes et de commentaires) 2- Raliser le diagramme de classe d'analyse : (recenser les groupes nominaux par use case :les classes et les objets ; raliser les associations entre les classes et prciser les cardinalits ; enrichir le diagramme de classe en insrant les attributs. 3- Raliser le diagramme de squences "bote blanche". Conception 1- Raliser le diagramme de collaboration partir des diagrammes de classe d'analyse et du diagramme de squence "bote blanche" : 2- Raliser en parallle les diagrammes d'tat des objets les plus complexes afin de dtecter Les mthodes internes ces objets. 3- Raliser le diagramme de classe de conception.

Module UML

M. Omar EL BEGGAR

Page : 10

Dfinition des besoins

Module UML

M. Omar EL BEGGAR

Page : 11

Diagramme de cas dutilisationDfinition Il permet de montrer les diffrentes possibilits dutilisation du systme. Les concepts Utiliss pour les cas dutilisation sont utiliss pour dfinir le comportement du systme sans spcifier sa structure interne. Un diagramme de cas dutilisation reprsente le comportement dun systme, dun sous systme,dune classe ou dun composant avec lequel lutilisateur interagit. Il dcortique la fonctionnalit du systme en units cohrentes, les cas dutilisation, Ayant un sens pour les acteurs. Les cas dutilisation permettent dexprimer le besoin des utilisateurs dun systme, ils sont donc une vision oriente utilisateur de ce besoin au contraire dune vision informatique. Cette premire tape de modlisation permet de produire un logiciel conforme aux attentes des utilisateurs. Pour laborer les cas dutilisation, il faut se fonder sur des entretiens avec les utilisateurs. lments des diagrammes de cas dutilisation 1- Acteur Un acteur est lidalisation dun rle jou par une personne externe, un processus ou Une chose qui interagit avec un systme. Il se reprsente par un petit bonhomme avec son nom (i.e. son rle) inscrit dessous. Il est galement possible de reprsenter un acteur sous la forme dun classeur actor Sys Inter Banque client Module UML M. Omar EL BEGGAR Page : 12

Ph 1 : Dfinition de besoins

Pour Dgager les acteurs dun Systme , on peut poser les questions suivantes: Qui utilise le systme.? Qui installe le systme? Qui dmarre le systme? Qui maintient le systme? Qui ferme le systme? Quels autres systmes utilisent le systme? Qui a besoin d'information venant du systme? Quelque chose est il produit automatiquement par le systme? Il est possible de dfinir une gnralisation sur les acteurs? Diagramme de contexte statique : Bien que ce diagramme ne fasse pas partie des diagrammes UML Officiels , on la trs souvent trouv utile, il permet de spcifier le nombre dinstances dacteurs connects au systme un moment donn.Association Multiplicit0..1 actor1 0..* actor4

vacuation des acteurs

System0..* 0..1

actor2

actor3

Module UML

M. Omar EL BEGGAR

Page : 13

lments dun Diagrammes de cas dutilisation2- Cas dutilisation : Un cas dutilisation est une unit cohrente reprsentant une fonctionnalit visible de lextrieur. Il ralise un service de bout en bout, avec un dclenchement, un droulement et une fin. Un cas dutilisation se reprsente par une ellipse Un cas dutilisation Une relation dassociation Un chemin de communication entre un acteur et un cas dutilisation est reprsent un trait continu Reprsentation dun diagramme de cas dutilisation La frontire du systme est reprsente par un cadre. Le nom du systme figure lintrieur du cadre, en haut. Les acteurs sont lextrieur et les cas dutilisation lintrieur. Exemple : Cas dutilisation

Module UML

M. Omar EL BEGGAR

Page : 14

Types dacteurs : Principal ou SecondaireActeurs principaux et secondaires

Un acteur est qualifi de principal pour un cas dutilisation lorsque ce cas rend service cet acteur. Les autres acteurs sont alors qualifis de secondaires. Un cas dutilisation a au plus un acteur principal. Un acteur principal obtient un rsultat observable du systme. Un acteur secondaire est sollicit pour des informations complmentaires. En gnral, lacteur principal initie le cas dutilisation par ses sollicitations. Le strotype primary vient orner lassociation reliant un cas dutilisation son acteur principal, le strotype secondary est utilis pour les acteurs secondaires.

GAB Primary client Secondary actor Sys Inter Banque

Retrait Argent

Module UML

M. Omar EL BEGGAR

Page : 15

Types dassociations entre cas dutilisationsTypes dassociations et reprsentations : Il existe principalement deux types de relations : linclusion et lextension la gnralisation/spcialisation. Association include : Une relation dinclusion dfinit que le cas dutilisation contient le comportement dfinit dans un autre cas dutilisation. Association Extend : Une relation dextension dfinit que linstance dun cas dutilisation peut tre augmente avec un comportement quelconque dfini dans un cas dutilisation tendu. Il faut spcifier le point dextension sur le cas dde destination. Association Gnralisation/Spcialisation : gnralisation entre deux cas dutilisation, signifie que le cas dutilisation spcialis est plus spcifique que le cas dutilisation gnral. Le spcialis hrite de toutes les proprits et les associations du cas dutilisation.

Une dpendance se reprsente par une flche avec un trait pointill. Si le cas A inclut ou tend le cas B, la flche est dirige de A vers B. Le symbole utilis pour la gnralisation est un flche avec un trait pleins dont la pointe est un triangle ferm dsignant le cas le plus gnral.Module UML M. Omar EL BEGGAR Page : 16

Hritage (Gnralisation/Spcialisation)La gnralisation est une association ascendante du spcial au gnral Gnral Spcial La spcialisation est une association descendante du gnral au spcial (inverse) Gnral Spcial Exemple : Le Versement bancaire peut se faire par dpt dargent par chque ou dpt dargent en espce. (Spcialisation) Le dpt dargent par chque ou le dpt dargent en espce se sont des Versements Bancaires. (Gnralisation) N.B : La mme phrase dite inversement.

Module UML

M. Omar EL BEGGAR

Page : 17

Exemples dassociationsExemple Gnralisation/Spcialisation Virement bancaire

clientVirement par internet

Exemple Inclusion Consulter boite Emails include

client

Exemple Extension Retrait dargent extend

Identification

Vrifier Solde

Module UML

M. Omar EL BEGGAR

Page : 18

ScnariosChaque fois quune instance dun acteur dclenche un cas dutilisation, un scnario est Cr (le cas dutilisation est instanci). Ce scnario suivra un chemin particulier dans le Cas dutilisation. scnario primaire/scnario secondaire: Il est prfrable de commencer dcrire le droulement normal, basique, c'est dire La squence la plus commune: c'est le scnario primaire. Ensuite, il devient possible d crire des alternatives en utilisant des flots dvnements alternatifs. Il est possible d'crire galement les alternatives comme des scnarios secondaires. Recherche des scnarios secondaires: Y a t'il quelques autres actions possibles ce niveau du scnario ? Y a t'il quelque chose qui pourrait mal fonctionner ce niveau du scnario ? Y 'a t'il quelques comportements qui pourraient arriver ce moment du scnario ? Message : Les instances des acteurs communiquent avec le systme en envoyant et recevant des instances de messages allant ou venant des instances de cas dutilisation (au niveau de la ralisation, allant ou provenant des objets).

Module UML

M.Omar EL BEGGAR

Page : 19

Description textuelle dun cas dutilisationDescription textuelle des cas dutilisation : Une description textuelle couramment utilise se compose de trois parties. 1- La premire partie permet didentifier le cas Nom : Utiliser une tournure linfinitif (ex : Rceptionner un colis). Objectif : Une description rsume permettant de comprendre lintention principale du cas dutilisation. Acteurs principaux : Ceux qui vont raliser le cas dutilisation Acteurs secondaires : Ceux qui ne font que recevoir des informations. Dates : Les dates de crations et de mise jour de la description courante. Responsable : Le nom des responsables. Version : Le numro de version. 2. La deuxime partie contient la description du fonctionnement du cas sous la forme dune squence de messages changs entre les acteurs et le systme. Elle contient Toujours une squence nominale qui dcrit de droulement normal du cas. la squence Nominale sajoutent frquemment des squences alternatives (des embranchement dans la squence nominale) et des squences dexceptions (qui interviennent quand une erreur se produit). Les prconditions : elles dcrivent dans quel tat doit tre le systme (lapplication) avant que ce cas dutilisation puisse tre dclench. Des scnarii : Ces scnarii sont dcrits sous la forme dchanges dvnements entre lacteur et le systme. On distingue le scnario nominal, qui se droule quand il ny a pas derreur, des scnarii alternatifs qui sont les variantes du scnario nominal et enfin les scnarii dexception qui dcrivent les cas derreurs. Des postconditions : Elle dcrivent ltat du systme lissue des diffrents scnarii. La troisime partie (optionnelle): Elle contient des spcifications non fonctionnelles, (spcifications matrielle et technique portant sur le temps de rponse, outils, Mono Multitche Module UML M.Omar EL BEGGAR Page : 20

Description textuelle dun cas dutilisationExemple : Scnario nominalActions acteurs principal 1 Actions Systme 2 3

Enchanements alternatifs : A1 : nom denchanement Le point de dmarrage partir dun point x du scnario nominal Les actions numrotes du systme avec des numros Le scnario nominal reprend au point y Enchanements des erreurs : E1 : Nom derreur Le point de dmarrage partir dun point x du scnario nominal Les actions numrotes du systme suite cette erreur

Remarque : Les enchanements alternatifs et derreurs sont caus par lutilisateur Une erreur arrte le scnario le systme, alors une alternative permet de reprendre le scnario nominal.

Module UML

M. Omar EL BEGGAR

Page : 21

ConclusionConstruction dun MODELE USES CASES

Identifier les acteurs qui utilisent, qui grent, qui excutent des fonctions spcifiques. Organiser les acteurs par relation dhritage. Pour chaque acteur, rechercher les cas dutilisation avec le systme. En particulier, ceux qui modifient ltat du systme ou qui attendent une rponse du systme. Ne pas oublier les variantes dinteractions (cas derreur, cas interdits). Organiser ces interactions par hritage, par inclusion et par extension.

Module UML

M. Omar EL BEGGAR

Page : 22

Uses Cases et Devis

Un uses cases permet de produire un devis au pralable, en dterminant le degr de difficult de chaque fonctionnalit ou cas dutilisation et aprs estime le cot et le dlai de ralisation ( JC CORRE & M.Foyaul)

Module UML

M. Omar EL BEGGAR

Page : 23

ExercicesConsidrons une station-service de distribution dessence. Le client se sert de lessence de la faon suivante : il prend un pistolet accroch une pompe et appuie sur la gchette pour prendre de lessence. 1. Qui est lacteur du systme ? 2. Proposer un petit diagramme de cas dutilisation pour modliser la situation. 3. Le pompiste, peut se servir de lessence pour sa voiture dans sa station. Pour modliser cette activit, Comment modlise-t-on a ? 4. Lorsque le pompiste vient avec son camion citerne pour remplir les rservoirs des pompes, est-il considr comme un nouvel acteur ? Comment modlise-t-on cela ? 5. Certains pompistes sont aussi qualifis pour oprer des oprations de maintenance en plus des oprations habituelles des pompistes telles que le remplissage des rservoirs. Ils sont donc rparateurs en plus dtre pompistes. Comment modliser cela ?

Module UML

M. Omar EL BEGGAR

Page : 24

Exercices1) Dans un tablissement scolaire, on dsire grer la rservation des salles de cours ainsi que du matriel pdagogique (ordinateur portable ou/et Vido projecteur). Seuls les enseignants sont habilits effectuer des rservations (sous rserve de Disponibilit de la salle ou du matriel). Le planning des salles peut quant lui tre consult par tout le monde (enseignants et tudiants). Par contre, le rcapitulatif horaire par enseignant (calcul partir du planning des salles) ne peut tre consult que par les enseignants. Enfin, il existe pour chaque formation un enseignant responsable qui seul peut diter Le rcapitulatif horaire pour lensemble de la formation.

Module UML

M. Omar EL BEGGAR

Page : 25

Exercices2) Dans un magasin, le processus de vente est le suivant : le client entre, passe dans Les rayons, demande ventuellement des renseignements ou procde des essais, prend des articles (si le stock est suffisant), passe la caisse o il rgle ses achats (avec tout moyen de paiement accept). Il peut ventuellement bnficier dune rduction. Modliser cette situation par un diagramme de cas dutilisation

Module UML

M. Omar EL BEGGAR

Page : 26

Exercices3) On considre le systme suivant de gestion dun GAB (Guichet automatique de billets) : - le distributeur dlivre de largent tout porteur de carte (carte Visa ou carte de la banque) - pour les clients de la banque, il permet : la consultation du solde du compte le dpt dargent (chque ou numraire) - toute transaction est scurise et ncessite par consquent une authentification - dans le cas o une carte est avale par le distributeur, un oprateur de maintenance se charge de la rcuprer. Cest la mme personne qui collecte galement les dpts dargent et qui recharge le distributeur.

Module UML

M. Omar EL BEGGAR

Page : 27

Analyse

Module UML

M. Omar EL BEGGAR

Page : 28

Ph 2 : Analyse

Diagramme de squences Systme Boite NoireCaractristiques Met en vidence l'aspect temporel (haut vers le bas) des interactions entre les acteurs et le Systme Un objet a une ligne de vie reprsente par une ligne verticale pointille. Une flche reue par un objet se traduit par lexcution dune opration ou dune action. La dure de vie de lopration est symbolise par un rectangle. Certains objets vivent pendant tout le diagramme, d'autres sont activs et/ou meurent pendant la squence. Un diagramme de squence doit tre enrichi par des notes faisant rfrence aux enchanements alternatifs et derreurs du scnario nominal. Diagramme de squence Boite noire Diagramme de squence Systme est dit aussi un diagramme de squence boite noire (Systme = Boite Noire), il dcrit un scnario dun cas dtude. Un Diagramme de Squence Boite noire peut tre enrichi par des actions internes (Souvent des vrifications) des notes de renvoi aux enchanements alternatifs et derreur.

Module UML

M. Omar EL BEGGAR

Page : 29

ExempleSuite aux descriptions textuelles, le scnario(nominal ou secondaire) peut tre reprsent en utilisant un diagramme de squences. Le diagramme de squences permet : . de visualiser laspect temporel des interactions . de connatre le sens des interactions (acteur vers systme ou contraire)

: Systme Pompe clientPrendre pistolet Demander montant Saisir le montant Montant valide Appuyer sur gchette Pomper Essence Rendre pistoletVrification du montantA1 : Montant invalide

Module UML

M. Omar EL BEGGAR

Page : 30

ExemplePorteur de carte visa

: Systme GAB

actor Sys interbanque

Enter carte

Demander code Saisir le code

Vrification de la validit de carte E1 : Carte invalide Vrification du code A1 E2 : Code erron ou provisoire

Demande dautorisation Demande montant AutorisationVrification de montant < solde A2 : Montant > solde E3 : Retrait interdit

Saisie de montantDemande dition de ticket Accepter ldition jection de carte Rcupration de carte jection de billets et tickets Rcupration de billets et cartes Module UML

A3 : Ticket refuse

E4 : Carte non rcupre E5 : Billets non rcupre

M. Omar EL BEGGAR

Page : 31

Particularits de UML 2 Cadres dinteractions

En UML 2, pour un cas dutilisation fait rfrence a autre, qui permet dallger un diagramme de squence Des actions dun cas dutilisation peuvent se rpter (loop), tre optionnel (opt) , ou alternatifs (alt).

: System actorREF

RserverLOOP

Module UML

M. Omar EL BEGGAR

Page : 32

Exemples de cadres dinteractionsUn internaute veut consulter sa boite a emails, pour se faire il a besoin de sauthentifier. en UML2 on peut faire appel a ce cas dutilisation par sa rfrence voir exemple

: SystemREF Sauthentifier

Cliquer sur boite de rception Afficher mails reus Choisir message Afficher le contenu du mail Fermer boite

Module UML

M. Omar EL BEGGAR

Page : 33

EXEMPLE CAISSEUn client se prsente a la caisse pour payer les articles qui les a achet. Le caissier saisie le num_article et sa quantit, le Systme visualise le libelle et le prix produit saisi, ainsi que la total net a payer a la fin

: CaisseCaissierLOOP

Client

Saisir numro article Afficher libelle et prix de produit Afficher Total Afficher libelle et prix de produit Afficher Total

Module UML

M. Omar EL BEGGAR

Page : 34

ExercicesRaliser les diagrammes de squence concernant tablissement scolaire et le magasin

Module UML

M. Omar EL BEGGAR

Page : 35

Un diagramme de squence peut prsenter un processus de gestionDemande de Fourniture

Demandeur de Fourniture

Responsable Sce.Commercial

Comptable

Fournisseur

Saisir articles et Quantit Bon de commande valider Crer Envoi

Bon de livraison Crer Consulte valider Facture Crer Journaliser

Module UML

M. Omar EL BEGGAR

Page : 36

Ph 2 : AnalyseIl est opportun de construire un diagramme dactivit, si les diagrammes de squence sont trs nombreux et trop chargs. Il dcrit la dynamique dun cas dutilisation. En prsentant les actions systme. ils viennent illustrer et consolider la description textuelle des cas dutilisation Composants graphique :Dbut Systme Condition Action du systme Fork ou Join (Sparer ou joindre)

Diagramme dactivit

Fin Systme (Nominale ou chec Systme)

Module UML

M. Omar EL BEGGAR

Page : 37

Diagramme dactivit Exercice GABCode incorrect provisoire

DbutVrification de carte Carte valide Carte invalide

Solde Page : 38

Vue Global dinteraction Exercice Gestion de rservationUn Diagramme dinteraction vue global permet de reprsenter lensemble des transactions du systme afin de donner une vue globale des fonctionnalits du Systme. Ce diagramme regroupe les diagramme de squence et dactivit.

Dbut Consultation Rservationref ref

Rserver

Consulter Planning

Termine?

Non

Module UML

M. Omar EL BEGGAR

fin

Page : 39

Vue Global dinteraction Exercice GABDbutref

Authentification

chec Systme

Consultation Dptref

Retraitref ref

Dpt dargent

Retrait dargent

Consulter compte

Termine? Oui

Non

finModule UML M. Omar EL BEGGAR Page : 40

Introduction aux diagramme de classes et squence boite blancheIntroduction :Un tre Humain peut tre vu comme Systme boite noire . Tout systme peut tre reprsent par ses composants statiques. Ainsi, le systme corps humain , peut il tre reprsent par sa composition en termes de bras, visages, jambes, yeux, etc. Cela donne une certaine comprhension du systme. Si l'on ajoute ces composants statiques, des comportements, par exemple, les yeux peuvent "s'ouvrir", " se fermer" ou encore "pleurer", on obtient alors une vision "objet" de notre systme Boite blanche . Pour les systmes logiciels, il en est de mme. En U.M.L, le diagramme qui permet de dcrire, spcifier, documenter ce type de connaissances s'appelle le diagramme de classes et le diagramme de squence boite blanche .Module UML M. Omar EL BEGGAR Page : 41

Analyse du domaine :(Analyse Statique) modle du domaine et classes danalyse:Analyse du domaine : modle du domaine et classes danalyse: Llaboration du modle des classes du domaine permet doprer une transition vers une vritable modlisation objet. La phase danalyse du domaine permet dlaborer la premire version du diagramme De classes appele modle du domaine. Ce modle doit dfinir les classes qui Modlisent les entits ou concepts prsents dans le domaine (on utilise aussi le terme de mtier) de lapplication. Il sagit donc de produire un modle des objets du monde rel dans un domaine donn. Ces entits ou concepts peuvent tre identifis directement partir de la connaissance du domaine ou par des entretiens avec des experts du domaine. Il faut absolument utiliser le vocabulaire du mtier pour nommer les classes et leurs attributs. Les classes du modle du domaine ne doivent pas contenir dopration, mais seulement des attributs. Il nest pas souhaitable que les utilisateurs interagissent directement avec les instances des classes du domaine par le biais de linterface graphique. En effet, le modle du domaine doit tre indpendant des utilisateurs et de linterface graphique. De mme, linterface graphique du logiciel doit pouvoir voluer sans rpercussion sur le coeur de lapplication. Cest le principe fondamental du dcoupage en couches dune application. Ainsi, le diagramme de Classes participantes modlise trois types de classes danalyse, les dialogues, les contrles et les entits ainsi que leurs relations.

Module UML

M. Omar EL BEGGAR

Page : 42

Exemple :

Module UML

M. Omar EL BEGGAR

Page : 43

Classes danalyseDfinition de classes d'analyses On s'aperoit que dans l'analyse d'un problmes trois types de classes Apparaissent couramment: classe Dialogue La classe qui permet au systme de communiquer avec le monde rel, elle est la frontire du systme, elle se conoit en gnral par une interface graphique, nous la reprsentons par l'icne suivanteRception de facture classe entit ou mtier La classe qui mmorise et gre des donnes, par exemples les livres prsents, les prts effectues, nous la reprsentons par l'icne suivante Elles permettent des donnes et des relations dtre stockes dans des fichiers ou des bases de donnes. Lors de limplmentation, ces classes peuvent ne pas Stockage de facture se concrtiser par des classes mais par des relations, au sens des bases de donnes relationnelles

classe contrle La classe qui ralise le contrle ncessaire pour interprter le scnario Dcrivant un cas d'utilisation

Gestion de facture

Module UML

M. Omar EL BEGGAR

Page : 44

Diagramme de classes mtierLe diagramme de classes permet de modliser les classes du systme et leurs associations. le diagramme de classes en montre la structure interne. Il permet de fournir une reprsentation abstraite des objets du systme qui vont interagir ensemble pour raliser les cas dutilisation. Il sagit dune vue statique car on ne tient pas compte du facteur temporel dans le Comportement du systme. Reprsentation graphique :

Reprsentation graphique de lencapsulation : + public private # protected / Attributs drivs Les attributs drivs peuvent tre calculs partir dautres attributs. Ils sont symboliss par lajout dun / devant leur nom.Module UML M. Omar EL BEGGAR Page : 45

Classes abstraites et InterfacesClasses abstraites Une classe abstraite ne peut donc pas tre utilise pour fabriquer des instances dobjets; elle sert uniquement de modle, que lon pourra utiliser pour crer des classes plus Spcialises par drivation (hritage). Une classe abstraite est assez proche de la notion dinterface; dailleurs, la notion dinterface est gnralement implmente par une classe. Reprsentation dune classe abstraite

Interface Un modle ou prototype de classes, qui dfinit un contrat a respecter Descripteur des oprations Sans code Pas d'attribut Pas d'association Une classe peut implmenter un interface; elle peut aussi en implmenter plusieurs. En notation UML, cette relation est dnote par une flche en pointillesModule UML M. Omar EL BEGGAR Page : 46

AssociationsAssociation : Relation structurelle entre deux classes d'objets Relie deux classificateurs Classes, interfaces Parfois : association reprsente par une classe Elles reprsentent soit une appartenance ou une collaboration. Une association binaire est matrialise par un trait plein entre les classes associes. Elle peut tre orne dun nom, avec ventuellement une prcision du sens de lecture Quand les deux extrmits de lassociation pointent vers la mme classe, lassociation est dite rflexive.

Rles Extrmit d'une association Indication des rles relatifs des deux classes relies par association Pseudo-attribut de la classe source Ex : Employeur est un pseudo attribut de la classe Personne Indication de visibilit; Public par dfaut , Priv (-) ou protg (#)Module UML M. Omar EL BEGGAR Page : 47

Types dassociationsHritage Lhritage constitue une relation de spcialisation. Elle est note, en UML, par une Flche allant de la classe spcialise vers la classe originale (de la classe vers la superclasse). La relation dagrgation/Composition Agrgation Lorsquun objet en contient dautres, on parle dagrgation. Une agrgation est une association qui reprsente une relation dinclusion structurelle ou comportementale dun lment dans un ensemble. Graphiquement, on ajoute un losange vide du ct de lagrgat, comme indiqu la figure. Elle nentrane pas non plus de contrainte sur la dure de vie des parties par rapport au tout. Composition La composition, galement appele agrgation forte, dcrit une contenance Structurelle entre instances. Ainsi, la destruction de lobjet composite implique la destruction de ses composants. Une instance de la partie appartient toujours au plus une instance de llment composite : la multiplicit du ct composite ne doit pas tre suprieure 1.Graphiquement, on ajoute un losange plein du ct de lagrgat.

Module UML

M. Omar EL BEGGAR

Page : 48

QualificationParfois, un lment (un attribut) permet de slectionner un sous-ensemble d'objets (de 1 n) participant l'association. Souvent, cela permet de rduire la cardinalit de l'extrmit de l'association 1... Il pourra s'agir d'une cl dans une HashTable. Lattribut qualificatif est la cl du HashTable

Module UML

M. Omar EL BEGGAR

Page : 49

Associations n-aire Une association n-aire lie plus de deux classes. La ligne pointill dune classe-association peut tre relie au losange par une ligne discontinue pour reprsenter une association n-aire dote dattributs, doprations ou dassociations. On reprsente une association n-aire par un grand losange avec un chemin partant vers chaque classe participante. Le nom de lassociation, le cas chant, apparat proximit du losange. GroupeGroupe

Association n-aire & classe association

Classe d'associationUne classe-association possde les caractristiques des associations et des classes elle se connecte deux ou plusieurs classes et possde galement des attributs et des oprations. Une classe-association est caractrise par un trait discontinu entre la classe et lassociation quelle reprsenteModule UML M. Omar EL BEGGAR Page : 50

Multiplicit

Multiplicit Contraintes lies au domaine d'application, elle est Valable pendant toute la vie de l'objet. Pas d'influence sur l'ordre de cration des objets (associations simples) Il faut noter que, pour les habitus du modle entit/relation, les multiplicits sont en UML lenvers

1 0..1 N M..N * 0..* 1..*

Un seul Zro ou un (entier naturel) exactement N De M N (entiers naturels) De zro plusieurs De zro plusieurs D'un plusieurs

Module UML

M. Omar EL BEGGAR

Page : 51

Navigabilit La navigabilit indique sil est possible de traverser une association. On reprsente Graphiquement la navigabilit par une flche du ct de la terminaison navigable et on empche la navigabilit par une croix du ct de la terminaison non navigable. Par dfaut, une association est navigable dans les deux sens. Par exemple, sur la figure, la terminaison du ct de la classe Personne nest pas navigable : cela signifie que les instances de la classe Compte ne stockent pas de liste dobjets du type Personne. Inversement, la terminaison du ct de la classe Compte est navigable : chaque objet Personne contient une liste de Comptes.

Navigabilit

Module UML

M. Omar EL BEGGAR

Page : 52

Contraintes sur les associationsIl est possible d'exprimer des contraintes sur une association, afin de limiter les objets mis en jeu. Cela permet de mieux cadrer l'architecture de l'ensemble.

Module UML

M. Omar EL BEGGAR

Page : 53

Analyse linguistiqueNoms et groupes nominaux : Classe ou un travailleur mtier Article le/la/un/une : Multiplicit Ce,ces,Cette et Synonymes : Classe identique Possessifs (son/sa/ses): attribut ou une classe. Un attribut si la possession est une simple caractristique du possesseur. Une Classe si la possession est un concept, le possesseur et la possession sont relis automatiquement par une association structurelle. OU : Spcialisation/Gnralisation Verbe : association ou (une dynamique exclus de lanalyse du domaine) Plusieurs verbes entres concepts : association plus gnrale (neutre) avec une multiplicit plusieurs Participe prsent : association Liste : Contrainte Ordred

Module UML

M. Omar EL BEGGAR

Page : 54

Conclusionidentification des classes (d'objets) : Recherchez les classes candidates (diffrentes suivant le niveau d'abstraction) l'aide De diagrammes d'objets (bauches). filtrez les classes redondantes, trop spcifiques ou vagues. identification des associations entre classes / interactions entre objets (instances) : recherchez les connexions smantiques et les relations d'utilisation, documentez les relations (nom, cardinalits, contraintes, rles des classes. identification des attributs et les oprations des classes : recherchez les attributs dans les modles dynamiques (recherchez les donnes qui caractrisent les tats des objets), recherchez les oprations parmi les activits et actions des objets (ne pas rentrer dans le dtail au niveau spcification). Encapsuler les caractristiques des classes Optimisation les modles : choisissez vos critres d'optimisation (gnricit, volutivit, prcision, lisibilit, simplicit...), utilisez lagrgation la gnralisation et la spcialisation (classification),

Module UML

M. Omar EL BEGGAR

Page : 55

ExercicesSoient les phrases suivantes : . . . . Un rpertoire contient des fichiers, qui contient aussi des lignes; Une pice contient des murs; Une droite est trace par deux points; Un groupe NTIC est spcialis rseau ou dveloppement, il contient des stagiaires; Les voitures a gaz ou carburant dmarrent diffremment; Les clients identifis par CIN et pompistes identifis par matricule peuvent se servir de lessence pour remplir leurs voiture; Les modems et claviers sont des priphriques dentre / sortie; Une transaction boursire est un achat ou une vente; Un compte bancaire peut appartenir une personne physique ou morale; laborez les diagrammes de classe correspondants en choisissant le type de relation appropri

Module UML

M. Omar EL BEGGAR

Page : 56

ExercicesUne acadmie souhaite grer les cours dispenss dans plusieurs collges. Pour cela, on dispose des renseignements suivants : Chaque collge possde dun site Internet Chaque collge est structur en dpartements, qui regroupent chacun des enseignants spcifiques. Parmi ces enseignants, lun deux est responsable du dpartement. Un enseignant se dfinit par son nom, prnom, tl, mail, date de prise de fonction et son indice. Chaque enseignant ne dispense quune seule matire. Les tudiants suivent quant eux plusieurs matires et reoivent une note pour chacune delle. Pour chaque tudiant, on veut grer son nom, prnom, tl, mail, ainsi que son anne dentre au collge. Une matire peut tre enseigne par plusieurs enseignants mais a toujours lieu dans la mme salle de cours (chacune ayant un nombre de places dtermin). On dsire pouvoir calculer la moyenne par matire ainsi que par dpartement On veut galement calculer la moyenne gnrale dun lve et pouvoir afficher les matires dans lesquelles il na pas t not Enfin, on doit pouvoir imprimer la fiche signaltique (, prnom, tl, mail) dun enseignant ou dun lve.

Module UML

M. Omar EL BEGGAR

Page : 57

ExercicesUne agence de location de maisons et dappartements dsire grer sa liste de logements. Elle voudrait en effet connatre limplantation de chaque logement (nom de La commune et du quartier) ainsi que les personnes qui les ont lou. Le loyer dpend dun logement, mais en fonction de son type (maison, Villa, Appartement...). Pour chaque logement, on veut disposer galement de ladresse, de la superficie. Quant aux individus qui occupent les logements,on se contentera de leurs noms,prnoms, date de naissance et numro de tlphone. Pour chaque commune, on dsire connatre le nombre dhabitants ainsi que la distance sparant la commune de lagence.

Module UML

M. Omar EL BEGGAR

Page : 58

ExercicesUne cole dsire grer les stages de ses tudiants divers entreprises. Chaque tudiant est encadr par un Formateur de lcole. Dans chaque stage,ltudiant doit raliser une application de gestion. Les jury accordent toujours une note de stage, qui permet dtablir le classement du stagiaire. On dsire connatre les stages auxquels ont particip les stagiaires,le sujet de stage, la note et le classement. Les informations collectes sont : - Nom de Stagiaire - Prnom de Stagiaire - Nom de lencadrant - Prnom de lencadrant - Lieu du stage - Date du stage - Note - Classement - Sujet de stage

Module UML

M. Omar EL BEGGAR

Page : 59

Exercice de (Diagramme de classe danalyse) et matriel rservation SalleSalle Matriel-Ninventaire : String+Constructor : String 1,1 1,1

+Nsalle : int +Capacite : int 1,1 avoir Dates

Planning * -NPlanning : int

-Datep:DateConsulter

* {ordred} ReservationOrdianeteurPortable

*

VideoProjecteur -Plampe : int

-Vitesse : int -Stockage : int -Memoire : int

-NReservation : int -Dateres : Date -Horaire : String

* Personne -CIN : String -Nom : String -Prenom : String +Adresse : String

*1,1

Enseignant -Matricule : int -Diplome : String

Etudiant -Ninscription : int

Module UML

M. Omar EL BEGGAR

Page : 60

IntroductionUML modlise les systmes dinformations pour raliser un systme Informatique. Systme == Logiciel == un ensemble de programmes qui ralisent des Fonctionnalits rpondant a des besoins clients. Logiciel est compos de programmes: IHM : programme de communication ou de dialogue entre lutilisateur et la machine; Traitement : programme qui traite et contrle les donnes saisies par lutilisateur; Data : programme qui stocke et interroge les donnes mtiers du domaine. Tout programme en O.O est une classe, Donc Systme en O.O est compos de classes dialogue, classes contrle et classes mtiers. Ces objets peuvent que interagir entre eux pour raliser une fonctionnalit eux. Cette dynamique du systme ou interaction et la partie dynamique de lanalyseModule UML M. Omar EL BEGGAR Page : 61

Analyse Dynamique (LARMAN) Oprations Systme et contrat doprationsPour Chaque cas dutilisation, on dgage les oprations Systme, et pour chaque opration on dtermine son contrat, qui possde les informations suivantes : Nom dopration Responsabilit Preconditions Postconditions Exceptions et notes. Par exemples : Cas dutilisation Rserver une salle de cours , les oprations Systme quil contient sont : Contrat dopration : Oprations Systme Nom dopration : Crer une rservation Vrifier la disponibilit Rfrences : Cas dutilisation Rserver une salle de cours . Crer une rservation Preconditions : les salles et enseignants doivent treenregistrs dans le systme. PostConditions : un Objet rservation : R est cre, un Objet salle : S et un objet enseignant :E lis a cette rservation. Une fois tabli le contrat dopration, on dtermine les changements de ltat Systme grce aux Postconditions. Et ceci en utilisant les diagrammes de collaboration ou de squence BB Module UML M. Omar EL BEGGAR Page : 62

Analyse Dynamique Oprations Systme et contrat doprationsChaque opration Systme va donner lieu a une tude dynamique sous la forme dun diagramme dinteraction(Communication,Squence boite blanche ou collaboration). Les diagrammes dinteraction ainsi ralises vont permettre dlaborer le diagramme de clases de conception, et ceci en ajoutant principalement les informations suivantes aux classes issues du modle danalyse.

:A

1.op1()

:B

B

+op1()Module UML M. Omar EL BEGGAR Page : 63

Diagramme de squence Systme boite blancheDfinition est un diagramme dinteraction mettant laccent sur la chronologie de lenvoi des Messages entre les classes danalyse et les acteurs principaux et secondaires. Un diagramme de squence boite blanche est un diagramme de squence qui dvoile les composants du systme reprsent ultrieurement dans un diagramme de squence boite noire. Le systme boite blanche se compose des objets prsentatifs, logiques et mtiers (Classes danalyses). Les principales informations contenues dans un diagramme de squence boite blanche sont les messages changs entre les lignes de vie des acteurs principaux,acteurs Secondaires et classes danalyse qui composent le systme prsents dans un ordre chronologique. Ainsi, contrairement au diagramme de communication, le temps y est reprsent explicitement par une dimension (la dimension verticale) et scoule de haut en bas.

Module UML

M. Omar EL BEGGAR

Page : 64

Diagramme de squence Boite Blanche: Dialogue: Controleur

: Salle

: Rservation

Enseignant Reserversalle(nsalle : String,dater : Date,Horaire : String)

Verifierdisp(nsalle : String,dater : Date,Horaire : String)

ChercherRes(nsalle : String) : Reservation[]

LOOP

getDate(R : Reservation) : Date getHoraire(R : Reservation) : String Comparer(date:Date,Hor:String) : Boolean

Module UML

M. Omar EL BEGGAR

Page : 65

Diagramme de CommunicationDfinition Le diagramme de communication est un diagramme dinteraction mettant laccent sur lorganisation structurelle des objets qui envoient et reoivent des messages. Contrairement un diagramme de squence, un diagramme de communication rend compte de lorganisation spatiale des participants linteraction, il est souvent utilis Pour illustrer un cas dutilisation ou pour dcrire une opration dfinit par LARMAN. Le diagramme de Communication aide valider les associations du diagramme de classe en les utilisant comme support de transmission des messages. (Exemple voir le slide suivant)

Module UML

M. Omar EL BEGGAR

Page : 66

Diagramme de Communication1.Verifier(ns:String,d:Date,h:String) Enseignant :Dialogue ReserverSalle 1.1 Verdisp(ns:String,d:Date,h:String) :ControleurReservations :Reservation

:Salle

Le diagramme de communication quillustre lopration Vrifier disponibilit du cas dutilisation Rserver Salle Module UML M. Omar EL BEGGAR Page : 67

Conception

Module UML

M. Omar EL BEGGAR

Page : 68

GRASP PATTERNS (M. Fayolle)Contrleur pattern Objet responsable d'accueillir les messages de l'extrieur Crateur pattern Objet responsable de crer des objets, gnralement c'est le conteneur, sinon c'est l'objet le plus proche fonctionnellement Expert pattern : celui qui sait qui fait, l'objet qui contient les informations c'est l'objet qui doit renvoyer l'objet recherche. Faible couplage : degr de dpendance Forte collusion pattern : liaison forte entre classe Indirection pattern : Une classe indirection qui s'occupera de lien avec lexterieur. Fayolle Parfois il est inutile dutiliser le conteneur sur le diagramme de classe danalyse pour trouver les methodes. Il est utile d'ajouter une classe pour collection qui contient que une partie des classes composantes des la bd exemple commande et commandes livres

Diagramme de CollaborationLes collaborations sont des interactions entre objets, dont le but est de raliser un objectif du systme (c'est--dire aussi de rpondre un besoin d'un utilisateur). L'lment de modlisation UML "collaboration", reprsente les classes qui participent la ralisation d'un cas d'utilisation. Les diagrammes de collaboration mettent laccent sur les relations spatiales entre objets. Les messages peuvent tre numrots pour introduire une dimension temporelle. De nombreuses notations annexes permettent de caractriser les messages. Ils sont souvent utiliss pour dcrire grossirement la ralisation des cas dutilisation. Exemple : Un objet A envoie un message X un objet B, puis lobjet B envoie un message Y un objet C, et enfin C senvoie lui mme un message Z.

1:X B

A 2:Y

3:Z

C

Module UML

M. Omar EL BEGGAR

Page : 70

Diagramme de packageExemple Layer PrsentationReserverSalle

Layer Mtier OBJETSMatriel -Ninventaire : String +Constructor : String Salle +Nsalle : int +Capacite : int Planning -NPlanning : int Dates -Datep:Date

OrdianeteurPortable VideoProjecteur -Vitesse : int -Stockage : int -Plampe : int -Memoire : int

Layer ControleControleurres

FONCTIONSEtudiant -Ninscription : int Reservation -NReservation : int -Dateres : Date -Horaire : String

Enseignant -Matricule : int -Diplome : String

Personne -CIN : String -Nom : String -Prenom : String +Adresse : String

Module UML

M. Omar EL BEGGAR

Page : 71

Diagrammes de dploiement et de composantsIntroduction : Les diagrammes de composants et les diagrammes de dploiement sont des diagrammes de types statique en UML. -Le diagramme de composants dcrive le systme modlis sous forme de composants rutilisables et met en vidence leurs relations de dpendance. -Le diagramme de dploiement reprsente les lments matriels (PC, Modem, Station de travail, Serveur, etc.), leurs dispositions physiques (connexions) et la disposition des excutables (reprsents par des composants) sur ces lments matriels.

Module UML

M. Omar EL BEGGAR

Page : 72

Composant : Un composant est une unit autonome reprsente par un classeur structur, Strotyp component, comportant une ou plusieurs interfaces requises ou offertes. Son comportement interne, gnralement ralis par un ensemble de classes, est totalement masqu : seules ses interfaces sont visibles. La seule contrainte pour pouvoir substituer un composant par un autre est de respecter les interfaces requises et offertes. Relation de dpendance : La relation de dpendance est utilise dans les diagrammes de composants pour Indiquer quun lment de limplmentation dun composant fait appel aux services oerts par les lments dimplmentation dun autre composant

Module UML

M. Omar EL BEGGAR

Page : 73

Implmentation du diagramme de classes en JavaPackage exemple; public Interface Uninterface { public abstract boolean uneMethodePublique(); } Package exemple; public abstract Class UneClasse { public abstract int uneMethodeAbstraite() ; public void uneAutreMethodeNonAbstraite(){ } } Package exemple; public Class UneClasse { private int unAttributPrive; protected int unAttributProtege; public int unAttributPublique; private void uneMethodePrivee(){ } protected void uneMethodeProtege(){ } public void uneMethodePublique(){ } } Module UML M. Omar EL BEGGAR Page : 74

Package exemple; public Class UneClasseDeBase { public void uneMethode() { } } Public Class UneClasseDerivee extends UneClasseDeBase { public void uneMethode() { } }

Package exemple; public Interface InterfaceUn { } public Interface InterfaceDeux { } Public Class MaClasse implements InterfaceUn, InterfaceDeux { }

Module UML

M. Omar EL BEGGAR

Page : 75

public class Animal { public int num; private Personne P; public Personne getP() { return P; } public void setP(Personne p) { P = p; } public void AddP(Personne p) { if (p!=null) { if (p.getA()!=null) { p.setA(null); } this.setP(p); p.setA(this); } } }

public class Personne { public String nom; private Animal A; public Animal getA() { return A; } public void setA(Animal a) { A = a; } public void AddA(Animal a) { if (a!=null) { Personne if (a.getP()!=null) { 1 Adopter 1 a.setP(null); - adopteur } - Adopte this.setA(a); a.setP(this); } } }

Animal

Module UML

M. Omar EL BEGGAR

Page : 76

Package exemple; public Class A { Public B rb; } public Class B { } Package exemple; public Class A { Public Vector rb=new Vector(); } public Class B { public A ra; } Package exemple; public Class A { Public ArrayList rb=new ArrayList(); } public Class B { public A ra; }-{Ordred}Lagrgation et la composition sont implmentes comme les associations en java Module UML M. Omar EL BEGGAR Page : 77Implmentation du diagramme de classes en SQLcreate table relation_A ( num_relation_A int primary key, att1 text, att2 int);create table relation_A ( id_A int primary key, attA1 text, attA2 int); create table relation_B ( id_B int primary key, num_A int references relation_A, attB1 text, attB2 int);Module UMLM. Omar EL BEGGARPage : 78create table relation_A (id_A int primary key, num_B int foreign key references relation_B(id_B),attA1 text,attA2 int) create table relation_B (id_B int primary key, attB1 text,attB2 int)create table relation_A (id_A int primary key,attA1 text, attA2 int) create table relation_B (id_B int primary key,attB1 text, attB2 int) create table relation_A_B (num_A int foreign key references relation_A(id_A), num_B int foreign Key references relation_B(id_B), primary key (num_A, num_B))Module UMLM. Omar EL BEGGARPage : 79create table relation_C ( id_C int primary key, attC1 text, attC2 int, type text); create table relation_A ( id_A foreign Key references relation_C(id_A), attA1 text, attA2 int, primary key (id_A)); create table relation_B ( id_B foreign Key references relation_C(id_C), attB1 text, attB2 int, primary key (id_B));Lagrgation et la composition sont implmentes comme les associations en SQLModule UMLM. Omar EL BEGGARPage : 80create table relation_C ( id_C int primary key, attC1 text, attC2 int, type text); create table relation_A ( id_A foreign Key references relation_C(id_A), attA1 text, attA2 int, primary key (id_A)); create table relation_B ( id_B foreign Key references relation_C(id_C), attB1 text, attB2 int, primary key (id_B));Lagrgation et la composition sont implmentes comme les associations en SQLattC1: String attC2: Stringid_A : Integerid_B : IntegerModule UMLM. Omar EL BEGGARPage : 81