Usuari:U1921018/proves
El diagrama de seqüència (de l'anglès sequence diagram) és un diagrama d'interacció UML que mostra com els processos en un sistema interaccionen entre ells durant el transcurs del 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.
Estructura
[modifica]Els missatges es dibuixen cronològicament des de la part superior del diagrama a la part inferior; la distribució horitzontal dels objectes és arbitrària. Durant l'anàlisi inicial, el modelador típicament col·loca el nom comercial d'un missatge en la línia del missatge. Més tard, durant el disseny, el nom comercial és reemplaçat amb el nom del mètode que està sent anomenat per un objecte en l'altre. El mètode anomenat, o invocat, pertany a la definició de la classe instanciada per l'objecte en la recepció final del missatge.
Actor
[modifica]En el Llenguatge unificat de modelat (UML), un actor especifica un rol exercit per una entitat que interactua amb el subjecte.[1] Els actors poden representar usuaris humans, hardware extern (un servidor) o altres subjectes.[1] 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ó.
Objectes o classes
[modifica]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ó.
Línies de vida
[modifica]De l'anglès lifelines, són línies verticals, paral·leles i discontinues que surten de cada objecte o classe, representen el transcurs del temps i gràcies a elles podem determinar quan s’executa una acció, que involucra l’element del qual surten. D’aquestes en sorgeixen els missatges.
Missatges
[modifica]Són línies perpendiculars, respecte a les línies de vida, que van d'una línia de vida a una altra, en cas d’anar a parar a la mateixa línia de vida se’ls anomena automissatges. S’utilitzen per representar les interaccions que es produeixen entre dos objectes o un, en cas d’un automissatge. Generalment porten el nom de mètodes que té l’element del qual surten i els paràmetres necessaris.
Fragments combinats
[modifica]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.
Etiqueta | Català | Anglès | Funció |
---|---|---|---|
alt
|
Alternativa | Alternative | Modelar una estructura alternativa |
assert
|
Asserció | Assertion | Modelar una interacció indispensable |
break
|
Trencament | Break | Modelar un cas excepcional |
consider
|
Destacar | Consider | Modelar la prioritat d'un missatge important |
critical
|
Secció crítica | Critical Region | Modelar seccions crítiques |
ignore
|
Ignorar | Ignore | Modelar la prioritat d'un missatge por important o irrellevant |
loop
|
Bucle | Loop | Modelar una estructura iterativa |
neg
|
Negació | Negative | Modelar una interacció prohibida |
opt
|
Regió opcional | Option | Modelar una part opcional de la interacció |
par
|
Regió paral·lela | Parallel | Modelar una part concurrent de la interacció |
seq
|
Seqüenciació dèbil | Weak Sequencing | Modelar un procés dependent d'alguna línia de vida i/o objecte |
strict
|
Seqüenciació forta | Strict Sequencing | Modelar un procés no dependent d'alguna línia de vida ni objecte |
Utilitat
[modifica]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.
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.
Tipus de missatges
[modifica]Existeixen dos tipus de missatges: els sincrònics i els asincrònics. Els missatges sincrònics es corresponen amb trucades a mètodes de l'objecte que rep el missatge. L'objecte que envia el missatge queda bloquejat fins que acaba la trucada. Aquest tipus de missatges es representen amb fletxes amb el cap ple. Els missatges asincrònics acaben immediatament, i creen un nou fil d'execució dins de la seqüència. Es representen amb fletxes amb el cap obert.
També es representa la resposta a un missatge amb una fletxa discontínua.
Relació amb el diagrama de comunicació
[modifica]El diagrama de seqüència i el de comunicació són equivalents, gracies a aquest fet podem construir el diagrama de comunicació a partir del diagrama de seqüència. Abans d'explicar les imatges de la dreta recalcarem les principals característiques que te el diagrama de comunicació.
- No consta de línies de vida.
- Els missatges estan enumerats en l'ordre en que s'executen, cronològicament, per facilitar un el control del que esta passant.
- Una mateixa línia de missatge pot implicar el transcurs de més d'un missatge, que estaran col·locats sobre o sota 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 serà més fàcil entendre l'exemple següent, que ens ajudarà a entendre com és la relació.
A la dreta d'aquest apartat tenim dos 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 conte 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 que 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 del 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, es degut a aquest fet que és diu que els diagrames de comunicació són equivalents als de seqüència i poden ser elaborats a partir d'aquests.
Referències
[modifica]Enllaços externs
[modifica]Anglés:
- UML Distilled by Martin Fowler
- Current UML Specification by Object Management Group (OMG)
- Introduction to UML 2 Sequence Diagrams by Scott W. Ambler.
- A Quick Introduction to UML Sequence Diagrams by Yanic Inghelbrecht
- UML 2 Sequence Diagrams
- A free Sequence Diagram web-based tool By WebSequenceDiagrams.com
- ckwnc - Web based UML Sequence Diagram creation tool
Bibliografia
[modifica]M. Jeckle , C. Rupp, J. Hahn, B. Zengler, S. Queins: . Hanser, München, Wien 2004, ISBN 3-446-22575-7, Kapitel 12 - Sequenzdiagramm. (Alemany)Sequencia