Académique Documents
Professionnel Documents
Culture Documents
Approche 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.O
Lapproche 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.O
Lencapsulation 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 UML
Introduction 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 UML
Les phases de Modlisation
Cahier de charge
Analyse Conception
Ralisation
Implmentation tests
Logiciel
Page : 5
Historique
Apparition de + ieurs Mthodes : (Booch, Classe-Relation, Fusion, HOOD, OMT, OOA, OOD,OOM, OOSE, etc.)
Los Amigos
1979-1980
1990
1995
1996
Jacobson produit UML 0.9
1997
LOMG adopte UML 1.1
2008
UML 2.1.1 La version dUML en cours en
Merise
Module UML
M. Omar EL BEGGAR
Page : 6
Description dUML
U.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
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.
Introduction UML
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)
Implmentation
Module 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
Module UML
M. Omar EL BEGGAR
Page : 10
Module UML
M. Omar EL BEGGAR
Page : 11
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 Multiplicit
0..1 actor1 0..* actor4
System
0..* 0..1
actor2
actor3
Module UML
M. Omar EL BEGGAR
Page : 13
Module UML
M. Omar EL BEGGAR
Page : 14
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.
Retrait Argent
Module UML
M. Omar EL BEGGAR
Page : 15
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 dassociations
Exemple Gnralisation/Spcialisation Virement bancaire
client
Virement par internet
client
Identification
Vrifier Solde
Module UML
M. Omar EL BEGGAR
Page : 18
Scnarios
Chaque 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
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
Conclusion
Construction 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
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
Exercices
Considrons 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
Exercices
1) 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
Exercices
2) 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
Exercices
3) 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
Module UML
M. Omar EL BEGGAR
Page : 29
Exemple
Suite 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)
Module UML
M. Omar EL BEGGAR
Page : 30
Exemple
Porteur de carte visa
: Systme GAB
Enter carte
Vrification de la validit de carte E1 : Carte invalide Vrification du code A1 E2 : Code erron ou provisoire
Saisie de montant
Demande 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
M. Omar EL BEGGAR
Page : 31
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 actor
REF
Rserver
LOOP
Module UML
M. Omar EL BEGGAR
Page : 32
: System
REF 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 CAISSE
Un 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
: Caisse
Caissier
LOOP
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
Exercices
Raliser les diagrammes de squence concernant tablissement scolaire et le magasin
Module UML
M. Omar EL BEGGAR
Page : 35
Demandeur de Fourniture
Responsable Sce.Commercial
Comptable
Fournisseur
Module UML
M. Omar EL BEGGAR
Page : 36
Ph 2 : Analyse
Il 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
Module UML
M. Omar EL BEGGAR
Page : 37
Dbut
Vrification de carte Carte valide Carte invalide
Demande dautorisation
Code correct
Client autorise
dition de tickets
Carte rcupre
Vrification Montant
Fin nominale
Module UML M. Omar EL BEGGAR
Rserver
Consulter Planning
Termine?
Non
Module UML
M. Omar EL BEGGAR
fin
Page : 39
Authentification
chec Systme
Consultation Dpt
ref
Retrait
ref ref
Dpt dargent
Retrait dargent
Consulter compte
Termine? Oui
Non
fin
Module UML M. Omar EL BEGGAR Page : 40
Module UML
M. Omar EL BEGGAR
Page : 42
Exemple :
Module UML
M. Omar EL BEGGAR
Page : 43
Classes danalyse
Dfinition 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 suivante
Rception 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
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
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 pointilles
Module UML M. Omar EL BEGGAR Page : 46
Associations
Association : 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 dassociations
Hritage 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
Qualification
Parfois, 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. Groupe
Groupe
Classe d'association
Une 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 reprsente
Module 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
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
Module UML
M. Omar EL BEGGAR
Page : 53
Analyse linguistique
Noms 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
Conclusion
identification 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
Exercices
Soient 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
Exercices
Une 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
Exercices
Une 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
Exercices
Une 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
-Datep:Date
Consulter
* {ordred} Reservation
OrdianeteurPortable
*
1,1
Module UML
M. Omar EL BEGGAR
Page : 60
Introduction
UML 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 lanalyse
Module UML M. Omar EL BEGGAR Page : 61
:A
1.op1()
:B
+op1()
Module UML M. Omar EL BEGGAR Page : 63
Module UML
M. Omar EL BEGGAR
Page : 64
: Salle
: Rservation
LOOP
Module UML
M. Omar EL BEGGAR
Page : 65
Diagramme de Communication
Dfinition 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 Communication
1.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
Diagramme de Collaboration
Les 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
Module UML
M. Omar EL BEGGAR
Page : 70
Diagramme de package
Exemple
Layer Prsentation
ReserverSalle
OrdianeteurPortable VideoProjecteur -Vitesse : int -Stockage : int -Plampe : int -Memoire : int
Layer Controle
Controleurres
FONCTIONS
Etudiant -Ninscription : int Reservation -NReservation : int -Dateres : Date -Horaire : String
Module UML
M. Omar EL BEGGAR
Page : 71
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
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<B> rb=new Vector<B>(); } public Class B { public A ra; } Package exemple; public Class A { Public ArrayList<B> rb=new ArrayList<B>(); } 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 : 77
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 UML
M. Omar EL BEGGAR
Page : 78
create 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 UML
M. Omar EL BEGGAR
Page : 79
create 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 SQL
Module UML
M. Omar EL BEGGAR
Page : 80
create 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 SQL
id_A : Integer
id_B : Integer
Module UML
M. Omar EL BEGGAR
Page : 81