Sessió A3: Redactant casos d'ús i requeriments associats

Dijous 11 d'Octubre

Objectius

El document de requeriments

Les dues audiències

El document de requeriments té un doble objectiu:

Per això és interessant distingir dues audiències quan redactem el document de requeriments: farem els requeriments d'usuari adreçats a una audiència no tèncnica, i els requeriments de sistema orientats a una audiència tècnica.

En el nostre cas, tot el que estem treballant en el bloc A (requeriments de domini, casos d'ús, funcionals i no funcionals) ho podem veure com els requeriments d'usuari. En canvi els requeriments de sistema serà una versió més detallada i formal dels requeriments. Més endavant veurem que una forma d'expressar aquests requeriments és usant tests funcionals escrits en codi (executables). Els dos tipus de requeriments han d'estar relacionats per poder contrastar-los

detall Coherència del llenguatge
Independentment de l'audiència a la que ens dirigim els conceptes i les expressions han de significar el mateix al llarg del document i millor si es clarifiquen abans. Per mantenir la coherencia en els termes cal mantenir actualitzat un glossari acordat amb els stakeholders. També cal ser consistent en l'ús dels temps verbals. Sobre aquest tema hi ha dedicat un estàndard: IETF RFC 2119.

Redactant els casos d'ús

Actors primaris y actors de suport (repàs)

Actor: Quelcom (persona, sistema extern...) que interactua amb el sistema en consideració. En un determinat cas d'ús, els actors que intervenen són:

Escenari principal d'èxit

Un escenari és un exemple concret de com es pot desenvolupar un cert cas d'us. Per cada cas d'ús hi ha escenaris d'èxit i escenaris de fracàs segons si la intenció de l'actor primari es compleix o no. Per descriure el cas d'ús, escollirem l'escenari d'èxit més clar i directe com l'escenari exitós principal i enumerarem el fluxe d'events d'aquest escenari.

Extensions

La resta de escenaris, tant exitosos com de fallada, es descriuen com a extensions respecte aquest escenari principal. Una extensió es defineix amb:

Així podem anar afegint extensions de forma incremental a l'escenari principal que al mateix temps queda més entenedor que si incorporessim la lògica de casos.

Relacions entre casos d'ús

Les relacions entre casos ens permeten simplificar la lectura i escriptura de la seva descripció.

Relació includes

A vegades, massa detall en els passos d'un cas d'ús el fa dificil de llegir. Sovint els passos s'agrupen en un nou cas d'ús i simplement s'hi estableix una relació d'inclusió (el gran inclou el cas d'ús de detall). Fer servir l'inclusió ens pot estalviar reescriure aquests passos en uns altres casos d'ús i facilita la lectura.

Relació extends

Quan tenim extensions llargues o extensions amb extensions, el cas d'ús pot esdevindre dificil d'entendre. Sovint és més clar extreure una alternativa com un cas d'ús diferent relacionat amb l'original per una relació d'extensió.

Diem que un cas d'ús (extensió) extén un altre (base) si defineix un fluxe d'events alternatiu al base que cal seguir quan es donen certes circumstàncies.

Relació generalizes

Sovint hi ha casos d'ús que tenen característiques molt semblants. Per no haver de repetir aquestes característiques a tots els casos d'ús podem crear un cas d'ús incomplert que defineixi les coses comuns. Les especialitzacions d'aquest cas d'ús hereden totes les relacions y definicions que fem al cas d'us generalitzat.

Exemple de relacions

Exemple de relacions entre casos d'ús:

Exemple de relacions

Nota: Aquest diagrama és només un exemple de relacions. I no és directament aplicable al nostre problema.

També hem posat un exemple de redacció de casos d'ús. Al capítol 6.5 dels apunts pots trobar molta més informació sobre com elaborar els diagrames de casos d'ús i la documentació dels fluxes d'events. A continuació presentem un exemple de redacció d'un cas d'ús d'un altre sistema especialitzat en venda de música:


Cas d'ús: Definir àlbum

Context: Un músic o operador vol agrupar cançons en un àlbum que pugui ser distribuit en suport físic.

Actors primaris: Definidor d'album (generalitza Músic i Operador)
Actors de suport: Responsable catàleg

Precondicions:
- El definidor està validat al sistema com a usuari de tipus músic o operador
- El definidor ha introduit previament totes les cançons que vol posar a l'àlbum dintre del sistema
- El definidor té una caràtula dissenyada al seu ordinador

Postcondicions d'èxit:
- El album queda definit i disponible pels futurs compradors
- El Responsable del catàleg rep una notificació per mail del nou àlbum definit

Postcondicions de fracàs:
- El sistema no modifica el seu estat intern

Escenari exitós principal:

1. El definidor introdueix la informació de l'àlbum (nom, artista, any, estils)
2. El sistema cerca les cançons disponibles y les presenta l'actor
3. El definidor <<determina la llista ordenada de les cançons>> que entraran a l'àlbum.
4. El sistema verifica que el tamany de les cançons no supera el tamany del CD
5. El definidor <<defineix la caratula>> de l'àlbum.
6. El definidor confirma la definició d'àlbum.
7. El sistema calcula el preu de cost i els marges de la discogràfica
8. El definidor defineix el marge que vol obtenir
9. El sistema posa àlbum a disposició de futurs compradors
10. El sistema envia una notificació per mail al responsable del catàleg

Extensions:

4.a. El tamany de les cançons supera el tamany del CD
4.a.1. Tornem al pas 2

6.a. El definidor no està d'acord amb la definició
6.a.1. Tornem al pas 1, però oferint les dades ja entrades.

1-8.a. La sessió web finalitza abans de acabar la transacció
1-8.a.1. Tota la definició de l'àlbum queda invalidada

1-8.b. El definidor cancel.la la definició
1-8.b.1. Tota la definició de l'àlbum queda invalidada

Includes:

- Determinar llista ordenada de cançons
- Definir caràtula

Requeriments Funcionals Associats:

- La notificacio al Responsable del catàleg ha de contenir:
	- Qui ho ha definit
	- La informacio de l'àlbum
	- La llista dels tracks
- El CD grabat incloura la informació textual dels tracks
- Al pas 1 cal presentar una llista d'estils existents
- El preu de cost d'un CD és el definit al cas d'ús Fixar Preu de Venda
- El marge de la discogràfica és marge de senzill si no supera els 4 tracks.
- El marge de la discogràfica és marge de llarga durada, si té 4 tracks o més.
- Els marges de senzill i de llarga durada són els definits al cas
  d'ús Fixar Preu de Venda
- Les cançons descatalogades no es presenten com a disponibles
- En el cas que el Definidor sigui un Músic, les cancions disponibles han
  de restringir-se a les del músic.
- En el cas que el Definidor sigui un Operador, les cancions disponibles
  són les de tots els músics.
- En cas que el Definidor sigui operador, la llista de cançons disponibles
  serà navegable per musics. 
- la llista de disponibles ha de contenir les cançons no seleccionades
  en tot moment 
- El Definidor ha de poder dessel.lecionar de la llista de tracks cançons 
  previament seleccionades
- El Definidor ha de poder reordenar la llista de tracks 
- El sistema ha de mostrar al Definidor el cost del CD, el marge de la
  discogràfica i la suma. (veure domini[marge_discografica, costos] 

Requeriments No Funcional Associats:

- El tamany de l'álbum es limita a 65 minuts
- Cadascuna de les pantalles presentades inclourà al costat una descripció
  detallada del punt del procés i del que l'usuari ha de fer.
- La interfície ha de ser per web. (general?)
- L'accés a la interficie web ha de estar encriptat. (general?)

Requeriments de Domini Associats:

- Un CD d'audio està limitat a 99 tracks

Redacció dels Casos d'ús i requeriments associats

Al redactar els requeriments hem de tenir en compte:

note Validació

Qué hauríem de revisar de la redacció abans de donar-lo al client per que ho validi?

Què comprovarà el client a la validació?

I haurem d'iterar el procés d'obtenció dels requeriments fins que el validador (client) consideri que les quatre coses es compleixin (o nosaltres ens busquem altres clients amb les idees més clares).

Requeriments no funcionals

Són restriccions sobre els requeriments funcionals o al procés de desenvolupament. A vegades són massa subjectius, cal que siguin descrits de forma concreta (quantificant) per tal de poder-los verificar.

A continuació teniu una classificació dels requeriments no funcionals. Aquesta classificació ens va molt bé fer-nos descobrir requeriments no funcionals.

Nota: No cal posar al document, a quina categoria cau cada requeriment

Tasques

  1. Fitxes dels casos d'ús: Descriu de forma estructurada tres dels casos d'ús: Comprar llibre, Revisar llibre pujat i els casos d'ús extesos o usats.
  2. Opcional: Descriu de forma estructurada el cas d'ús Defineix col·lecció.
  3. Estableix les relacions que hi ha entre els diferents casos d'ús (els identificats a l'anterior sessió).
  4. Converteix la llista de casos d'ús en un (o varis) diagrama de casos d'ús. Tot indicant les relacions entre els casos d'ús i entre els actors
  5. Afegiu a la fitxa de cada cas d'us, l'apartat Stakeholders implicats:. Aquests son amb qui hauriem de parlar si volem modificar el cas d'us.
  6. Extreieu requeriments funcionals addicionals, de cada cas d'ús de les fitxes. Sempre que pogueu (encara que suposi fer servia la imaginació, incloeu la restrejabilitat (o orígen) de cada requeriment. Afegiu-los com a últim apartat de la fitxa de cada cas d'ús
  7. Hi ha requeriments funcionals que són molt generals (efecten a tots o uns quants casos d'ús) i no seria massa apropiat copiar-los a cada cas d'ús. Per resoldre això, crea una secció Requeriments funcionals generals que contingui aquest tipus de requerimetns.
  8. Assegureu-vos de que els requeriments estan definits de forma estructurada i granular.
  9. Useu links sempre que sigui útil. Per exemple a l'apartat de Requeriments funcionals generals quan un requeriment es refereixi a certs casos d'ús concrets. Un altre cas (important!) és la fitxa de cada cas d'ús: cal linkar les referències als casos d'ús relacionats per <<uses>> i <<extends>>
  10. Actualitzeu el glossari segons vagin sorgint coses noves.
  11. Actualitzeu el llistat de punts foscos que heu identificat en el procés. Aquest llistat ens donarà peu a noves entrevistes amb els stakeholders
  12. Repassar els requeriments ja identificats, associats a cada cas d'ús, i els generals i extreure'n els que siguin no funcionals a un nou apartat.
  13. Descobrir nous requeriments no funcionals. Una manera de fer-ho és mirar per cada requeriment funcional els no funcionals associats.
    Nota:

    Com que a l'enunciat no tenim gaire informació concreta haureu de fer servir la imaginació. Fent servir el sentit comú, això sí.

    Al món real també té sentit "inventar-se" alguns requeriments no funcionals, ja que serveix com a proposta concreta que el client haurà de validar (o no).

Valid XHTML 1.0!