Académique Documents
Professionnel Documents
Culture Documents
DES EQUIPEMENTS
COURS UML
Ce cours a t crit en grande partie partir du site http://uml.free.fr (Merci son auteur : Laurent Piechocki) ainsi que du cours de Frdric Di Gallo (CNAM angoulme).
SOMMAIRE
SOMMAIRE ____________________________________________________________ 2 TABLE DES MATIERES __________________________________________________ 4 INTRODUCTION ________________________________________________________ 1
UML est une norme __________________________________________________________ 3 UML est un langage de modlisation objet._______________________________________ 3 UML est un support de communication _________________________________________ 4 UML est un cadre mthodologique pour une analyse objet__________________________ 5
IV.3) Le processus unifi est itratif et incrmental _______________________________ 61 IV.4) Le cycle de vie du processus unifi ________________________________________ 62 IV.5) Conclusion : un processus intgr ________________________________________ 64
V.3) La dmarche___________________________________________________________ 71
V.3.1) Les modles utiliss _________________________________________________________ 71 V.3.2) les tapes du processus dlaboration du systme dinformation _______________________ 72
INTRODUCTION ________________________________________________________ 1
UML est une norme __________________________________________________________ 3 UML est un langage de modlisation objet._______________________________________ 3 UML est un support de communication _________________________________________ 4 UML est un cadre mthodologique pour une analyse objet__________________________ 5
UML n'est pas une mthode _______________________________________________________ 6 Conclusion ____________________________________________________________________ 6
Objectifs du diagramme de collaboration ____________________________________________ Les interactions ________________________________________________________________ Les messages__________________________________________________________________ III.2.2) diagrammes de squence _____________________________________________________ Les interactions ________________________________________________________________ Les activations_________________________________________________________________ Les catgories de message _______________________________________________________ Les messages rflexifs___________________________________________________________ Les contraintes temporelles_______________________________________________________ La ligne de vie_________________________________________________________________ III.2.3) diagrammes d'tats-transitions_________________________________________________ Caractristiques et rgles de construction ____________________________________________ Etat_____________________________________________________________________ Evnements et transitions ___________________________________________________ Les traitements____________________________________________________________ La hirarchie des tats ______________________________________________________ Les tats prdfinis ________________________________________________________ III.2.4) diagrammes d'activits_______________________________________________________ Le droulement squentiel des activits _____________________________________________ La synchronisation _____________________________________________________________ Les couloirs d'activits __________________________________________________________
45 45 46 47 48 48 49 51 52 52 54 54 54 54 55 55 55 56 56 56 57
IV.4) Conclusion____________________________________________________________ 72
INTRODUCTION
Pour faire face la complexit croissante des systmes dinformation, de nouvelles mthodes et outils ont t cres. La principale avance des quinze dernires annes rside dans la programmation oriente objet (P.O.O.). Face ce nouveau mode de programmation, les mthodes de modlisation classique (telle MERISE) ont rapidement montr certaines limites et ont d sadapter (cf. MERISE/2). De trs nombreuses mthodes ont galement vu le jour comme Booch, OMT Dans ce contexte et devant le foisonnement de nouvelles mthodes de conception oriente objet , lObject Management Group (OMG) a eu comme objectif de dfinir une notation standard utilisable dans les dveloppements informatiques bass sur lobjet. Cest ainsi quest apparu UML (Unified Modified Language langage de modlisation objet unifi ), qui est issu de la fusion des mthodes Booch, OMT (Object Modelling Technique) et OOSE (Object Oriented Software Engineering). Issu du terrain et fruit d'un travail d'experts reconnus, UML est le rsultat d'un large consensus. De trs nombreux acteurs industriels de renom ont adopt UML et participent son dveloppement. En l'espace d'une poigne d'annes seulement, UML est devenu un standard incontournable. Ceci nous amne nous questionner sur : - les apports rels dUML dans la modlisation - la place des mthodes dites traditionnelles telle que MERISE. UML est en effet apparu trs tardivement, car lapproche objet se pratique depuis de trs nombreuses annes dj. Simula, premier langage de programmation implmenter le concept de type abstrait l'aide de classes, date de 1967 ! En 1976 dj, Smalltalk implmente les concepts fondateurs de l'approche objet : encapsulation, agrgation, hritage. Les premiers compilateurs C++ datent du dbut des annes 80 et de nombreux langages orients objets "acadmiques" ont tay les concepts objets (Eiffel, Objective C, Loops...). Il y donc dj longtemps que l'approche objet est devenue une ralit. Les concepts de base de l'approche objet sont stables et largement prouvs. De nos jours, programmer "objet", c'est bnficier d'une panoplie d'outils et de langages performants. L'approche objet est une solution technologique incontournable. Ce n'est plus une mode, mais un rflexe quasi-automatique ds lors qu'on cherche concevoir des logiciels complexes qui doivent "rsister" des volutions incessantes. Toutefois, lapproche objet nest pas une panace : - elle est moins intuitive que l'approche fonctionnelle. Malgr les apparences, il est plus naturel pour l'esprit humain de dcomposer un problme informatique sous forme d'une hirarchie de fonctions atomiques et de donnes, qu'en terme d'objets et d'interaction entre ces objets. Or, rien dans les concepts de base de l'approche objet ne dicte comment modliser la structure objet d'un systme de manire pertinente. Quels moyens doit-on alors utiliser
pour mener une analyse qui respecte les concepts objet ? Sans un cadre mthodologique appropri, la drive fonctionnelle de la conception est invitable... - l'application des concepts objet ncessite une trs grande rigueur. Le vocabulaire prcis est un facteur d'chec important dans la mise en oeuvre d'une approche objet (risques d'ambiguts et d'incomprhensions). Beaucoup de dveloppeurs (mme expriments) ne pensent souvent objet qu' travers un langage de programmation. Or, les langages orients objet ne sont que des outils qui proposent une manire particulire d'implmenter certains concepts objet. Ils ne valident en rien l'utilisation de ces moyens techniques pour concevoir un systme conforme la philosophie objet. Connatre C++ ou Java n'est donc pas une fin en soi, il faut aussi savoir se servir de ces langages bon escient. La question est donc de savoir "qui va nous guider dans l'utilisation des concepts objet, si ce ne sont pas les langages orients objet ?". Enfin, comment comparer deux solutions de dcoupe objet d'un systme si l'on ne dispose pas d'un moyen de reprsentation adquat ? Il est trs simple de dcrire le rsultat d'une analyse fonctionnelle, mais qu'en est-il d'une dcoupe objet ?
Pour remdier ces inconvnients majeurs de l'approche objet, il faut donc : 1) un langage (pour s'exprimer clairement l'aide des concepts objets) Le langage doit permettre de reprsenter des concepts abstraits (graphiquement par exemple), limiter les ambiguts (parler un langage commun, au vocabulaire prcis, indpendant des langages orients objet), faciliter l'analyse (simplifier la comparaison et l'valuation de solutions). 2) une dmarche d'analyse et de conception objet Une dmarche danalyse et de conception objet est ncessaire afin de ne pas effectuer une analyse fonctionnelle et se contenter d'une implmentation objet, mais penser objet ds le dpart, dfinir les vues qui permettent de dcrire tous les aspects d'un systme avec des concepts objets. Il faut donc disposer d'un outil qui donne une dimension mthodologique l'approche objet et qui permette de mieux matriser sa richesse. La prise de conscience de l'importance d'une mthode spcifiquement objet ("comment structurer un systme sans centrer l'analyse uniquement sur les donnes ou uniquement sur les traitements, mais sur les deux"), ne date pas d'hier. Plus de 50 mthodes objet sont apparues durant le milieu des annes 90 (Booch, Classe-Relation, Fusion, HOOD, OMT, OOA, OOD, OOM, OOSE...). Aucune ne s'est rellement impose. L'absence de consensus sur une mthode d'analyse objet a longtemps frein l'essor des technologies objet. Ce n'est que rcemment que les grands acteurs du monde informatique ont pris conscience de ce problme. L'unification et la normalisation des mthodes objet dominantes (OMT, Booch et OOSE) ne datent que de 1995. UML est le fruit de cette fusion. UML, ainsi que les mthodes dont il est issu, s'accordent sur un point : une analyse objet passe par une modlisation objet. Quest-ce quun modle ? Un modle est une abstraction de la ralit. L'abstraction est un des piliers de l'approche objet. Il s'agit d'un processus qui consiste identifier les caractristiques intressantes d'une entit en vue d'une utilisation prcise. L'abstraction dsigne aussi le
rsultat de ce processus, c'est--dire l'ensemble des caractristiques essentielles d'une entit, retenues par un observateur. Un modle est une vue subjective, mais pertinente de la ralit. Un modle dfinit une frontire entre la ralit et la perspective de l'observateur. Ce n'est pas "la ralit", mais une vue trs subjective de la ralit. Bien qu'un modle ne reprsente pas une ralit absolue, un modle reflte des aspects importants de la ralit, il en donne donc une vue juste et pertinente. Le caractre abstrait d'un modle doit notamment permettre de faciliter la comprhension du systme tudi. Il rduit la complexit du systme tudi, permet de simuler le systme, le reprsente et reproduit ses comportements. Concrtement, un modle rduit (dcompose) la ralit, dans le but de disposer d'lments de travail exploitables par des moyens mathmatiques ou informatiques. UML permet donc de modliser une application selon une vision objet. Lapprhension dUML est complexe car UML est la fois : - une norme, - un langage de modlisation objet, - un support de communication, - un cadre mthodologique.
revient bien souvent qu' juxtaposer de manire fonctionnelle un ensemble de mcanismes d'implmentation, pour rsoudre un problme qui ncessite en ralit une modlisation objet. Lapproche objet ncessite une analyse rflchie, qui passe par diffrentes phases exploratoires. Bien que raisonner en terme d'objets semble naturel, l'approche fonctionnelle reste la plus intuitive pour nos esprits cartsiens... Voil pourquoi il ne faut pas se contenter d'une implmentation objet, mais se discipliner "penser objet" au cours d'une phase d'analyse pralable. Toutes les drives fonctionnelles de code objet ont pour origine le non respect des concepts de base de l'approche objet (encapsulation...) ou une utilisation dtourne de ces concepts (hritage sans classification...). Ces drives ne sont pas dues de mauvaises techniques de programmation ; la racine du mal est bien plus profonde : programmer en C++ ou en Java n'implique pas forcment concevoir objet... Les difficults de mise en oeuvre d'une approche "rellement objet" ont engendr bien souvent des dceptions, ce qui a longtemps constitu un obstacle important l'essor des technologies objet. Beaucoup ont cd au leurre des langages de programmation orients objet et oubli que le code n'est qu'un "moyen". Le respect des concepts fondamentaux de l'approche objet prime sur la manire dont on les implmente. Ne penser qu' travers un langage de programmation objet dtourne de l'essentiel. Pour sortir les technologies objet de cette impasse, l'OMG propose UML. UML comble une lacune importante des technologies objet. Il permet d'exprimer et d'laborer des modles objet, indpendamment de tout langage de programmation. Il a t pens pour servir de support une analyse base sur les concepts objet. UML est un langage formel, dfini par un mtamodle. Le mtamodle d'UML dcrit de manire trs prcise tous les lments de modlisation (les concepts vhiculs et manipuls par le langage) et la smantique de ces lments (leur dfinition et le sens de leur utilisation). En d'autres termes : UML normalise les concepts objet. Un mtamodle permet de limiter les ambiguts et encourage la construction d'outils. Il permet aussi de classer les diffrents concepts du langage (selon leur niveau d'abstraction ou leur domaine d'application) et expose ainsi clairement sa structure. Enfin, on peut noter que le mtamodle d'UML est lui-mme dcrit par un mta-mtamodle de manire standardise, l'aide de MOF (Meta Object Facility : norme OMG de description des mtamodles). Vritable cl de vote de l'OMA, UML est donc un outil indispensable pour tous ceux qui ont compris que programmer objet, c'est d'abord concevoir objet. UML n'est pas l'origine des concepts objets, mais il en constitue une tape majeure, car il unifie les diffrentes approches et en donne une dfinition plus formelle.
Son indpendance par rapport aux langages de programmation, aux domaines d'application et aux processus, en font un langage universel. La notation graphique d'UML n'est que le support du langage. La vritable force d'UML, c'est qu'il repose sur un mtamodle. En d'autres termes : la puissance et l'intrt d'UML, c'est qu'il normalise la smantique des concepts qu'il vhicule ! Qu'une association d'hritage entre deux classes soit reprsente par une flche termine par un triangle ou un cercle, n'a que peu d'importance par rapport au sens que cela donne votre modle. La notation graphique est essentiellement guide par des considrations esthtiques, mme si elle a t pense dans ses moindres dtails. Par contre, utiliser une relation d'hritage, reflte l'intention de donner votre modle un sens particulier. Un "bon" langage de modlisation doit permettre n'importe qui de dchiffrer cette intention de manire non quivoque. Il est donc primordial de s'accorder sur la smantique des lments de modlisation, bien avant de s'intresser la manire de les reprsenter. Le mtamodle UML apporte une solution ce problme fondamental. UML est donc bien plus qu'un simple outil qui permet de "dessiner" des reprsentations mentales... Il permet de parler un langage commun, normalis mais accessible, car visuel.
UML permet donc non seulement de reprsenter et de manipuler les concepts objet, il sous-entend une dmarche d'analyse qui permet de concevoir une solution objet de manire itrative, grce aux diagrammes, qui supportent l'abstraction.
Conclusion
Comme UML n'impose pas de mthode de travail particulire, il peut tre intgr n'importe quel processus de dveloppement logiciel de manire transparente. UML est une sorte de bote outils, qui permet d'amliorer progressivement vos mthodes de travail, tout en prservant vos modes de fonctionnement. Intgrer UML par tapes dans un processus, de manire pragmatique, est tout fait possible. La facult d'UML de se fondre dans le processus courant, tout en vhiculant une dmarche mthodologique, facilite son intgration et limite de nombreux risques (rejet des utilisateurs, cots...).
Intgrer UML dans un processus ne signifie donc pas rvolutionner ses mthodes de travail, mais cela devrait tre loccasion de se remettre en question.
La rutilisabilit du code
Le dcoupage dun problme en blocs indpendants (fonctions et procdures) va permettre aux programmeurs de rutiliser les fonctions dj dveloppes ( condition quelles soient suffisamment gnriques). La productivit se trouve donc accrue.
d'adapter les traitements, qui ne manipulaient l'origine qu'un seul type de document (des livres). Il faudra donc modifier toutes les portions de code qui utilisent la base documentaire, pour grer les donnes et les actions propres aux diffrents types de documents. Il faudra par exemple modifier la fonction qui ralise l'dition des "lettres de rappel" (une lettre de rappel est une mise en demeure, qu'on envoie automatiquement aux personnes qui tardent rendre un ouvrage emprunt). Si l'on dsire que le dlai avant rappel varie selon le type de document emprunt, il faut prvoir une rgle de calcul pour chaque type de document. En fait, c'est la quasi-totalit de l'application qui devra tre adapte, pour grer les nouvelles donnes et raliser les traitements correspondants. Et cela, chaque fois qu'on dcidera de grer un nouveau type de document !
1re amlioration : rassembler les valeurs qui caractrisent un type, dans le type
Une solution relativement lgante la multiplication des branches conditionnelles et des redondances dans le code (consquence logique d'une trop grande ouverture des donnes), consiste tout simplement centraliser dans les structures de donnes, les valeurs qui leurs sont propres. Par exemple, le dlai avant rappel peut tre dfini pour chaque type de document. Cela permet donc de crer une fonction plus gnrique qui sapplique tous les types de documents.
modifier une seule fonction, situe au mme endroit que la structure de donnes qui dcrit les documents.
Document Code document Nom document Type document Calculer date rappel
Centraliser les donnes d'un type et les traitements associs, dans une mme unit physique, permet de limiter les points de maintenance dans le code et facilite l'accs l'information en cas d'volution du logiciel.
Docum ent + code docum ent : int + nom docum ent : String + T ype docum ent : String + Calculer date rappel () : Date
Classe : regroupement dobjets
10
lhritage
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 une classe qui les factorise, afin de regrouper les caractristiques communes d'un ensemble de classes. La spcialisation et la gnralisation permettent de construire des hirarchies de classes. L'hritage peut tre simple ou multiple. L'hritage vite la duplication et encourage la rutilisation.
Oeuvre T itre Auteur
Heritage_2 Livre
Heritage_1 Film
Heritage_3 Roman
Heritage_4 BD
le polymorphisme
Le polymorphisme reprsente la facult d'une mme opration de s'excuter diffremment suivant le contexte de la classe o elle se trouve. J.STEFFE ENITA de Bordeaux 11
Ainsi, une opration dfinie dans une superclasse peut s'excuter de faon diffrente selon la sous-classe o elle est hrite. Ex : excution d'une opration de calcul des salaires dans 2 sous-classes spcialises : une pour les cadres, l'autre pour les non-cadres. Le polymorphisme augmente la gnricit du code.
Oeuvre Titre Auteur
Heritage_2 Livre
Heritage_1 Film
lagrgation
Il s'agit d'une relation entre deux classes, spcifiant que les objets d'une classe sont des composants de l'autre classe. Une relation d'agrgation permet donc de dfinir des objets composs d'autres objets. L'agrgation permet d'assembler des objets de base, afin de construire des objets plus complexes.
Eau : molcule Hygrogne : atome
12
13
I.2) La gense dUML I.2.1) Historique des mthodes danalyse Les premires mthodes d'analyse (annes 70)
Dcoupe cartsienne (fonctionnelle et hirarchique) d'un systme.
14
Certains autres auteurs qui ont rpondu lappel doffres ont abandonn leur proposition pour rejoindre leur tour UML. En novembre 1997, UML a t adopt par lOMG.
Autres mthodes Booch 91 OMT 1 OOSE
1993
Booch 93
OMT 2
1995
1996
UML 0.9
UML 1.0
UML 1.1
UML est donc le rsultat dun large consensus et tient compte des dernires avances en matire de modlisation et de dveloppement logiciel. L'OMG RTF (nombreux acteurs industriels) centralise et normalise les volutions d'UML au niveau international et de nombreux groupes d'utilisateurs UML favorisent le partage des expriences.
I.2.2) Cadre dutilisation dUML UML n'est pas une mthode ou un processus
Si l'on parle de mthode objet pour UML, c'est par abus de langage. Ce constat vaut aussi pour OMT ou d'autres techniques / langages de modlisation. Une mthode propose aussi un processus, qui rgit notamment l'enchanement des activits de production d'une entreprise. Or, UML a t pens pour permettre de modliser les activits de l'entreprise, pas pour les rgir. Des mthodes orientes objet les plus connues, seules les mthodes OOSE et BOOCH incluent cet aspect processus de manire explicite et formelle. Ces 2 auteurs se sont dailleurs toujours dmarqus des autres sur ce point. Par leur nature, les processus doivent tre adapts aux organisations, leurs domaines dactivit, leur culture De ce fait, ni la normalisation ni la standardisation dun processus de dveloppement logiciel ne peut faire lobjet dun consensus international suffisant pour aboutir un standard acceptable et utilisable.
15
16
I.2.4) Points faibles dUML La mise en pratique d'UML ncessite un apprentissage et passe par une priode d'adaptation.
Mme si l'Espranto est une utopie, la ncessit de s'accorder sur des modes d'expression communs est vitale en informatique. UML n 'est pas l'origine des concepts objets, mais en constitue une tape majeure, car il unifie les diffrentes approches et en donne une dfinition plus formelle.
Le processus (non couvert par UML) est une autre cl de la russite d'un projet.
L'intgration d'UML dans un processus n'est pas triviale et amliorer un processus est un tche complexe et longue.
17
18
19
Vue logique
Vue de dploiement
20
La vue de dploiement
Cette vue concerne lintgrit de performance . Elle exprime la rpartition du systme travers un rseau de calculateurs et de nuds logiques de traitements . Cette vue est particulirement utile pour dcrire la distribution dun systme rparti. Elle montre : - la disposition et nature physique des matriels, ainsi que leurs performances. - l'implantation des modules principaux sur les nuds du rseau. - les exigences en terme de performances (temps de rponse, tolrance aux fautes et pannes...).
Analyse du domaine
L'entre de l'analyse ce niveau, est le modle des besoins clients (les "cas d'utilisation" UML). Il s'agit de modliser les lments et mcanismes principaux du systme. On identifie les lments du domaine, ainsi que les relations et interactions entre ces lments : - les lments du domaine sont lis au(x) mtier(s) de l'entreprise, - ils sont indispensables la mission du systme, - ils gagnent tre rutiliss (ils reprsentent un savoir-faire). A ce stade, on organise aussi (selon des critres purement logiques), les lments du domaine en "catgories", pour rpartir les tches dans les quipes, regrouper ce qui peut tre gnrique, etc...
Analyse applicative
A ce niveau, on modlise les aspects informatiques du systme, sans pour autant rentrer dans les dtails d'implmentation. Les interfaces des lments de modlisation sont dfinis (cf. encapsulation). Les relations entre les lments des modles sont dfinies. Les lments de modlisation utiliss peuvent tre propres une version du systme.
Conception
On y modlise tous les rouages d'implmentation et on dtaille tous les lments de modlisation issus des niveaux suprieurs. Les modles sont optimiss, car destins tre implments.
22
23
24
Un acteur est un type strotyp reprsentant une abstraction qui rside juste en dehors du systme modliser. Un acteur reprsente un rle jou par une personne ou une chose qui interagit avec le systme. (la mme personne physique peut donc tre reprsente par plusieurs acteurs en fonction des rles quelle joue). Pour identifier les acteurs, il faut donc se concentrer sur les rles jous par les entits extrieures au primtre. Dans UML, il ny a pas de notion dacteur interne et externe. Par dfinition, un acteur est externe au primtre de ltude, quil appartienne ou pas la socit. Enfin, un acteur nest pas ncessairement une personne physique : il peut tre un service, une socit, un systme informatique Il existe 4 catgories dacteurs : - les acteurs principaux : les personnes qui utilisent les fonctions principales du systme - les acteurs secondaires : les personnes qui effectuent des tches administratives ou de maintenance. - le matriel externe : les dispositifs matriels incontournables qui font partie du domaine de lapplication et qui doivent tre utiliss. - les autres systmes : les systmes avec lesquels le systme doit interagir.
Formalisme :
Nom acteur
Le cas dutilisation
Le cas dutilisation (ou use case) correspond un objectif du systme, motiv par un besoin dun ou plusieurs acteurs. L'ensemble des use cases dcrit les objectifs (le but) du systme.
25
Formalisme :
Nom d u use case
La relation
Elle exprime linteraction existant entre un acteur et un cas dutilisation. Formalisme :
retirer argent
Prospect
Il existe 3 types de relations entre cas dutilisation : - la relation de gnralisation - la relation dextension - la relation dinclusion
La relation de gnralisation
Dans une relation de gnralisation entre 2 cas dutilisation, le cas dutilisation enfant est une spcialisation du cas dutilisation parent. Formalisme et exemple :
Virement bancaire
NB : un acteur peut galement participer des relations de gnralisation avec dautres acteurs. Les acteurs enfant seront alors capables de communiquer avec les mmes cas dutilisation que les acteurs parents .
26
Formalisme et exemple :
retirer argent
Prospect
La relation dinclusion
Elle indique que le cas dutilisation source contient aussi le comportement dcrit dans le cas dutilisation destination. Linclusion a un caractre obligatoire, la source spcifiant quel endroit le cas dutilisation cible doit tre inclus. Cette relation permet ainsi de dcomposer des comportements et de dfinir des comportements partageables entre plusieurs cas dutilisation. Formalisme :
Virement
<<include>>
Identification
27
La relation dextension
Elle indique que le cas dutilisation source ajoute son comportement au cas dutilisation destination. Lextension peut tre soumise condition. Le comportement ajout est insr au niveau dun point dextension dfini dans le cas dutilisation destination. Cette relation permet de modliser les variantes de comportement dun cas dutilisation (selon les interactions des acteurs et lenvironnement du systme).
Formalisme :
<<extend>>
Exemple :
Virement
<<extend>>
Paquetage
Un paquetage (package) est un groupement dlment de modlisation. Un paquetage peut contenir aussi bien des paquetages embots que des lments de modlisation ordinaires. Le systme entier peut tre pens comme un unique paquetage de haut niveau comprenant lensemble. Tous les lments de modlisation dUML, y compris les diagrammes, peuvent tre organiss en paquetage. Les uses cases peuvent tre organiss en paquetages (packages).
28
Identification
Client distant
Les scnarios
Un cas dutilisation est une abstraction de plusieurs chemins dexcution. Une instance de cas dutilisation est appele : scnario . 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. Un scnario ne contient pas de branche du type Si condition alors car pendant lexcution, la condition est soit vraie, soit fausse, mais elle aura une valeur. Aprs la description des cas dutilisation, il est ncessaire de slectionner un ensemble de scnarios qui vont servir piloter litration en cours de dveloppement. Le choix et le nombre de scnarios retenir est une tape difficile raliser : lexhaustivit est difficile, voire impossible atteindre. Le nombre dinstances pour un cas dutilisation peut tre trs important, voire infini. Les scnarios peuvent tre classs en : - scnarios principaux : il correspond linstance principal du cas dutilisation. Cest souvent le chemin normal dexcution du cas dutilisation qui nimplique pas derreurs. - Scnarios secondaires : il peut tre un cas alternatif (un choix), un cas exceptionnel ou une erreur. Les scnarios sont utiles pour : - analyser et concevoir le systme - justifier les choix effectus (ils serviront la documentation des cas dutilisation) - tester : les scnarios constituent le meilleur moyen de spcifier les tests.
29
30
Les compartiments dune classe peuvent tre supprims (en totalit ou en partie) lorsque leur contenu nest pas pertinent dans le contexte dun diagramme. La suppression des compartiments reste purement visuelle : elle ne signifie pas quil ny a pas dattribut ou dopration. Formalisme de reprsentation simplifie :
NOM CLASSE
Le rectangle qui symbolise une classe peut contenir un strotype et des proprits. UML dfinit les strotypes de classe suivants : - classe implmentation : il sagit de limplmentation dune classe dans un langage de programmation - numration : il sagit dune classe qui dfinit un ensemble didentificateurs formant le domaine de la valeur. - mtaclasse : il sagit de la classe dune classe, comme en Smalltalk - powertype : une classe est un mtatype : ses instances sont toutes des soustypes dun type donn - processus : il sagit dune classe active qui reprsente un flot de contrles lourd - thread : il sagit dune classe active qui reprsente un flot de contrles lger - type : il sagit dune classe qui dfinit un domaine dobjets et les oprations applicables ces objets.
31
utilitaire : il sagit dune classe rduite au concept de module et qui ne peut tre instancie.
La notion dattribut
Dfinition : Une classe correspond un concept global dinformation et se compose dun ensemble dinformations lmentaires, appeles attributs de classe. Un attribut reprsente la modlisation dune information lmentaire reprsente par son nom et son format. Par commodit de gestion, on choisit parfois de conserver dans un attribut le rsultat dun calcul effectu partir dautres classes : on parle alors dattribut driv. Pour reprer un attribut driv : on place un / devant son nom. Formalisme :
NOM CLASSE Attribut_1 : int Attribut_2 : int Attribut_3 : int Operation_1 () : void Operation_2 () : void
Visibilit et porte des attributs : UML dfinit 3 niveaux de visibilit pour les attributs : 1- public (+) : llment est visible pour tous les clients de la classe 2- protg (#) : llment est visible pour les sous-classes de la classe 3- priv (-) : llment nest visible que par les objets de la classe dans laquelle il est dclar. Formalisme :
NO M CL A S S E + # A ttri b u t p u b l i c A ttri b u t p ro t g A ttri b u t p ri v : int : int : int
La notion didentifiant
Lidentifiant est un attribut particulier, qui permet de reprer de faon unique chaque objet, instance de la classe. Formalisme :
FACT URE + + + + No facture Date M ontant / M ontant T VA : : : : n doubl e doubl e n
32
La notion dopration
Dfinition : lopration reprsente un lment de comportement des objets, dfini de manire globale dans la classe. Une opration est une fonctionnalit assure par une classe. La description des oprations peut prciser les paramtres dentre et de sortie ainsi que les actions lmentaires excuter. Formalisme :
ERU TCAF n: erutcaf oN + e lbuod : etaD + e lbuod : t n at n o M + n : A V T t n at n o M / + d iov : )( ret idE d iov : )( ret lusnoC d iov : )( rerC
Visibilit et porte des oprations : Comme pour les attributs, on retrouve 3 niveaux de visibilit pour les oprations : 1- public (+) : lopration est visible pour tous les clients de la classe 2- protg (#) : lopration est visible pour les sous-classes de la classe 3- priv (-) : lopration nest visible que par les objets de la classe dans laquelle elle est dclare. Formalisme :
ERU TCAF tn i : erutcaf oN etaD : etaD e lbuod : tnatnoM e lbuod : AV T tnatnoM / )( euq i lbup pO )( egtorp pO )( ev irp pO + + + + + # -
La notion de relation
Sil existe des liens entre objets, cela se traduit ncessairement par des relations qui existent entre leurs classes respectives. Les liens entre les objets doivent tre considrs comme des instances de relations entre classes. Il existe plusieurs types de relations entre classes : - lassociation
33
la gnralisation/spcialisation la dpendance
Lassociation
Lassociation est la relation la plus courante et la plus riche du point de vue smantique. Une association est une relation statique n-aire (le plus souvent : elle est binaire) : cest-dire quelle relie plusieurs classes entre elles. Lassociation existe entre les classes et non entre les instances : elle est introduite pour montrer une structure et non pour montrer des changes de donnes. Une association n-aire possde n rles qui sont les points terminaux de lassociation ou terminaisons. Chaque classe qui participe lassociation joue un rle. Les rles sont dfinis par 2 proprits : - la multiplicit : elle dfinit le nombre dinstances de lassociation pour une instance de la classe. La multiplicit est dfinie par un nombre entier ou un intervalle de valeurs. La multiplicit est note sur le rle (elle est note lenvers de la notation MERISE). 1 0..1 N ou * M..N 0..* 1..* Un et un seul Zro ou un N (entier naturel) De M N (entiers naturels) De zros plusieurs De 1 plusieurs
34
Les valeurs de multiplicit expriment les contraintes lies au domaine de lapplication. Il est donc important de dterminer les valeurs de multiplicit optimales pour trouver le bon quilibre entre complexit et efficacit. La surestimation des valeurs de multiplicit entrane un surcot de taille de stockage et en vitesse dexcution (requte avec plus de jointures). - la navigabilit La navigabilit na rien voir avec le sens de lecture de lassociation. Une navigabilit place sur une terminaison cible indique si ce rle est accessible partir de la source. Par dfaut les associations sont navigables dans les 2 sens. Dans certains cas, une seule direction de navigation est utile : lextrmit dassociation vers laquelle la navigation est possible porte alors une flche. Formalisme :
A B
Dans lexemple ci-dessus, les instances de A voient les instances de B mais les instances de B ne voient pas les instances de A. Les classes-association Les attributs dune classe dpendent fonctionnellement de lidentifiant de la classe. Parfois, un attribut dpend fonctionnellement de 2 identifiants, appartenant 2 classes diffrentes. Par exemple, lattribut quantit commande dpend fonctionnellement du numro de commande et du code produit. On va donc placer lattribut quantit commande dans lassociation comporter . Dans ce cas, lassociation est dite porteuse dattributs . Une association porteuse dattributs est appele classe-association.
Commande No commande
comporter
Qt commande
Exemple : Toute classe-association peut tre remplace par une classe intermdiaire et qui sert de pivot pour une paire dassociation. Exemple :
Commande No commande
0..* 1..1
Ligne commande
Quantit commande
0..* 1..1
Produit
Code produit
De mme, toute association (qui ne contient pas dattributs) impliquant 3 classes ou plus peut donner lieu une dcomposition avec une classe intermdiaire.
35
Lagrgation Dans UML, lagrgation nest pas un type de relation mais une variante de lassociation. Une agrgation reprsente une association non symtrique dans laquelle une des extrmits joue un rle prdominant par rapport lautre extrmit. Lagrgation ne peut concerner quun seul rle dune association. Lagrgation se reprsente toujours avec un petit losange du ct de lagrgat. Le choix dune association de type agrgation traduit la volont de renforcer la dpendance entre classes. Cest donc un type dassociation qui exprime un couplage plus fort entre les classes. Lagrgation permet de modliser des relations de type matre et esclaves. Lagrgation permet de modliser une contrainte dintgrit et de dsigner lagrgat comme contrainte. A travers une telle contrainte, il est possible de reprsenter par exemple : - la propagation des valeurs dattributs dune classe vers une autre classe - une action sur une classe qui implique une action sur une autre classe - une subordination des objets dune classe une autre classe Formalisme et exemple : TYPE
1..1
0..*
VEHICULE
Lexemple ci-dessus montre que lon veut grer une classification de vhicules. Chaque vhicule est classifi selon son type. En consquence, il sera possible de prendre connaissance pour un vhicule de lensemble des caractristiques du type de vhicule auquel il est associ. NB : un agrgat peut tre multiple. Dans lexemple ci-dessous, un vhicule peut appartenir plusieurs types.
TYPE 1..* 0..* VEHICULE
Cas particulier des associations rflexives : On peut avoir des cas dagrgation rflexive ds que lon modlise des relations hirarchiques ou des liens de parent par exemple.
PERSONNE 2 parent
* enfant
La composition La composition est un cas particulier de lagrgation dans laquelle la vie des composants est lie celle des agrgats. Elle fait souvent rfrence une contenance physique. Dans la composition lagrgat ne peut tre multiple. 36
La composition implique, en plus de lagrgation, une concidence des dures de vie des composants : la destruction de lagrgat (ou conteneur) implique automatiquement la destruction de tous les composants lis. Formalisme et exemple :
VEHICULE
1..*
1..*
1..1 CHASSIS
1..1 MOTEUR
La gnralisation / spcialisation
Le principe de gnralisation / spcialisation Le principe de gnralisation / spcialisation permet didentifier parmi les objets dune classe (gnrique) des sous-ensembles dobjets (des classes spcialises) ayant des dfinitions spcifiques. La classe plus spcifique (appele aussi classe fille, classe drive, classe spcialise, classe descendante ) est cohrente avec la classe plus gnrale (appele aussi classe mre, classe gnrale ), cest--dire quelle contient par hritage tous les attributs, les membres, les relations de la classe gnrale, et peut contenir dautres. Les relations de gnralisation peuvent tre dcouvertes de 2 manires : - la gnralisation : il sagit de prendre des classes existantes dj mises en vidences) et de crer de nouvelles classes qui regroupent leurs parties communes ; il faut aller du plus spcifique au plus gnral. - La spcialisation : il sagit de slectionner des classes existantes (dj identifies) et den driver des nouvelles classes plus spcialises, en spcifiant simplement les diffrences. Ces 2 dmarches, mme si elles sont fondamentalement diffrentes, mnent au mme rsultat, savoir la constitution dune hirarchie de classes relies par des relations de gnralisation. La relation de gnralisation est trs puissante car elle permet de construire simplement de nouvelles classes partir de classes existantes. Cependant, elle est trs contraignante dans le sens o elle dfinit une relation trs forte entre les classes. Ainsi, lvolution dune classe de base entrane une volution de toutes les classes qui en drivent. Cet effet boule de neige peut avoir des consquences aussi bien positives (quand cest leffet recherch) que ngatives.
37
Formalisme et exemple :
Instrum ent Code instrum ent date fabri cati on Nom i nstrum ent
A corde Nb de cordes
A vent Nb de pistons
La spcialisation multiple Les classes peuvent avoir plusieurs superclasses ; dans ce cas, la gnralisation est dite multiple et plusieurs flches partent de la sous-classe vers les diffrentes superclasses. La gnralisation multiple consiste fusionner plusieurs classes en une seule classe. Formalisme et exemple :
Client Salari
Client spcial
Bnficie
Tarif prfrentiel
La classe client spcial est une spcialisation de client et de salari. Ce modle permet dindiquer que lon accorde des tarifs prfrentiels aux salaris. Les contraintes sur les associations Il existe plusieurs types de contraintes sur les associations :
38
- La contrainte de partition Elle indique que toutes les instances dune classe correspondent une et une seule instance des classes lies.
Socit
{partition}
Client Prospect
Toutes les socits sont soit clientes, soit considres comme des prospects. - la contrainte dexclusion Elle permet de prciser quune instance dassociation exclut une autre instance. Par exemple, un employ ne peut tre la fois directeur financier et directeur commercial.
Ici, un employ ne peut pas tre la fois directeur commercial et directeur financier. Mais tout employ nest pas directeur commercial ou directeur financier (contrainte de partition). - la contrainte de totalit Toutes les instances dune classe correspondent au moins une des instances des classes lies.
39
Socit
{Totalit}
Partenaire Client privilgi
Toute socit est au moins partenaire ou client privilgie. Et elle peut tre les 2 la fois. - la contrainte dinclusion Elle permet de prciser quune collection est incluse dans une autre collection. (la flche de la relation de dpendance indique le sens de la contrainte). Par exemple, on pourra indiquer que le contractant dun contrat fait obligatoirement partie des individus assurs. Exemple :
La dpendance
Les relations de dpendance sont utilises lorsquil existe une relation smantique entre plusieurs lments qui nest pas de nature structurelle. Une relation de dpendance dfinit une relation unidirectionnelle entre un lment source et un lment cible. Une dpendance est une relation entre deux lments de modlisation dans laquelle toute modification effectue sur un lment de modlisation (l'lment influent) affecte l'autre lment (lment dpendant). UML dfinit 4 types de relation de dpendance. Pour chaque type de dpendance, un mot cl ou strotype entre guillemets peut tre ajout la relation de dpendance pour prciser sa nature. Les 4 types de relation sont : - abstraction Il sagit dune relation de dpendance entre lments qui reprsentent un mme concept diffrents niveaux dabstraction ou selon des points de vue distincts.
40
Les mots-cls sont : o drive Reprsente un lment dfini ou calcul partir dun autre. Par exemple, un attribut ou un rle peut driver dautres attributs ou rles. o raffine Reprsente une relation de dpendance entre des lments smantiques diffrents (analyse et conception par exemple). o ralise Reprsente une relation de dpendance entre une spcification (cible) et llment qui implmente cette spcification (source) o trace Reprsente lhistorique des constructions prsentes dans les diffrents modles. - Liaison Les paramtres formels dune classe ou collaboration paramtrables doivent tre lis des valeurs. Cette dpendance cre une liaison entre la classe ou collaboration paramtrable (la cible) et la classe ou collaboration paramtre (source). o lie - Permission Un lment (source) a le droit daccder un espace de nommage (cible) o ami Reprsente un lment source (paquetage, classe, opration ) qui a accs llment destination (paquetage, classe, opration ) quelle que soit la spcification de visibilit de ce dernier. - Utilisation Un lment (source) requiert la prsence dun autre lment (cible) pour son bon fonctionnement ou son implmentation. o utilise o appelle Reprsente une relation de dpendance entre une opration qui invoque une opration dune autre classe. Cette relation est reprsente en connectant les oprations ou les classes qui possdent ces oprations. o cre Reprsente le classificateur source qui cre une instance du classificateur cible o instancie Reprsente une relation de dpendance entre classificateurs due la cration dune instance du classificateur cible par une opration du classificateur source.
41
Formalisme :
Classe A
<<derive>> Classe B
Linterface
Une interface dfinit le comportement visible dune classe. Ce comportement est dfini par une liste doprations ayant une visibilit public . Aucun attribut ou association nest dfini pour une interface. Une interface est en fait une classe particulire (avec le strotype interface ). UML reprsente les interfaces : - soit au moyen de petits cercles relis par un trait llment qui fournit les services dcrits par linterface - soit au moyen de classes avec le mot cl interface . Cette notation permet de faire figurer dans le compartiment des oprations la liste des services de linterface. Les relations possibles sur une interface sont : - la fourniture Cette relation spcifie quune classe donne fournit linterface ses clients : cest--dire que la classe possde cette interface. Une classe peut fournir plusieurs interfaces ses clients et chaque interface dfinit un des services de la classe. Cette technique permet de rduire la visibilit dune classe. En effet, une classe qui expose ses oprations publiques les expose toutes les autres classes du modle. Le concept dinterface permet une classe de dfinir plusieurs profils en permettant chaque classe de nutiliser que le profil qui lintresse. Une classe peut ainsi tre vue avec plusieurs perspectives diffrentes en fonction de la classe qui lutilise, ce qui augmente la rutilisabilit. - lutilisation Cette relation concerne toute classe client qui souhaite accder la classe interface de manire accder ses oprations. Cest une relation dutilisation standard. - la ralisation Cette relation nest utilise que pour les interfaces. Une ralisation est une relation entre une classe et une interface. Elle montre que la classe ralise les oprations offertes par l'interface.
42
Exemple et formalisme :
utilise Entreprise utilise Client utilise interface Assurance Banque Crdit
Lexemple ci-dessus illustre la modlisation de 2 interfaces crdit et assurance dune classe banque. Une relation de ralisation indique que la classe banque ralise linterface assurance.
Rgles dlaboration
Les rgles de normalisation des modles entit-relation, issues de lalgbre relationnelle, peuvent tre utilement appliques un modle de classes UML, mme si UML ne contient aucune prconisation sur ces rgles. Ces rgles aident conduire les travaux de modlisation en vitant le plus possible la redondance de linformation, tout en restant fidle aux rgles de gestion.
43
Exemple :
Salari : Dupont
1..1 Suprieur Salari Diriger
0..* Subordonn
Salari : Martin
Salari : Durand
Archivage
UML dfinit 5 strotypes aux composants : - document : un document quelconque - excutable : un programme qui peut sexcuter - fichier : un document contenant un code source ou des donnes - bibliothque : une bibliothque statique ou dynamique - table : une table de base de donnes relationnelle Pour montrer les instances des composants, un diagramme de dploiement peut tre utilis.
44
Les interactions
Une interaction dfinit la communication entre les objets sous la forme dun ensemble partiellement ordonn de messages. Lobjet metteur envoie un message lobjet rcepteur. Les objets reprsents dans les diagrammes de collaboration ne sont pas ncessairement des instances dentits. Certains messages peuvent avoir pour origine des acteurs que lon pourra reprsenter. Formalisme : linteraction se reprsente par une flche avec un texte dcrivant le message. Exemple dinteraction entre objets :
: commande livraison faite : produit
Grant
45
Les messages
Les messages sont le seul moyen de communication entre les objets. Ils sont dcrits essentiellement par lobjet metteur et lobjet rcepteur. Leur description peut tre complte par un nom, une squence, des arguments, un rsultat attendu, une synchronisation, une condition dmission. La squence permet de prciser lordre dmission des messages. Formalisme et exemple :
: produit
1 : demande devis 2 ; calcul prix
Client
4 : devis
Commercial
: catgorie client
3 : calcul ristourne
Le message 1 peut avoir comme arguments lintitul du produit souhait, la quantit et la catgorie du client. Certains messages peuvent solliciter un rsultat. Ce cas peut tre modliser de 2 faons : - un message de demande et un message de rponse - indiquer sur le premier message le rsultat attendu (lorsque le message en retour est attendu immdiatement). Exemple :
calculer stock : produit
Grant
2 : Valeur stock
Ou
Valeur stock= calculer stock : produit
Grant
Ici, le message mis par le grant implique la restitution immdiate du rsultat du calcul : la valeur du stock. Nb : lmission de message peut galement tre soumis une condition, qui sexprime alors sur le texte du message.
46
Magasinier
Exemple : la demande de rapprovisionnement nest envoye au magasinier que lorsque la quantit en stock est infrieure au seuil de rapprovisionnement.
47
Exemple :
Produit Catgorie client
Commercial
Calcul prix
Calcul ristourne
Devis
Les interactions
Linteraction se traduit par lenvoi dun message entre objets. Le diagramme de squence insiste sur la chronologie des objets en utilisant la ligne de vie des objets.
Les activations
Les diagrammes de squence permettent de reprsenter les priodes dactivit des objets. Une priode dactivit correspond au temps pendant lequel un objet effectue une action, soit directement, soit par lintermdiaire dun autre objet qui lui sert de sous-traitant.
48
Formalisme : les priodes dactivit se reprsentent par des bandes rectangulaires places sur la ligne de vie des objets.
Message 1
Message 2
Alternativement, une demi-flche peut tre utilise pour reprsenter explicitement des messages asynchrones pour des systmes concurrents (la flche pleine correspond alors un message avec attente de prise en compte).
49
O bjet 1
Objet 2
M e ssa g e a syn ch ro n e
- appel de procdure (ou flot de contrle embot) Dans un contrle embot, la squence embote doit se terminer pour que la squence englobante reprenne le contrle. Un objet poursuit donc son excution une fois le comportement initi par le message termin. Formalisme : Des flches extrmits pleines symbolisent de tels messages.
Objet 1 Objet 2
Procdure
Lobjet 1 rcupre le contrle quand lobjet 2 a fini sa tche. - Retour de procdure Le retour de procdure est implicite la fin dune activation. Nanmoins, en cas denvois de messages asynchrones, il savre utile pour montrer la fin de lexcution dune sousprocdure et le renvoi ventuel de paramtres.
50
Obj et 1
Obj et 2
Procdure
Retour expl i ci te
Un acteur
Message
message rflexif
51
Un acteur
M essage
Des annotations temporelles concernent les messages peuvent galement tre ajoutes. Exemple :
Un objet
Un acteur
M essage 1
La ligne de vie
La ligne de vie des objets est reprsente par une ligne verticale en traits pointills, place sous le symbole de lobjet concern. Cette ligne de vie prcise lexistence de lobjet concern durant un certain laps de temps. En gnral, une ligne de vie est reprsente sur toute la hauteur du diagramme de squence. Par contre, elle peut dbuter et sinterrompre lintrieur du diagramme. Formalisme : la cration se reprsente en faisant pointer le message de cration sur le rectangle qui symbolise lobjet cr. La destruction est indique par la fin de la ligne de vie et par une croix (X), soit la hauteur du message qui cause la destruction, soit aprs le dernier message envoy par un objet qui se suicide.
52
Un objet
Crer
Un autre objet
Dtruire
Un o b j e t
Cr e r
Un a u tre o b j e t
Pour reprsenter la collaboration entre les objets, on dispose donc dans UML de 2 diagrammes (collaboration et squence). On peut utiliser lun ou lautre, voire les 2. On peut ainsi dcrire lensemble des interactions avec des messages complets (nom, squence, rsultat attendu, synchronisation et condition dmission) sur un diagramme de collaboration et complter cette description par des diagrammes de squence ne visualisant que les noms des messages.
53
Evnements et transitions
Un objet passe d'un tat un autre suite un vnement, certains vnements pouvant ne pas provoquer de changement d'tat. Une transition est une relation entre 2 tats. Elle est oriente ce qui signifie que l'tat 2 est possible si certains vnements sont vrifis. Sa reprsentation symbolique est une flche sur laquelle est annot l'vnement qui concourt au changement d'tat. Evnement Etat 1 Etat 2
Exemple : Une commande passera dans l'tat "En attente" ds lors qu'elle aura t expdie Expdition
En prparation
En attente
La transition peut tre soumise la vrification d'une expression appele "expression de garde" note ainsi :
54
En attente
Les traitements
Les oprations de description des classes sont dcrites dans le diagramme d'tatstransitions sous forme d'actions et d'activits. Une action est une opration lmentaire et instantane. Elle peut tre associe l'vnement lui-mme ou l'entre dans l'tat ou la sortie de l'tat Une activit est une opration qui dure et qui est donc associe un tat. Elle peut tre squentielle ou cyclique : - La fin d'une activit squentielle correspond la sortie de l'tat : une transition automatique est gnre. - une activit cyclique ne se termine que par une transition de sortie identifie. Exemple de formalisme sur une commande "en prparation" : En prparation Entry : -choix fournisseur Etat
Do : - prparation de la commande
Activit
Action de sortie
Evnement
- l'tat initial d'un objet : il est obligatoire et unique - l'tat final : selon les vnements, il peut exister plusieurs tats finaux Leurs symbolismes sont les suivants : Crer Etat initial Etat 1 activit 1 Etat 2 activit 2 Dtruire Etat final
Le diagramme d'activits va modifier cette reprsentation pour n'en conserver que le squencement. La notion d'tat disparat. On obtient ce graphe : Activit 1 Activit 2
Comme dans le diagramme d'tats-transitions, la transaction peut tre complte par une condition de garde. Activit 1
[condition]
Activit 2
La synchronisation
Les flots de contrle parallles sont spars ou runis par des barres de synchronisation. Les activits 2 et 3 seront simultanes.
56
Activit 1
Activit 2
Activit 3
Activit 1
Activit 2
57
IV.1) Le processus unifi est pilot par les cas dutilisation IV.1.1) Prsentation gnrale
Lobjectif principal dun systme logiciel est de rendre service ses utilisateurs ; il faut par consquent bien comprendre les dsirs et les besoins des futurs utilisateurs. Le processus de dveloppement sera donc centr sur l'utilisateur. Le terme utilisateur ne dsigne pas seulement les utilisateurs humains mais galement les autres systmes. Lutilisateur reprsente donc une personne ou une chose dialoguant avec le systme en cours de dveloppement. Ce type dinteraction est appel cas dutilisation. Les cas dutilisation font apparatre les besoins fonctionnels et leur ensemble constitue le modle des cas dutilisation qui dcrit les fonctionnalits compltes du systme. Nous ne sommes pas dans une approche de type fonctionnelle mais une approche pilote par des cas d'utilisation.
58
A partir du modle des cas dutilisation, les dveloppeurs crent une srie de modles de conception et dimplmentation ralisant les cas dutilisation. Chacun des modles successifs est ensuite rvis pour en contrler la conformit par rapport au modle des cas dutilisation. Enfin, les testeurs testent limplmentation pour sassurer que les composants du modle dimplmentation mettent correctement en uvre les cas dutilisation.
Les cas dutilisation garantissent la cohrence du processus de dveloppement du systme. Sil est vrai que les cas dutilisation guident le processus de dveloppement, ils ne sont pas slectionns de faon isole, mais doivent absolument tre dvelopps "en tandem" avec larchitecture du systme.
59
60
61
Modle de conception
Tous ces modles sont lis. Ensemble, ils reprsentent le systme comme un tout. Les lments de chacun des modles prsentent des dpendances de traabilit ; ce qui facilite la comprhension et les modifications ultrieures.
62
Phase
Phase de cration
Phase dlaboration
Phase de construction
Phase de transition
Description et Enchanement dactivits Traduit une ide en vision de produit fini et prsente une tude de rentabilit pour ce produit - Que va faire le systme pour les utilisateurs ? - A quoi peut ressembler larchitecture dun tel systme ? - Quels sont lorganisation et les cots du dveloppement de ce produit ? On fait apparatre les principaux cas dutilisation. Larchitecture est provisoire, identification des risques majeurs et planification de la phase dlaboration. Permet de prciser la plupart des cas dutilisation et de concevoir larchitecture du systme. Larchitecture doit tre exprime sous forme de vue de chacun des modles. Emergence dune architecture de rfrence. A lissue de cette phase, le chef de projet doit tre en mesure de prvoir les activits et destimer les ressources ncessaires lachvement du projet. Moment o lon construit le produit. Larchitecture de rfrence se mtamorphose en produit complet, elle est maintenant stable. Le produit contient tous les cas dutilisation que les chefs de projet, en accord avec les utilisateurs ont dcid de mettre au point pour cette version. Celle ci doit encore avoir des anomalies qui peuvent tre en partie rsolue lors de la phase de transition. Le produit est en version bta. Un groupe dutilisateurs essaye le produit et dtecte les anomalies et dfauts. Cette phase suppose des activits comme la fabrication, la 63
formation des utilisateurs clients, la mise en uvre dun service dassistance et la correction des anomalies constates.(o le report de leur correction la version suivante)
64
65
Le cycle de vie
Dans la mthode Merise on distingue diffrentes priodes qui vont de la conception du systme d'information sa maintenance. On se situe dans une situation dynamique en considrant que le systme d'information va natre, grandir, tre entretenu puis va disparatre et tre remplac par un autre. UML ne dfinit pas de cycle de vie. Le cycle de dveloppement sous-jacent est itratif et incrmental, guid par les cas dutilisation et centr sur larchitecture.
Le cycle dabstraction
Dans MERISE, ce cycle permet disoler un niveau spcifique, les lments significatifs contribuant la description du systme dinformation. Les niveaux conceptuel, logique ou organisationnel, physique ou oprationnel se situent dans ce cycle. UML offre plusieurs diagrammes pour modliser le systme aux diffrents niveaux dabstraction (diagramme de squences, de classes ). Mais la diffrence de MERISE, il ny a pas de diagramme spcifique par niveau dabstraction. Le formalisme UML est le mme tout au long du processus de fabrication. UML laisse le soin de prsenter les diagrammes cohrents qui contiennent des objets de mme niveau de proccupation.
Le cycle de dcision
Il concerne les diffrentes dcisions et choix qui sont effectus tout au long du cycle de vie, et permettent de faire valider petit petit le systme que l'on est en train de construire. Ces dcisions marquent la fin d'une tape et le dbut d'une autre, ce sont des passages obligs avant de poursuivre l'tude du projet. Ces tapes de validation sont fondamentales dans MERISE et permettent l'appropriation du systme d'information par lensemble de la communaut. UML, tout comme MERISE, se soucie dassocier troitement les utilisateurs dans les tches danalyse et de conception (notamment au niveau des cas dutilisation).
66
V.2.1) Le domaine
Une des premires tapes dans MERISE consiste dlimiter le domaine de ltude. Le domaine regroupe lensemble des processus contenus dans le systme tudier. Il est trs important car il sert fixer les limites du cadre de ltude. On retrouve dans UML la mme importance dfinir le domaine dtude. De la dfinition fiable et stable du domaine dtude dpend en effet le choix des cas dutilisation, des acteurs
V.2.2) Lacteur
Dans MERISE, le concept dacteur apparat trs tt dans la conception du systme dinformation (ex : modle de flux). MERISE distingue 2 types dacteurs : des acteurs internes et externes. Les acteurs externes sont des acteurs qui nappartiennent pas au domaine dfini. Lacteur externe nappartenant pas au champ dtude, seules ses principales caractristiques sont dcrites. Pour UML, le concept dacteur signifie de fait acteur externe.
67
La diffrence avec MERISE rside dans le fait que les acteurs sont analyss du point de vue du rle quils jouent vis--vis du systme (la mme personne peut jouer plusieurs rles).
V.2.4) Les modles conceptuels et organisationnels Les modles conceptuels Le modle conceptuel des donnes
Dans MERISE, le MCD est la reprsentation de l'ensemble des donnes mmorisables du domaine sans tenir compte des aspects techniques de stockage ni se rfrer aux conditions d'utilisation par tel ou tel traitement. Pour laborer un MCD, MERISE sappuie sur les concepts suivants : - proprit - entit - association
Le concept de proprit
La proprit est la modlisation de l'information lmentaire. C'est un ensemble de donnes ayant la mme structure et reprsentant des informations analogues. La modlisation des proprits doit viter les synonymes et les polysmes. Il ny a pas de diffrence ce niveau entre MERISE et UML. Les attributs des objets sont comparables aux proprits des entits. UML possde simplement un formalisme spcifique pour les informations calcules (cf. attribut driv) alors quelles sont fortement dconseilles dans MERISE et quelles ninterviennent que dans le MPD (modle physique des donnes) aprs dgradation.
Le concept dentit
L'entit est un groupe de proprits permettant de modliser un ensemble d'objets de mme nature. Dans UML, la notion dentit correspond la composante statique de la notion de classe dans le diagramme des classes. La notion de classe est toutefois plus large que la notion dentit : elle contient en effet des oprations qui ne sont pas modlises dans MERISE. Les classes ont un comportement qui rsulte de lanalyse de leurs responsabilits, offrent des services qui sont raliss par des J.STEFFE ENITA de Bordeaux 68
mthodes et des oprations ; les instances communiquent grce des messages. Autant de notions inconnues dans MERISE. De plus, les classes ne sont pas utilises uniquement pour modliser les objets mtier, elles servent aussi modliser les objets techniques. Le diagramme des classes dUML est donc plus riche que le MCD de MERISE : on peut transformer un MCD en diagramme de classes mais linverse nest pas possible. Ceci reflte la diffrence fondamentale entre UML et MERISE : UML intgre lobjet et associe donc au sein du mme concept des aspects statiques et dynamiques. Cette diffrence se traduit par la modlisation des oprations dans les classes mais galement par la porte de la modlisation : linverse de MERISE, les objets ne se limitent pas la modlisation du processus mtier. Les classes dUML respecteront par consquent les mmes rgles de normalisation que dans MERISE mais sont cres dans une optique diffrente des entits. Quant au formalisme, il ny a pas de diffrence notoire entre MERISE et UML. NB : la porte des attributs (public, protg, ou priv) apparaissent dans MERISE 2 au niveau du modle organisationnel des donnes.
Le concept dassociation
Une association modlise un ensemble de liens de mme nature entre deux ou plusieurs occurrences d'entits. On ne note pas de diffrence flagrantes entre MERISE et UML ce niveau. Les diffrences se situent essentiellement au niveau du formalisme des cardinalits par exemple (sens de lecture invers par exemple ), ou de la description de lassociation (description des 2 rles en UML). Les associations de MERISE qui contiennent des proprits se traduisent en UML par des classes-associations. Quant au concept de gnralisation / spcialisation et la notion dhritage qui en dcoule, on le retrouve galement dans MERISE 2, tout comme la modlisation des contraintes (partition, exclusion, totalit ..) Il faut noter quUML exprime certaines notions (comme lagrgation ou la composition) avec un symbolisme particulier qui nest pas prsent dans MERISE.
La normalisation du modle
La normalisation est un ensemble de rgles introduites lorigine dans le modle relationnel. Elles ont pour objectif de garantir la cohrence de la base de donnes lors des diffrentes manipulations (insertion, mise jour, suppression). Transposes au modle conceptuel des donnes, elles permettent de rapprocher le formalisme entit-association de MERISE, du modle relationnel. MERISE propose ainsi des rgles de validation : - pertinence - identification - vrification - unicit - homognit
69
Ensuite, le modle doit respecter au moins les 3 premires formes normales. Cette normalisation a fait la force de MERISE pour modliser les donnes. A la diffrence de MERISE, UML ne se proccupe pas de normalisation. Rien nempche toutefois dappliquer les rgles de normalisation prconises dans MERISE au diagramme de clases.
Les vnements
MERISE distingue deux types dvnement : - des vnements dclencheurs provoquant une opration - des vnements rsultats produits par une opration suite une rgle dmission Dans UML, les concepts de flux assez similaires. Seul le mode de reprsentation diffre (cf. diagramme de squences).
Les oprations
Une opration dcrit le comportement du domaine et de son systme dinformation face un ou plusieurs vnements. Une opration est dclenche par la survenance dun vnement, ou de plusieurs vnements synchroniss. Elle comprend lensemble des activits que le domaine peut effectuer partir des informations fournies par lvnement, et de celles dj connues dans la mmoire du systme dinformation. Dans UML, les oprations sont reprsentes dans des diagrammes dactivits. Les activits sont hirarchiques et donc se dcrivent elles-mmes par des activits.
La synchronisation
La synchronisation est une condition pralable au dmarrage dune opration. Elle se traduit par une opration logique. Dans UML, les synchronisations peuvent apparatre dans les diagrammes dactivits et dtats-transition.
70
Dans UML, les aspects dynamiques de lorganisation sont tudis par les diagrammes de squence et les diagrammes dactivits. Le diagramme dactivits permet de visualiser le squencement des tches en les attribuant aux travailleurs dinterface et de contrle. Les changes et les contrles apparaissent de faon claire. Ainsi, lenchanement des tches dans le MOT trouve son quivalent dans le diagramme dactivits. Le diagramme de squences apporte par contre une dimension supplmentaire par apport au MOT en faisant apparatre les objets entits. Toutefois, on retrouve galement ce lien dans MERISE 2 au travers du MOTA (Modle organisationnel des traitements analytique).
V.3) La dmarche
Deux points seront abords pour comparer les dmarches utilises dans MERISE et UML : - les modles - les tapes du processus dlaboration du systme dinformation
71
Le diagramme dactivits prsente des similitudes avec le diagramme des flux et se rapproche du MCT et MOT (MCTA et MOTA dans MERISE 2) pour fournir une vue globale de lorganisation. Le diagramme de composants montre la mise en uvre physique des modles logiques avec lenvironnement de dveloppement. Elle tient compte des problmatiques de programmation, compilation, rutilisation Le diagramme de dploiement est spcifique UML. Il nest cependant pas trs intressant dtablir des liens de correspondance entre les modles de MERISE et dUML car les 2 modles ne sont pas raliss avec les mmes objectifs et nutilisent pas toujours les mmes concepts.
du
processus
dlaboration
du
systme
MERISE identifie 3 grandes tapes dans le processus dlaboration dun systme dinformation : la conception, la ralisation et la maintenance, quon peut dtailler ainsi : Conception o Schma directeur o Etude pralable o Etude dtaille Ralisation o Etude technique o Production logicielle o Mise en uvre Maintenance o Mise en service - Maintenance
A la diffrence de MERISE, UML ne propose pas de cycle prcis : les organisations sont libres de choisir le cycle qui leur convient. UML fonctionne sur un principe ditrations qui ne soppose pas aux phases dfinies dans MERISE. MERISE dcoupe plus au travers de ses phases lanalyse mtier et larchitecture logicielle. Dans UML, larchitecture logicielle a une place prpondrante et est intgre trs en amont dans llaboration du systme dinformation. Dans UML, lavancement du projet est mesur par le nombre de cas dutilisation, de classes... rellement implantes et non par la documentation produite. Les itrations servent en outre rpartir lintgration et les tests tout au long du processus dlaboration du systme dinformation .
V.4) Conclusion
En rsum, on retiendra que : - les niveaux dabstraction ne sont pas nettement distingus dans UML - il ny a pas de diffrence de formalisme en fonction des niveaux dabstraction dans UML - UML intgre lobjet et a t conu pour et autour de lobjet. - UML est plus proche du langage de programmation que MERISE
72
CONCLUSION GENERALE
Les principes de base de MERISE sont ses points forts. MERISE permet de modliser le mtier de lentreprise indpendamment des techniques, aux niveaux conceptuel et organisationnel. Le systme informatique est un sous-ensemble du systme dinformation. Les modles en nombre limit (6) sont progressivement labors et enrichis, et constituent des supports de communication et de participation pour les utilisateurs. UML prsente des caractristiques voisines. Les modles bass sur un nombre dtermin de diagrammes en fonction de la vue sont progressivement enrichis. Mais UML reste incontournable si lentreprise veut utiliser les techniques objet. Ainsi, mme sil existe des points de convergence, le passage de MERISE UML nest pas uniquement dordre syntaxique.
73