calcloud)ima.udg.edu/~sellares/einf-es2/present1011/reqplaprojcalcloud.pdf · 2) calcloud!!! !...
TRANSCRIPT
Enginyeria del Software II
L l o r en ç Bu r g a s N ad a l C a r l o s G a r c í a Rub i o
J o n a t h an Mo l i n a V an s t e enk i s t e D a v i d Muño z Novo a
CalCloud
1 CalCloud
Índex
Planificació del projecte ............................................................................................. 2 1.1.Introducció ......................................................................................................................................................... 2 1.1.1.Motivació ......................................................................................................................................................... 2 1.1.2.Estat del sector ............................................................................................................................................. 2
1.2.Objectius .............................................................................................................................................................. 3 1.3.Metodologia ........................................................................................................................................................ 4 1.4.Recursos .............................................................................................................................................................. 5 1.4.1.Personal ........................................................................................................................................................... 5 1.4.2.Software ........................................................................................................................................................... 5
1.5.Planificació ......................................................................................................................................................... 6 1.5.1.Temporalització ........................................................................................................................................... 6 1.5.2.Diagrama de Gantt ..................................................................................................................................... 8 1.5.3.Control de la temporalització ................................................................................................................ 8
Requeriments ............................................................................................................ 9 2.1.Introducció ......................................................................................................................................................... 9 2.2.Requeriments .................................................................................................................................................... 9 2.2.1.Requeriments Funcionals ......................................................................................................................... 9 2.2.2.Requeriments No Funcionals ............................................................................................................... 12
2.3.Especificació .................................................................................................................................................... 14 2.3.1.Diagrama de casos d’ús de context ................................................................................................... 14 2.3.2.Diagrames de cas d’ús ............................................................................................................................ 15 2.3.3.Fitxes de cas d’ús ....................................................................................................................................... 17
2 CalCloud
Planificació del projecte
1.1.Introducció L'objectiu del projecte “CalCloud”, és el desenvolupament d’una aplicació multi plataforma que permeti a l’usuari resoldre expressions matemàtiques (tan senzilles com complexes) en un temps raonable, utilitzant paral·∙lelització amb altres equips connectats al servei. En aquest apartat es descriuen els objectius del projecte CalCloud. També es llisten els recursos, les eines i les metodologies emprades en el desenvolupament del projecte. Finalment, aquest capítol inclou també la planificació i la distribució de les tasques que el composen.
1.1.1.Motivació El projecte CalCloud neix d’una idea utòpica: crear una eina definitiva que permeti efectuar càlculs complexes amb tanta eficiència com sigui possible des de qualsevol plataforma. Representa la unió de tecnologies de xarxa tan actuals com són el “Grid Computing” i, sobretot, el “Cloud Computing”, per tal d’aconseguir crear una aplicació multi plataforma que sigui capaç de resoldre expressions matemàtiques complexes amb tanta eficiència com l’entorn i el moment ens permeti. La força d’aquesta eina es basa en que està ideada i planificada com a software de lliure distribució, de forma que el seu rendiment millorarà directament a mesura que l’utilitzin més usuaris, aconseguint així una escalabilitat òptima. Creiem que aquest projecte és innovador i pot significar una revolució en la metodologia i la tecnologia del sector del software orientat a les matemàtiques.
1.1.2.Estat del sector Actualment, el sector del software orientat a les matemàtiques és molt ampli però característic. Hi ha incomptables aplicacions que permeten realitzar càlculs matemàtics, des de les més simples operacions aritmètiques fins a integracions i optimitzacions iteratives més complexes. Trobem altres variants, com són els paquets orientats a certs tipus de càlcul, com l’estadística o la comptabilitat. Però aquestes aplicacions són també molt específiques i no tenen un enfoc general.
3 CalCloud
Així doncs, no és senzill trobar aplicacions que resolguin una gran varietat d’operacions o problemes matemàtics. Existeixen, però poques i cap és de lliure distribució. Actualment, una de les aplicacions que més varietat i satisfacció ofereix, és Matlab. Matlab, actualment a la seva versió 7.11 (setembre de 2010), permet resoldre una enorme quantitat de funcions matemàtiques gràcies al seu disseny modular, que ha permès que a través d’una interfície gràfica no massa complexa, s’hagin pogut anar afegint i millorant funcions matemàtiques programades en llenguatges d’alt nivell. Com és de suposar, Matlab no és de lliure distribució, el seu preu per llicència és molt car, de forma que un usuari particular normal i corrent no hi pot accedir. Com veiem, el sector realment té escasses opcions per satisfer totes les necessitats d’un estudiant, un treballador o un enginyer a menys que estiguin disposats a invertir una important suma econòmica en software professional. CalCloud vol aprofitar aquest extremisme entre aplicacions gratuïtes massa simples i paquets complexes massa cars per tal de situar-‐se com a alternativa potent i econòmica per a tot el públic que no es pugui permetre o no vulgui comprar un paquet de software professional degut al seu preu o a que no l’aprofitaria al complet.
1.2.Objectius
Aquest projecte té per objectiu crear un sistema capaç de resoldre operacions matemàtiques tant en la màquina local com de forma remota, és a dir, en diferents màquines a través del “Grid computing”.
En termes generals, volem aconseguir una aplicació que incorpori tècniques tan innovadores com el “Cloud computing” i el “Grid computing” als càlculs tradicionals de mètodes numèrics.
Per tant, els objectius concrets són:
• Dissenyar una aplicació multi plataforma capaç de calcular expressions matemàtiques complexes.
• L’aplicació ha de brindar la capacitat d'atendre peticions d'altres usuaris remots de manera transparent a l'usuari.
• L’aplicació ha de permetre distribuir de manera senzilla els càlculs a realitzar entre les diferents màquines connectades, intentant no saturar-‐ne cap en especial.
• L’eina ha de permetre crear grups d'usuaris que comparteixin càlculs entre ells en “P2P”, sense necessitat de disposar de servidors ni d’infraestructures fixes.
4 CalCloud
1.3.Metodologia Donat que el motor principal de CalCloud és la interfície gràfica, hem decidit que la millor metodologia per aplicar en aquest projecte és la ICONIX. Aquesta metodologia, tot i que es considera pesada, no ho és tan com una RUP. Es basa en, a partir dels casos d’us d’UML, generar diagrames de robustesa (o de seqüència, com serà en el nostre cas) que redueixen l’ambigüitat dels casos d’ús, escrivint els contexts acompanyats d’un diagrama de dominis (diagrama de classe simplificat). Aquest procés fa que els casos d’ús siguin més fàcils d’estimar, dissenyar i provar. Aquesta metodologia també és més lleugera que el RUP perquè utilitza menys tipus de diagrames UML. També és una metodologia iterativa i incremental. A la següent taula, veiem una gràfica que il·∙lustra el funcionament de la metodologia ICONIX.
Cada una de les etapes de la metodologia ICONIX, revisa i actualitza l’etapa anterior, refinant el disseny fins a la seva versió final. Com que en aquest projecte no hi haurà fase d’implementació, sinó que s’aturarà en acabar la fase de disseny, l’etapa dinàmica es basarà en anar generant i refinant els diagrames de seqüència a partir dels requeriments i els casos d’us. D’aquesta manera generarem la documentació del projecte a mesura que dissenyem els diversos mòduls que conformaran el projecte. L’etapa estàtica anirà refinant-‐se a mesura que es completin les etapes dinàmiques de cada mòdul i es comprovi amb el control de qualitat que satisfà els requeriments dels clients.
5 CalCloud
1.4.Recursos En aquest capítol descriurem els recursos amb que s’elaborarà tot el projecte. Distingirem entre els recursos humans, és a dir l’equip de treball, i el software emprat en el desenvolupament i la documentació del projecte.
1.4.1.Personal El nostre equip de desenvolupament consta de quatre professionals, cada un amb els seus rols i tasques assignades. Mostrem aquesta assignació de tasques i rols a la següent taula: Membre Rol Llorenç Burgas Control de qualitat, test i prototipatge Carlos García Dissenyador Jonathan Molina Analista David Muñoz Cap de projecte i documentació Com és natural, donada la reduïda mida de l’equip, el poc temps de desenvolupament amb que contem i que tots estem estudiant la mateixa enginyeria, tots els membres participaran en menor o major grau en cada tasca, tot i que hi participaran notablement els que hi estiguin especialitzats segons l’assignació de rols.
1.4.2.Software El software que utilitzarem en el projecte es pot dividir en dues categories:
• Software utilitzat per la planificació, els requeriments i la documentació
Software Funció
Paquet ofimàtic de l’empresa Microsoft. Amb ell recollim els requeriments, redactem la documentació, registrem les actes de les reunions d’equip i preparem la presentació.
Software d’administració de projectes orientat al desenvolupament de plans, assignació de recursos a tasques, seguiment de progrés, administració de pressupostos i anàlisi de càrregues de feina. L’utilitzem per la planificació del projecte.
6 CalCloud
• Software utilitzat per l’anàlisi i el disseny
Software Funció
Eina CASE de desenvolupament de software amb suport per UML 2. Utilitzem aquesta eina per complementar Microsoft Visio.
1.5.Planificació La planificació del projecte ha de tenir en compte el calendari d’entregues, de la mateixa manera que el temps que comportarà cada tasca (amb tanta precisió com puguem estimar). Comptem amb una temporalització de les fases del projecte i també amb una planificació estimada de tot el desenvolupament del mateix.
1.5.1.Temporalització Les dates establertes del calendari d’entregues són les següents:
• Data d’inici de projecte: 24 de febrer • Entrega de requeriments i pla del projecte: 24 de març • Entrega de l’anàlisi del projecte: 16 d’abril • Presentació del projecte: 10 de juny
La resta de dates no estan establertes, així que estimarem un ritme adequat de treball per tal de complir un termini acceptable. Representarem la data orientativa d’entrega del projecte com el dia 1 de juny. Així doncs, l’equip compta amb aproximadament 15 setmanes de feina per desenvolupar l’aplicació, arribant a acabar el seu disseny, el prototipatge i la documentació. A continuació, representem en una taula el percentatge de la feina total que creiem que ens ocuparà cada fase de l’elaboració del projecte, seguint la nostra metodologia.
Fase Temps destinat % Temps total Requeriments 20 hores 10%
Anàlisi 80 hores 40% Disseny 80 hores 40%
Documentació 20 hores 10% Total 200 hores 100%
7 CalCloud
Aquesta estimació del total d’hores implica que, sent 4 els membres de l’equip de treball, cada un haurien de realitzar 50 hores de feina. Assumint com a data d’entrega aproximada el dia 1 de Juny, el projecte compta amb 15 setmanes de treball, aproximadament. Per tant, cada membre de l’equip treballarà aproximadament unes 4 hores setmanals, tot i que aquestes hores no seran exactes, ja que algunes fases de l’elaboració requeriran més hores i altres menys. A la següent taula hi ha la distribució d’hores de feina, sempre aproximant, al llarg de les 4 fases d’elaboració. Com és natural, tothom participarà de totes les tasques, ja que com hem explicat a l’apartat de recursos, els rols assignats als membres de l’equip son merament orientatius i no impliquen exclusivitat en cap tasca.
Membre Requeriments Anàlisi Disseny Document Total Llorenç Burgas 4 hores 20 hores 20 hores 3 hores 47 hores Carlos García 5 hores 15 hores 25 hores 5 hores 50 hores Jonathan Molina 6 hores 25 hores 20 hores 2 hores 53 hores David Muñoz 5 hores 20 hores 15 hores 10 hores 50 hores A part d’aquesta temporalització, purament orientativa, es realitzaran reunions de periodicitat setmanal comptant amb tots els membres de l’equip, per tal de posar en comú la feina feta, controlar el desenvolupament del projecte i valorar la planificació.
8 CalCloud
1.5.2.Diagrama de Gantt A partir dels recursos, l’equip i la temporalització abans esmentats, s’ha generat un diagrama de Gantt que il·∙lustra gràficament la realització de tasques al llarg del desenvolupament.
Els rombes vermells representen les entregues i els punts de control. Les línies verdes són agrupacions de tasques i representen les fases del projecte. Les línies en blau clar són tasques. Les zones més enfosquides indiquen que s’ha completat una tasca o agrupació de tasques. Assumint un sou bàsic de 8€ per hora per cada treballador, el pressupost estimat del projecte complet seguint aquesta planificació, seria de 1956€.
1.5.3.Control de la temporalització A cada reunió de grup es revisarà la planificació del projecte, per tal de supervisar-‐la i complir-‐la tant com sigui possible, malgrat els imprevistos que puguin sorgir durant l’elaboració del projecte. Interessa que els imprevistos en qüestió provoquin canvis el més lleugers possible. Per cada reunió, es redactarà una acta per tal de comptabilitzar les hores de feina i enregistrar els avanços en cada fase del projecte. Amb aquestes actes es tindrà constància de la feina realitzada setmana a setmana i ajudarà a la presa de decisions davant d’imprevistos. Cada imprevist, implicarà un retard (tan reduït com ens sigui possible) i una modificació en la planificació. També comportarà un registre en les actes de les reunions i una notificació als clients.
9 CalCloud
Requeriments
2.1.Introducció Aquest capítol recull formalment el conjunt d'idees sobre el què ha de ser el nostre projecte, les funcionalitats que ha de complir, així com la manera en que ho aconseguirà. A més a més, per tal de facilitar la comprensió d'aquests objectius, s'inclou el diagrama de casos d'ús de context i també l’especificació del casos d’ús en qüestió. Donat que utilitzem la metodologia ICONIX, les fitxes de cas d’ús es realitzaran directament en vista de dissenyador durant la fase d’anàlisi. Tots els requeriments es basen en la interacció d’un usuari amb una interfície gràfica. A continuació mostrem una vista prèvia aproximada del que seria la interfície de l’aplicació. Aquesta seria la primera versió de la interfície d’usuari. És el prototipus principal i és possible que canviï durant l’elaboració del projecte.
2.2.Requeriments
2.2.1.Requeriments Funcionals
• Un cop oberta l’aplicació, avisar de que compartim recursos: és necessari que l’usuari sigui conscient de que està oferint recursos de “hardware” als altres equips que utilitzin l’aplicació en xarxa.
• Separar una operació matemàtica (integral, derivada, producte, multiplicació, suma, etc.) en el seu terme mínim: el sistema ha de ser capaç de “parsejar” una expressió matemàtica i això implica validar la seva sintaxi i tenir la capacitat de dividir-‐la en cadascuna de les parts que la composin.
• Paral·∙lelitzar i distribuir en diferents sistemes (ordinadors, telèfons, “tablets”,
etc.) aquestes operacions mínimes que, més tard tornaran al terminal principal per tornar a ser unides i mostrar el resultat final: el sistema, després de descompondre una expressió matemàtica en les seves parts mínimes, ha de ser capaç de distribuir-‐les en xarxa per tal que els diferents sistemes que utilitzen l’aplicació (i estan disponibles) puguin rebre petites components i resoldre-‐les
10 CalCloud
per després retornar-‐les al client que sol·∙licitava l’operació. L’aplicació unirà els resultats parcials per tal de trobar la solució final.
• “Aprendre” quan s’han de resoldre les operacions de forma local o de forma distribuïda: Naturalment, les operacions poden tenir diferents graus de complexitat. L’aplicació ha de saber establir uns determinats “llindars” per decidir si la màquina des d’on es demana el càlcul de l’expressió és prou potent com per resoldre el càlcul en qüestió amb més eficiència que el cost que implicaria descompondre-‐la i distribuir-‐la per esperar els resultats per part d’altres equips connectats.
• Detectar les diferents plataformes que comparteixen recursos: Una plataforma
connectada a l’aplicació (sigui un ordinador, un mòbil, una “tablet” o qualsevol altre tipus de sistema compatible) ha d’enviar un avís al servidor en iniciar sessió, de forma que anunciarà la seva disponibilitat en el sistema i podrà ser seleccionat pel servidor a l’hora de distribuir els càlculs parcials d’una expressió matemàtica sol·∙licitada.
o Els usuaris que iniciïn l’aplicació, rebran la llista d’usuaris que han avisat
al servidor fins el moment.
o Quan un usuari tenca l’aplicació, ho comunica abans al servidor perquè
desaparegui de la llista de disponibilitat.
o Quan un usuari rep una petició d’un altre usuari i no el té en llista,
l’afegeix.
o Si un usuari no rep la resposta d’un altre passat el “time-‐out” remot,
l’esborra de la llista de disponibilitat.
o Quan el servidor rebi molts avisos d’un “peer” que no respon,
l’esborrarà de la llista de disponibilitat.
• Les actualitzacions de l’aplicació han de ser automàtiques i desateses al iniciar-‐
se: El programa, només iniciar-‐se, comprovarà la versió del software per tal d’actualitzar-‐se descarregant automàticament la nova versió, si n’hi ha una de disponible. En aquest procés, l’usuari no intervé per a res.
11 CalCloud
• Instanciació dinàmica de noves llibreries/opcions: De la mateixa manera que
amb les actualitzacions, l’aplicació ha de descarregar automàticament totes les llibreries de funcions noves o actualitzades. Novament, aquest procediment és completament desatès.
• L’usuari podrà establir uns “time out” local, per tal de limitar el temps d’espera
d’una operació: Aquest “time out” estableix el temps que l’aplicació permet al “hardware” a l’hora de resoldre de forma local (sense compartir) una expressió matemàtica. Si es supera aquest temps i no s’ha obtingut el resultat, s’avorta el càlcul.
• Només usuaris avançats: establir un tipus addicional de “time out”, per tal de
reenviar una part de l’operació a una altra plataforma si triga més del compte a rebre el resultat: De forma similar al “time out” local, aquest estableix el temps de càlcul que permetem a un sistema connectat a l’aplicació a l’hora de resoldre un càlcul parcial d’una operació matemàtica. Si es supera aquest “time out” i l’estació en qüestió no ens ha retornat una solució, automàticament ignorem l’estació i enviem el càlcul no resolt a un altre sistema disponible.
• Les operacions que tinguin més d’una metodologia o variant de càlcul,
sol·∙licitaran a l’usuari quina variant vol utilitzar: Per exemple, en el cas de les integrals, l’aplicació pot demanar a l’usuari si la vol resoldre pel mètode dels trapezis, per Romberg o per Simpson. En cas de que l’usuari especifiqui manualment la metodologia (quan introdueix l’operació), no caldrà demanar res. Si el mètode requereix alguna dada addicional, com pot ser la tolerància d’error, se li sol·∙licitarà quan triï el mètode de resolució.
• L’aplicació ha d’incorporar un menú d’ajuda que permeti a l’usuari consultar el
funcionament tant de l’aplicació com de les funcions incorporades: Existirà documentació en línia sobre l’ús de l’aplicació i la sintaxi i el funcionament de les diverses operacions suportades per l’aplicació.
12 CalCloud
2.2.2.Requeriments No Funcionals
• L’aplicació ha de ser multi plataforma: L’aplicació ha de poder funcionar des de qualsevol sistema operatiu d’ordinador, mòbil o “tablet”. La primera opció contemplada, és desenvolupar l’aplicació sobre una màquina virtual de Java.
• L’aplicació utilitza la tècnica de “Cloud Computing”
o Els usuaris “premium” disposen d’un “peer” especial. Un equip remot molt potent que sempre tindran disponible per enviar-‐hi càlculs.
• L’aplicació utilitza la tècnica de “Grid Computing”
o Compartiment de recursos
• L’aplicació ha de ser intuïtiva i senzilla per tal que l’usuari pugui introduir les
expressions matemàtiques amb comoditat: La interfície ha d’oferir tota una sèrie de caràcters i símbols per tal que l’usuari pugui introduir completament i sense ambigüitats l’operació que vol resoldre.
• L’aplicació ha de tenir tolerància a fallades
• L’aplicació ha de distingir els usuaris casuals dels usuaris “premium”:
Naturalment, els usuaris bàsics no tenen disponibilitat de totes les funcions de l’aplicació. Així que l’aplicació ha de distingir si un usuari és “premium”, per tal que només ells puguin realitzar les funcions avançades del sistema.
• Les comandes rebudes es processaran a mínima prioritat si l’aplicació s’executa
en segon pla des d’un ordinador i a alta prioritat quan salti el salva pantalles: Amb aquesta característica, aconseguim aprofitar més els recursos disponibles d’un sistema inactiu i no sobrecarregar els sistemes amb més activitat.
• Les comandes en execució des d’un telèfon queden pausades mentre es rep
una trucada: Naturalment, en els dispositius mòbils es pot rebre una trucada en qualsevol moment. És necessari que l’aplicació entri en el mode de pausa per tal de que la trucada s’atengui amb normalitat. En acabar la trucada, l’aplicació ha de continuar amb la seva execució.
13 CalCloud
• L’usuari podrà aportar un feedback de l’aplicació: Qualsevol usuari ha de ser lliure de poder enviar suggeriments, incidències i propostes al nostre equip, per tal de millorar el producte. Es realitzarà a través d’un senzill enllaç de correu electrònic.
• Només usuaris avançats: penjar en un servidor (o enviar-‐nos) noves
funcions/mètodes per afegir a l’aplicació (implementades en Java): Els usuaris “premium” estan animats a col·∙laborar i proposar noves funcions o fins i tot reversions de funcions ja implementades. D’aquesta manera enriquim la plataforma i aconseguim que no només rebem incidències sinó també noves propostes i ajudes.
• Només usuaris avançats: moderar funcions experimentals: Els usuaris
“premium” poden valorar amb una votació per usuari la qualitat d’una funció experimental proposada per un altre usuari “premium”. D’aquesta manera, deleguem la principal validació de funcions als propis usuaris avançats, reduint el cost de manteniment. Al comptar amb un únic vot per usuari i funció, no és possible que hi hagi funcions descartades malintencionadament.
• Només usuaris avançats: revisar les crítiques de les funcions proposades: Els
usuaris avançats poden revisar el rati de votacions que tenen les funcions que va proposar.
14 CalCloud
2.3.Especificació A continuació es mostren tots els casos d’ús especificats a partir dels requeriments recollits del client. Primerament mostrem el diagrama de casos d’ús de context i, a continuació, l’especificació de cada un dels casos d’ús.
2.3.1.Diagrama de casos d’ús de context
Observem al diagrama de casos d’ús de context, que intervenen cinc actors en el sistema. Podríem separar-‐los en tres àmbits:
• Usuaris: Usuaris i usuaris “premium” • Agents del sistema: Paral·∙lelitzador i servidor de la nostra aplicació • Banc: Entitat que gestiona els pagaments dels usuaris
15 CalCloud
2.3.2.Diagrames de cas d’ús A continuació especifiquem una sèrie de casos d’ús per millorar el seu enteniment. Hem obviat casos d’ús simples, com “Consultar ajuda” (que no és més que visualitzar una pàgina web), “Enviar feedback” (que consisteix en enviar un correu electrònic donant una opinió o informant d’un problema amb l’aplicació) o l’establiment dels “time-‐outs” (que simplement consisteixen en ajustar un paràmetre numèric). Especificarem amb nous diagrames de cas d’ús els següents casos:
• Atendre petició • Introduir expressió matemàtica • Registrar-‐se com usuari premium • Iniciar sessió com a usuari premium
També redactarem les fitxes de cas d’ús dels següents casos:
• Moderar funció experimental • Revisar crítiques d’una funció pròpia
Atendre petició Un “peer” només atén les peticions d’altres usuaris, rebent les expressions matemàtiques que ha de resoldre i retornant el resultat a qui li ha sol·∙licitat. Depenent de la naturalesa de l’expressió, la resoldrà completament o la distribuirà encara més a altres “peer” per esperar-‐ne el resultat.
16 CalCloud
Introduir expressió matemàtica Un usuari hereta el comportament bàsic d’un “peer”, atenent peticions d’altres usuaris. A més a més, permet la introducció d’una expressió matemàtica a través d’una entrada (des d’un fitxer, des de la consola de la interfície, etc.) i n’espera el resultat per una de les sortides (per pantalla, en un fitxer, etc.). Hem obviat el cas “Interpretar expressió” perquè funciona de manera idèntica a com està especificat en el cas d’ús “Atendre petició”.
Registrar-‐se com a usuari premium
17 CalCloud
Iniciar sessió com a usuari premium
2.3.3.Fitxes de cas d’ús Iniciar sessió com a usuari premium (vista usuari)
Iniciar sessió com a usuari premium Descripció Avisar a l’aplicació de que som un usuari premium Actors Usuari
Pre-‐condició Cert Flux principal 1. Entrar dades
2. Si les dades són correctes 2.1 Marcar “checks” autosave i/o guardar dades
Flux secundari 3. Altrament, si les dades no són correctes 3.1. Missatge de error
Post-‐Condició L’usuari actual esdevé un usuari premium
18 CalCloud
Moderar funció experimental (vista usuari)
Moderar funció experimental Descripció Ens permet puntuar una funció experimental Actors Usuari Premium
Pre-‐condició Usuari Premium “loguejat” Flux principal 1. Llistar funcions no moderades
2. Seleccionar funció de la llista 3. Puntuar (vot positiu o negatiu) la funció 4. Entrar comentari (crítica) (Opcional) 5. Enviar crítica
Post-‐Condició Crítica de la funció experimental enregistrada Revisar critiques d’una funció pròpia (vista usuari)
Revisar crítiques d’una funció pròpia Descripció Ens permet revisar les crítiques d’una funció que hem creat Actors Usuari Premium
Pre-‐condició Haver creat mínim una funció Usuari Premium “loguejat”
Flux principal 1. Llistar funcions pròpies 2. Seleccionar funció de la llista 3. Mostrar comentaris
Post-‐Condició Crítiques revisades