uml 2 - udgima.udg.edu/~sellares/einf-es2/prsent0910/apuntsuml2.pdf · els paquets es representen...
TRANSCRIPT
UML2.0
JordiOliverasRovira–u1060213
MarcVerdaguerGinestera–u1063616
DiagramadepaquetsEls diagrames de paquets s’utilitzen per a reflectir l’organització de paquets i els seus
elements.Quans’utilitzenperarepresentacions,elsdiagramesdepaquetsdelselementsdeclasses’utilitzenperamostrarunavisualitzaciódel’espaidenoms.Elsusosméscomunsperalsdiagramesdepaquetssónorganitzarelsdiagramesdecasosd’úsidiagramesdeclasse,toti
queelseuúsnoeslimitaaaquestselementsdeUML.
Elsegüentésunexempledediagramadepaquets:
Els elements continguts en un paquet comparteixen el mateix espai de noms, el fet decompartir un espai de noms requereix que els elements continguts en un mateix espai de
nomshagindeserúnics.
Els paquets es poden construir per representar relacions tant físiques com lògiques. Quans’escull incloure una classe a un paquet específic, és útil assignar les classes de la mateixajerarquia d’herència al mateix paquet. Les classes que estan relacionades a través d’una
composició i lesclassesquecol∙laborentambétenenunfortargumentperser inclosesenelmateixpaquet...
Els paquets es representen en UML 2.0 com a carpetes i contenen els elements quecomparteixen un espai de noms; com s’ha dit anteriorment, tots els elements dintre d’unpaquethande tenir un identificadorúnic. El paquethademostrar el nomdel paquet i pot
mostraropcionalmentelselementsdintredelpaquetencompartimentsextres.
CombinaciódepaquetsQuanun connector <<merge>> s’utilitza enunpaquet, la font de la combinació importa els
contingutsimportatsianiuatsdeldestí.Siexisteixunelementdintredel’origenieldestí,lesdefinicions de l’element origen s’expandiran per incloure les definicions de l’elementcontingutseneldestí.Totselselementsagregatsoactualitzatsperunacombinacióesdenoten
perunarelaciódegeneralitzaciódesdel’origenfinseldestí.
ImportaciódepaquetsEl connector <<import>> indica que els elements dintre del paquet destí, que en l’exempleanterior és una sola classe, s’importaran al paquet d’origen. L’espai de noms del paquetd’origenguanyaràaccésalaclasse/sdedestí;l’espaidenomsdedestínoesveuràafectat.
ConnectorsniatsElconnectorniatentreelpaquetdestíielpaquetorigenreflexaelquemostrenelscontingutsdelpaquets.
DiagramadeclassesEldiagramadeclassemostraelsblocsdeconstrucciódequalsevolsistemaorientataobjectes.
Elsdiagramesdeclassedescriuenlavistaestàticadelmodelopartdelmodel,descrivintquinsatributsicomportamentstenenenllocdedetallarelsmètodesperarealitzaroperacions.Elsdiagrames de classe són més útils per a il∙lustrar relacions entre classes i interfícies. Les
generalitzacions, agregacions i associacions són totes valuoses al reflectir herències,composicionsoús,iconnexionsrespectivament.
Elsegüentdiagramail∙lustrarelacionsd’agregacióentreclasses.Laagregació,quetélapuntade fletxa en color més clar, indica que la classe Account usa AddressBook, però no
necessariamentcontéunainstànciad’aquest.Lasagregacionscompostescomposicions),ambunapuntadefletxamésfosca,indicalapertinençaocontenciódelesclassesd’origenperlesclassesdesti,perexempleelsvalorsContactiContactGroupestancontingutsaAddressBook.
ClassesUna classe és un element que defineix els atributs i comportaments que un objecte podràgenerar. El comportament es el que es descriu per possibles missatges que la classe pot
comprendre conjuntamentamb lesoperacionsque sónapropiadesper a cadamissatge. Lesclassespodentambécontenirdefinicionsdevalorsetiquetatsderestriccionsiestereotips.
NotaciódeclasseLesclasseses representenper rectanglesquemostrenelnomde laclasse iopcionalmentelnomdelesoperacionsiatributs.Elscompartimentss’utilitzenperdividirelnomdelaclasse,
atributs i operacions. Addicionalment les restriccions, valors inicials i paràmetres es podenassignaralaclasse.
En el següent diagrama la classe conté el nom de la classe en el compartimentmés alt, elcompartiment següent llista els atributs, amb l’atribut “center” mostrant els valors inicials.
L’últimcompartimentmostralesoperacions, lesoperacionssetWidth,setLengthisetPositionmostrantelsseusparàmetres.Lanotacióqueprecedeixelnomdel'atributooperacióindicalavisibilitat de l'element, si s'usa el símbol + l'atribut o l'operació tenen un nivell públic de
visibilitat, sies fa servirunsímbol ‐ l'atributooperacióésprivat.Amés,el símbol#permetdefinirunaoperacióoatributcomprotegitielsímbol~indicalavisibilitatdelpaquet.
InterfíciesUna interfície és una especificació que els implementadors han acordat realitzar. És uncontracte.Siesrealitzaunainterfície,esgaranteixquelesclassessuportinuncomportament
requerit,quepermetqueelsistematractielselementsnorelacionatsdelamateixamanera‐ésadiratravésdelainterfíciecomuna.
Les interfícies es poden dibuixar en un estil similar al d'una classe, amb operacions
especificadescomesmostraacontinuació.Tambéespodendibuixarcomuncercleambcapoperacióexplicitadetallada.Quanesdibuixencomuncercle,esdibuixenvinclesderealitzacióalaformadecercledelanotaciósensefletxesdedestí.
TaulesUnataulaésunaclasseestereotipada(novaaUML2.0).Aixòesdibuixaambunapetitaiconade la taula a la cantonada superior dreta. Els atributs de la taula són «columnes»
estereotipades.Lamajoriade les taules tenenunaclauprimària, iunoméscampsdelsqueformenunacombinacióúnicausadaperaccedir la taula,mésunaoperaciódeclauprimàriaque és «PK» estereotipada. Algunes taules tindran una omés claus foranes, sent un omés
campsquejuntstracenaunaclauforanaenunataularelacionada,mésunaoperaciódeclauforanaqueés«FK»estereotipada.
AssociacionsUna associació implica que dos elements del model tenen una relació ‐ normalment
implementada comunavariabled'instànciad'una classe.Aquest connectorpot incloure rolsnomenats a cada extrem, cardinalitat, direcció i restriccions. Una associació és el tipus derelaciógeneralentreelements.Peramésdedoselements,unelementdelacaixad'einesde
representaciódiagonaltambéespotutilitzar.Quanesgeneracodiperadiagramesdeclasse,lesassociacionsesconverteixenenvariablesd'instànciaalaclassededestí.
GeneralitzacionsUnageneralitzacióesfaservirperindicarherència.Dibuixadadesd'unclassificadorespecíficaunclassificadorgeneral, la implicaciógeneralésquel'origenhereta lescaracterístiquesde la
destinació. El següent diagrama mostra una classe pare generalitzant una classe fill.Implícitament,unobjecteinstànciadelaclasseCercletindràelsatributsx_position,y_positioniradiusiunmètodedisplay().TenirencomptequelaclasseShapeésabstracta,mostradapel
nomencursiva.
Elsegüentdiagramamostraunavistaequivalentdelamateixainformació.
AgregacionsLesagregacionsesfanservirperdescriureelementsqueestancompostosdecomponentsméspetits. Les relacions d'agregació esmostrenper unapunta de fletxa amb formadediamantapuntantcapaladestinacióoclassepare.
Una formamés forta d'agregació ‐ una agregació composta ‐ esmostra per una fletxa amb
forma de diamant negre i s'usa on els components es poden incloure en un màxim d'unacomposicióa lavegada.Sielpared'unaagregaciócompostas'elimina,normalmenttotes lesseves parts s'eliminen amb el mateix, però una part pot ser individualment eliminada des
d'una composició sense haver d'eliminar tota la composició. Les composicions són relacionstransitives,asimètriquesipodenserrecursives.
Elsegüentdiagrama il∙lustra ladiferènciaentreagregacionsforts i febles.Un llibred'adrecesaquestaconformatdemúltiplescontactesigrupsdecontacte,uncontacteespotincloureen
més d'un grup de contacte. Si esborreu un llibre d'adreces, tots els contactes i grups decontactess'eliminarantambé,sieliminaungrupdecontacte,capcontactes'eliminarà.
ClasseAssociacióUna classe associació és una estructura que permet una connexió d'associació per tenirconnexions i atributs. El següent exemplemostra que hi hamés al ubicar un empleat a unprojectequeenferunvincleassociaciósimpleentreduesclasses:elrolquel'empleattéenun
projecte és una entitat complexa i conté detalls que no pertanyen a l'empleat o classe del
projecte.Perexemple,untreballadorpotestartreballantenmoltsprojectesalmateixtempsi
tenendiferentstítolsdetreballinivellsdeseguretat.
DependènciesUnadependènciaesfaservirpermodelarunaltrangderelacionsdependentsentreelementsdelmodel.Aixòesfariaservirnormalmentaviatenelprocésdedissenyonesconeixquehihaalguntipusdevincleentredoselementsperòésmoltaviatpersaberexactamentquinaésla
relació. Després en el procés de disseny, les dependències seran estereotipades (elsestereotips disponibles inclouen <<instanciar>>, <<traçar>>, <<importar>> i altres) oreemplaçarambuntipusdeconnectormésespecífic.
TraçatLarelaciódetraçatésunaespecialitzaciód'unadependència,vinculantelementsdelmodeloconjuntsd'elementsquerepresenten lamateixa ideaa travésdelsmodels.Els traçatses fan
servirsovintperrastrejarcanvisderequisitsidelmodel.Comqueelscanvispodenocórrerenduesdireccions, l'ordred'aquestadependènciausualment s'ignora. Lespropietatsde relaciópodenespecificar l'assignacióde traçat, peròel traçat ésusualmentbidireccional, informal i
raramentcomputable.
RealitzacionsL'objecte font implementa o realitza el destí. Realitzar s'usa per expressar traçabilitat iintegritatenelmodel‐unprocésdenegociorequisitsesrealitzaperunoméscasosd'úsqueal seu tornes realitzenperun component, etc.Assignant requisits, classes, etc. a travésdel
disseny del sistema, cap amunt a través dels nivells d'abstraccions del model, assegura lesimatgesgransdel seusistema, recorda i reflecteix totes les imatgespetites idetallaaquestarestriccióiladefineix.Unarelacióesmostracomunalíniadetraçosambunapuntadefletxa
sòlidail'estereotip<<realizar>>.
NiamentUn niament és un connector que mostra que l'element font es troba dins de l'element
destinació.Elsegüentdiagramamostraladefiniciód'unaclasseinternatotiqueésmésusualmostrar‐losperlasevaposicióenlajerarquiadelavistadelProjecte.
Diagramad'objectesUn diagrama d'objectes es pot considerar un cas especial d'un diagrama de classe. Els
diagramesd'objectesusenunsubconjuntd'elementsd'undiagramadeclasseperemfatitzarlarelació entre les instàncies de les classes en algun punt en el temps. Aquests són útils perentendreelsdiagramesdeclasses.Aquestsnomostrenresdiferentenlasevaarquitecturaals
diagramesdeseqüència,peròreflecteixenmultiplicitatirols.
ElementsdeclasseiobjecteElsegüentdiagramamostralesdiferènciesenaparençaentreunelementclasseiunelement
objecte. Cal tenir en compte que l'element classe consisteix de tres parts, dividides encompartiments de noms, atributs i operacions, per defecte, els elements objectes no tenencompartiments. L'exhibició dels noms és també diferent: els noms dels objectes estan
subratllatsipodenmostrarelnomdelclassificadordesdelquall'objecteesinstància.
Estatentempsd'execucióUn element classificador pot tenir qualsevol nombre d'atributs i operacions. Aquests esmostren en una instància objecte. No obstant això, és possible definir l'estat en tempsd'execuciódel'objecte,mostrantunconjuntdevalorsd'atributsenlainstànciaparticular.
ExemplesdediagramesdeclasseiobjecteElsegüentdiagramamostraundiagramaobjecteamblasevaintercalaciódeclassedefinida,i
il∙lustralaformaenlaqualundiagramaobjecteespotutilitzarperprovarlesmultiplicitatsdetasques en els diagrames de classe. La classe car té multiplicitat d'una a molts a la classewheel,peròsienelseullocestriaunamultiplicitatd'1a4,aixònohauriapermèsunaclasse
carambtresclasseswheelcomesmostraaldiagramaobjecte.
Diagramesd'EstructuraComposta(NouaUML2.0).Undiagramad'estructuracompostaésundiagramaquemostral'estructura
interna d'un classificador, incloent els seus punts d'interacció amb altres parts del sistema.Això mostra la configuració i relació de les parts que juntes realitzen el comportament declassificadorcontingut.
Elselementsdeclassehanestatdescritsengrandetallalaseccióenelsdiagramesdeclasse.
Aquesta secció descriu la forma en què les classes es poden mostrar com a elementscompostosexposantinterfíciesicontenintportsiparts.
PartUnapart ésunelementque representaun conjuntd'unaomés instànciesquepertanyena
unainstànciadelclassificadorcontinguda.Perexemple,siunainstànciadediagramas'apropiad'unconjuntd'elementsgràfics,despréselsestrispodenrepresentarcomparts,siésútil feraixòpermodelaralguntipusderelacióentreells.Tenirencomptequeunapartespottreure
delsseusparesabansqueelpares'elimini,perquèlapartnos'eliminialmateixtemps.
Una part es mostra com un rectangle no adornat dins del cos d'una classe o de l'elementcomponent.
PortUn Port és un element escrit que representa una part visible externa d'una instància delclassificadorcontingut.Elsportsdefineixenlainteraccióentreunclassificadorielseuentorn.Unportpotaparèixerenellímitdelapartcontinguda,unaclasseounaestructuracomposta.
Unportpotespecificarelsserveisqueunclassificadorproveeixaixícomtambéelsserveisqueaquestrequereixdelseuentorn.
Un Port es mostra com un rectangle nomenat a la vora del límit de la seva classificador
apropiat.
InterfíciesUnainterfícieéssimilaraunaclasseperòambunnombrederestriccions.Toteslesoperacionsdelainterfíciesónpúbliquesiabstractes,inoproveeixencapimplementacióperdefecte.Tots
elsatributsde la interfíciehandeserconstants.Noobstantaixò,mentrequeunaclassepotnomésheretard'unasolasuperclasse,potimplementarinterfíciesmúltiples.
Unainterfície,quanestasolaenundiagrama,esmostracomunrectangledel'elementclasseamblaclau«interface»iambelseunomencursivaperdenotarqueésabstracte,oesmostra
comuncercle.
Tenirencompteque lanotaciódelcerclenomostra lesoperacionsde la interfície.Quan les
interfícies es mostren com si fossin apropiades per les classes, es refereixen a elles cominterfícies exposades. Una interfície exposada es pot definir comproveïda o requerida. Unainterfície proveïda és una afirmació que el classificador contingut proveeix a les operacions
definidesperl'elementdelainterfícienomenadaiesdefineixdibuixantunvinclederealitzacióentre la classe i la interfície. Una interfície requerida és un estat que el classificador potcomunicarambalgunaltreclassificadorqueproveeixoperacionsdefinidesperl'elementdela
interfície nomenada i es defineix dibuixant un vincle de dependència entre la classe i lainterfície.
Unainterfícieproveïdaesmostracomuna"pilotaenunpal"adjuntadaalavorad'unelementclassificador.Unainterfícierequeridaesmostracomuna"copaenunpal"adjuntadaalavora
d'unelementclassificador.
DelegarUnconnectordelegaresfaservirperdefinirelstreballsinternsdelsportsiinterfíciesexternes
delcomponent.Unconnectordelegaresmostracomunafletxaambunestereotip«delegar».Això connecta un contracte extern d'un component com es mostra pels seus ports a larealitzacióinternadelcomportamentdelapartdelcomponent.
Col·laboracióUna col∙laboració defineix un conjunt de rols cooperatius usats col∙lectivament per il∙lustrar
una funcionalitatespecífica.Unacol∙laboracióhauriadenomésmostrarels rols ielsatributsrequeritsperaconseguir les seves tasqueso funcionsdefinides.Aïllarels rolsprimarisésunexercici de simplificar l'estructura i classificar el comportament, i també proveeix per poder
reutilitzar‐lo.Unelementcol∙laboraciósovintimplementaunpatró.
Unelementcol∙laboracióesmostracomunel∙lipse.
EnllaçdeRolsUnconnectorenllaçderolsesdibuixadesd'unacol∙laboracióaunclassificadorquecompletaelrol.Aixòesmostracomunalíniadetraçosambunapuntadefletxail'estereotip«role».
RepresentaUnconnectorrepresentaespotdibuixardesd'unacol∙laboracióaunclassificadorpermostrarque una col∙laboració s'usa en el classificador. Es mostra com una línia de traços amb unapuntadefletxail'estereotip«represents».
OcurrènciaUnconnectorocurrènciaespotdibuixardesd'unacol∙laboracióaunclassificadorpermostrar
que la col∙laboració representa el classificador. Això es mostra com una línia de traços il'estereotip«occurrence».
DiagramesdecomponentsElsdiagramesdecomponentsil∙lustrenlespecesdelprogramari,controladorsembedded,etc.
que conformaranun sistema.UndiagramadeComponents té unnivellmés alt d'abstraccióqueundiagramadeclasse‐usualmentuncomponents'implementaperunaomésclasses(oobjectes) en temps d'execució. Aquests són blocs de construcció, com eventualment un
componentpotcomprendreunagranporciód'unsistema.
Eldiagramade sotamostraalgunscomponents i les seves relacions internes.Els connectorsensamble 'vinculen' les interfíciesproporcionadessubministradapelproducte ielClienta lesinterfíciesrequeridesespecificadesperordre.Unarelaciódedependènciatraçaelsdetallsdel
compteassociatdelclientalainterfícierequerida,'pagament',indicadaperordre.
Elselementssimilarsenpràcticaalsdiagramesdepaquetielslímitsdefinitsiesfanservirperagrupar elements en estructures lògiques. La diferència entre diagrames del paquet idiagrames de component és que els diagrames de component ofereixen un mecanisme
d'agrupamentmésricsemànticament.Ambelsdiagramesdecomponenttotselselementsdelmodelsónprivatsmentrequeelsdiagramesdelpaquetnomésmostrensubjectepúblics.
RepresentantcomponentsEls components es representen com un classificador rectangular amb la clau «component»,opcionalmentelcomponentespotmostrarcomunrectangleambunaiconadecomponenta
lacantonadadretaadalt.
InterfíciesrequeridesEl connector ensamble uneix la interfície requerida del component (Component1) amb lainterfícieproporcionadad'unaltrecomponent(Component2),aixòpermetqueuncomponentofereix els serveis que un altre component requereix. Les Interfícies són col∙leccions d'un o
mésmètodesquepodenonoconteniratributs.
ComponentsambportsUtilitza ports amb diagrames de components permet que s'especifiqui un servei o
comportament al seuentorn així com tambéun servei o comportamentqueun componentrequereix. Els ports poden especificar entrades, sortides així com també operarbidireccionalment. El següentdiagramadetalla un component ambunport per a serveis En
LíniaconjuntamentambduesinterfíciesproporcionadesOrdenarEntradaiSeguimentaixícomtambéunainterfícierequeridaPagament.
DiagramadedesplegamentUndiagramadedesplegamentmodela l'arquitecturaentempsd'execuciód'unsistema.Això
mostra la configuració dels elements de maquinari (nodes) i mostra com els elements iartefactesdelprogramariestracenenaquestsnodes.
NodeUnnodeésunelementdemaquinarioprogramari.Aixòesmostraamblaformad'unacaixaentresdimensions,comacontinuació.
InstànciadeNodeUnainstànciadenodeespotmostrarenundiagrama.Unainstànciaespotdistingirdesd'un
nodepelfetqueelseunomestàsubratllat itédospuntsabansdeltipusdenodebase.Unainstància pot o no tenir un nom abans dels dos punts. El següent diagrama mostra unainstàncianomenadad'unordinador.
EstereotipdeNodeUn nombre d'estereotips estàndard es proveeixen per als nodes, anomenats «cdrom", "CD‐
ROM","computer","diskarray»,«pc»,«pcclient»,«pcserver","secure»,«server","storage,«unixserver","userpc».Aquestsmostraranunaiconaapropiatalacantonadadretaadaltdelsímbolnode.
ArtefacteUnartefacteésunproductedelprocésdedesenvolupamentdeprogramari,quepotincloureelsmodelsdelprocés(perexemplemodelsdeCasosd'Ús,modelsdeDisseny,etc.),Codifont,executables,documentsdedisseny,reportsdeprova,prototips,manualsd'usuariimés.
Unartefacteesdenotaperunrectanglemostrantelnomdel'artefacte,l'estereotip"Artifact"i
unaiconadedocument,comacontinuació.
AssociacióEn el context del diagrama de desplegament, una associació representa una ruta decomunicacióentreelsnodes.Elsegüentdiagramamostraundiagramadedesplegamentpera
unaxarxa,mostrantelsprotocolsdexarxacomestereotipsitambémostrantmultiplicitatsenelsextremsdel'associació.
NodecomacontenidorUnnodepot contenir altreselements, coma componentsoartefactes. El següentdiagrama
mostra un diagrama de desplegament per a una part del sistema encastat i mostra unartefacteexecutablecomacontingutpelnodemare(motherboard).
DiagramesdeCasd’ÚsElmodeldecasosd’ússerveixperesquematitzarelsrequerimentsd’unsistema.Sónunmitjà
decomunicacióambelsusuarisialtresinteressatssobreelqueespensaferdelsistema.
ActorsEnundiagramadecasosd’úsesmostra la interaccióentreel sistema ientitatsexternesdel
sistema.Aquestesentitatsexternessónelsactors,quepodenrepresentardiferentsrols (desd’unhumàfinsaunhardwareextern).
Espodenrepresentar(larepresentacióenformadecaixaésnovadel’UML2):
Elsactorstambépodentenirrelacionsd’especialització/generalitzacióambherència.Onels
actorsdescendentsheretenelsrolsilescomunicacionsambelscasosd’úspròpiesdelpare.
Aquestesrelacionsesrepresenten:
Casosd’ÚsÉs una unitat de treball que dóna una visió d’alt nivell del comportament del sistema.Normalmentesnombrencomunafraseverbaliselidónaunadescripciótextualinformal.Es
representamitjançantunel∙lipsecom:
La notació per utilitzar un cas d’ús és una línia de connexió que uneix l’actor i el cas d’ús.
Exemple:
A més, si es vol es poden posar valors als extrems de la línia de connexió per designar lamultiplicitatde la relació (tenenun funcionament igualqueeneldiagramadeclasses,ésun
afegitdel’UML2).Comara:
Onespotveurequeunclientnoméspottenirunasessióderetiralavegadaencanvielbancenpottenirmésd’una.
EscenarisÉsunrecorregutespecíficd’uncasd’ús.Cadacasd’ústéunescenariprincipal,onsesuposaquetotfuncionaràidealment(senseerrors,alternativesniinterrupcions).
Encasosd’usosméscomplexospothaver‐hiescenarissecundaris,alternativesdelprincipal.
RelacionsEnuncasd’úshipodenhaver3tipusderelacions:
• Inclusió ( << include>> ): Permet incorporarexplícitamentel comportamentd’altrescasosd’úscomafragmentsdelseupropicomportament.Enl’exempledesotaespot
veurecomlaretiradadedinersdelbancpotinclourelaidentificaciódelatargeta.
• Extensió(<<extend>>):Uncasd’úsAespotdefinircomunaextensióopcionald’un
altrecasd’úsB.Ésadir,dinsdelcasd’úsBs’executaAquanescompleixunacondiciódeterminada. En la imatge de sota es pot veure un exemple on, per exemple, permodificar un tipus d’ordre particular del client cal obtenir una aprovació d’una
autoritatsuperior.Pertantpotserqueelcasd’ús“GetApproval”siguiunaextensiódelcasd’ús“ModifyOrder”oqueno.
Apart(comanovacaracterísticade l’UML2),enunaextensióse lipotespecificar lacondició que fa que aquesta es produeixi a partir d’un punt d’extensió. Per
representar‐hos’afegeixunanotaalarelacióposant‐hi:condition:{condició}Extensionpoint:puntExtensió
oncondicióéslacondicióques’hadecomplirperquècalguiagregarelcasd’úsextès i onpuntExtensió és el punt d’extensió que ens diu quina extensió calexecutar.
Apart,alcasd’úsqueabanshemanomenatB(elquetéextensionsquederivend’ell),
selirepresentaelpuntd’extensióescrivintunalíniahoritzontalasotadeltextdelcasd’ús (com un subratllat) i escrivint a sota d’aquesta línia Extension points: i a sotad’aquestadeclaraciócaldràescriure‐hipuntExtensió(onpuntExtensióéselmateixque
s’haexplicatanteriorment).Enlafigurasegüentesmostrauncasd’úsonesveuquepermostrar l’ajuda on‐line cal estar fent una transacció i durant la fase de selecciól’usuarihaescollitl’ajuda.
• Generalització(<<generalize>>):Unageneralitzaciód’uncasd’úsmostraqueuncas
d’ús A és un tipus especial d’un altre cas d’ús B. És a dir, el cas d’ús A fa tots elsprocessosdelcasd’úsBmésalgunaltred’específic.
LímitdelsistemaNormalmentperrepresentarelsdiagrameselscasosd’ús,esdibuixaunlímitontotselscasosd’úsestrobenalseuinteriorielsactorsalseuexterior,comperexemple:
Diagramesd’activitatEls diagrames d’activitat es centren en el flux d’activitats involucrades en un procés,
generalmentdinsdelmarcd’unodiversoscasosd’ús.Undiagramad’activitatsmostraenquinordres’executenlespartsdelprocésicomdepenenunesdelesaltres.
ActivitatsUna activitat és l’especificació d’una seqüència parametritzada de comportament, esrepresentamitjançantun rectangleamb lespuntesarrodonidesdinsdelqualesdibuixaràeldiagramad’activitat.
AccionsUnaacciórepresentaunpasdinsd’unaactivitat.Tambéesdenotencomarectanglesambles
puntesarrodonidesiadintreseucontenenuntextquedescriul’acció.
Restriccionsd’Acció(novesenUML2)Aunaaccióselipodenadjuntarrestriccionsenformadeprecondicióipostcondiciólocals.Perfer‐hoseliassignaunanotaamblanotació<<localPreCondition>>o<<localPostCondition>>itotseguitentreclaus{}selidescriulaprecondicióolapostcondiciólocals.
FluxdeControlMostraelfluxdecontrolentreduesaccions,esrepresentaambunafletxa.
NodeInicialElnodeinicialrepresental’inicideldiagramad’activitats,esrepresentaambcerclenegra.
NodeFinalHihadostipusdenodesfinals,elsnodesfinalsd’activitatielsnodesfinalsdeflux.Elsnodesfinalsd’activitatesrepresentenambuncercleambunpuntalseuinteriorielsnodesfinalsdefluxesrepresentencomuncercleambunacreualseuinterior.
La diferència entre ells és que el node final de flux només denota el final d’un sol flux de
control, en canvi, el node final d’activitat denota el final de tots els fluxos finals dins del’activitat.
Fluxosd’ObjectesiObjecte(nousenUML2)Unfluxd’objecteéslarutaperlaqualpodenpassarobjectesodades.Elsobjectesesmostrencomunrectangle:
Elsfluxosd’objecte, igualqueelsfluxosdecontrolesrepresentenmitjançantfletxes.Unflux
d’objectehadetenirunobjectealmenysenundelsseusextrems,espodenrepresentardeduesformes:
NodesdeDecisióiCombinacióTenenlamateixaforma,unrombe.Atotsdosse’lshipotassignarunnom,apart,elsfluxosdecontrol que surten d’un node de decisió tindran condicions (representades entre []) quepermetranqueelfluxflueixiperlabrancaperlaquelacondicióescompleix.
NodesdeBifurcacióid’UnióTotes dues es representen o bé a partir d’una barra horitzontal o bé d’una de vertical (la
orientaciódepèndeladirecciódelflux).
La unió és diferent que una combinació, ja que la unió sincronitza els fluxos d’entrada iprodueix un sol flux de sortida.Aquest flux de sortidanoespot executar fins quenohaginarribat els fluxosd’entrada. En canvi enuna combinació, qualsevol fluxpassadirectament a
travésd’aquesta.
Regiód’Expansió(novesenUML2)És una regió d’activitat estructurada que s’executa moltes vegades. Els nodes d’expansió
d’entrada i de sortida es dibuixen com un grup de 3 caselles (representant una selecciómúltipled’ítems).Laclaureiterativa,paral∙lelofluxesrepresentaalazonasuperiordretadelaregió.
Gestorsd’Excepció(novesenUML2)En els diagrames d’activitat també s’hi podenmodelar excepcions. Es representen ambunafletxaambformadellamp.
Regiód’ActivitatInterrompible(novesenUML2)Una regió d’activitat interrompible rodeja un grup d’accions que es poden interrompre. Enl’exemple següent es veu que l’acció processar odre s’executarà fins que al complir‐se es
tancarà l’odre, a no ser que es cancel∙li la petició que llavors passarà a l’acció de cancel∙larl’odre.(Comesveualafigura,lesinterrupcionsesrepresentenambunafiguradebandereta).
ParticióUna partició d’una activitat es mostra com carrers horitzontals o verticals. S’utilitzen persepararaccionsrealitzadesperdiferentsactors.
Diagramad’EstatsUn diagrama d’estats modela el comportament d’un sol objecte, especificant la seqüència
d’eventsqueaquesttravessadurantelseutempsdevida.
Enlafigurasegüentesmostraeldiagramad’estatsd’unaporta.Aquestapotestaren3estatsdiferents, oberta, tancada o bloquejada. A part, una porta es pot tancar quan està oberta,obrirobloquejarquanestàtancadaidesbloquejarquanestàbloquejada.Caltenirencompte
quelaportanomésespodràtancarsitévialliure(nohihaobjectesalmigdelatrajectòriadetancar‐la).
EstatsUnestatesdenota comun rectangleamb lespuntesarrodonides i ambel seunomescrit adins.
EstatsInicialiFinalComeneldiagramad’activitatl’estatinicialesrepresentacomuncerclenegreielfinalcomun
cercleambunpuntnegrealmig.Totsdosespodennombrar.
TransicionsLestransicionsdesd’unestatcapaunaltreesdenotenambfletxes.Aquestespodentenirundisparador(lacausadelatransició,podriaserunasenyal,unevent,etc.),unguarda(Condició
quehadeserverdaderaperquèeldisparadorcausilatransició)iunefecte(Ésunaaccióqueescridaràdirectamental’objectequetélamàquinad’estatcomaresultatdelatransició).Alafiguraespotveurecomesrepresenten.
Accionsd’Estat(NovesenUML2)Elsefectesqueespodenassignaralestransicions,tambéespodenassignaralsestats.Aixòésútilsiperexempleunestattémoltestransicionsd’entradaitotesellestenenelmateixefecte,aixínocalposar‐loa totes les transicions in’hihaprouposant‐loa l’estat.Podenposar‐s’hi
efectesd’entradaidesortida,aldibuixespotveurecomesrepresenten.
TransicionsRecursivesUnestatpottenirunatransicióqueretornaalmateixestat.
EstatsCompostosUn diagrama d’estats pot tenir inclosos dins d’ell altres diagrames d’estats. Es podenrepresentar de dues formes. A continuació hi ha dos diagrames equivalents, escrits en
cadascunadelesformes:
Puntd’EntradaAvegadesnoesvolqueescomencienunestat inicialnormal.Peraixòexisteixenelspuntsd’entrada(representatscomunacircumferència).Enelsegüentexempleespotveurequeelnormal seria començar a l’estat inicial però per si alguna raó no fos necessari realitzar la
inicialitzaciópodríemcomençarpelpuntd’entradaicomençarjaal’estat“Ready”.
Aunnivellsuperiorespodriarepresentarcom:
PuntdeSortidaIgualquepelque faapuntsd’entrada tambéespoden ferpuntsdesortida.Es representencomunacircumferènciaambunacreuadins.
PseudoEstatEscollirEsrepresentamitjançantunrombeitéunatransicióentranti2omésdesortida.Serveixperdirigirelfluxdeldiagramacapaunestatsegonsalgunaguardaenlatransició.
PseudoEstatUnióUtilitzatsperunirtransicionsmúltiples.Pottenirunaoméstransicionsd’entradaiunaomésdesortida,tambés’hipotaplicarunaguardaacadatransició.Enaquestcasquanhihavariesbranquesdesortida,es realitzaunabrancacondicionalestàtica,encanvienelpseudoestat
eleccióeraunabrancacondicionaldinàmica.
PseudoEstatAcabarQuans’entraaunpseudoestatacabar,s’indicaquelalíniadevidadeldiagramahaacabat.Es
representaambunacreu.
EstatHistorial(nouenUML2)S’utilitza per recordar l’estat anterior d’una màquina d’estats quan és interrompuda. En elsegüentexempleesveul’estatd’unarentadora,onencasqueestallilacorrentlarentadoraespararàiquantorniahaver‐hicorrentaquestatornaràal’estatqueestavaabansquemarxés
lacorrent.
RegionsRecents(novesenUML2)Unestatespotdividirenregionsquecontenensubestatsqueexisteixenis’executendeformaconcurrent.Enelsegüentexempleespotveurequeenfrenartantesfrenaambelsfrensdedavantcomambelsdedarrera.
DiagramesdeSeqüènciaUn diagrama de seqüència és un diagrama d’interacció que detalla com s’executen les
operacionsenfunciódeltemps:quinsmissatgessónenviats,perquinobjecte,aquinobjecteiquan.Sónmoltútilspermodelarescenaris.
Elsobjectesinvolucratseneldiagramaesllistend’esquerraadretaenfunciódelmomentenquèintervenenenlaseqüència.
LíniadevidaLalíniadevidarepresentaunparticipantindividualenundiagramadeseqüència.Normalmentcontéunrectanglequecontéelnomdel’objecte.Sielnomésselfllavorsindicaquelalíniade
vidarepresentaelclassificadorqueposseeixeldiagramadeseqüència.
Altresvegadeselsímbolpotserdiferent,perexemplesiestractad’unactoreldibuixseràlafiguretaques’utilitzatambéalsdiagramesdecasd’ús.Tambécaltenirencomptelesdiferentsclassesd’anàlisiquetenencadascunaunarepresentaciódiferent:
• Classes d’Entitats: Contenen els objectes bàsics que corresponen al món real, en
aquestcaselsqueestrobenalabasededades.• Classes de Control: Cada cas d’ús n’ha de tenir almenys una. S’ocupa de dirigir els
diferentscaminsdelcasd’ús.
• ClassesdeFrontera:Defineixenlesinterfíciesambelsactors.
MissatgesEsmostrencomfletxes.Podensercomplets(tenenretorn),perdutsotrobats,tambésíncronso asíncrons. Els síncrons es representen amb una fletxa que té un triangle a la punta de la
fletxa(totapintada),elsasíncronstenenunapuntadefletxaenformadeV.Elsmissatgesderetornesdenotenambunalíniapuntejada.
Alasegüentfiguraesveuen3missatges,elprimerd’ellséssíncronicomplet(téunmissatgede retorn implícit), el segon és un missatge asíncron i el tercer és un missatge de retorn
asíncron.
Ocurrènciad’execucióUnpetit rectangleque segueix la líniadevida representa l’ocurrènciad’execucióoactivaciód’unfocusdecontrol.Enelcasanteriorn’hihatres,1alSourcei2alTarget.
MissatgeSelfPot representar una crida recursiva d’una operació o unmètode cridant‐ne a un altre quepertanyalmateixobjecte.
Missatgesperdutsimissatgestrobats(nousenUML2)Elsmissatgesperdutssónaquellsques’hanenviatperòquenohanarribataldestíesperat,o
béquehanarribataundestíquenoesmostraaldiagramaactual.Elsmissatgestrobatssónaquells que arriben d’un remitent desconegut o bé d’un remitent que no està al diagramaactual.Esrepresentenambunafletxaquevaotornad’unpuntfinal.
IniciifinaldelalíniadevidaLalíniadevidacomençaallàonhihaelsímbolquerepresental’objected’aquestalíniadevida(pottrobar‐semésamuntomésavalldeldiagramasegonselmomentdelseuinici)ielfinalesrepresentaambunacreu.
Restriccionsdetempsiduració(nouenUML2)Normalmentelsmissatgesesmostrenapartird’unalíniahoritzontal.Comquelalíniadevidadelsobjecteses trobaen líniavertical,avegadespotserútil (siesmodelaalgunsistemaentempsrealoaltressistemesoneltempssiguiunfactorimportant)tenirencompteeltempsa
l’hora de representar els missatges. Per fer‐ho, es configura una restricció de duració pelmissatgeonentre { }s’escriuel tempsdeduraciódelmissatge iaquestesdibuixade formainclinada.
Fragmentscombinats(nousenUML2)Els fragments combinats són una o més seqüències de processos incloses en un marc iexecutadessotacircumstànciesespecífiques.Els fragmentsdisponiblessón(siesdenotende
forma diferent que el seu nom es posa la seva denotació entre parèntesis, els altres esdenotenambelseunom):
• Alternative(alt):Modelaestructuressi...llavors...altrament.• Option(opt):Modelaestructurescas(switchcase).
• Break:Modelauna seqüenciaalternativad’eventsqueesprocessaen llocde tota larestadeldiagrama.
• Parallel(par):Modelaprocessosconcurrents.
• SeqüenciatWeak(seq):Inclouunnúmerodeseqüènciesperlesquetotselsmissatgess’handeprocessarenun segmentanterior, abansdequeel següent segmentpuguicomençar,peròquenoimposacapseqüènciaenelsmissatgesquecomparteixenuna
líniadevida.• Seqüenciat Strict (strict): Inclou una sèrie de missatges que s’han de processar en
l’ordreproporcionat.
• Negative(neg):Inclouunasèriedemissatgesinvàlids.• Critical:Inclouunasecciócrítica.• Ignore:Declaraunmissatgeomissatgesquenosóndecapinterèssiapareixenenel
contextactual.• Consider:Qualsevolmissatgequenos’incloguienaquestfragments’hauràd’ignorar.• Assertion(assert):Designaquequalsevolseqüènciaquenoesmostricomunoperand
del’assercióésinvàlida.• Loop:Inclouunasèriedemissatgesqueestanrepetits.
• Referència (ref): Permet referenciar altres diagrames de seqüència per tal dereutilitzardiagramesexistentsosimplificardiagramescomplexos.
En lafigurasuperiorespotveureunexempledeloop,ons’agafaeltamanyd’unataula itotseguitapartird’aquesttamanys’agafacadaelementdelataula.
Enaquestcas,espotveureunloopiunalt.Aquíenprimerlloc(enelloop)esseleccionaunaoperacióarealitzaritotseguit,segonsl’operacióseleccionadafaunacosaounaaltra.
Porta(novaenUML2)Una porta és un punt de connexió per connectar un missatge dins d’un fragment amb unmissatgedeforadelsegment.Lesportesesrepresentencomunquadrepetitenunmarcdelfragment.
DescomposicióenpartUnobjectepottenirmésd’unalíniadevida.Aixòpermetmissatgesentreobjectesperquèesmostrinenelmateixdiagrama.
Continuacions/Invariantsd’Estat(novaenUML2)Unainvariantd’estatésunarestriccióubicadaalalíniadevidaquehadeserverdaderaenel
tempsd’execució.Esmostracomunrectangleambsemicerclesalsextrems.Unacontinuaciótelamateixanotacióperòs’utilitzaenfragmentscombinatsiespotextendreatravésdemésd’unalíniadevida.
DiagramesdeComunicacionsÉsundiagramad’interaccióquemostra informació similar a ladelsdiagramesde seqüència
peròesfocalitzenmésenlarelaciód’objectes.
Enelsdiagramesdecomunicacionselsobjectesesmostrenambconnectorsd’associacióentreells.Elsmissatgess’agreguenalesassociacionsiesmostrencomfletxescurtesqueapuntenenladirecciódelfluxdelmissatge.Laseqüènciadelsmissatgesesmostraapartird’unesquema
enumerat.
Lesdiferentsclassesesrepresentendelamateixaformaqueenelsdiagramesdeseqüència.Elseufuncionamentésmoltsemblant i l’únicquecalcomentaréscomesrepresentenalgunesdelesfuncionsexplicadesenelsdiagramesdeseqüència.
Missatged’autocridaQuanunobjectecridaunmissatgesobreellmateixnoméscalferunaliniaquevadel’objectefinsal’objecteiposar‐hielmissatgedeformanormal.
MissatgeCondicionalElmissatgequeenelsdiagramesdeseqüèncias’haanomenatOption.Télamateixafuncióiesrepresenta:
MissatgesExcloentsElmissatgequeenelsdiagramesdeseqüèncias’haanomenatAlternative.Télamateixafuncióiesrepresenta:
Creaciód’instànciaQuanescreaunanovainstànciad’unaclasse,esrepresenta:
IteraciódemissatgesElmateixqueenelsdiagramesdeseqüèncias’haanomenatLoop.Esrepresenta:
Col·leccionsUnacol∙lecciód’objectes, tantenelsdiagramesde comunicació comenelsde seqüènciaesrepresenten:
Iunobjecteconcretdelacol∙lecció:
Exempledediagramesdeseqüènciaicomunicació
DiagramesdeTemps(nousenUML2)L’objectiudelsdiagramesdetempsésmostrarelscanvisenl’estatolacondiciód’unalíniadevida d’una instància (d’un classificador o d’un rol d’un classificador) al llarg del temps i de
forma lineal. L’ús més comú és mostrar el canvi d’estat d’un objecte al llarg del temps enrespostaalseventsoestímulsacceptats.
Líniadevidadel’estatUna línia de vida de l’estatmostra el canvi d’estat d’un ítemen el temps. L’eix Xmostra eltemps que ha passat en qualsevol unitat escollida i l’eix Y mostra una llista dels estatsproporcionats.
LíniadevidadelvalorUnalíniadevidadelvalormostraelcanvidelvalord’unítemeneltemps.Elvaloresmostraentreelparelldelínieshoritzontalsqueescreuenencadacanvidelvalor.
PosarhototjuntLeslíniesdevidaidel’estatespodenposarunaasobredel’altraenqualsevolcombinació.CalquetinguinelmateixeixX.Aixíelsmissatgesespodranpassard’unalíniadevidaaunaaltra.
Cadatransiciódel’estatovalorpotteniruneventdefinit,unarestricciódetempsqueindicaquanhadepassarunevent iuna restricciódeduracióque indicaquan tempshad’estarenefecteunvaloroestat.
DiagramesdeDescripciód’Interaccions(nousenUML2)Mostrencom interactuenvarisdiagramesd’interaccions (seqüència i comunicació). Sónútils
permostrardequinamaneraescombinendiferentsescenaris.
Esrepresentadelamateixaformaqueelsdiagramesd’activitat,peròenaquestcascadanoderepresenta undiagramad’interacció. Els nodes inicial, final, decisió, combinació, bifurcació iuniósónelsmateixosqueenelsdiagramesd’activitat.Peròenaquestcass’introdueixendues
cosesnoves.
Ocurrènciad’InteraccióSón referències als diagrames d’interacció existents. Es mostra com un marc de referència
(s’indicaambref)iambelnomdeldiagramaalqualesfareferènciaescritalcentredelmarc.
Elementd’InteraccióEls elementsd’interacció són similars alsd’ocurrènciesd’interaccióenel fetdequeaquests
mostren una representació de diagrames d’interacció existents dins d’un marc rectangular.Peròenaquestcasmostrenelscontingutsdelsdiagramesdereferènciaenlínia.
Com hem dit, es poden utilitzar els mateixos controls que en els diagrames d’activitat, totseguithihaunexemple: