# Fitxa de cas d'ús

En l'enginyeria del programari, una fitxa de cas d'ús és un model d'especificació de Casos d'ús, adreçat sempre a un cas d'ús concret (una fitxa pertany a un cas d'ús, però d'un cas d'ús poden elaborar-se diverses fitxes). Consisteix bàsicament a redactar un cas d'ús mitjançant text, "escriure'l", podríem dir.

## Construcció

El tipus més comú i recomanable de cas d'ús són els anomenats casos d'ús de caixa negra. Deuen el seu nom a que no descriuen el funcionament intern del sistema (com ho fa: components, disseny...) sinó com ho fa.
El seu format queda a decisió personal: cap és sempre millor que un altre. Des d'un punt de vista de diferenciació d'interaccions tenim dos grans formats:
* Una columna (compacte): tota la interacció es detalla en una columna. Més compacte i fàcil de formatar.
* Dues columnes (conversacional): una columna pels actors i una altra pel sistema. Proporciona una clara separació visual, una imatge de "conversació".
Una vegada decidit el format que volguem emprar és simplement qüestió de definir els apartats i emplenar-los.

## Contingut

No hi ha cap model estàndard que defineixi com redactar una fitxa de cas d'ús: diferents formats poden funcionar per casos d'ús diferents.
Tot i això, s'ha de procurar que la fitxa de cas d'ús sigui sempre simple, clara i breu independentment de l'esquema que s'utilitzi.

### Esquema general (Fowler)

Un esquema grosso modo d'una fitxa de cas d'ús, per una perspectiva general i simplificada d'aquest, és la que segueix:
* Nom/Títol: objectiu que s'intenta assolir amb el cas d'ús.
* Escenari principal: llista numerada de passos en una execució ideal (entenem per pas una interacció simple entre actor i sistema).
* Extensions: conjunt de llistes, independents l'una de l'altra (cada una és una "extensió": desenvolupa l'execució per una interacció diferent a les de l'escenari principal.

### Esquema concret (Cockburn)

El llibre d'Alistair Cockburn, Writing Effective Use Cases (que podria traduir-se com "Escriure casos d'ús efectius"), és un referent en la definció de fitxes de casos d'ús.
L'esquema que proposa és un dels més estesos:
* El nom del cas d'ús (és a dir, quin cas d'ús documenta la fitxa): com a títol.
* Descripció: resum del que es pretén dur a terme.
* Abast: quin sistema considerarem la "caixa negra" del disseny.
* Nivell: visió d'usuari (explica què fa com des de la perspectiva sobre el sistema d'una caixa negra: 'explica què fa i no com, de manera que un individu sense coneixements sobre el sistema o d'informàtica ho pugui entendre) o bé visió d'anàlisi (explica què fa amb l'ús de paraules reservades, nivell "d'informàtic").
* Actor principal: nom o descripció de l'actor que interactua primordialment amb el sistema.
* Precondició: Què s'espera (requereix) quant a l'estat inicial del "món".
* Postcondició: Què podem garantir quant a l'estat del "món" en acabar l'execució.
* Flux principal: Passos que segueix el programa des del seu inici fins que acaba, suposant una execució idònia (sense problemes, errors, eventualitats...) detallant cada un dels canvis duts a terme.
* Flux alternatiu ("extensions"): Passos que segueix el programa en la seva execució incloent qualsevol error o eventualitat resoluble (per exemple, fer "login" i que s'introdueixen incorrectament les dades...).
En ser només una guia, d'alguns apartats d'aquest esquema pot prescindir-se, altres poden ser afegits... depèn del nivell de detall que es busqui assolir.

## Referències

* http://alistair.cockburn.us/Basic+use+case+template/v/slim
* http://martinfowler.com/bliki/UseCase.html
* http://ontolog.cim3.net/cgi-bin/wiki.pl?UseCasesDocumentTemplate

## Bibliografia

* Cockburn, A. (2001). Writing Effective Use Cases (1a ed.). Addison-Wesley.
* Fowler, Martin. (2004). UML Distilled (3a ed.). Addison-Wesley.
* Larman, Craig. (2003). UML y Patrones (2a ed). Prentice Hall.