Diagrama de seqüència

El diagrama de seqüència (de l'anglès sequence diagram) és un diagrama d'interacció UMLque mostra la interacció dels objectes d'un sistema disposats en una seqüència de temps. La seva funció principal és mostrar com els objectes d'un sistema (o escenari) s'intercanvien missatges amb la intenció de complir un objectiu concret. Els diagrames de seqüència a vegades reben el nom de diagrama d'esdeveniments o diagrama d'escenaris.

Estructura

El diagrama de seqüència mostra els diferents objectes i actors que participen en l'escenari en la part superior del diagrama, amb la seva línia de vida vertical sortint de cada objecte o actor. El temps d'execució de l'escenari es mostra cronològicament de dalt a baix: les interaccions comencen en la part superior del diagrama i acaben a la part inferior.[1]

A partir de UML 2 és possible afegir un diagrama de seqüència a dins d'un altre amb una referència, fent possible la combinació i reutilització de seqüències simples per crear-ne de més complexes.

Actor

En el Llenguatge de modelització unificat (UML), un actor especifica un rol exercit per una entitat que interactua amb el subjecte.[2] A la imatge de l'esquerra l'actor és la figura situada a l'esquerra i qui realitza la sol·licitud. Els actors poden representar usuaris humans, hardware extern (un servidor) o altres subjectes.[2] L'actor no ha de representar necessàriament una entitat física específica, sinó que pot representar la faceta d'una entitat que sigui rellevant a l'especificació dels seus casos d'ús associats. Per tant, una entitat física pot representar el rol de diferents actors, i així mateix, un actor pot ser interpretat per diferents entitats.

No es permet l'associació entre actors a partir de UML 2, però sí que hi pot haver una relació de generalització o especialització.

Pantalla

S'utilitza per modelar la interacció entre l'usuari i l'aplicació, es podria pensar en ella com el conjunt de formularis, finestres i menús que veu l'usuari a la pantalla. Se la representa amb la segona figura, començant per l'esquerra, de la imatge inclosa a l'apartat.

Control

És la classe encarregada d'atendre la consulta realitzada per l'actor, coordinant el flux d'informació entre la resta de classes. Se la representa amb la tercera figura, començant per l'esquerra, de la imatge.

Objectes o classes

Objectes i/o classes que interaccionen enviant-se missatges, també podem trobar contenidors d'objectes (o classes), que podem diferenciar dels primers gràcies a la notació utilitzada. Sent per als primers:A i pels segons:A[*] on A ve a ser el nom de l'element en qüestió. A la imatge són els requadres de la part superior.

Línies de vida

De l'anglès lifelines, són línies verticals, paral·leles i discontinues que surten de cada objecte oclasse, representen el transcurs deltemps i gràcies a elles podem determinar quan s'executa una acció, queinvolucra l'element del qual surten. D'aquestes en sorgeixen els missatges.

Missatges

Els missatges, representats per fletxes horitzontals perpendiculars respecte a les línies de vida amb el nom del missatge escrit a sobre d'elles, s'utilitzen per representar les interaccions que es produeixen entre objectes, com una acció o crida de mètode. Les fletxes amb la punta tancada representen crides síncrones, les que tenen la punta oberta representen crides asíncrones, i les fletxes discontínues representen missatges de resposta.[3] Si s'envia un missatge síncron, s'ha d'esperar fins que el missatge acabi per continuar, igual que quan es crida una subrutina. Si s'envia un missatge asíncron, es pot continuar sense esperar a la resposta com és el cas de les aplicacions multifil. En cas que la fletxa vagi a parar al mateix objecte del qual prové, s'anomena automissatge.

Fragments combinats

De l'anglès combined fragments, són rectangles amb una etiqueta, que estenen la funcionalitat del diagrama amb funcions com ara un bucle, una alternativa, o la importació d'un altre diagrama.[4]

EtiquetaCatalàAnglèsFunció
altAlternativaAlternativeModelar una estructura alternativa
assertAssercióAssertionModelar una interacció indispensable
breakTrencamentBreakModelar un cas excepcional
considerDestacarConsiderModelar la prioritat d'un missatge important
criticalSecció críticaCritical RegionModelar seccions crítiques
ignoreIgnorarIgnoreModelar la prioritat d'un missatge por important o irrellevant
loopBucleLoopModelar una estructura iterativa
negNegacióNegativeModelar una interacció prohibida
optRegió opcionalOptionModelar una part opcional de la interacció
parRegió paral·lelaParallelModelar una part concurrent de la interacció
seqSeqüenciació dèbilWeak SequencingModelar un procés dependent d'alguna línia de vida i/o objecte
strictSeqüenciació fortaStrict SequencingModelar un procés no dependent d'alguna línia de vida ni objecte

Utilitat

Un diagrama de seqüència mostra la interacció d'un conjunt d'objectes en una aplicació a través del temps i es modela per a cada cas d'ús. Mentre que el diagrama de casos d'ús permet el modelatge d'una vista comercial de l'escenari, el diagrama de seqüència conté detalls d'implementació de l'escenari, incloent-hi els objectes i les classes que s'usen per implementar l'escenari, i missatges intercanviats entre els objectes.

Típicament s'examina la descripció d'un cas d'ús per determinar quins objectes són necessaris per a la implementació de l'escenari. Si es disposa de la descripció de cada cas d'ús com una seqüència de diversos passos, llavors es pot "caminar sobre" aquests passos per descobrir quins objectes són necessaris perquè es puguin seguir els passos.Un diagrama de seqüència mostra els objectes que intervenen en l'escenari amb línies discontínues verticals, i els missatges passats entre els objectes com a fletxes horitzontals.[5]

Poden ser usats en dues formes

  • D'instància: descriu un escenari específic (un escenari és una instància de l'execució d'un cas d'ús).
  • Genèric: descriu la interacció per a un cas d'ús; Utilitza ramificacions ("Branches"), condicions i bucles.

Relació amb el diagrama de comunicació

El diagrama de seqüència i el de comunicació són equivalents, gràcies a aquest fet podem construir el diagrama de comunicació a partir del diagrama de seqüència.

Principals característiques que té el diagrama de comunicació:

  • No presenta línies de vida.
  • Els missatges estan enumerats en l'ordre en què s'executen, cronològicament, per facilitar el control del que està passant.
  • Una mateixa línia de missatge pot implicar el transcurs de més d'un missatge, que estaran col·locats sobre o sota d'aquesta línia.
  • De la mateixa manera que no tots els diagrames de seqüència tenen un actor, aquests també poden prescindir-ne.

Tenint tot això en compte podem observar l'exemple següent, que ens ajudarà a entendre com és la relació.

A la dreta d'aquest apartat tenim dues imatges, la primera és un diagrama de seqüència de crear, basat en un escenari imaginari d'una botiga de lloguers de DVDs, on es crea un nou gènere de pel·lícules i s'afegeix a la relació de gèneres, que conté tots els gèneres de la botiga. La segona imatge representa el diagrama de comunicació equivalent al diagrama de seqüència anterior.

Com es pot veure les línies de vida han desaparegut, però és ben fàcil veure que són força semblants, el nombre d'elements i missatges és el mateix, els únics canvis els trobem a la numeració dels missatges, això es deu al programa amb el qual s'han realitzat els diagrames, segons el programa utilitzat podem veure que la numeració és igual a la del diagrama de seqüència o bé pren un estil més semblant al de l'exemple, on cada pas implica incrementar una unitat la numeració. Però si seguim els missatges, seguint la numeració, podem veure tant un com l'altre fan exactament el mateix, fins i tot amb el mateix ordre, a causa d'aquest fet que es diu que els diagrames de comunicació són equivalents als de seqüència i poden ser elaborats a partir d'aquests.

Referències

Bibliografia

  • M. Jeckle, C. Rupp, J. Hahn, B. Zengler, S. Queins:. Hanser, München, Wien 2004, ISBN 3-446-22575-7, Kapitel 12 - Sequenzdiagramm. (alemany)

Enllaços externs

🔥 Top keywords: PortadaEspecial:CercaCarles Porta i GasetTor (Alins)À Punt FMTor (sèrie de televisió)Llista de municipis de CatalunyaEmilio Delgado OrgazEspecial:Canvis recentsGuinguetaXavlegbmaofffassssitimiwoamndutroabcwapwaeiippohfffXFacultat universitàriaManuel de Pedrolo i MolinaViquipèdia:ContacteBea Segura i FolchAlbert Jané i RieraNit de Sant JoanMort, qui t'ha mort?David Madí i CendrósCarles Puigdemont i CasamajóVila-sanaEwa PajorNicolás SartoriusAlinsAntoni Comín i OliveresGoogle ChromeClara Ponsatí i ObiolsPara-xocsDotze homes sense pietatValtònycLluís Puig i GordiAamer AnwarÈdafonLaura Borràs i CastanyerKylian MbappéPablo HasélFesta del sacrificiJosep Costa i RossellóDionís Guiteras i Rubio