Vous êtes sur la page 1sur 98

Introduction UML 2

Modlisation Oriente Objet de Systmes Logiciels

Pierre Grard
Universit de Paris 13  IUT Villetaneuse
DUT Informatique  S2D - 2008/2009

Table des matires


1 Introduction la Modlisation Oriente Objet 2 Modlisation objet lmentaire avec UML
PFI PFP PFQ PFR QFI QFP QFQ RFI RFP RFQ RFR RFS SFI higrmmes higrmmes higrmmes higrmmes de s d9utilistion de lsses F F F F F d9ojets F F F F F F de squenes F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

1
S II PQ PS

3 UML et mthododologie

hes esoins u ode ve wv X une mthode minimle F F F F F F F F F F F F F F tionl ni(ed roess F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F etreme progrmming F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ixpression de ontrintes ve ygv F F F F F higrmmes d9ttsEtrnsitions F F F F F F F F higrmmes d9tivits F F F F F F F F F F F F F higrmmes de ommunition F F F F F F F F higrmmes de omposnts et de dploiement F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

33

QQ QW RU SQ TS UQ VI VU VW

4 Modlisation avance avec UML

53

5 Bonnes pratiques de la modlisation objet

hesign tterns F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

89

I sxyhgsyx ve wyhvsesyx ysixi yfti

Introduction la Modlisation Oriente Objet


! James Rumbaugh, Ivar Jacobson, Grady Booch ! iditions gmpus ress @PHHSA

Bibliographie UML !  UML 2.0, guide de rfrence 


!

! Benot Charoux, Aomar Osmani, Yann Thierry-Mieg ! iditions ersonD idution prne @PHHVA !  UML 2.0 Superstructure  et  UML 2.0 Infrastructure ! OMG (Object Management Group) ! www.uml.org (2004).

 UML 2.0 

Bibliographie OCL !  UML 2.0 Object Constraint Language (OCL) 


! ! OMG (Object Management Group) ! www.uml.org (2004)

Cours de Jean-Marie Favre, IMAG

! http://megaplanet.org/jean-marie-favre

Matriel et logiciel

! ystmes informtiques X ! 80 % de logiciel Y ! PH 7 de mtrielF ! hepuis quelques nnesD l frition du mtriel est ssure pr quelques frints seulementF ! ve mtriel est reltivement (leF ! ve mrh est stndrdisF

ves prolmes lis l9informtique sont essentiellement des prolmes de logiielF

La  crise du logiciel 

! tude sur V QVH projets @tndish qroupD IWWSA X ! us X IT 7 Y ! rolmtique X SQ 7 @udget ou dlis non respetsD dfut de fontionnlitsA Y ! he X QI 7 @ndonnAF ve tux de sus drot ve l tille des projets et l tille des entreprisesF ! Gnie Logiciel @oftwre ingineeringA X ! gomment fire des logiiels de qulit c ! u9ttendEon d9un logiiel c uels sont les ritres de qulit c

Critres de qualit d'un logiciel ! Utilit


! ! !

! edqution entre le logiiel et les esoins des utilisteurs Y

Utilisabilit Fiabilit Interoprabilit

! sntertions ve d9utres logiiels Y I G WT

Introduction UML 2

I sxyhgsyx ve wyhvsesyx ysixi yfti ! ! ! !

Performance Portabilit Rutilisabilit Facilit de maintenance

! n logiiel ne s9use ps pourtntD l mintenne sore une trs grosse prtie des e'orts de dveloppementF

Poids de la maintenance Rartition eort dv.


T7 S7 U7 IS7

Dnition des besoins Conception Codage Intgration Tests Maintenance

Origine des erreurs


56%
PU7 U7 IH7

Cot de la maintenance
82%
IQ7 I7 R7

67% (Zeltovitz, De Marco)

Cycle de vie

v qulit du proessus de frition est grnte de l qulit du produitF ! our otenir un logiiel de qulitD il fut en mtriser le proessus d9lortionF ! v vie d9un logiiel est ompose de di'rentes tpesF ! v suession de es tpes forme le cycle de vie du logiielF ! sl fut ontrler l suession de es di'rentes tpesF

Etapes du dveloppement ! tude de faisabilit ! Spcication


! ! ! !

! hterminer les fontionnlits du logiielF

Conception Codage Tests

! hterminer l fon dont dont le logiiel fournit les di'rentes fontionnlits reherhesF ! issyer le logiiel sur des donnes d9exemple pour s9ssurer qu9il fontionne orretementF

Maintenance

Modlisation
P G WT

Introduction UML 2

I sxyhgsyx ve wyhvsesyx ysixi yfti

Modle
! n modle est une reprsentation abstraite de l rlit qui exlut ertins dtils du monde relF ! sl permet de rduire la complexit d9un phnomne en liminnt les dtils qui n9in)uE enent ps son omportement de mnire signi(tiveF ! sl re)te e que le onepteur roit importnt pour l comprhension et l prdiction du phnomne modlisD les limites du phnomne modlis dpendent des ojetifs du modleF

Langages de modlisation
! n langage de modlisation doit d(nir X ! v smntique des onepts Y ! ne nottion pour l reprsenttion de onepts Y ! hes rgles de onstrution et d9utilistion des oneptsF ! hes lngges di'rents niveux de formlistion ! Langages formels @DfDhwA X le plus souvent mthmtiquesD u grnd pouvoir d9expression et permettnt des preuves formelles sur les spi(tions Y ! Langages semi-formels @wisiD wvFFFA X le plus souvent grphiquesD u pouvoir d9expression moindre mis plus files d9emploiF ! v9industrie du logiiel dispose de nomreux lngges de modlistion X ! edpts ux systmes procduraux @wisiFFFA Y ! edpts ux systmes temps rel @yywD ehFFFA Y ! edpts ux systmes objets @ywD foohD wvFFFAF ! ve rle des outils @eteliers qnie vogiielA est primordil pour l9utilisilit en prtique des lngges de modlistionF

Modlisation par dcomposition fonctionnelle


! epprohe descendante X ! homposer l fontion glole jusqu9 otenir des fontions simples pprhender et don progrmmerF g9est l fonction qui donne l forme du systmeF

Introduction UML 2

Q G WT

I sxyhgsyx ve wyhvsesyx ysixi yfti

Modlisation oriente objets

! v Conception Oriente Objet @gyyA est l mthode qui onduit des rhitetures logiE ielles fondes sur les ojets du systmeD plutt que sur une domposition fontionelleF g9est l structure du systme lui donne s formeF ! yn peut prtir des ojets du domine @riques de seA et remonter vers le systme glol X approche ascendanteF ettentionD l9pprohe ojet n9est ps seulement sendnteF

Unied Modeling Language

! eu milieu des nnes WHD les uteurs de foohD yyi et yw ont did de rer un lngge de modlistion uni( ve pour ojetifs X ! wodliser un systme des concepts l'excutableD en utilisnt les tehniques oriente ojet Y ! Rduire la complexit de la modlisation Y ! tilisle pr l9homme comme la machine X ! eprsenttions grphiques mis disposnt de qulits formelles su0sntes pour tre traduites automatiquement en code source Y ! ges reprsenttions ne disposent ependnt ps de qulits formelles su0sntes pour justi(er d9ussi onnes proprits mthmtiquesque des lngeges de spi(tion formelle @D hwFFFAF ! y0iellement wv est n en IWWRF

UML v2.0 dte de PHHSF sl s9git d9une version majeure pportnt des innovtions rdiles
et tendnt lrgement le hmp d9pplition d9wvF

R G WT

Introduction UML 2

P wyhvsesyx yfti vwixesi eig wv

2
2.1

Modlisation objet lmentaire avec UML


Diagrammes de cas d'utilisation

Modlisation des besoins

evnt de dvelopper un systmeD il fut svoir prcisment QUOI il devr servirD cad quels esoins il devr rpondreF ! Modliser les besoins permet de X ! pire l9inventire des fontionnlits ttendues Y ! yrgniser les esoins entre euxD de mnire fire pprtre des reltions @rutilstions possilesD FFFAF ! eve wvD on modlise les esoins u moyen de diagrammes de cas d'utilsationF

Exemple de diagramme de cas d'utilisation

Cas d'utilisation

! n cas d'utilisation est un servie rendu l9utilisteurD il implique des sries d9tions plus lmentiresF

! n acteurs est une entit extrieure u systme modlisD et qui intergit diretement ve luiF

n s d9utilistion est l9expression d9un servie rlis de out en outD ve un dlenheE mentD un droulement et une (nD pour l9teur qui l9initieF

Acteurs et cas d'utilisation


Introduction UML 2
S G WT

P wyhvsesyx yfti vwixesi eig wv higrmmes de s d9utilistion PFI

Relations entre cas d'utilisation en acteurs

! ves teurs impliqus dns un s d9utilistion lui sont lis pr une associationF ! n teur peut utiliser plusieurs fois le mme s d9utilistionF

Relations entre cas d'utilisation ! Inclusion X le s e inlut le s f @f est une prtie obligatoire
!

de eAF

Extension X le s f tend le s e @e est une prtie optionelle

de eAF

Gnralisation X le s e est une gnrlistion du s du s f @f est une sorte de eAF

Dpendances d'inclusion et d'extension

! ves inlusions et les extensions sont reprsentes pr des dpendances. ! vorsqu9un s f inlut un s eD f dpend de eF ! vorsqu9un s f tend un s eD f dpend ussi de eF ! yn note toujours l dpendne pr une )he pointille f e qui se lit  f dpend de e F ! vosqu9un lment e dpend d9un lment fD toute modi(tion de f ser suseptile d9voir un impt sur eF ! ves  inude et les  extend sont des strotypes @entre guillementsA des reltions de dpendneF ve sens des )hes indique le dpendneD ps le sens de l reltion d9inlusionF
Attention

Rutilisabilit avec les inclusions et les extensions

! ves reltions entre s permettent l rutilisabilit du s  s9uthenti(er de dvelopper plusieurs fois un module d9uthenti(tionF

X il ser inutile

T G WT

Introduction UML 2

PFI higrmmes de s d9utilistion wyhvsesyx yfti vwixesi eig wv P

Dcomposition grce aux inclusions et aux extensions


! und un s est trop omplexe @fisnt intervenir un trop grnd nomre d9tionsAD on peut proder s dcomposition en s plus simplesF

Gnralisation

! n virement est est un s prtiulier de piementF n virement est une sorte de piementF ! v )he pointe vers l9lment gnrlF ! gette reltion de gnrlistionGspilistion est prsente dns l pluprt des digrmmes wv et se trduit pr le onept d9hritage dns les lngges orients ojetF

Relations entre acteurs

! ne seule reltion possile X l gnralisationF U G WT

Introduction UML 2

P wyhvsesyx yfti vwixesi eig wv higrmmes de s d9utilistion PFI

Identication des acteurs

! ves prinipux teurs sont les utilisteurs du systmeF n teur orrespond un rleD ps une personne physiqueF
Attention

! ne mme personne physique peut tre reprsente pr plusieurs teurs si elle plusieurs rlesF ! i plusieurs personnes jouent le mme rle visEEvis du systmeD elles seront reprsentes pr un seul teurF ! in plus des utilisteursD les teurs peuvent tre X ! hes priphriques mnipuls pr le systme @imprimntesFFFA Y ! hes logiiels dj disponiles intgrer dns le projet Y ! hes systmes informtiques externes u systme mis qui intergissent ve luiD etF ! our filiter l reherhe des teursD on se fonde sur les frontires du systmeF

Acteurs principaux et secondaires

! v9teur est dit principal pour un s d9utilistion lorsque l9teur est l9inititive des hnges nessires pour rliser le s d9utilistionF

! ves teurs secondaires sont solliits pr le systme lors que le plus souventD les teurs prinipux ont l9inititive des intertionsF ! ve plus souventD les teurs seondires sont d9utres ystmes informtiques ve lesquels le systme dvelopp est interEonnetF

Recenser les cas d'utilisation

! sl n9y ps une mnire mnique et totlement ojetive de reprer les s d9utilistionF ! sl fut se placer du point de vue de chaque acteur et dterminer omment il se sert du systmeD dns quels s il l9utiliseD et quelles fontionnlits il doit voir sF ! sl fut viter les redondances et limiter le nombre de cas en se situnt u on niveu d9strtion @pr exempleD ne ps rduire un s une seule tionAF ! sl ne fut ps fire pprtre les dtils des s d9utilistionD mis il fut rester u niveu des grndes fontions du systmeF

rouver le on niveu de dtil pour les s d9utilistion est un prolme di0ile qui nessite de l9exprieneF V G WT

Introduction UML 2

PFI higrmmes de s d9utilistion wyhvsesyx yfti vwixesi eig wv P

Description des cas d'utilisation

! ve digrmme de s d9utilistion drit les grndes fontions d9un systme du point de vue des teursD mis n9expose ps de fon dtille le dilogue entre les teurs et les s d9utilistionF ! Un simple nom est tout fait insusant pour dcrire un cas d'utilisation. ghque s d9utilistion doit tre doument pour qu9il n9y it uune migut onerE nnt son droulement et e qu9il reouvre prismentF

Description textuelle ! Identication :


! ! ! ! ! !

Squencements :

Nom du cas X yer gf Objectif X htiller les tpes permettnt lient de pyer pr rte nire Acteurs X glientD fnque @seondireA Date X IVGHW Responsables X oto Version X IFH

! ve s d9utilistion ommene lorsqu9un lient demnde le piement pr rte nire ! Pr-conditions ! ve lient vlid s ommnde ! Enchanement nominal IF ve lient sisit les informtions de s rte nire PF ve systme vri(e que le numro de gf est orret QF ve systme vri(e l rte uprs du systme nire RF ve systme demnde u systme nire de diter le lient SF ve systme noti(e le lient du on droulement de l trnstion ! Enchanements alternatifs IF in @PA X si le numro est inorretD le lient est verti de l9erreurD et invit reomE mener PF in @QA X si les informtions sont erronesD elles sont reEdemndes u lient ! Post-conditions ! v ommnde est vlide ! ve ompte de l9entreprise est rdit

Rubriques optionnelles

! Contraintes non fonctionnelles : ! piilit X les s doivent tre suriss ! gon(dentilit X les informtions onernnt le lient ne doivent ps tre divulgus ! Contraintes lies l'interface homme-machine : ! oujours demnder l vlidtion des oprtions nires

Introduction UML 2

W G WT

PFP higrmmes de lsses

P wyhvsesyx yfti vwixesi eig wv

2.2

Diagrammes de classes

Objectif

! ves diagrammes de cas d'utilisation modlisent ys sert le systmeF ! ve systme est ompos d9ojets qui intergissent entre eux et ve les teurs pour rliser es s d9utilistionF ! ves diagrammes de classes permettent de spi(er l struture et les liens entre les ojets dont le systme est omposF

Exemple de diagramme de classes

Concepts et instances

! ne instance est l onrtistion d9un concept stritF ! gonept X tylo ! snstne X le stylo que vous utilisez e moment pris est une instne du onept stylo X il s propre formeD s propre ouleurD son propre niveu d9usureD etF ! n objet est une instne d9une classe ! glsse X ido ! yjets X ink ployd @vive ompeyAD PHHI ydysse de l9ispe etF ne lsse drit un type d9ojets onretsF

! ne lsse spi(e l mnire dont tous les ojets de mme type seront drits @dsigE ntionD lelD uteurD etAF ! n lien est une instne d9associationF ! essoition X gonept  vis d9internute qui lie ommentire et rtile ! vien X instne ten ve son vis ngtifD ul ve son vis positif

Classes et objets

! ne classe est l desription d9un ensemle d9ojets ynt une smntiqueD des ttriutsD des mthodes et des reltions en ommunF ille spi(e l9ensemle des rtristiques qui omposent des ojets de mme typeF ! ne lsse est ompose d9un nomD d9attributs et d9oprationsF ! elon l9vnement de l modlistionD es informtions ne sont ps forement toutes onnuesF II G WT

Introduction UML 2

P wyhvsesyx yfti vwixesi eig wv

PFP higrmmes de lsses

! h9utres omprtiments peuvent tre jouts X responsilitsD exeptionsD etF

Proprits : attributs et oprations

! ves ttriuts et les oprtions sont les proprits d9une lsseF veur nom ommene pr une minusuleF ! n attribut drit une donne de l lsseF ! ves types des ttriuts et leurs initilistions insi que les modi(teurs d9s peuE vent tre priss dns le modle ! ves ttriuts prennent des vleurs lorsque l lsse est instnie X ils sont en quelque sorte des  vriles tthes ux ojetsF ! ne opration est un servie o'ert pr l lsse @un tritement que les ojets orresponE dnt peuvent e'etuerAF

Compartiment des attributs

! n ttriut peut tre initilis et s visiilit est d(nie lors de s dlrtionF ! Syntaxe de l dlrtion d9un ttriut X
modifAcces nomAtt : nomClasse [ multi ]= valeurInit

Compartiment des oprations

ne oprtion est d(nie pr son insi que pr les types de ses prmtres et le type de s vleur de retourF ! v ! v

syntaxe de la dclaration d'une opration est l suivnte X


modifAcces nomOperation ( parametres ): ClasseRetour

syntaxe de la liste des paramtres est l suivnte X


nomClasse1 nomParam1 , ... , nomClasseN nomParamN

IP G WT

Introduction UML 2

PFP higrmmes de lsses

P wyhvsesyx yfti vwixesi eig wv

Mthodes et Oprations

! ne opration est l spi(tion d9une mthode @s signtureA indpendmment de son implnttionF ! wv P utorise glement l d(nition des oprtions dns n9importe quel lngge donnF ! Exemples de mthodes pour l9oprtion fact(n:int):int X
{ // implementation iterative int resultat =1~; for ( int i = n ~; i >0~; i - -) resultat *= i ~; return resultat ~; } { // implementation recursive if ( n ==0 || n ==1) return 1~; return ( n * fact (n -1))~; }

Relations entre classes

! ne reltion d9hritage est une reltion de gnrlistionGspilistion permettnt l9E strtionF ! ne dpendance est une reltion unidiretionnelle exprimnt une dpendne smntique entre les lments du modle @)he ouverte pointilleAF ! ne association reprsente une reltion smntique entre les ojets d9une lsseF ! ne reltion d9agrgation drit une reltion de ontenne ou de ompositionF

Association

! ne association est une reltion struturelle entre ojetsF ! ne ssoition est souvent utilise pour reprsenter les liens posiles entre ojets de lsses donnesF ! ille est reprsente pr un trit entre lssesF

Multiplicits des associations

! v notion de multiplicit permet le ontrle du nomre d9ojets intervennt dns hque instne d9une ssoitionF ! Exemple : un rtile n9pprtient qu9 une seule tgorie @IA Y une tgorie onerne plus de H rtilesD sns mximum @BAF

! v syntxe est wultwinFFwultwxF !  B l ple de wultwx signi(e  plusieurs sns priser de nomreF !  nFFn se note ussi  n D et  HFFB se note  B F

Navigabilit d'une association

! v navigabilit permet de spi(er dns quel@sA sens il est possile de trverser l9ssoition l9exutionF ! yn restreint l nvigilit d9une ssoition un seul sens l9ide d9une )heF IQ G WT

Introduction UML 2

P wyhvsesyx yfti vwixesi eig wv

PFP higrmmes de lsses

! Exemple : gonnissnt un rtile on onnt les ommentiresD mis ps l9inverseF ! yn peut ussi reprsenter les ssoitions nvigles dns un seul sens pr des ttriutsF ! Exemple : in joutnt un ttriut  vissnternute de lsse  gommentire la place de l9ssoitionF

Association unidirectionnelle de 1 vers 1

Implantation
public class Adresse {...} public class Client { private Adresse livraison ; public void setAdresse ( Adresse adresse ){ this . livraison = adresse ; } public Adresse getAdresse (){ return livraison ; } }

Association bidirectionnelle de 1 vers 1

Implantation
public class Client { Adresse facturation ; public void setAdresse ( Adresse uneAdresse ){ if ( uneAdresse != null ){ this . facturation = uneAdresse ; facturation . client = this ; // correspondance } } } public class Adresse { Client client ; public void setClient ( Client unClient ){ this . client = client ; client . facturation = this ; // correspondance } }

Association unidirectionnelle de 1 vers *

IR G WT

Introduction UML 2

PFP higrmmes de lsses

P wyhvsesyx yfti vwixesi eig wv

Implantation
public class Commentaire {...} public class Article { private Vector avisInternaute = new Vector (); public void addCommentaire ( Commentaire commentaire ){ avisInternaute . addElement ( commentaire ); } public void removeCommentaire ( Commentaire commentaire ){ avisInternaute . removeElement ( commentaire ); } }

Implantation d'une association bidirectionnelle de * vers *

lus di0ile X grer l fois l ohrene et les olletions

Associations rexives

! v9ssoition l plus utilise est l9ssoition inire @relint deux lsssAF ! rfoisD les deux extrmits de l9ssoition pointent vers le mme lsseurF hns e sD l9ssoition est dite  rexive F

Classe-association

! ne ssoition peut tre r0ne et voir ses propres ttriutsD qui ne sont disponiles dns uune des lsses qu9elle lieF ! gommeD dns le modle ojetD seules les lsses peuvent voir des ttriutsD ette ssoiE tion devient lors une lsse ppele  classe-association F

Associations n-aires

! ne association n-aire lie plus de deux lssesF ! xottion ve un losnge entrl pouvnt ventuellement ueillir une lsseEssoitionF ! v multipliit de hque lsse s9pplique une instne du losngeF IS G WT

Introduction UML 2

P wyhvsesyx yfti vwixesi eig wv

PFP higrmmes de lsses

ves ssoitions nEires sont peu frquentes et onernent surtout les s o les multpliits sont toutes  B F hns l pluprt des sD on utiliser plus vntgeusement des lssesEssoition ou plusieurs reltions iniresF

Association de type agrgation

! ne agrgation est une forme prtiulire d9ssoitionF ille reprsente l reltion d9inclusion d9un lment dns un ensemleF ! yn reprsente l9grgtion pr l9jout d9un losnge vide du t de l9grgtF ne grgtion dnote une reltion d9un ensemle ses prtiesF v9ensemle est l9agrgat et l prtie l9agrgF

Association de type composition

! v reltion de composition drit une contenance struturelle entre instnesF yn utilise un losnge pleinF ! v destruction et l copie de l9ojet omposite @l9ensemleA impliquent respetivement l destrution ou l opie de ses omposnts @les prtiesAF ! ne instne de l prtie n9pprtient jmis plus d9une instne de l9lment omE positeF

IT G WT

Introduction UML 2

PFP higrmmes de lsses

P wyhvsesyx yfti vwixesi eig wv

Composition et agrgation

! hs lors que l9on une reltion du tout s prtieD on une reltion d9grgtion ou de ompositionF v omposition est ussi dite  agrgation forte .

! Pour dcider de mettre une composition plutt qu'une agrgationD on doit se poser les questions suivntes X ! istEe que l destrution de l9ojet omposite @du toutA implique nessirement l destrution des ojets omposnts @les prtiesA c g9est le s si les omposnts n9ont ps d9utonomie visEEvis des ompositesF ! vorsque l9on opie le ompositeD doitEon ussi opier les omposntsD ou estEe qu9on peut les  rutiliser D uquel s un omposnt peut fire prtie de plusieurs omposites c i on rpond pr l90rmtive es deux questionsD on doit utiliser une ompositionF

Relation d'hritage

! v9hritage une reltion de spilistionGgnralisationF ! ves lments spiliss hritent de l struture et du omportement des lments plus gnrux @ttriuts et oprtionsA ! Exemple : r hritge d9ertileD un livre d9o0e un prixD une dsigntion et une oprtion heter@AD sns qu9il soit nessire de le priser

Implantation de l'hritage en Java


class Article { ... void acheter () { ... } } class Livre extends Article { ... }

Attention

ves  extends

tv n9 rien voir ve le  extend

wv vu pour les s d9utilistion IU G WT

Introduction UML 2

P wyhvsesyx yfti vwixesi eig wv

PFP higrmmes de lsses

Encapsulation

! v9encapsulation est un prinipe de oneption onsistnt protger le oeur d9un systme des s intempestifs vennt de l9extrieurF ! in wvD utilistion de modicateurs d'accs sur les ttriuts ou les lsses X ! Public ou  C X proprit ou lsse visile prtout ! Protected ou  5 F proprit ou lsse visile dns l lsse et pr tous ses desendntsF ! Private ou  E X proprit ou lsse visile uniquement dns l lsse ! PackageD ou  X proprit ou lsse visile uniquement dns le pquetge ! Il n'y a pas de visibilit  par dfaut .
Package (paquetage)

ves pkges ontiennent des lments de modle de hut niveuD omme des lssesD des diE grmmes de s d9utilistion ou d9utres pkgesF yn orgnise les lments modliss en pkges et sousEpkgesF

Exemple d'encapsulation

ves modi(teurs d9s sont glement ppliles ux oprtionsF

Relation d'hritage et proprits

! La classe enfant possde toutes les proprits de ses classes parents @ttriuts et oprtionsA ! v lsse enfant est l lsse spilise @ii vivreA ! v lsse parent est l lsse gnrle @ii ertileA ! outefoisD elle n9 ps s ux proprits privesF

IV G WT

Introduction UML 2

PFP higrmmes de lsses

P wyhvsesyx yfti vwixesi eig wv

Terminologie de l'hritage

! ne lsse enfnt peut rednir @mme signtureA une ou plusieurs mthodes de l lsse prentF ! uf inditions ontriresD un ojet utilise les oprtions les plus spilises dns l hirrhie des lssesF ! v surcharge d'oprations @mme nomD mis signtures des oprtions di'rentesA est possile dns toutes les lssesF ! outes les ssoitions de l lsse prent s9ppliquentD pr dfutD ux lsses drives @lsses enfntAF ! Principe de substitution X une instne d9une lsse peut tre utilise prtout o une inE stne de s lsse prent est ttendueF ! r exempleD toute oprtion eptnt un ojet d9une lsse eniml doit epter tout ojet de l lsse ght @l9inverse n9est ps toujours vriAF

Classes abstraites

! ne mthode est dite abstraite lorsqu9on onnt son entte mis ps l mnire dont elle peut tre rliseF sl pprtient ux lsses enfnt de d(nir les methodes stritesF ! ne lsse est dite abstraite lorsqu9elle d(nit u moins une mthode strite ou lorsqu9une lsse prent ontient une mthode strite non enore rliseF

Hritage multiple

! ne lsse peut voir plusieurs lsses prentsF yn prle lors d9hritage multipleF ! ve lngge gCC est un des lngges ojet permettnt son implnttion e'etiveF ! tv ne le permet psF

Interface

! ve rle d9une interface est de regrouper un ensemle d9oprtions ssurnt un servie ohrent o'ert pr un lsseur et une lsse en prtiulierF ! ne interfe est d(nie omme une lsseD ve les mmes omprtimentsF yn joute le strotype  interfe vnt le nom de l9interfeF ! yn utilise une reltion de type ralisation entre une interfe et une lsse qui l9implmenteF

! ves lsses implmentnt une interfe doivent implmenter toutes les oprtions drites dns l9interfe

Introduction UML 2

IW G WT

P wyhvsesyx yfti vwixesi eig wv

PFP higrmmes de lsses

Classe cliente d'une interface

! und une lsse dpend d9une interfe @interface requise A pour rliser ses oprtionsD elle est dite  classe cliente de l'interface ! yn utilise une reltion de dpendne entre l lsse liente et l9interfe requiseF oute lsse implmentnt l9interfe pourr tre utiliseF

Exemple d'interface

Elments drivs

! ves attributs drivs peuvent tre luls prtir d9utres ttriuts et des formules de lulF ! ves ttriuts drivs sont symoliss pr l9jout d9un  G devnt leur nomF ! vors de l oneptionD un ttriut driv peut tre utilis omme mrqueur jusqu9 e que vous puissiez dterminer les rgles lui ppliquerF ! ne association drive est onditionne ou peut tre dduite prtir d9utres utres ssoitionsF yn utilise glement le symole  G F

Attributs de classe

! r dfutD les vleurs des ttriuts d(nis dns une lsse di'rent d9un ojet un utreF rfoisD il est nessire de d(nir un attribut de classe qui grde une vleur unique et prtge pr toutes les instnesF ! qrphiquementD un ttriut de lsse est soulign

Oprations de classe

! emlle ux ttriuts de lsse ! ne opration de classe est une proprit de l lsseD et non de ses instnesF ! ille n9 ps s ux ttriuts des ojets de l lsseF

PH G WT

Introduction UML 2

PFP higrmmes de lsses

P wyhvsesyx yfti vwixesi eig wv

Classe paramtre

! our dnir une classe gnrique et paramtrable en fontion de vleurs etGou de types X ! h(nition d9une lsse prmtre pr des lments spi(s dns un retngle en pointilE ls Y ! tilistion d9une dpendne strotype  ind pour d(nir des lsses en fontion de l lsse prmtreF

! tvS X gnricit ! gCC X templates

Diagrammes de classes direntes tapes de la conception

! yn peut utiliser les digrmmes de lsses pour reprsenter un systme di'rents niveux d9strtion X ! ve point de vue spcication met l9ent sur les interfes des lsses plutt que sur leurs ontenusF ! ve point de vue conceptuel pture les onepts du domine et les liens qui les lientF sl s9intresse peu ou prou l mnire ventuelle d9implmenter es onepts et reltions et ux lngges d9implnttionF ! ve point de vue implantationD le plus ourntD dtille le ontenu et l9implnttion de hque lsseF ! ves digrmmes de lsses s9to'ent mesure qu9on v de huts niveux de s niveux d9strtion @de l spi(tion vers l9implnttionA

Construction d'un diagramme de classes


IF rouver les classes du domaine tudi Y ! ouventD onepts et sustntifs du domineF PF rouver les associations entre classes Y ! ouventD veres mettnt en reltion plusieurs lssesF QF rouver les attributs des classes Y ! ouventD sustntifs orrespondnt un niveu de grnulrit plus (n que les lssesF ves djetifs et les vleurs orrespondent souvent des vleurs d9ttriutsF RF Organiser et simplier le modle en utilisnt l9hritge Y SF Tester les hemins d9s ux lsses Y TF Itrer et raner le modleF

Introduction UML 2

PI G WT

PFQ higrmmes d9ojets

P wyhvsesyx yfti vwixesi eig wv

2.3

Diagrammes d'objets

Objectif

! ve diagramme d'objets reprsente les ojets d9un systme un instnt donnF sl permet de X ! sllustrer le modle de lsses @en montrnt un exemple qui explique le modleA Y ! riser ertins spets du systme @en mettnt en videne des dtils impereptiles dns le digrmme de lssesA Y ! ixprimer une exeption @en modlisnt des s prtiuliersD des onnissnes non gnrlE islesF F F AF ve digrmme de lsses modlise des rgles etle digrmme d9ojets modlise des faitsF

Reprsentation des objets

! gomme les lssesD on utilise des cadres compartimentsF ! in revnheD les noms des objets sont souligns et on peut rjouter son identi(nt devnt le nom de s lsseF ! ves vleurs @A ou l9tt @fA d9un ojet peuvent tre spi(esF ! ves instnes peuvent tre anonymes @DDdAD nommes @DfAD orphelines @eAD multiples @dA ou strotypes @gAF

Diagramme de classes et diagramme d'objets

! ve digrmme de lsses contraint l struture et les liens entre les ojetsF

higrmme cohrent ve le digrmme de lsses X

Introduction UML 2

PQ G WT

P wyhvsesyx yfti vwixesi eig wv

PFQ higrmmes d9ojets

higrmme incohrent ve le digrmme de lsses X

Liens

! n lien est une instne d9une ssoitionF ! n lien se reprsente omme une ssoition mis s9il un nomD il est soulignF xturellementD on ne reprsente ps les multipliits qui n9ont uun sens u niveu des ojetsF
Attention

Relation de dpendance d'instanciation

! v reltion de dpendance d'instanciation @strotypeA drit l reltion entre un lsseur et ses instnesF ! ille relieD en prtiulierD les ssoitions ux liens et les lsses ux ojetsF

PR G WT

Introduction UML 2

PFR higrmmes de squenes

P wyhvsesyx yfti vwixesi eig wv

2.4

Diagrammes de squences

Objectif des diagrammes de squence

! ves diagrammes de cas d'utilisation modlisent QUOI sert le systmeD en orgnisnt les intertions possiles ve les teursF ! ves diagrammes de classes permettent de spi(er l struture et les liens entre les ojets dont le systme est ompos X ils spi(e QUI ser l9oeuvre dns le systme pour rliser les fontionnlits drites pr les digrmmes de s d9utilistionF ! ves diagrammes de squences permettent de drire COMMENT les lments du sysE tme intergissent entre eux et ve les teursF ! ves ojets u oeur d9un systme intergissent en s9hngent des messgesF ! ves teurs intergissent ve le systme u moyen d9srw @snterfes rommeEwhineAF

Exemple d'interaction
! gs d9utilistion X

! higrmme de squenes orrespondnt X

! yprtions nessires dns le digrmme de lsses X

Ligne de vie

! ne ligne de vie reprsente un prtiipnt une intertion @ojet ou teurAF


nomLigneDeVie [ selecteur ]: nomClasseOuActeur

! hns le s d9une olletion de prtiipntsD un sleteur permet de hoisir un ojet prmi n @pr exemple objets[2]AF

Messages

! ves priniples informtions ontenues dns un digrmme de squene sont les messages hngs entre les lignes de vieD prsents dns un ordre hronologiqueF PS G WT

Introduction UML 2

P wyhvsesyx yfti vwixesi eig wv

PFR higrmmes de squenes

! n messge d(nit une ommunition prtiulire entre des lignes de vie @ojets ou teursAF ! lusieurs types de messges existentD dont les plus ournts X ! l9envoi d9un signl Y ! l9invotion d9une oprtion @ppel de mthodeA Y ! l rtion ou l destrution d9un ojetF ! v reption des messges provoque une priode d'activit @retngle vertil sur l ligne de vieA mrqunt le tritement du messge @spi(tion d9exution dns le s d9un ppel de mthodeAF

Principaux types de messages ! n messge synchrone loque l9expditeur jusqu9 l rponse du destintireF ve )ot de
ontrle psse de l9metteur u repteurF ! ypiquement X ppel de mthode ! i un ojet e invoque une mthode d9un ojet fD e reste loqu tnt que f n9 ps terminF

! yn peut ssoier ux messges d9ppel de mthode un messge de retour @en pointillsA mrqunt l reprise du ontrle pr l9ojet metteur du messge synhroneF ! n messge asynchrone n9est ps loqunt pour l9expditeurF ve messge envoy peut tre pris en ompte pr le repteur tout moment ou ignorF ! ypiquement X envoi de signl @voir strotype de lsse  signl AF

Correspondance messages / oprations ! ves messages synchrones orrespondent des oprations dns le digrmme de lssesF
invoyer un messge et ttendre l rponse pour poursuivre son tivit revient invoquer une mthode et ttendre le retour pour poursuivre ses tritementsF

implantation des messages synchrones


PT G WT

Introduction UML 2

PFR higrmmes de squenes

P wyhvsesyx yfti vwixesi eig wv

class B { C c; op1 ( p : Type ){ c . op2 ( p ); c . op3 (); } } class C { op2 ( p : Type ){ ... } op3 (){ ... } }

Correspondance messages / signaux ! ves messages asynchrones orrespondent des signaux dns le digrmme de lssesF
ves signux sont des ojets dont l lsse est strotype  signl et dont les ttriuts @porteurs d9informtionA orrespondent ux prmtres du messgeF

Cration et destruction de lignes de vie

! v cration d9un ojet est mtrilise pr une )he qui pointe sur le sommet d9une ligne de vieF ! yn peut ussi utiliser un messge synhrone ordinire portnt le nom  rete F

! v destruction d9un ojet est mtrilise pr une roix qui mrque l (n de l ligne de vie de l9ojetF

Introduction UML 2

PU G WT

P wyhvsesyx yfti vwixesi eig wv

PFR higrmmes de squenes

Messages complets, perdus et trouvs

! n message complet est tel que les vnements d9envoi et de reption sont onnusF ! n messge omplet est reprsent pr une )he prtnt d9une ligne de vie et rrivnt une utre ligne de vieF ! n message perdu est tel que l9vnement d9envoi est onnuD mis ps l9vnement de reptionF ! v )he prt d9une ligne de vie mis rrive sur un erle indpendnt mrqunt l monnissne du destintireF ! ixemple X rodstF ! n message trouv est tel que l9vnement de reption est onnuD mis ps l9vnement d9missionF

Syntaxe des messages ! v syntaxe des messages est X


nomSignalOuOperation ( parametres )

! v

syntaxe des arguments est l suivnte X


nomParametre = valeurParametre

! our un rgument modi(le X


nomParametre : valeurParametre

Exemples :
! ! ! !

appeler("Capitaine Hadock", 54214110) afficher(x,y) initialiser(x=100) f(x:12)

Messages de retour

! ve repteur d9un messge synchrone rend l min l9metteur du messge en lui envoynt un message de retour ! ves messges de retour sont optionnels X l (n de l priode d9tivit mrque glement l (n de l9exution d9une mthodeF ! sls sont utiliss pour spi(er le rsultt de l mthode invoqueF

ve retour des messges synhrones s9e'etue pr l9envoi de nouveux messges synhronesF PV G WT

Introduction UML 2

PFR higrmmes de squenes

P wyhvsesyx yfti vwixesi eig wv

Syntaxe des messages de retour ! v syntaxe des messages de retour est X


attributCible = nomOperation ( params ): valeurRetour

! v

syntaxe des paramtres est X


nomParam = valeurParam

ou
nomParam : valeurParam

! ves messges de retour sont reprsents en pointillsF

Fragment combin

! n fragment combin permet de domposer une intertion omplexe en frgments su'E ismment simples pour tre omprisF ! eominer les frgments restitue l omplexitF ! yntxe omplte ve wv P X reprsenttion omplte de proessus ve un lngge simple @ex X proessus prlllesAF ! n frgment omin se reprsente de l mme fon qu9une intertionF sl est reprsent un retngle dont le oin suprieur guhe ontient un pentgoneF ! hns le pentgone (gure le type de l ominison @ppel  oprateur d'interaction AF

Exemple de fragment avec l'oprateur conditionnel

Type d'oprateurs d'interaction ! Oprateurs de branchement @ choix


! ! ! ! lterntiveD optionD rek et loop Y ! prllel et ritil region Y

et boucles A X

Oprateurs contrlant l'envoi en parallle de messages :


! ignoreD onsiderD ssertion et negtive Y ! wek sequening et strit sequeningF

Oprateurs contrlant l'envoi de messages :

Oprateurs xant l'ordre d'envoi des messages :

Oprateur de boucle
Introduction UML 2
PW G WT

P wyhvsesyx yfti vwixesi eig wv

PFR higrmmes de squenes

Syntaxe de l'oprateur loop ! Syntaxe d'une boucle :


loop ( minNbIterations , maxNbIterations )

! v oule est rpte u moins minxstrtions fois vnt qu9une ventuelle ondition oolenne ne soit teste @l ondition est ple entre rohets dns le frgmentA ! nt que l ondition est vrieD l oule ontinueD u plus mxxstrtions foisF

Notations :

! loop(valeur) est quivlent loop(valeur,valeur)F ! loop est quivlent loop(0,*)D o * signi(e  illimit F

Oprateur parallle
! v9oprteur par permet d9envoyer des messges en prllleF ! ge qui se psse de prt et d9utre de l ligne pointille est indpendntF

Rutilisation d'une interaction


! Rutiliser une interaction onsiste pler un frgment portnt l rfrene  ref l9intertion est utileF QH G WT l o

Introduction UML 2

PFR higrmmes de squenes

P wyhvsesyx yfti vwixesi eig wv

! yn spi(e le nom de l9intertion dns le frgmentF

Utilisation d'un DS pour modliser un cas d'utilisation

! ghque s d9utilistion donne lieu un digrmme de squenes

! ves inlusions et les extensions sont des s typiques d9utilistion de l rutilistion pr rfrenement

Utilisation d'un DS pour spcier une mthode

! ne intertion peut tre identi(e pr un frgment sd @pour pour  sequene digrm AprE isnt son nom ! n messge peut prtir du ord de l9intertionD spi(nt le omportement du systme prs reption du messgeD quel que soit l9expditeur

Introduction UML 2

QI G WT

Q wv i wryhyhyvyqsi

3
3.1

UML et mthododologie
Des besoins au code avec UML : une mthode minimale

Pourquoi une mthode ?

Processus de dveloppement

insemle d9tpes prtiellement ordonnesD qui onourent l9otention d9un systme logiiel ou l9volution d9un systme existntF ! ! he qulit @qui rpondent ux esoins de leurs utilisteursA ! hns des temps et des ots prvisiles ! e hque tpeD on produit X ! hes modles Y ! he l doumenttion Y ! hu odeF

Objectif : produire des logiiels

Mthode = Dmarche + Langage

! v mthode wisi fournit X ! n lngge de modlistion grphique @wghD whD wyD wgFFFA i ne dmrhe dopter pour dveloppent un logiielF ! UML n'est qu'un langage : ! sl spi(e omment drire des s d9utilistionD des lssesD des intertions ! wis ne prjuge ps de l dmrhe employeF ! Mthodes s'appuyant sur UML X ! @tionl ni(ed roessA E pr les uteurs d9wv Y ! @etreme rogrmmingA E pouvnt s9ppuyer sur wvF

Mthode minimale
Objectif

soudre VH7 des prolmes ve PH7 d9wvF ! roposition d9une mthode archi-minimale X ! rs nettement moins omplexe que Y ! edpte pour projets modestes Y ! winimum vitl pour qui prtend utiliser un peu wvF ! snspire de !  UML 2 - Modliser une application web  ! Pascal Roques ! iditions iyrolles @PHHTA

Introduction UML 2

QQ G WT

Q wv i wryhyhyvyqsi hes esoins u ode ve wv X une mthode minimle QFI

Cas d'utilsation

! gomment d(nir les esoins c IF sdenti(er les limites du systme Y PF sdenti(er les teurs Y QF sdenti(er les s d9utilistion Y RF truturer les s d9utilistion en pkges Y SF ejouter les reltions entre s d9utilistion Y TF glsser les s d9utilistion pr ordre d9importneF

Exemple de classement Cas d'utilisation


ejouter rtile u pnier ghnger prix ertile eherher pr motsEls FFF et FFF

Priorit Risque
rute woyen fs FFF et FFF

woyen woyen woyen FFF et FFF

! n tel lssement permet de dterminer les s d9utilistion entrux en fontion X ! he leur priorit fontionnelle Y ! hu risque qu9il font ourrir u projet dns son ensemleF ! ves fontionnlits des s les plus entrux seront dveloppes prioritirementF

Modle du domaine
ve modle du domine est onstitu d9un ensemle de lsses dns lesquelles uune oprtion n9est d(nieF ! ve modle du domaine drit les concepts invariants du domine d9pplitionF ! Exemple : our un logiiel de gestions de fturesD on ur des lsses omme roduitD glientD ptureFFF ! eu importe que le logiiel soit en ligne ou nonF ! eu importent les tehnologies employesF QR G WT

Introduction UML 2

QFI hes esoins u ode ve wv X une mthode minimle wv i wryhyhyvyqsi Q !

Etapes de la dmarche :
IF sdenti(er les onepts du domine Y PF ejouter les ssoitions et les ttriuts Y QF qnrliser les onepts Y RF truturer en pkges X struturtion selon les prinipes de ohrene et d9indpenE dneF

! ves onepts du domine peuvent tre identi(s diretement prtir de l onnissne du domine ou pr interview des experts mtierF

Exemple de modle du domaine

Structuration en packages

Squences systme

ves squenes systme formlisent les desriptions textuelles des s d9utilistionD en utilisnt des digrmmes de squeneF ! gonstruire les Diagrammes de Squences Systme implique souvent l mise jour des s d9utilistion l lumire des r)exions que nous inspirent l prodution des hF ! ves h permettent de spi(er les oprations systmeF ! Le systme est considr comme un tout X ! yn s9intresse ses intertions ve les teurs Y ! yn utilise une lsse  ystme qui ! prt les teurs ! donner lieu l seule ligne de vie des hF

Introduction UML 2

QS G WT

Q wv i wryhyhyvyqsi hes esoins u ode ve wv X une mthode minimle QFI

n nouveu h est produit pour hun des s d9utilistionF ! ves h sont prfois trs simples mis ils seront enrihis pr l suiteF

Exemple de diagramme de squence systme

Oprations systme

! ves oprtions systme sont des oprtions qui devront tre rlises pr l9une ou l9utre des lsses du systmeF ! illes orrespondent tous les messges qui viennent des teurs vers le systme dns les di'rents hF

Classes participantes

! our hque s d9utilistionD on d(nit les lsses d9nlyse mises en oeuvre pour s rlistion e'etiveF ! ypologie des lsses d9nlyse X ! ves classes mtier @ou entitsA reprsentent les ojets mtierF illes orrespondent ux lsses du modle du domineF ! ves classes de dialogue sont elles qui permettent les intertions entre les teurs et l9pplitionF ! ves classes de contrle permettent d9strire les fontionnlits du systme X ! illes font le lien entre les lsses dilogue et les lsses mtierF ! illes permettent de ontrler l inmtique de l9pplitionD d l9ordre dns lequel les hoses doivent se droulerF

Diagramme de classes participantes

QT G WT

Introduction UML 2

QFI hes esoins u ode ve wv X une mthode minimle wv i wryhyhyvyqsi Q ve Diagramme des Classes Participantes est un digrmme de lsses drivnt toutes les lsses d9nlyseF

ve hg est une version enrihie du modle du domineD uquel on djoint les lsses d9intertion et de ontrleF ! e e point du dveloppementD seules les lsses de dilogue ont des oprationsD qui orreE spondent ux oprations systmeD 9est dire ux messges hngs ve les teursD que seules les lsses de dilogues sont hilites interepter ou mettreF ! Architecture en couches X ! ves dilogues ne peuvent tre relis qu9ux ontrles ou d9utres dilogues @en gnrlD ssoitions unidiretionnellesAF ! ves lsses mtier ne peuvent tre relies qu9ux ontrles ou d9utres lsses mtierF ! ves ontrles peuvent tre ssois tous les types de lssesF

Exemple de diagramme de classes participantes

Diagrammes d'interaction

! hns les digrmmes de squene systmeD le systme tit vu omme une ote noire @ligne de vie  ystme AF ! yn sit mintennt de ojets est ompos le systme @digF de lsses prtiipntesAF ! ve systme n9est plus une ote noireF ghque digrmme de squene systme donne lieu un digrmme d9intertionF sl y en don utnt que de s d9utilistionF

in plus des intertions du systme ve l9extrieurD les Diagrammes d'Interaction monE trent les intertions internes provoquesF ! ves h sont repris mis l9ojet  ystme est lt pour donner le dtil des lsses d9nlyse X ! Les lignes de vie correspondent aux classes participantes.

Introduction UML 2

QU G WT

Q wv i wryhyhyvyqsi hes esoins u ode ve wv X une mthode minimle QFI

Des squences systme aux interactions internes

Diagramme des classes de conception

! ves digrmmes d9intertion permettent de d(nir les oprtions @nessires et su'E isntesA des lsses mtier et de ontrle @messges synhronesAF

ve Diagramme des Classes de Conception reprend le digrmme de lsses prtiipntes en y djoignnt toutes les oprtions nessiresF ! ve hgg est en outre enrihi pour X ! rendre en ompte l9rhiteture logiielle hte Y ! wodliser les oprtion prives des di'rentes lsses Y ! pinliser le modle des lsses vnt l9smplnttionF QV G WT

Introduction UML 2

QFP tionl ni(ed roess

Q wv i wryhyhyvyqsi

3.2

Rational Unied Process

Modles de cycles de vie linaire

! ves phses du dveloppement se suivent dns l9ordre et sns retour en rrireF

Problmes des cycles linaires

! isques levs et non ontrls X ! sdenti(tion tardive des prolmes Y ! reuve tardive de on fontionnement Y !  Eet tunnelF ! Amliorations : onstrution itrative du systme X ! ghque itrtion produit un nouvel incrment Y ! ghque nouvel inrment pour ojetif l mtrise d9une prtie des risques et pporte une preuve tngile de fisilit ou d9dqution X ! inrihissement d9une srie de prototypes Y ! ves versions livres orrespondent des tpes de l hne des prototypesF

Production itrative d'incrments

! ves itrtions de I U sont produites suessivementD hune joutnt u systme de nouvelles fontionnlitsD jusqu9 former un systme ompletF

Introduction UML 2

QW G WT

Q wv i wryhyhyvyqsi ! e hque itrtionD on refit X IF pi(tion Y PF goneption Y QF smplmenttion Y RF estsF

QFP tionl ni(ed roess

Elimination des risques chaque itration

yn peut voir le dveloppement d9un logiiel omme un proessus grduel d9limintion de risquesF

! g9est pendnt  Planication et xcution  qu9on rpte pi(tion goneption smplmenttion estsF

Rational Unied Process

est une dmrhe de dveloppement qui est souvent utilis onjointement u lngge wvF ! Rational Unied Process est ! ilot pr les s d9utilistion Y ! gentr sur l9rhiteture Y ! strtif et inrmentlF

RUP est itratif et incrmental

! ghque itrtion prend en ompte un ertin nomre de s d9utilistionF ! ves risques mjeurs sont trits en prioritF ! ghque itrtion donne lieu un inrment et produit une nouvelle version exutleF

RUP est pilot par les cas d'utilisation

! v priniple qulit d9un logiiel est son utilit X ! edqution du servie rendu pr le logiiel ve les esoins des utilisteursF ! ve dveloppement d9un logiiel doit tre entr sur l9utilisteurF ! ves s d9utilistion permettent d9exprimer es esoins X ! htetion et desription des esoins fontionnels Y ! yrgnistion des esoins fontionnelsF

RH G WT

Introduction UML 2

QFP tionl ni(ed roess

Q wv i wryhyhyvyqsi

RUP est centr sur l'architecture

! wodlistion de di'rentes pespetives indpendntes et omplmentiresF ! Architecture en couches et vues de uruthenF

Vues du systme ! Vue cas d'utilisation X


! ! ! !

! hesription du systme omme un ensemle de trnstions du point de vue de l9utilE isteurF Vue logique X ! gre lors de l phse d9lortion et r0ne lors de l phse de onstrution Y ! tilistion de digrmmes de lssesD de squenesFFF Vue composants X ! hesription de l9rhiteture logiielleF Vue dploiement X ! hesription de l9rhiteture mtrielle du systmeF Vue implmentation X ! hesription des lgorithmesD ode soureF

Organisation en phases du dveloppement ! Initialisation X

! h(nition du prolmeF ! Elaboration X ! lni(tion des tivitsD 'ettion des ressouresD nlyseF ! Construction X ! hveloppement du logiiel pr inrments suessifsF ! Transition X ! eettge et dploiementF

ves phses du dveloppement sont les grndes tpes du dveloppement du logiiel ! ve projet ommene en phse d9initilistion et termine en phse de trnsition

Phase d'initialisation : Objectifs

! h(nition du dre du projetD son oneptD et inventire du ontenu Y ! ilortion des s d9utilistion ritiques ynt le plus d9in)uene sur l9rhiteture et l oneption Y ! listion d9un ou de plusieurs prototypes dmontrnt les fontionnlits drites pr les s d9utilistion prinipux Y ! istimtion dtille de l hrge de trvilD du ot et du plnning gnrl insi que de l phse suivnte d9lortion istimtion des risquesF RI G WT

Introduction UML 2

Q wv i wryhyhyvyqsi

QFP tionl ni(ed roess

Phase d'initialisation : Activits

! pormultion du dre du projetD des esoinsD des ontrintes et des ritres d9epttion Y ! lni(tion et prprtion de l justi(tion onomique du projet et vlution des lterntives en termes de gestion des risquesD ressouresD plni(tion Y ! ynthse des rhitetures ndidtesD vlution des otsF

Phase d'initialisation : Livrables

! n doument de vision prsentnt les esoins de seD les ontrintes et fontionnlits priniples Y ! ne premire version du modle de s d9utilistion Y ! n glossire de projet Y ! n doument de justi(tion onomique inlunt le ontexte gnrl de rlistionD les fteurs de sus et l prvision (nnire Y ! ne vlution des risques Y ! n pln de projet prsentnt phses et itrtions Y ! n ou plusieurs prototypesF

Phase d'initialisation : Critres d'valuation

! n onsensus sur X ! v plni(tion Y ! v9estimtion des ots Y ! v d(nition de l9ensemle des projets des prties onernesF ! v omprhension ommune des esoinsF

Phase d'laboration : objectifs

! h(nirD vlider et rrter l9rhiteture Y ! hmontrer l9e0it de ette rhiteture rpondre notre esoin Y ! lni(er l phse de onstrutionF

Phase d'laboration : activits

! ilortion de l vision gnrle du systmeD les s d9utilistion prinipux sont ompris et vlids Y ! ve proessus de projetD l9infrstrutureD les outils et l9environnement de dveloppement sont tlis et mis en ple Y ! ilortion de l9rhiteture et sletion des omposntsF

Phase d'laboration : livrables


! ! ! !

ve modle de s d9utilistion est produit u moins VH 7 Y v liste des exigenes et ontrintes non fontionnelles identi(es Y ne desription de l9rhiteture Y n exutle permettnt de vlider l9rhiteture du logiiel trvers ertines fontionE nlits omplexes Y ! v liste des risques revue et l mise jour de l justi(tion onomique du projet Y ! ve pln de rlistionD y ompris un pln de dveloppement prsentnt les phsesD les itrtions et les ritres d9vlution Y

Phase d'laboration : Critres d'valuation


! ! ! ! v v v v

stilit de l vision du produit (nl Y stilit de l9rhiteture Y prise en hrge des risques prinip ux est dresse pr le@sA prototype@sA Y d(nition et le dtil du pln de projet pour l phse de onstrution Y

RP G WT

Introduction UML 2

QFP tionl ni(ed roess

Q wv i wryhyhyvyqsi

! n onsensusD pr toutes les prties prenntesD sur l rtulistion de l plni(tionD des ots et de l d(nition de projetF

Phase de construction : objectifs

! v minimistion des ots de dveloppement pr X ! v9optimistion des ressoures Y ! v minimistion des trvux non nessiresF ! ve mintien de l qulit Y ! listion des versions exutlesF

Phase de construction : Activits

! qestion et le ontrle des ressoures et l9optimistion du proessus de projet Y ! ivlution des versions produites en regrd des ritres d9epttion d(nisF

Phase de construction : Livrables

! ves versions exutles du logiiel orrespondnt l9enrihissement itrtion pr itrtion des fontionnlits Y ! ves mnuels d9utilistion rliss en prllle l livrison inrmentle des exutles Y ! ne desription des versions produitesF

Phase de construction : Critres d'valuation

! v stilit et l qulit des exutles Y ! v prprtion des prties prenntes Y ! v sitution (nnire du projet en regrd du udget initilF

Phase de transition : Objectifs


! ! ! !

ve dploiement du logiiel dns l9environnement d9exploittion des utilisteurs Y v prise en hrge des prolmes lis l trnsition Y etteindre un niveu de stilit tel que l9utilisteur est indpendnt Y etteindre un niveu de stilit et qulit tel que les prties prenntes onsidrent le projet omme terminF

Phase de transition : Activits

! etivits de  pkging du logiiel pour le mettre disposition des utilisteurs et de l9quipe d9exploittion Y ! gorretion des erreurs rsiduelles et mliortion de l performne et du hmp d9utilisE tion Y ! ivlution du produit (nl en regrd des ritres d9epttion d(nisF

Phase de transition : Livrables


! v version (nle du logiiel Y ! ves mnuels d9utilistionF

Phase de transition : Critres d'valuation

! v stisftion des utilisteurs Y ! v sitution (nnire du projet en regrd du udget initilF RQ G WT

Introduction UML 2

Q wv i wryhyhyvyqsi

QFP tionl ni(ed roess

Organisation en activits de dveloppement

! ghque phse omprend plusieurs itrtions ! our hune des itrtionsD on se livre plusieurs tivits X ! wodlistion mtier Y ! Expression des besoins Y ! Analyse Y ! Conception Y ! Implmentation Y ! Test Y ! hploiementF

! ves activits sont des tpes dns le dveloppement d9un logiielD mis un niveu de grnulrit euoup plus (n que les phsesF ! ghque tivit est rpte utnt de fois qu9il y d9itrtionsF

Modlisation mtier ! Objectif : wieux omprendre l struture et l dynmique de l9orgnistion X

! roposer l meilleure solution dns le ontexte de l9orgnistion liente Y ! listion d9un glossire des termes mtiers Y ! grtogrphie des proessus mtier de l9orgnistion lienteF ! etivit oteuse mis qui permet d9lrer l omprhension d9un prolmeF

Expression des besoins ! Objectif : giler les esoins des utilisteurs et du lients gre une srie d9interviewsF
! ! ! ! !

! v9ensemle des prties prenntes du projetD mtrise d9oeuvre et mtrise d9ouvrgeD est teur de ette tivitF v9tivit de reueil et d9expression des esoins douhe sur e que doit fire le systme @question  QUOI ? A tilistion des cas d'utilisation pour X ! hmtiser les esoins Y ! truturer les douments de spi(tions fontionnellesF ves s d9utilistion sont domposs en snrios d9usge du systmeD dns lesquels l9utilE isteur  ronte e qu9il fit gre u systme et ses intertions ve le systmeF n mquettge est rlisle pour mieux  immerger l9utilisteur dns le futur systmeF ne fois poses les limites fontionnellesD le projet est plni( et une prvision des ots est rliseF

Analyse ! Objectif : rnsformer les esoins utilisteurs en modles wvF


RR G WT

! enlyse ojet servnt de se une r)exion sur les mnismes internes du systmeF

Introduction UML 2

QFP tionl ni(ed roess

Q wv i wryhyhyvyqsi

! rinipux livrles X ! wodles d9nlyseD neutre vis vis d9une tehnologie Y ! vivre une spi(tion plus prise des esoinsF ! eut envisg omme une premire uhe du modle de oneptionF

Conception ! Objectif : wodliser comment

le systme v fontionner X ! ixigenes non fontionnelles Y ! ghoix tehnologiquesF ! ve systme est nlys et on produit X ! ne proposition d9rhiteture Y ! n doupge en omposntsF

Impmentation ! Objectif : smplmenter le systme pr omposntsF

! ve systme est dvelopp pr moreux dpendnt les uns des utresF ! yptimistion de l9utilistion des ressoures selon leurs expertisesF ! ves doupges fontionnel et en ouhes sont indispensle pour ette tivitF ! sl est tout fit envisgele de retouher les modles d9nlyse et de oneption e stdeF

Test
! ! Tests unitaires : tests omposnts pr omposnts Y ! Tests d'intgration : tests de l9intertion de omposnts prllement tests individuE ellementF ! wthode X ! lni(tion pour hque itrtion Y ! smplmenttion des tests en rnt des s de tests Y ! ixuter les tests Y ! rendre en ompte le rsultt de hunF

Objectif : ri(er des rsultts de l9implmenttion en testnt l onstrution X

Dploiement ! Objectif : hployer les dveloppements une fois rlissF

! eut tre rlis trs tt dns le proessus dns une soustivit de prototypge dont l9ojetif est de vlider X ! v9rhiteture physique Y ! ves hoix tehnologiquesF

Importance des activits dans chaque phase


Introduction UML 2
RS G WT

Q wv i wryhyhyvyqsi

QFP tionl ni(ed roess

Principaux diagrammes UML par activit ! Expression des besoins et modlisation mtier :
! wodles mtierD domineD s d9utilistion Y ! higrmme de squenes Y ! higrmme d9tivitF

! !

Analyse

! wodles mtierD s d9utilistion Y ! higrmme des lssesD de squenes et de dploiementF

Conception
! ! ! !

higrmme higrmme higrmme higrmme

des lssesD de squenes Y ttGtrnsition Y d9tivit Y de dploiement et de omposntF

2TUP, une variante du  Unied Process .

! 2TUPD ve un proessus de dveloppement en  D dvelopp pr ltehF !  UML 2.0, en action : De l'analyse des besoins la conception J2EE ! Pascal Roques, Franck Valle ! iditions iyrolles @PHHRA

RT G WT

Introduction UML 2

QFQ etreme progrmming

Q wv i wryhyhyvyqsi

3.3

eXtreme programming

Mthodes agiles
 uelles tivits pouvons nous ndonner tout en produisnt des logiiels de qulit c

 gomment mieux trviller ve le lient pour nous foliser sur ses esoins les plus prioritires et tre ussi rtifs que possile c ! Filiation avec le RADF ! ixemples de mthodes giles X ! XP @etreme rogrmmingAD DSDM @hynmi oftwre hevelopment wethodAD ASD @edpttive oftwre hevelopmentAD CCM @grystl gler wethodologiesAD SCRUMD FDD @peture hriven hevelopmentAF

Priorits des mthodes agiles


! ! ! ! riorit riorit riorit riorit

aux personnes et aux interactions sur les produres de les outils Y aux applications fonctionnelles sur une doumenttion plthorique Y la collaboration avec le client sur l ngoition de ontrt Y l'acceptation du changement sur l plni(tionF

eXtreme Programming
eXtreme ProgrammingD une mthode  se sur des prtiques qui sont utnt de outons pousss
u mximum F ! wthode qui peut semler nturelle mis concrtement dicile appliquer et matriser X ! lme euoup de disipline et de ommunition @ontrirement l premire imE pression qui peut fire penser une ullition de erveux individuelsAF ! eller vite mis sns perdre de vue l rigueur du odge et les fontions (nles de l9pE plitionF ! Force de XP : s simpliit et le fit qu9on v droit l9essentielD selon un rythme qui doit rester onstntF

Valeurs d'XP ! Communication X

! fvorise l ommunition direteD plutt que le loisonnement des tivits et les hnges de douments formelsF ! ves dveloppeurs trvillent diretement ve l mtrise d9ouvrgeF ! Feedback X ! ves prtiques sont onues pour donner un mximum de feedk sur le droulement du projet (n de orriger l trjetoire u plus ttF ! Simplicit X ! hu proessus Y ! hu odeF ! Courage X ! h9honorer les utres vleurs Y ! he mintenir une ommunition frnhe et ouverte Y ! h9epter et de triter de front les muvises nouvellesF RU G WT

Introduction UML 2

Q wv i wryhyhyvyqsi

QFQ etreme progrmming

Pratiques d'XP

! est fond sur des vleursD mis surtout sur 13 pratiques rprties en Q tgories X ! qestion de projets Y ! rogrmmtion Y ! gollortionF

Pratiques de gestion de projets ! Livraisons frquentes X

! v9quipe vise l mise en prodution rpide d9une version minimle du logiielD puis elle fournit ensuite rgulirement de nouvelles livrisons en tennt ompte des retours du lientF ! Planication itrative X ! n pln de dveloppement est prpr u dut du projetD puis il est revu et remni tout u long du dveloppement pour tenir ompte de l9expriene quise pr le lient et l9quipe de dveloppementF ! Client sur site X ! ve lient est intgr l9quipe de dveloppement pour rpondre ux questions des dveloppeurs et d(nir les tests fontionnelsF ! Rythme durable X ! v9quipe dopte un rythme de trvil qui lui permet de fournir un trvil de qulit tout u long du projetF ! tmis plus de RHh de trvil pr semine @un dveloppeur ftigu dveloppe mlAF

Pratiques de programmation ! Conception simple X

! yn ne dveloppe rien qui ne soit utile tout de suiteF ! Remaniement X ! ve ode est en permnene rorgnis pour rester ussi lir et simple que possileF ! Tests unitaires X ! ves dveloppeurs mettent en ple une tterie de tests de nonrgression qui leur perE mettent de fire des modi(tions sns rinteF ! Tests de recette X ! ves testeurs mettent en ple des tests utomtiques qui vri(ent que le logiiel rpond ux exigenes du lientF ! ges tests permettent des reettes utomtiques du logiielF

Pratiques de collaboration ! Responsabilit collective du code X


! ! ! !

! ghque dveloppeur est suseptile de trviller sur n9importe quelle prtie de l9ppliE tionF Programmation en binmes X ! ves dveloppeurs trvillent toujours en inmesD es inmes tnt renouvels frquemE mentF Rgles de codage X ! ves dveloppeurs se plient des rgles de odge strites d(nies pr l9quipe elleEmmeF Mtaphore X ! ves dveloppeurs s9ppuient sur une desription ommune du designF Intgration continue X ! v9intgrtion des nouveux dveloppements est fite hque jourF

Cycle de vie XP
RV G WT

Introduction UML 2

QFQ etreme progrmming

Q wv i wryhyhyvyqsi

Exploration

! ves dveloppeurs se penhent sur des questions techniques X ! ixplorer les di'rentes possiilits d9rhiteture pour le systme X ! itudier pr exemple les limites u niveu des performnes prsentes pr hune des solutions possilesF ! ve lient s9hitue exprimer ses besoins sous forme de user strories @prohes de diE grmmes de s illustrs pr des digrmmes de squenesAF ! ves dveloppeurs estiment les temps de dveloppementF

Planning

! lnning de l premire relese X ! niquement les fontionnlits essentielles Y ! remire relese enrihir pr l suiteF ! hure du plnning X I ou P joursF ! remire version @releseA u out de P T moisF

Itrations jusqu' la premire release

! hveloppement de l premire version de l'applicationF ! strtions de une qutre semines X ! ghque itrtion produit un sous ensemle des fontionnlits priniples Y ! ve produit de hque itrtion suit des tests fontionnels Y ! strtions ourtes pour identi(er trs tt des dvition pr rpport u plnningF ! frves runions quotidiennes runissnt toute l9quipeD pour mettre hun u ournt de l9vnement du projetF

Mise en production

! v mise en prodution produit un logiiel X ! y'rnt toutes les fontionnlits indispensles Y ! rfitement fontionnel Y ! wis disposition des utilisteursF ! strtions trs ourtes Y ! ests onstnts en prllle du dveloppement Y ! ves dveloppeurs prodent des rglages ans pour mliorer les performnes du logiE ielF

Maintenance

! gontinuer faire fonctionner le systme Y RW G WT

Introduction UML 2

Q wv i wryhyhyvyqsi

QFQ etreme progrmming

! edjontion de nouvelles fonctionnalits secondairesF ! our les fontionnlits seondiresD on reommene pr une rpide explortionF ! v9jout de fontionnlits seondires donne lieu de nouvelles relesesF

Mort

! und le lient ne prvient plus spi(er de nouveux esoinsD le projet est dit  mort ! oit que tous les esoins possiles sont remplis Y ! oit que le systme ne supporte plus de nouvelles modi(tions en restsnt rentleF

Equipe XP

! our un trvil en quipeD on distingue T rles prinipux u sein d9une quipe X ! hveloppeur Y ! glient Y ! esteur Y ! rker Y ! wnger Y ! gohF

Dveloppeur
! ! ! !

goneption et progrmmtionD mme omt 3 rtiipe ux snes de plni(tionD vlue les thes et leur di0ult Y h(nition des test unitires Y smplmenttion des fontionnlits et des tests unitiresF

Client

! ritD explique et mtrise les snrios Y ! pi(e les tests fontionnels de reette Y ! h(nit les prioritsF

Testeur

! riture des tests de reette utomtiques pour vlider les snrios lients Y ! eut in)uer sur les hoix du lients en fontion de l  testtiilit des snriosF

Tracker
! ! ! !

uivre le plnning pour hque itrtion Y gomprendre les estimtions produites pr les dveloppeurs onernnt leur hrges Y sntergir ve les dveloppeurs pour le respet du plnning de l9itrtion ournte Y htetion des ventuels retrds et reti(tions si esoinF

Manager

! uprieur hirrhique des dveloppeurs X ! esponsle du projetF ! ri(tion de l stisftion du lient Y ! gontrle le plnning Y ! qestion des ressouresF

Coach

! qrnt du proessus X ! yrgnise et nime les snes de plni(tions Y ! pvorise l rtivit du groupeD n9impose ps ses solutions tehniques Y ! goup de gueulesF F F

SH G WT

Introduction UML 2

QFQ etreme progrmming

Q wv i wryhyhyvyqsi

Spcication avec XP

! s de douments d9nlyse ou de spi(tions dtillesF ! Les tests de recette remplacent les spcicationsF ! imergene de l9rhiteture u fur et mesure du dveloppementF

XP vs RUP ! Inconvnients de XP X

! polistion sur l9spet individuel du dveloppementD u dtriment d9une vue glole et des prtiques de mngement ou de formlistion Y ! wnquer de ontrle et de struturtionD risques de driveF ! Inconvnients de RUP X ! pit toutD mis lourdD  usine gz Y ! rfois di0ile mettre en oeuvre de fon spi(queF ! pour les petits projets en quipe de IP mx Y ! pour les gros projets qui gnrent euoup de doumenttionF

Introduction UML 2

SI G WT

R wyhvsesyx eexgi eig wv

4
4.1

Modlisation avance avec UML


Expression de contraintes avec OCL

Expression de contraintes avec UML

! ves di'rents digrmmes d9wv expriment en fit des contraintes ! Graphiquement ! gontrintes struturelles @un ttriut dns une lsseA ! gontrintes de types @sousEtypgeA ! gontrintes diverses @ompositionD rdinlitD etFA ! Via des proprits prdnies ! ur des lsses @{strt}A ! ur des rles @{ordered}A ! g9est toutefois insu0snt

Insusances d'UML pour reprsenter certaines contraintes


! gertines ontrintes  videntes

sont di0ilement exprimles ve wv seulF

 ve signtire d9une rte leue est titulire du ompte orrespondnt

Expression des contraintes en langage naturel ! Simple mettre en oeuvre X

! tilistion des notes en wv C texte lireD ! gomprhensile pr tousF ! Indispensable X ! houmenter les ontrintes est essentielD ! hteter les prolmes le plus tt possileF ! Probmlatique ! AmbiguD imprisD ! hi0ile d9exprimer lirement des ontrintes omplexesD ! hi0ile de lier le texte ux lments du modleF

Exemples de contraintes exprimables en OCL


! ! ! !

ve solde d9un ompte ne doit ps tre infrieur u douvert mximumF ve signtire d9une rte leue ssoie un ompte en est le titulireF ne rte leue est epte dns tous les distriuteurs des onsortiums de l nqueF FFF SQ G WT

Introduction UML 2

R wyhvsesyx eexgi eig wv

RFI ixpression de ontrintes ve ygv

 Le solde d'un compte ne doit pas tre infrieur au dcouvert maximum autoris 
context c ~: Compte inv : solde >= dMax

! i l9ttriut dMax de l lsse Compte est un rel et que le douvert est exprim pr une vleur ngtive X

! i le douvert est exprim pr un nomre positif @pr ex X QHH euros si on ne doit ps desendre en dessous de QHH eurosA
context c ~: Compte inv : solde >= - dMax

 Le signataire d'une carte bleue associe un compte est titulaire de ce compte  ! FFF est le titulire FFF
context CarteBleue inv : signataire = compte . titulaires

! FFF est

un des titulires FFF


context CarteBleue inv : compte . titulaires -> includes ( signataire )

 Une carte bleue est accepte dans tous les distributeurs des consortiums de la banque 

context CarteBleue inv : distributeur = compte . banque . consortium . distributeur

OCL pour l'criture de contraintes ! OCL : Object Constraint Language

! Parfaitement intgr UML ! mntique d9wv rite en ygv X tous les shms wv produits ont une trdution en ygv ! En pleine expansion SR G WT

! vngge de requtes et de ontrintes ! eltivement simple rire et omprendre ! syntxe purement textuelle sns symoles trnges

Introduction UML 2

RFI ixpression de ontrintes ve ygv

wyhvsesyx eexgi eig wv

! xouvelle version majeure ve wvPFH ! issentiel pour voir des modles su0semment pris ! he plus en plus d9outils ! ditionD vri(tionD gnrtion @prtielleA de odeFFF

Caractristiques d'OCL ! Langage d'expressions @fonctionnel A

! leursD expressionsD types ! portement typ ! s d9e'ets de ords ! Langage de spcicationD ps de progrmmtion ! rut niveu d9strtion ! s forment exutle @seul un sousEensemle l9estA ! ermet de trouver des erreurs euoup plus tt dns le yle de vie

Avantages et inconvnients d'OCL ! Points faibles

! s ussi rigoureux que des lngges de spi(tion formelle omme hwD ou f ! s de preuves formelles possiles dns tous les s ! uissne d9expression limite

Points forts
! ! ! !

eltivement simple rire et omprendre rs ien intgr wv fon ompromis entre simpliit et puissne d9expression ssge vers di'rentes plteformes tehnologiques

Contexte d'une contrainte

! ne ontrinte est toujours ssoie un lment de modle X le contexte de l ontrinteF ! heux tehniques pour spi(er le ontexte X ! in rivnt l ontrinte entre oldes {FFF} dns une noteF v9lment point pr l note est lors le ontexte de l ontrinte ! in utilsnt le mot l  ontext dns un doument quelonqueF

context CarteBleue inv : compte . titulaires - > includes ( signataire ) inv : code >0 and code <=9999 inv : retraitMax >10

Dnition de prdicats avec OCL

! ygv peut tre utilis pour drire trois types de prdicats ve les mots l X ! inv: invrints de lsses
inv : solde < dMax

! pre: prEonditions d9oprtions

Introduction UML 2

SS G WT

R wyhvsesyx eexgi eig wv


pre : montantARetirer >0

RFI ixpression de ontrintes ve ygv

! post: postEonditions d9oprtions


post : solde > solde@pre

Dnition d'expressions avec OCL

! ygv peut glement tre utilis pour drire des expressions ve les mots ls X ! def: dlrer des ttriuts ou des oprtions
def : nbEnfants : Integer

! init: spi(er l vleur initile des ttriuts


init : enfants - > size ()

! body: exprimer le orps de mthodes {query}


body : enfants - > select ( age < a )

! derive: d(nir des lements drivs @GA


derive : age <18

Accs un attribut ou une mthode ! Accs un attribut X objet.attribut


!

Accs une mthode objet.operation(param1, ... )


! ix X self.impots(1998)

! ix X self.dateDeNaissance

Navigation via une association ! Accder un ensemble d'objets lis un ojet donn
< objet >. < nomderole >

! ve rsultt est soit une vleur soit un ensemle ! ve type du rsultt dpend de l multipliit ile et de l prsene de l ontrinte {ordered} ! ! et@A ! yrderedet@A

Notes sur la navigation via les associations


pere - > size ()=1

! n lement est onverti en singleton lorsqu9une oprtion sur une olletion est pplique ! v nvigtion permet de tester si l vleur est d(nie @l9ensemle vide reprsente l vleur ind(nieA
pere - > isEmpty () epouse - > notEmpty () implies self . epouse . sexe = sexe :: feminin

! i une ssoition n9 ps de nom de rle lors on peut utiliser le nom de l lsse destintion ST G WT

Introduction UML 2

RFI ixpression de ontrintes ve ygv

wyhvsesyx eexgi eig wv

Navigation vers une association rexive

! i l9ssoition est r)exiveD pour viter les miguitsD il fut indiquer ve un rle entre rohets FFF omment est prourue l9ssoition
objet . nomAssociation [ nomDeRole ]

p . evaluation [ chefs ] p . evaluation [ employes ] p . evaluation [ chefs ]. note -> sum ()

Navigation via une association qualie


! es quli(
lien . nomderole [ valeur1 , valeur2 , ... ]

! ou ensemle d9ojets lis


lien . nomderole

b . compte [4029] b . compte compte

Invariant (inv) ! Prdicat associ une classe ou une association


! hoit tre vri( tout instnt ! ve ontexte est d(ni pr un ojet ! get ojet peut tre rfren pr self ! v9invrint peut tre nomm

context Personne inv pasTropVieux ~: age < 110 inv ~: self . age >= 0

Exemples d'invariants
context Personne inv ~: age >0 and self . age <110 inv mariageLegal ~: marie implies age > 16 inv enfantsOk ~: enfants - > size () < 20 inv ~: not enfants - > includes ( self ) inv ~: enfants - > includesAll ( filles ) inv ~: enfants - > forall ( e | self . age - e . age <14)

Introduction UML 2

SU G WT

R wyhvsesyx eexgi eig wv

RFI ixpression de ontrintes ve ygv

Pr-condition et post-condition ! Prdicats associs une opration

! ves pr-conditions doivent tre vries avant l'excution ! ves post-conditions sont vraies aprs l'excution ! self dsigne l9ojet sur lequel l9oprtion lieu ! hns une postEondition X ! @pre permet de fire rfrene l vleur vnt que oprtion ne soit e'etue ! result designe le resultt de l9oprtion ! ocsIsNew() indique si un ojet n9existit ps dns l9tt prdent
context Classe :: operation (...): ClasseValRetour pre nom1 ~: param1 < ... post ~: ... result > ...

Exemples de pr et post-conditions
context Personne :: retirer ( montant : Integer ) pre ~: montant > 0 post ~: solde < solde@pre - montant context Personne :: salaire (): integer post ~: result >= Legislation :: salaireMinimum context Compagnie :: embaucheEmploye ( p : Personne ): Contrat pre pasPresent ~: not employes - > includes ( p ) post ~: employes = employes@pre - > including ( p ) post ~: result . oclIsNew () post ~: result . compagnie = self and result . employe = p

Dnition additionnelle (def)

! sl est possile en ygv de d(nir dns une lsse existnteX ! de nouveaux attributs ! de nouvelles oprations
context Classe def ~: nomAtt ~: type = expr def ~: nomOp ...~: type = expr

! tile pour domposer des requetes ou ontrintes


context Personne def : ancestres ()~: Set ( Personne ) = parents -> union ( parents . ancestres () -> asSet ()) inv : not ancestres () - > includes ( self )

Expression du corps d'une mthode (body) ! Description d'une mthode sns e'et de ord @{isuery}A
! iquivlent une requte
context Personne : acf ( p : Personne ): OrderedSet ( Personne ) body ~: self . ancestres () -> select ( sexe = Sexe :: Feminin ) -> sortedBy ( dateDeNaissance ) context Personne

SV G WT

Introduction UML 2

RFI ixpression de ontrintes ve ygv

wyhvsesyx eexgi eig wv

def : ancestres ~: Set ( Personne ) = parents -> union ( parents . ancestres - > asSet ())

Syntaxe des expressions

! ygv est un lngge simple d9expressions ! constantes ! identificateur ! self ! expr op expr ! exprobjet.propobjet ! exprobjet.propobjet ( parametres ) ! exprcollection -> propcollection(parametres) ! package::package::element ! if cond then expr else expr endif ! let var : type = expr in expr

Accs aux proprits et aux lments


! ! ! !

 . permet d9der une proprit d'un objet  -> permet d9der une proprit d'une collection  :: permet d9der un lment d9un pquetgeD d9une lsseD F F F hes rgles permettent de mixer olletions et ojets
self . impots (1998) / self . enfants - > size () self . salaire () -100 self . enfants - > select ( sexe = Sexe :: masculin ) self . enfants - > isEmpty () self . enfants - > forall ( age >20) self . enfants - > collect ( salaire ) - > sum () self . enfants . salaire - > sum () self . enfants - > union ( self . parents ) - > collect ( age )

Types entiers et rels ! Integer


!

! leurs X ID ESD QRD PRQRQD FFF ! yprtions X CD ED BD divD modD sD mxD min

! leurs X IFSD IFQRD FFF ! yprtions X CD ED BD GD )oorD roundD mxD min ! ve type snteger est  onforme u type el

Real

Type boolen ! Boolean

! leurs X trueD flse ! yprtions X notD ndD orD xorD impliesD ifEthenEelseEendif ! v9vlution des oprteurs orD ndD if est prtielle !  true or x est toujours vriD mme si x est ind(ni !  flse nd x est toujours fuxD mme si x est ind(ni
( age <40 implies salaire >1000) and ( age >=40 implies salaire >2000) if age <40 then salaire > 1000 else salaire > 2000 endif

Introduction UML 2

SW G WT

R wyhvsesyx eexgi eig wv

RFI ixpression de ontrintes ve ygv

salaire > ( if age <40 then 1000 else 2000 endif )

Chanes de caractres ! String

! leurs XD9une phrse9 ! yprtions X ! = ! s.size() ! s1.concat(s2), s1.substring(i1,i2) ! s.toUpper(), s.toLower()


nom = nom . substring (1 ,1) . toUpper (). concat ( nom . substring (2 , nom . size ()). toLower ())

! ves hnes ne sont ps des squenes de rtres ! tring`bequene@hrterAD le type hrter n9existe ps

Utilisation des valeurs de types numrs


! Jour::Mardi ! not  #Mardi vnt wvPFH ! yprtions ! aD `b ! s de reltion d9ordre

epouse - > notEmpty () implies epouse . sexe = Sexe :: Feminin

Elments et singletons

! hns tout lngge typ il fut distinguer ! un lment e ! du singleton ontennt et lment Set{e} ! our simpli(er l nvigtion ygvD une conversion implicite est fite lorsqu9une oprtion sur une olletion est pplique un lement isol ! elem->prop est quivlent Set{elem}->prop ! self->size() = 1

Collections ! Ensembles : Set(T)


!

! ilments unique non ordonns Ensembles ordonns : OrderedSet(T) ! ilments uniques et ordonns ! Sac : Bag(T)

TH G WT

Introduction UML 2

RFI ixpression de ontrintes ve ygv

wyhvsesyx eexgi eig wv

! ilments rptles sns ordre Sequence : Sequence(T) ! ilments rptles mis ordonns ! golletion est le type de se Collection(T) !

Oprations de base sur les collections


! ! ! ! ! ! ! ! !

grdinlit X coll -> size() ide X coll -> isEmpty() xon vide X coll -> nonEmpty() xomre d9ourrenes X coll -> count(elem) epprtenne X coll -> includes( elem ) xon pprtenne X coll -> excludes( elem ) snlusion X coll -> includesAll(coll) ixlusionX coll -> excludesAll(coll) omme des lements X coll -> sum()

Oprations ensemblistes
! ! ! ! ! ! !

nion X ens->union(ens) hi'erene X ens1-ens2 ejout d9un lment X ens->including(elem) uppression d9un lment X ens->excluding(elem) gonversion vers une liste X ens->asSequence() gonversion vers un s X ens->asBag() gonvFvers un ensF ordF X ens->asOrderedSet()

Filtrage

! Select retient les lments vri(nt l ondition ! coll -> select( cond ) ! Reject limine es lements ! coll -> reject( cond ) ! Any sletionne l9un des lments vri(nt l ondition ! coll -> any( cond ) ! oprtion non dterministe ! utile lors de olletion ne ontennt qu9un lment ! retourne l vleur ind(nie si l9ensemle est vide
self . enfants - > select ( age >10 and sexe = Sexe :: Masculin )

Autres syntaxes pour le ltrage


! sl est glement possile de ! nommer l vrile ! d9expliiter son type

self . employe - > select ( age > 50) self . employe - > select ( p | p . age >50 ) self . employe - > select ( p : Personne | p . age >50) self . employe - > reject ( p : Personne | p . age <=50)

Quanticateurs

! ForAll est le qunti(teur universel ! coll -> forAll( cond ) ! Exists est le qunti(teur existentiel TI G WT

Introduction UML 2

R wyhvsesyx eexgi eig wv ! coll -> exists( cond )

RFI ixpression de ontrintes ve ygv

self . enfants - > forall ( age <10) self . enfants - > exists ( sexe = Sexe :: Masculin )

! sl ! ! !

est possile de nommer l vrile d9expliiter son type de prourir plusieurs vriles l fois
self . enfants -> exists ( e1 , e2 | e1 . age = e2 . age and e1 < > e2 )

Unicit

! etourne vri si pour hque vleur de l olletionD l9expression retourne une vleur difE frente ! coll->isUnique(expr) ! iquivlene entre
self . enfants - > isUnique ( prenom )} self . enfants -> forall ( e1 , e2 ~: Personne | e1 <> e2 implies e1 . prenom <> e2 . prenom )

! tile pour d(nir l notion de l en fh

T-uples

! ghmps nommsD ps d9ordre entre les hmps ! uples @vleursA


Tuple { x = -1.5 , y =12.6} Tuple { y =12.6 , x = -1.5} Tuple { y : Real =12.6 , x : Real = -1.5} Tuple { nom = ' dupont ' , prenom = ' leon ' , age =43}

! e prtir d9wv PFH ! h(nition de types tuples


TupleType ( x : Real , y : Real ) TupleType ( y : Real , x : Real ) TupleType ( nom : String , prenom : String , age : Integer )

Collections imbriques

! golletions imriques ! tusqu9 wv PFH ps de olletions de olletions r peu utilis et plus omplexe omprendre ! wise plt intuitive lors de l nvigtion
self . parents . parents

! wise plt pr defult li l9oprtion impliite ollet ! e prtir de wv PFH imritions ritrires des onstruteurs de types
Set ( Set ( Personne )) Sequence ( OrderedSet ( Jour ))

! rs utile pour spi(er des strutures non triviles TP G WT

Introduction UML 2

RFI ixpression de ontrintes ve ygv

wyhvsesyx eexgi eig wv

Conservation de l'imbrication pour la navigation


! v9oprtion collect met plt les olletions ! utile pour nviger
enfants . enfants . prenom = enfants - > collect ( enfants ) - > collect ( prenom ) = Bag \{ ' pierre ' , ' paul ' , ' marie ' , ' paul '}

! CollectNested permet de onserver l9imrition


enfants - > collectNested ( enfants . prenom ) = Bag { Bag { ' pierre ' , ' paul '} , Bag \{ ' marie ' , ' paul '}}

Itrateur gnral

! v9itrteur le plus gnrl est iterate ! ves utres itrteurs @forllD existD seletD etFA en sont des s prtiulier ! oll Eb iterte@
coll - > iterate ( elem ~: Type1 ~; accumulateur : Type2 = < valInit > | < expr > )

! ixemple
enfants - > iterate ( e : Enfant ; ac : Integer =0 | acc + e . age )

Ordre vs. Tri

! golletions ordonnes ! Sequence ! OrderedSet ! F F F mis ps forment tries ! quene simple @l9ordre ompteA X ! Sequence { 12, 23, 5, 5, 12 } ! quene trie X ! Sequence { 5, 5, 12, 12, 23 }

Tri d'une collection

! our trier une olletion en fontion d9une expression ! coll -> sortedBy(expr) ! v9oprtion  ` doit tre d(nie sur le type orrespond expr
enfants - > sortedBy ( age ) let ages = enfants . age -> sortedBy ( a | a ) in ages . last () - ages . first () enfants - > sortedBy ( enfants - > size ()) - > last ()

! ve rsultt est de type ! OrderedSet si l9oprtion est pplique sur un et ! Sequence si l9oprtion est pplique sur un fg

Introduction UML 2

TQ G WT

RFP higrmmes d9ttsEtrnsitions

R wyhvsesyx eexgi eig wv

4.2

Diagrammes d'tats-transitions

Automates

! n automate tats nis est l spi(tion de l squene d9tts que suir un ojet u ours de son yle de vieF ! n tel utomte reprsente le omportement d9un lsseur dont les sorties ! ne dpendent ps seulement de ses entresD ! mis ussi d9un historique des solliittions pssesF ! get historique est rtris pr un tatF ! ves ojets hngent d9tt en rponse des vnements extrieurs donnnt lieu des transitions entre ttsF ! uf s prtiuliersD hque instntD hque ojet est dns un et un seul ttF

Etat et transition

! ves tats sont reprsents pr des retngles ux oins rrondis ! ves transitions sont reprsentes pr des rs orients lint les tts entre euxF ! gertins ttsD dits  composites  D peuvent ontenir des sousEdigrmmesF

ves digrmmes d9ttEtrnsition d9wv reprsentent en fit des utomtes pile ve emoteE ment et onurrene et ps seulement des utomtes tts (nis omme dns les premires versions d9wv

Diagramme d'tat-transition

! v9orgnistion des tts et des trnsitions pour un lsseur donn est reprsente dns un diagramme d'tats-transitionsF ! ve modle dynmique omprend plusieurs diagrammes d'tatsF ghque digrmme d9tts ne onerne qu9une seule lsseF
Attention

ghque utomte tts (nis s9exute onurremment et peut hnger d9tt de fon indpendnte des utresF

Exemple de diagramme d'tats-transitions


Introduction UML 2
TS G WT

R wyhvsesyx eexgi eig wv

RFP higrmmes d9ttsEtrnsitions

Etat initial et tat nal ! L'tat initial est un pseudoEtt qui d(nit le point de dprt pr dfut pour l9utomte
ou le sousEttF ! vorsqu9un ojet est rD il entre dns l9tt initilF

L'tat nal est un pseudoEtt qui indique que l9exution de l9utomte ou du sousEtt
est termineF

Evnement dclencheur

! ves trnsitions d9un digrmme d9ttsEtrnsitions sont dlenhes pr des vnements dclencheursF ! n ppel de mthode sur l9ojet ournt gnre un vnement de type callF ! ve pssge de fux vri de l vleur de vrit d9une ondition oolenne gnre imE pliitement un vnement de type changeF ! v reption d9un signl synhroneD expliitement mis pr un utre ojetD gnre un vnement de type signalF ! v9oulement d9une dure dtermine prs un vnement donn gnre un vnement de type afterF r dfutD le temps ommene s9ouler ds l9entre dns l9tt ourntF

v9vnement dlenheur est indiqu te de l )he reprsentnt l trnsition

Evnements call et signal

! n vnement de type call ou signal est dlr insi X


nomEvenement ( params )

! ghque prmtre l forme X


param : ClasseParam

! ves vnements de type call sont des mthodes dlres u niveu du digrmme de lssesF ! ves signaux sont dlrs pr l d(nition d9une lsse portnt le strotype signlD ne fournissnt ps d9oprtionsD et dont les ttriuts sont interprts omme des rgumentsF

Evnements change et after

! n vnement de type change est introduit de l fon suivnte X


when ( conditionBooleenne )

! sl prend l forme d9un test ontinu et se dlenhe potentiellement hque hngement de vleurs des vriles intervennt dns l onditionF TT G WT

Introduction UML 2

RFP higrmmes d9ttsEtrnsitions

R wyhvsesyx eexgi eig wv

! n vnement temporel de type after est spi( pr X


after ( duree )

! ve prmtre s9vlue omme une dureD pr dfut oule depuis l9entre dns l9tt ourntF ! r exemple X fter@IH seondesAF

Transition simple

! ne transition entre deux tats est reprsente pr un r qui les lie l9un l9utreF ! ille indique qu9une instne peut hnger d9tt et exuter ertines tivitsD si un vnement dlenheur se produit et que les onditions de grde sont vri(esF ! syntaxe est l suivnte X
nomEvenement ( params ) [ garde ] / activite

! v grde dsigne une ondition qui doit tre remplie pour pouvoir dlenher l trnsiE tionD ! v9tivit dsigne des instrutions e'etuer u moment du tirF

Point de dcision

! yn peut reprsenter des lterntives pour le frnhissement d9une trnsitionF ! yn utilise pour el des pseudoEtts prtiuliers X ! Les points de jonction @petit erle pleinA permettent de prtger des segments de trnsitionF ! sls ne sont qu9un rouri d9ritureF ! sls permettent des reprsenttions plus omptesF ! Les points de choix @losngeA sont plus que des rouris d9ritureF

Simplication avec les points de jonction

! our emprunter un heminD toutes les grdes le long de e hemin doivent s9vluer vri ds le frnhissement du premier segmentF

Introduction UML 2

TU G WT

R wyhvsesyx eexgi eig wv

RFP higrmmes d9ttsEtrnsitions

Reprsentation d'alternativesavec les points de jonction

Utilisation des points de choix

! Les gardes aprs le point de choix sont values u moment o il est tteintF ! gel permet de ser le hoix sur des rsultts otenus en frnhissnt le segment vnt le point de hoixF ! iD qund le point de hoix est tteintD uun segment en vl n9est frnhissleD le modle est mal formF gontrirement ux points de jontionD les points de hoix ne sont ps de simples rouris d9ritureF

Transition interne

! n ojet reste dns un tt durnt une ertine dure et des trnsitions internes peuvent intervenirF ! ne transition interne ne modi(e ps l9tt ourntD mis suit glolement les rgles d9une trnsition simple entre deux ttsF ! rois dlenheurs prtiuliers sont introduits permettnt le tir de trnsitions internes X entry/D do/D et exit/F

Dclencheurs de transitions internes prdnis

!  entry d(nit une tivit e'etuer hque fois que l9on rentre dns l9tt onsidrF !  exit d(nit une tivit e'etuer qund on quitte l9ttF !  do d(nit une tivit ontinue qui est rlise tnt que l9on se trouve dns l9ttD ou jusqu9 e que le lul ssoi soit terminF ! yn pourr dns e dernier s grer l9vnement orrespondnt l (n de ette tivit @ompletion eventAF

Reprsentation des transitions internes

! ves transitions internes sont spi(es dns le omprtiment infrieur de l9ttD sous le omprtiment du nomF

TV G WT

Introduction UML 2

RFP higrmmes d9ttsEtrnsitions

R wyhvsesyx eexgi eig wv

! ghque trnsition interne est drite selon l syntxe suivnte X


nomEvenement ( params ) [ garde ] / activiteARealiser

Etat composite

! n tat compositeD pr opposition un tt dit  simple D est dompos en deux ou plusieurs sousEttsF ! out tt ou sousEtt peut insi tre dompos en sousEtts imriqus sns limite priori de profondeurF ! n tt omposite est reprsent pr les deux omprtiments de nom et d9tions internes hituellesD et pr un omprtiment ontennt le sousEdigrmmeF

Etats composites et tats initiaux/naux

! ves trnsitions peuvent avoir pour cible la frontire d'un tat compositeF ille sont lors quivlentes une trnsition ynt pour ile l9tt initil de l9tt ompositeF ! ne trnsition ayant pour source la frontire d'un tat composite est quivlente une trnsition qui s9pplique tout sousEtt de l9tt omposite soureF ! gette reltion est trnsitive et peut  trverser plusieurs niveux d9imritionF

Etats composites et transitions internes

! hepuis ittIID qund event survient ! yn produit l squene d9tivits uitteriIID uitteriID tionID intreriPD intrerPID initiliserD intrerPP ! v9ojet se trouve lors est dns ittPPF TW G WT

Introduction UML 2

R wyhvsesyx eexgi eig wv

RFP higrmmes d9ttsEtrnsitions

Historique

! n pseudo-tat historique est not pr un r erlF ! ne trnsition ynt pour ile le pseudoEtt historique est quivlente une trnsition qui pour ile le dernier tt visit dns l rgion ontennt le rF ! rB dsigne un historique profondD d un historique vlle pour tous les niveux d9imriE tionF

Interface des tats composites


! our pouvoir reprsenter un sous tt indpendmment d9un mroEttD on reours des points de connexionF ! eve un pour les points de sortie ! ides pour les points d9entre ! ges interfes permettent d9strire les sousEtts des mroEtts @rutilisilitAF

Etat concurrent
! eve un sprteur en pointillsD on peu reprsenter plusieurs utomtes s9exutnt inE dpendmmentF ! n ojet peut lors tre simultnment dns plusieurs tats concurrentsF UH G WT

Introduction UML 2

RFP higrmmes d9ttsEtrnsitions

R wyhvsesyx eexgi eig wv

Transition concurrente

! ne trnsition fork orrespond l rtion de deux tts onurrentesF ! ne trnsition join orrespond une rrire de synhronistion qui supprime l onurE reneF ! our pouvoir ontinuer leur exutionD toutes les thes onurrentes doivent prlleE ment tre prtes frnhir l trnsitionF

Introduction UML 2

UI G WT

RFQ higrmmes d9tivits

R wyhvsesyx eexgi eig wv

4.3

Digrammes d'activits

Modlisation des traitements

! ves diagrammes d'activit o'rent une mnire grphique et non migu pour modliser les tritementsF ! gomportement d9une mthode ! hroulement d9un s d9utilistion ! ne activit reprsente une exution d9un mnismeD un droulement d9tpes squenE tiellesF ve pssge d9une tivit l9utre utre est mtrilis pr une transitionF ! ges digrmmes sont ssez semlles ux ttsEtrnsitions mis ve une interprttion di'renteF ! ves digrmmes d9tats-transitions sont d(nis pour hque lsseur et n9en font ps inE tervenir plusieursF ! e l9inverseD les diagrammes d'activit permettent une desription s9'rnhissnt @prtielleE mentA de l struturtion de l9pplition en lsseursF ! v vision des digrmmes d9tivits se rpprohe des lngges de progrmmtion imprE tive @gD gCCD tvA ! ves tts reprsentent des luls ! sl n9y ps d9vnements externes mis des ttentes de (ns de luls ! sl peut y voir de l onurrene entre tivits

Une vision transversale des traitements

Exemple de diagramme d'activits

Introduction UML 2

UQ G WT

R wyhvsesyx eexgi eig wv

RFQ

higrmmes d9tivits

Activit

! ves activits drivent un tritementF ! ve )ot de ontrle reste dns l9tivit jusqu9 e que les tritements soient terminsF ! yn peut d(nir des vriles loles une tivit et mnipuler les vriles essiles depuis le ontexte de l9tivit @lsse ontennte en prtiulierAF ! ves tivits peuvent tre imriques hirrhiquement X on prle lors d9tivits omE positesF

Transition

! ves transitions sont reprsentes pr des )hes pleines qui onnetent les tivits entre ellesF ! illes sont dlenhes ds que l9tivit soure est termineF ! illes provoquent utomtiquement le dut immdit de l prohine tivit dE lenher @l9tivit ileAF ! gontrirement ux tivitsD les trnsitions sont frnhies de mnire tomiqueD en prinipe sns dure pereptileF ves trnsitions spi(ent l9enhnement des tritements et d(nissent le )ot de ontrleF

Structure de contrle conditionnelle

! ixpression de onditions u moyen de trnsitions munies de gardes conditionnelles ! ges trnsitions ne peuvent tre empruntes que si l grde est vrieF ! yn dispose d9une luse [else] qui est vlide si et seulement si toutes les utres grdes des trnsitions ynt l mme soure sont fussesF ! ves onditions sont notes entre rohets ! our mieux mettre en videne un rnhement onditionnelD on peut utiliser les points de hoix @losngesAF ! ves points de hoix montrent un iguillge du )ot de ontrleF

Exemples de structures conditionnelles

UR G WT

Introduction UML 2

RFQ higrmmes d9tivits

R wyhvsesyx eexgi eig wv

Activits structures

! ves activits structures utilisent les strutures de ontrle usuelles @onditionnelles et ouleA trvers une syntxe qui dpend de l9outilF ! v syntxe prise de es nnottions ps d(nie dns l norme wvF ! hns une tivit strutureD on d(nit les rguments d9entre et les sorties pr des )hes endresF

Partitions

! our modliser un tritement mettnt en oeuvre plusieurs lsseursD on peut spi(er le lsseur responsle de hque tivitF ! ves partitions permettent d9ttriuer les tivits des lments prtiuliers du modleF ! ne prtition peut elleEmme tre dompose en sousEprtitionsF ! our spi(er qu9une tivit est e'etue pr un lsseur prtiulierD on l positionne dns l prtition orrespondnteF

Partitions multidimensionnelles

Partitions explicites

! gette nottion est moins enomrnte grphiquement ! outefoisD elle met moins ien en vleur l9pprtenne de groupes d9tivits un mme onteneurF

Introduction UML 2

US G WT

R wyhvsesyx eexgi eig wv

RFQ

higrmmes d9tivits

Arguments et valeurs retournes

! ves digrmmes d9tivits prsents jusqu9ii montrent ien le omportement du )ot de ontrleF ! ourtntD le )ot de donnes n9pprt psF ! i une tivit est ien dpte l desription d9une oprtion d9un lsseurD il fut un moyen de spi(er les rguments et vleurs de retour de l9oprtionF g9est le rle ! des pinsD ! des noeudsD ! des ots d'objets ssoisF

Pin

! n pin reprsente un point de onnexion pour une tionF ! v9tion ne peut duter que si l9on 'ete une vleur hun de ses pins d9entreF ! ves vleurs sont psses pr opieF ! und l9tivit se termineD une vleur doit tre 'ete hun des pis de sortie

Flot de donnes

! n ot d'objets permet de psser des donnes d9une tivit une utreF ! he fitD un r qui pour origine et destintion un pin orrespond un )ot de donnesF

! n noeud d'objets permettent de mieux mettre en vleur les donnesF ! g9est un onteneur typ qui permet le trnsit des donnesF

Annotation des ots de donnes

! n )ot d9ojets peut porter une tiquette mentionnnt deux nnottions prtiulires X !  transformation  indique une interprttion prtiulire de l donne trnsmise pr le )otF !  selection  indique l9ordre dns lequel les ojets sont hoisis dns le noeud pour le quitterF

Concurrence

! ves digrmmes d9tivits permettent en prinipe de reprsenter des tivits squenE tiellesF ! xnmoinsD on peut reprsenter des activits concurrentes ve X ! ves rres de synhronistionD ! ves noeuds de ontrle de type  )ow (nl F

UT G WT

Introduction UML 2

RFQ higrmmes d9tivits

R wyhvsesyx eexgi eig wv

Barre de synchronisation

! lusieurs trnsitions peuvent voir pour soure ou pour ile une barre de synchronisationF ! vorsque l rre de synhronistion plusieurs trnsitions en sortieD on prle de trnsiE tion de type fork qui orrespond une duplication du ot de contrle en plusieurs )ots indpendntsF ! vorsque l rre de synhronistion plusieurs trnsitions en entreD on prle de trnsiE tion de type join qui orrespond un rendez-vous entre des )ots de ontrleF ! our plus de ommoditD il est possile de fusionner des rres de synhronistion de type join et forkF ! yn lors plusieurs trnsitions entrntes et sortntes sur une mme rreF ! n )ot de ontrle qui tteint un noeud de ontrle de type  ow nal ! ves utres )ots de ontrle ne sont ps 'etsF

Noeud de contrle de type  ow nal 

est dtruitF

! ge type de noeud est moins  fort qu9un noeud de ontrle nalF ! hns e sD tous les utres )ots de ontrle de l9tivit sont interrompus et dtruitsF

Actions de communication

! ves actions de communication grent ! le pssge et le retour de prmtresD ! les mnismes d9ppels d9oprtions synhrones et synhronesF ! ves tions de ommunition peuvent tre employs omme des tivits dns les diE grmmes d9tivitF

! ves tions de type call orrespondent des ppels de produre ou de mthodeF ! Call operation orrespond l9ppel d9une oprtion sur un lsseurF ! Call behavior orrespond l9invotion d9un omportement spi( l9ide d9un diE grmme wv ! hns les deux sD il est possile de spi(er des rguments et d9otenir des vleurs en retourF ! ves tions accept call et reply peuvent tre utilises du t repteur pour domposer l reption de l9ppelF

Introduction UML 2

UU G WT

R wyhvsesyx eexgi eig wv

RFQ

higrmmes d9tivits

Appel asynchrone

! ves ppels synhrones de type send orrespondent des envois de messges synhronesF ! ve broadcast signal permet d9mettre vers plusieurs destintires l fois ! gette possiilit est rrement o'erte pr les lngges de progrmmtionF ! v9tion symtrique t repteur est accept eventD qui permet l reption d9un signlF

Exceptions

! ves exceptions permettent d9interrompre un tritement qund une sitution qui dvie du tritement norml se produitF illes ssurent une gestion plus propre des erreurs qui peuvent se produire u ours d9un tritementF ! yn utilise des pins d9exeption @ve un tringleA un pour grer l9envoi d9exeptions et l pture d9exeptionsF

! n )ot de donnes orrespondnt une exeption est mtrilis pr une )he en  zigue zgue F

Exemple de traitement d'exceptions

Rgions interruptibles

! ge mnisme est nlogue elui des interruptionsD mis il est moins dtillF ! ves rgions interruptibles sont mieux dptes ux phses de modlistion fontionnellesF ! ne rgion interruptile est reprsente pr un dre rrondi en pointillsF ! i l9vnement d9interruption se produitD toutes les tivits en ours dns l rgion interruptile sont stoppes ! ve )ot de ontrle suit l )he en zigzg qui quitte l rgionF

Exemple de rgion interruptible

UV G WT

Introduction UML 2

RFQ higrmmes d9tivits

R wyhvsesyx eexgi eig wv

Types de zones d'expansion ! Parallel


! !

! ves exutions de l9tivit interne sur les lments de l olletion sont indpendntes et peuvent tre rlises dns n9importe quel ordre ou mme simultnmentF

Iterative Stream

! ves ourrenes d9exution de l9tivit interne doivent s9enhner squentiellementD en suivnt l9ordre de l olletion d9entreF ! ves lments de l olletion sont psss sous l forme d9un )ux de donnes l9tivit interneD qui doit tre dpte ux tritements de )uxF

Introduction UML 2

UW G WT

RFR higrmmes de ommunition

R wyhvsesyx eexgi eig wv

4.4

Diagrammes de communication

Diagrammes de squence

! ves digrmmes de squene permettent de modliser l9hnge d9informtions entre difE frents lsseurs ! sls sont un type de digrmmes d9interaction

Diagrammes d'interaction

! ves digrmmes de ommunition et les digrmmes de squenes sont deux types de digrmme d9interaction ! n diagramme de squence montre des intertions sous un ngle temporelD en mettnt l9emphse sur le squenement temporel de messges hngs entre des lignes de vie ! n diagramme de communication montre une reprsenttion sptile des lignes de vieF ! sls reprsentent l mme hoseD mis sous des formes di'rentesF ! e es digrmmesD wv PFH en joute un troisime X le diagramme de timingF ! on usge est limit l modlistion des systmes qui s9exutent sous de fortes onE trintes de tempsD omme les systmes temps relF

Diagrammes de squence et de communication

Rles et connecteurs

! ve rle permet de d(nir le ontexte d9utilistion de l9intertionF VI G WT

Introduction UML 2

R wyhvsesyx eexgi eig wv

RFR

higrmmes de ommunition

ne rle dns un digrmme de ommunition orrespond une ligne de vie dns un digrmme de squenesF ! ves reltions entre les lignes de vie sont ppeles  connecteurs F ! n onneteur se reprsente de l mme fon qu9une ssoition mis l smntique est plus lrge X un onneteur est souvent une ssoition trnsitoireF ! gomme pour les digrmmes de squeneD l syntxe d9une ligne de vie est X
< nomRole >[ < selecteur >]: < nomClasseur >

Types de messages

! gomme dns les digrmmes de squeneD on distingue deux types de messges X ! n messge synchrone loque l9expditeur jusqu9 l rponse du destintireF ve )ot de ontrle psse de l9metteur u repteurF ! n messge asynchrone n9est ps loqunt pour l9expditeurF ve messge envoy peut tre pris en ompte pr le repteur tout moment ou ignorF

Reprsentation des messages

! ves )hes reprsentnt les messges sont tres ct des onneteurs qui les supportentF fien fire l distintion entre les messges et les onneteurs X on pourrit voir un onE neteur sns messgeD mis jmis l9inverseF
Attention

Implmentation de messages synchrones


public class Conducteur { private Voiture voiture ; public void addVoiture ( Voiture voiture ){ if ( voiture != null ){ this . voiture = voiture ; } } public void conduire (){ voiture . demarrer (); } public static void main ( String [] argv ){ conducteur . conduire (); } } public class Voiture { public void demarrer (){...} }

VP G WT

Introduction UML 2

RFR higrmmes de ommunition

R wyhvsesyx eexgi eig wv

Numros de squence des messages

! our reprsenter les spets temporelsD on djoint des numros de squence ux messgesF ! hes messges suessifs sont ordonns selon un numro de squene roissnt @ID PD QD FFF ou enore QFID QFPD QFQD FFFAF ! hes messges envoys en sde @ex X ppel de mthode l9intrieur d9une mthodeA portent un numro d9emotement ve une nottion pointe ! IFID IFPD FFF pour des messges ppels pr une mthode dont l9ppel portit le numro I ! PFFID PFFPD FFF pour des messges ppels pr une mthode dont l9ppel portit le numro PF

Equivalence avec un diagramme de squence

Messages simultans

! vorsque des messges sont envoys en parallleD on les numrote ve des lettres ! IFD IFDFFF pour des messges simultns envoys en rponse un messge dont l9envoi portit le numro I

Oprateurs de choix et de boucles

! Pas d'oprateurs combins dns les digrmmes de ommunition ! *[<clauseItration>] reprsente une itrtionF VQ G WT

Introduction UML 2

R wyhvsesyx eexgi eig wv

RFR

higrmmes de ommunition

! v luse d9itrtion peut tre exprime dns le formt iXaIFFn ! i 9est une ondition oolenneD elleEi reprsente l ondition d9rrt ! *[<clauseItration>] reprsente un hoixF v luse de ondition est une ondition oolenneF

Syntaxe des messages ! Syntaxe omplte des messges est X

! numeroSquence [expression] : message !  messge l mme forme que dns les digrmmes de squene Y !  numroquene reprsente le numro de squenement des messges Y !  expression prise une itrtion ou un emrnhementF ! Exemples : ! 2 : affiche(x,y) X messge simpleF ! 1.3.1 : trouve("Hadock") X ppel emotF ! 4 [x < 0] : inverse(x,couleur) X onditionnelF ! 3.1 *[i:=1..10] : recommencer() X itrtionF

Collaboration

! ne collaboration montre des instnes qui ollorent dns un ontexte donn pour mettre en oeuvre une fontionnlit d9un systmeF ! ne ollortion est reprsente pr une ellipse en trits pointills omprennt deux omE prtimentsF ! ve omprtiment suprieur ontient le nom de l ollortion ynt pour syntxe X
< nomRole >: < nomType >[ < multiplicite >]

! ve omprtiment infrieur montre les prtiipnts l ollortionF

Exemple de collaboration

Diagramme de collaboration

! ne ollortion peut ussi se reprsenter pr une ellipse sns omprtimentD portnt le nom de l ollortion en son seinF ves instnes sont relies l9ellipse pr des lignes qui portent le nom du rle de hque instneF ! yn peut insi former des diagrammes de collaborationsF

VR G WT

Introduction UML 2

RFR higrmmes de ommunition

R wyhvsesyx eexgi eig wv

Collaborations et interactions

! ves collaborations donnent lieu des interactions ! ves intertions doumentent les ollortions ! ves ollortions orgnisent les intertionsF ! ves intertions se repsentent indi'remment pr des digrmmes de communication ou de squence

Introduction UML 2

VS G WT

RFS higrmmes de omposnts et de dploiement wyhvsesyx eexgi eig wv R

4.5

Diagrammes de composants et de dploiement

Composant

! n composant logiiel est une unit logiielle utonome u sein d9un systme glol ou d9un sousEsystmeF ! g9est un lsseur strutur prtiulierD muni d9une ou plusieurs interfes requises ou ofE fertesF

Diagramme de composant

! ves diagrammes de composants reprsentent l9rhiteture logiielle du systmeF ! ves omposnts peuvent tre domposs en sous-composantsD le s hntF ! ves liens entre omposnts sont spi(s l9ide de dpendances entre leurs interfacesF ! ve  lge interne d9un omposnt est spi( pr les connecteurs de dlgationF n tel onneteur onnete un port externe du omposnt ve un port de l9un de ses sousEomposnts internesF

Exemple de modlisation d'un composant

Intrt des diagrammes de composants

! ves digrmmes de omposnts permettent de ! truturer une rhiteture logiielle un niveu de grnulrit moindre que les lsses ! ves omposnts peuvent ontenir des lssesF ! pi(er l9intgrtion de riques logiielles tieres @omposnts itfD gyfeD gywC ou FxetD hvFFFA Y ! sdenti(er les omposnts rutilislesF ! n omposnt est un espe de noms qu9on peut employer pour orgniser les lments de oneptionD les s d9utilistionD les intertions et les rtefts de odeF

Architecture matrielle

! in dernier lieuD un systme doit s9exuter sur des ressoures mtrielles dns un environE nement mtriel prtiulierF ! wv permet de reprsenter un environnement d9exution insi que des ressoures physiques @ve les prties du systme qui s9y exutentA gre ux diagrammes de dploiementF VU G WT

Introduction UML 2

R wyhvsesyx eexgi eig wv higrmmes de omposnts et de dploiement RFS ! v9environnement d9exution ou les ressoures mtrielles sont ppels  noeuds F ! ves prties d9un systme qui s9exutent sur un noeud sont ppeles  rtefts F

Noeud

! n noeud est une ressoure sur lquelle des rtefts peuvent tre dploys pour tre exutsF ! g9est un lsseur qui peut prendre des ttriutsF ! n noeud se reprsente pr un ue dont le nom respete l syntxe des noms de lssesF ! ves noeuds peuvent tre ssois omme des lsses et on peut spi(er des multipliitsF

Artefact

! n artefact est l spi(tion d9une entit physique du monde relF ! sl se reprsente omme une lsse pr un retngle ontennt le motEl artefact suivi du nom de l9rteftF ! n rteft dploy sur un noeud est symolis pr une )he en trit pointill qui porte le strotype dploy et qui pointe vers le noeudF ! v9rteft peut ussi tre inlus diretement dns le ue reprsentnt le noeudF ! lusieurs strotypes stndrd existent pour les rtefts X documentD excutableD chierD librairieD sourceF

Instanciation de noeuds et d'artefacts

! ves noms des instnes de noeuds et d9rtefts sont soulignsF

Excution des composants

! On utilise des ches de dpendance pour montrer la capacit d'un noeud prendre en

charge un type de composant.

VV G WT

Introduction UML 2

S fyxxi esi hi ve wyhvsesyx yfti

5
5.1

Bonnes pratiques de la modlisation objet


Design Patterns

Un concept issu de l'architecture

! ghristopher elexnderD rhiteteD d(nit en IWUU les patrons de conception omme ! v desription d9un prolme rmnent et de s solution ! ne solution pouvnt tre utilise des millions de fois sns tre deux fois identique ! ne forme de oneptionD ptternD modleD ptron de oneption ! ge onept ttire les herheurs en gyy ds les nnes VH !  Design Patterns of Reusable Object-Oriented  ! GOF : Erich Gamma, Richard Helm, Ralph Johson et John Vlissides ! eddisonEesleyD IWWS

Patron de conception logicielle

! n patron de conception @design ptternA est l desription d9une solution lssique un prolme rurentF ! sl drit une prtie de l solutionF F F ! ve des reltions ve le systme et les utres prtiesF ! g 9est une tehnique d 9rhiteture logiielleF ! ge n9est ps ! ne rique X l9pplition d9un pttern dpend de l9environnement ! ne rgle X un pttern ne peut ps s9ppliquer mniquement ! ne mthode X ne guide ps une prise de dision Y un pttern est l dision prise

Documentation d'un patron de conception

! ves prinipux lments de desription d9un pttern sont X ! ve nom du pttern rsume le prolme de designF ! on intention est une ourte desription des ojetifs du ptternD de s rison d9treF ! ves indication d9utilistion drivent les s o le pttern peut tre utileF ! v motivation montre un s prtiulier dns lequel le ptron peut tre utilisF ! v structure est une reprsenttion grphique des lsses du modleF hns l9ouvrge du qyp @et e oursAD utilistion d9ywD ntre d9wv
Attention

Avantages des patrons de conception ! Capitalisation de l'exprience X rutilisation


! ! endre l oneption euoup plus rpide

de solutions qui ont prouv leur e0it

gre un niveu d9strtion plus lev ! dution du nomre d9erreursD d9utnt que les ptrons sont exmins ve ttention vnt d9tre pulis ! Communication plus ise ! irire du ode filement omprhensile pr les utres ! Apprentissage en suivnt de ons exemples

Elaboration de constructions logicielles de meilleure qualit

Inconvnients des patrons de conception ! xessit d9un eort de synthse onsquent


! eonntreD strireF F F ! xessit d9un apprentissage et d9expriene ! ves ptterns  se dissolvent en tnt utiliss

Introduction UML 2

VW G WT

S fyxxi esi hi ve wyhvsesyx yfti

SFI hesign tterns

! ves ptrons sont nombreux @PQ dns l9ouvrge du qypD d9utres sont pulis rgulireE mentA ! vesquels sont semlles c ! ves ptrons sont prfois de niveux di'rents X ertins ptterns s 9ppuient sur d 9utresFFF

Catgories de patrons de conception ! Patrons de cration


! !

! sls d(nissent omment fire l9instnition et l on(gurtion des lsses et des ojetsF

Patrons de structure

! sls d(nissent l9usge des lsses et des ojets dns des grndes strutures insi que l sprtion entre l9interfe et l9implmenttionF

Patrons de comportement

! sls d(nissent l mnire de grer les lgorithmes et les divisions de responsilitsF

Classication des patrons du GOF ! Cration :


! !

! Objets X estrt ftoryD fuilderD rototypeD ingleton ! Classes X ptory method ! Objets X edpterD fridgeD gompositeD heortorD pdeD plyweightD roxy ! Classes X edpter

Structure :

Comportement :

! Objets X ghin of responsilityD gommndD stertorD wementoD yserverD tteD trtegy ! Classes X snterpreterD emplte method

Creational patterns

! Formes de cration pour X ! estrire le processus d'instanciation des ojetsF ! endre indpendnt de l fon dont les ojets sont rsD ompossD ssemlsD reprsenE tsF ! inpsuler l onnissne de l lsse onrte qui instnieF ! gher e qui est rD qui reD omment et qundF

Exemples de Creational patterns

! AbstractFactory pour psser un prmtre l rtion qui d(nit e que l9on v rer ! Builder pour psser en prmtre un ojet qui sit onstruire l9ojet prtir d9une deE sription ! FactoryMethod pour que l lsse solliite ppelle des mthode strites ! Prototype X des prototypes vris existent qui sont opis et ssemls ! Singleton pour grntir qu9il n9y it qu9une seule instne de l lsse

Singleton ! Intention X

! qrntir qu9une lsse n9 qu9une seule instne et fournit un point d9s glol ette lsseF ! Indications X ! 9il doit n9y voir extement qu9une instne de l lsse et qu9elle doit tre essile ux lients de mnire gloleF ! i l9instne doit pouvoir tre sousElsse et si l9extension doit tre essile ux lients sns qu9ils n9ient modi(er leur odeF

WH G WT

Introduction UML 2

SFI hesign tterns !

S fyxxi esi hi ve wyhvsesyx yfti

Motivation X

! pooler d9impressionD gestionnire d90hge ! qnrteur de nomres ltoires ve grine

Singleton : Structure

Singleton : Implmentation
public class Singleton { private static Singleton uniqueInstance = null ; private Singleton () {...} public static Singleton Instance () { if ( uniqueInstance == null ) uniqueInstance = new Singleton (); return uniqueInstance ; } }

A ajouter :

! ettriuts et mthodes spi(ques de l lsse singleton en questionF ! rmtres de onstruteur si esoin F

Structural patterns

! Formes de structure : ! gomment les ojets sont ssemls ! ves ptterns sont omplmentires les uns des utre

Exemples de Structural patterns


! ! ! ! ! ! !

Adapter pour rendre un ojet onforme un utre Bridge pour lier une strtion une implnttion Composite X s sur des ojets primitifs et omposnts Decorator pour jouter des servies un ojet Facade pour her une struture omplexe Flyweight pour de petits ojets destins tre prtgs Proxy qund un ojet en msque un utre

Adapter ! Intention X

! gonvertir l9interfe d9une lsse en une utre qui soit onforme ux ttentes d9un lientF v9dptteur permet des lsses de ollorer mlgr des interfes inomptilesF ! Indications X ! yn veut utiliser une lsse existnteD mis son interfe ne onide ps ve elle esE ompteF ! yn souhite rer une lsse rutilisle qui ollorer ve des lsses enore inonnuesD mis qui n9uront ps nessirement l9interfe esompte WI G WT

Introduction UML 2

S fyxxi esi hi ve wyhvsesyx yfti

SFI hesign tterns

Adapter : Motivation

Adapter : Structure

Bridge ! Intention X

! houple une strtion de son implmenttion (n que les deux lments puissent tre modi(s indpendmment l9un de l9utre ! Indications X ! yn souhite viter un lien d(nitif entre une strtion et son implmenttionD les deux devnt pouvoir tre tendues pr hritge ! ves modi(tions de l9implmenttion d9une strtion ne doievent ps voir de onE squene sur le ode lient @ps de reompiltionA

Bridge : Motivation

WP G WT

Introduction UML 2

SFI hesign tterns

S fyxxi esi hi ve wyhvsesyx yfti

Bridge : Structure

Composite ! Intention X

! gomposition d9ojets en strutures roresentes pour reprsenter des strutures omE posntGomposF ! ermettre u lient de triter de l mme mnire les ojets tomiques et les omiE nisons de euxEiF ! Indications X ! yn souhite reprsenter des hirrhies d9individus l9ensemle ! yn souhite que le lient n9it ps se prouper de l di'rene entre ominisons d9ojets et ojets individuels

Composite : Motivation

Composite : Structure

Introduction UML 2

WQ G WT

S fyxxi esi hi ve wyhvsesyx yfti

SFI hesign tterns

Behavioural patterns

! Formes de comportement pour drire X ! des lgorithmes ! des omportements entre ojets ! des formes de ommunition entre ojet

Exemples de Behavioural patterns


! ! ! ! ! ! ! ! ! ! ! our ! !

plus de dtilsD lire

Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor

 Design Patterns. Catalogue de modles de conception rutilisables. 


! Richard Helm, Ralph Johnson, John Lissides, Eric Gamma

 UML 2 et les Dseign Patterns 

! Craig Larman, M.C. Baland, L. Carite, E. Burr

Observer ! Intention X

! h(nir une dpendne de type  un plusieurs de fon e queD qund un ojet hnge d9ttD tous eux qui en dpendent en soient noti(s et utomtiquement mis jourF ! Indications X ! und un onept plusieurs reprsenttionsD l9une dpendnt de l9utreF ! und un l modi(tion d9un ojet nessite l modi(tion dutres ojetsD sns qu9on en onnisse le nomre extF ! und un ojet doit noti(er d9utres ojets ve lesquels il n9est ps fortement ouplF

Observer Motivation

Observer Structure
WR G WT

Introduction UML 2

SFI hesign tterns

S fyxxi esi hi ve wyhvsesyx yfti

Strategy ! Intention X

! h(nir une fmille d9lgorithmes en enpsulnt hun d9eux et en les rendnt interE hngelesF ! Indications X ! lusieurs lsses pprentes ne di'rent que pr leur omportementF ! yn esoin de plusieurs vrintes d9un lgorithmeF ! n lgorithme utilise des donnes que les lients n9ont ps onntreF ! ne lsse d(nit un ensemle de omportements qui (gurent dns des oprtions sous l forme de dlrtions onditionnelles multiplesF

Strategy : Motivation

Strategy : Structure

Utilisation des design patterns

ves design ptterns ne sont que des lments de oneption ! yn les omine pour produire une oneption glole de qulit ! rouver les ons ojets ! wieux rutiliserD concevoir pour l'volution euser des ptrons de oneption peut prfois nuire l lisiilit des solutions de onE eption proposes ! yn peut ussi produire de nouveux design ptterns

Introduction UML 2

WS G WT

S fyxxi esi hi ve wyhvsesyx yfti

SFI hesign tterns

! ves h du qyp ne sont ps les seulsD pr exemple X ! Architecture 3-tiers ! Modle Vue Contrleur (MVC) X gominison de gompositeD yserver et trtegy ! yn trouve sns trop de ml des iliothques de ptterns sur snternet

WT G WT

Introduction UML 2