# Diagrama d'activitats

Un diagrama d'activitats és la representació gràfica d'un algoritme o procés. S'utilitza en diferents disciplines com la programació, l'economia, els processos industrials i la psicologia cognitiva.
En el Llenguatge unificat de modelat (UML), un diagrama d'activitats se centra en el flux d'activitats involucrades en un procés, generalment dins del marc d'un o diversos casos d'ús. Aquests mostren en quin ordre s'executen les diferents parts d'un procés i com depenen les unes de les altres. En cap cas proporcionen informació del comportament d'un objecte o de les col·laboracions entre objectes.

## Construcció

Un diagrama d'activitats està representat per un únic oval d'inici i un altre de final; encara que poden tenir-ne més d'un, sempre que es compleixi la lògica requerida.
Accions prèvies a la realització d'un diagrama:
* Identificar les idees principals que han de ser incloses al diagrama.
* Definir qué esperem obtenir del diagrama.
* Identificar qui l'utilitzarà i com.
* Establir el nivell de detalls que requereix.
* Determinar els límits del procés a descriure.
Passos a seguir per a la construcció d'un diagrama:
* Establir l'abast del procés a descriure. Així quedarà fixat l'inici (sortida del procés anterior) i el final (entrada del procés següent) del diagrama.
* Identificar i llistar les principals activitats/subprocessos que estan inclosos en el procés a descriure i el seu ordre cronològic.
* Llistar les activitats menors (si el nivell de detall definit les inclou).
* Identificar i llistar els punts de decisió.
* Construir el diagrama segons la seqüència cronològica preestablerta, assignant els corresponents símbols.
* Assignar un títol al diagrama i verificar que estigui complet i descrigui amb exactitud el procés escollit.

## Simbologia

* Oval: Inici i final (Obre i tanca el diagrama).
* Rectangle: Activitat (Representa l'execució d'una o més activitats).
* Rombe: Decisió (Realitza una pregunta).
* Fletxa: Transició (Ordre d'execució de les activitats).
* Cercle: Connector (Representa l'enllaç de diferents activitats).
* Triangle cap avall: Arxiu definit (Desa un document de forma permanent).
* Triangle cap amunt: Arxiu temporal (Desa un document de forma temporal).
* Creu de diagonals: Destrucció de formularis.
* Barra sòlida: Fork (inici de l'execució d'activitats en paral·lel) i Join (final de l'execució d'activitats en paral·lel).
* Rectangle amb nom subratllat: Objecte (representa un objecte que pot passar-se a una altra activitat).
* Semioval: Retard.
* Trapezoide: Desar dades al sistema.
* Elipsoide: Accès per pantalla.
* Hexágon: Procés no representat.
* Pentagon: Connector

## Funcionament

El procés comença a partir del primer oval situat a la part superior del diagrama (identificat amb un 'Start' ); i acaba amb l'últim oval situat a la part inferior del diagrama (identificat amb un 'End').
De cadascuna d'aquestes activitats en deriva una transició (o fletxa) que la connecta amb la següent activitat. Una transició pot derivar cap a diverses noves transicions (branques) que indiquen les alternatives de les quals disposa el procés, l'inici i el final d'una branca s'indiquen amb un rombe (identificat amb un Branch i un Merge).
L'inici d'activitats en paral·lel i la unió de retrobament d'aquestes activitats (sincronització d'activitats) se simbolitzen amb barres sòlides (identificat amb un Fork i un Join).

## Avantatges

* Afavoreixen la comprensió del procés al mostrar-lo com un dibuix, ja que aquest diagrama substitueix diverses pàgines de text.
* Permeten identificar els problemes i les oportunitats per millorar el procés.
* Mostren les interfícies client-proveïdor i les transaccions que hi ha entre elles, facilitant l'anàlisi d'aquestes.
* Són una bona eina per poder veure de manera clara quan es realitzen millores en el procés.
* Es pot arribar a executar fent servir un ordinador.

## Vegeu també

* Llenguatge unificat de modelat
* Diagrama de classes
* Diagrama de casos d'ús
* Diagrama d'objectes
* Diagrama de seqüència

## Referències

* ↑ UML Revision Task Force. OMG Unified Modeling Language Specification, Version 1.4 (final draft). February 2001.
* ↑ J. Rumbaugh, I. Jacobson, and G. Booch. The Unified Modeling Language Reference Manual. Addison-Wesley, 1999.