Full text
1 Ramon Martí i Gallego APLICACIÓ FACEBOOK PER A LA GESTIÓ COORDINADA DE MASCOTES ABANDONADES O PERDUDES Autor: Ramón Martí Gallego Director: Dr. José Luis Poza Luján
3 Ramon Martí i Gallego APLICACIÓ FACEBOOK PER A LA GESTIÓ D’ABANDONAMENTS I PÉRDUDES D’ ANIMALS R EALITZAT PER : R AMON M ARTÍ I G ALLEGO P AR A L ’ OBTENCIÓ DEL TÍTOL DE : E NGINYER T ÈCNIC EN I NFORMÀTICA DE G ESTIÓ A L CENTRE : E SCOLA T ÈCNICA S UPERIOR D ’E NGINYERIA I NFORMÀTICA U NIVERSITAT : U NIVERSITAT P OLITÈCNICA DE V ALÈNCIA D IRIGIT PER : J OSÉ L UIS P OZA L UJÁN V ALÈNCIA , DIMECRES , 04 DE ABRIL DE 2012
5 Ramon Martí i Gallego Resum Aquest text és la memòria del projecte final de carrera de Ramon Martí i Gallego realitzat per a l’obtenció del títol en Enginyeria Tècnica en Informàtica de Gestió en l’Escola Tècnica Superior d’Enginyeria Informàtica de la Universitat Politècnica de València. En ell es va a documentar el procés a través del qual s’ha obtingut l’aplicació Facebook per a la gestió de pèrdues i abandonaments d’animals. En primer lloc farem una breu introducció en la que explicarem els motius pels quals s’ha decidit fer aquest projecte i no un altre i en la que marquem els objectius d’aquest projecte dividits en dos branques, segons siguen de caràcter tecnològic o social. A continuació introduirem al lector en el món de les protectores i dels animals. Així, exposarem el problema que suposa per a la societat l’abandonament d’animals i tot el que fan les protectores en aquest sentit per tal d’intentar reduir aquest tipus d’accions. També s’explicarà la forma de treballar que tenen les protectores a traves de la xarxa i les deficiències que presenten els models i protocols que fan servir tant per comunicarse com per difondre la informació a través d’Internet. Seguidament assenyalarem els punts bàsics que hauria de complir el protocol per que siga eficient, i dissenyarem en aquest sentit els pilars bàsics en els que es recolzarà la nostra aplicació. Tot seguit analitzarem al detall les diferents tecnologies amb les que podríem desenvolupar l’aplicació, explicant per a cada cas quins avantatges i desavantatges presenta cada tecnologia per tal de triar la que més s’ajuste a les nostres necessitats. A més a més, explicarem al lector les característiques principals les xarxes socials i en que es basa el seu èxit i detallarem les mes importants. També donarem unes nocions de programació en Facebook, en les que explicarem quin és el mecanisme més senzill per connectar una pàgina web a la plataforma de l’esmentada xarxa social. Prosseguirem amb el disseny de l’aplicació, que consta de diversos esquemes i documents realitzats seguint els diferents estàndards. Així, en primer lloc realitzarem l’especificació conceptual amb la que explicarem el sistema d’una manera lògica i natural, comentant els diferents processos tal i com han d’ocórrer en la vida real. A continuació presentarem el document d’especificació de requeriments. Amb aquest document intentarem explicar l’àmbit, la visió general, la descripció i la perspectiva en els que es desenvoluparà el nostre projecte. També definirem les funcions que s’intenten cobrir amb el producte, les diferents restriccions que presenta per la seua natura, i explicarem les suposicions i les premisses de les què partim. Pel que fa a l’especificació formal de l’aplicació, seguirem l’estàndard de modelat UML. Aquesta especificació descriu tant l’estructura de l’aplicació com la de les dades, així com el funcionament intern que tindrà l’aplicació. S’ha fet utilitzant els diagrames de casos d’ús per implementar la capa de presentació, diagrames de seqüència per la capa de negoci, i el diagrama entitat-relació per presentar la capa de dades. Una volta realitzat el disseny de l’aplicació, passarem al desenvolupament de l’aplicació. Així, es mostrarà un prototipus funcional de l’aplicació i es detallaran les diferents funcionalitats que s’han implementat. Seguidament connectarem l’aplicació web amb la interfície de Facebook.
6 Ramon Martí i Gallego Finalment explicarem les conclusions que es desprenen de la realització del projecte i valorarem en que mesura hem aconseguit els objectius marcats al començament de la memòria. Conclourem comentant quins seran les passes a seguir per poder continuar amb la millora i el manteniment de l’aplicació.
7 Ramon Martí i Gallego Índex Resum ............................................................................................................................... 5 Índex ................................................................................................................................. 7 Índex de figures ............................................................................................................. 11 Introducció ..................................................................................................................... 13 Motivació ............................................................................................................................... 13 Objectius ............................................................................................................................... 13 Socials ............................................................................................................................................. 14 Tecnològics ..................................................................................................................................... 14 Descripció del document ...................................................................................................... 14 Conceptes Teòrics de l’Entorn ...................................................................................... 17 Introducció ............................................................................................................................ 17 Entorn del projecte .............................................................................................................. 17 Problemàtica ......................................................................................................................... 18 Sobre animals i abandonament ........................................................................................... 21 Conclusions ........................................................................................................................... 23 Conceptes teòrics de l’aplicació .................................................................................... 25 Introducció ............................................................................................................................ 25 Aplicacions Web ................................................................................................................... 25 Capa de Dades ................................................................................................................................. 26 Antecedents ............................................................................................................................... 26 Bases de dades relacionals ......................................................................................................... 27 PostgreSQL ................................................................................................................................ 28 MySQL ...................................................................................................................................... 29 SAP DB ..................................................................................................................................... 29 Firebird SQL .............................................................................................................................. 30 Capa de Negoci ............................................................................................................................... 30 Interfície Comuna de Passarel·la (CGI) ..................................................................................... 30 Miniaplicació de Servidor (Servlets) ......................................................................................... 31 JSP ............................................................................................................................................. 32 ASP y ASP.NET ........................................................................................................................ 32 PHP ............................................................................................................................................ 33 Presentació (HTML, CSS, JavaScript) ............................................................................................ 34 HTML / XHTML ....................................................................................................................... 34 CSS ............................................................................................................................................ 35 JavaScript ................................................................................................................................... 35 AJAX ......................................................................................................................................... 36 Xarxes socials ........................................................................................................................ 37 Descripció de les xarxes socials ...................................................................................................... 37 Principals xarxes socials .................................................................................................................. 43 Facebook .................................................................................................................................... 43 Google+ ..................................................................................................................................... 46 Twitter ....................................................................................................................................... 49 Tuenti ......................................................................................................................................... 52 Forsquare ................................................................................................................................... 55
8 Ramon Martí i Gallego Youtube ..................................................................................................................................... 56 Flickr .......................................................................................................................................... 58 Programació en Facebook ............................................................................................................... 59 Aplicacions integrades en Facebook.com .................................................................................. 59 Conclusions ........................................................................................................................... 68 Disseny de l’aplicació .................................................................................................... 69 Introducció ............................................................................................................................ 69 Especificació conceptual ...................................................................................................... 69 Alta animal ...................................................................................................................................... 69 Modificació de l'animal ................................................................................................................... 70 Cerca d'animals ............................................................................................................................... 71 Esborrat d'animals ........................................................................................................................... 71 Usuari administrador ....................................................................................................................... 72 Especificació de requeriments ............................................................................................. 73 Àmbit............................................................................................................................................... 73 Visió general del document ............................................................................................................. 73 Descripció general ........................................................................................................................... 74 Perspectiva del producte .................................................................................................................. 74 Funcions del producte ..................................................................................................................... 74 Usuari no donat d'alta ................................................................................................................ 75 Usuari registrat (Protectores, albergs, particulars) ..................................................................... 75 Usuari administrador ................................................................................................................. 76 Característiques de l'usuari .............................................................................................................. 77 Restriccions ..................................................................................................................................... 77 Suposats i dependències............................................................................................................. 78 Requeriments específics .................................................................................................................. 78 Interfícies externes ..................................................................................................................... 78 Interfícies d'usuari ...................................................................................................................... 78 Interfícies de maquinari ............................................................................................................. 79 Interfícies de programari ............................................................................................................ 79 Interfícies de comunicació ......................................................................................................... 79 Requeriments Funcionals ................................................................................................................ 80 Gestió de comptes d'usuari ........................................................................................................ 80 Gestió dels animals .................................................................................................................... 81 Gestió d'administració ............................................................................................................... 84 Requeriments de rendiment ............................................................................................................. 87 Restriccions de disseny ................................................................................................................... 87 Especificació formal ............................................................................................................. 88 Capa de presentació ......................................................................................................................... 88 Instal·lació de l’aplicació ........................................................................................................... 89 Animal_breeds ........................................................................................................................... 91 Animal Types............................................................................................................................. 94 Animal ....................................................................................................................................... 97 Capa de negoci .............................................................................................................................. 100 Animal_breeds ......................................................................................................................... 100 Animal_Types.......................................................................................................................... 103 Animals .................................................................................................................................... 107 Capa de dades ................................................................................................................................ 111 Conclusions ......................................................................................................................... 117 Implementació de l’aplicació ...................................................................................... 118 Introducció .......................................................................................................................... 118 Prototipus inicial ................................................................................................................ 118 Pàgina principal ............................................................................................................................. 118 Consulta ......................................................................................................................................... 120
9 Ramon Martí i Gallego Inserció .......................................................................................................................................... 121 Esborrat ......................................................................................................................................... 124 Prototip funcional .............................................................................................................. 125 Connexió amb Facebook ............................................................................................................... 125 Execució en Facebook ................................................................................................................... 127 Pàgina principal ....................................................................................................................... 128 Races d’animals ....................................................................................................................... 128 Espècies d’animals ................................................................................................................... 130 Animals .................................................................................................................................... 131 Conclusions ......................................................................................................................... 133 Conclusions .................................................................................................................. 135 Treball desenvolupat .......................................................................................................... 135 Treball futur ....................................................................................................................... 136 Bibliografia .................................................................................................................. 137 Pàgines Webs ...................................................................................................................... 137 Llibres i manuals ................................................................................................................ 138
17 Ramon Martí i Gallego Conceptes Teòrics de l’Entorn Introducció Al present capítol parlarem de les protectores d'animals en general i de la seua forma de treballar i de la seua difusió a traves de la xarxa, en particular. En primer lloc descriurem el protocol de comunicació i de difusió de les protectores d’animals en general i després ens centrarem al protocol que fan servir a través de la xarxa. Comentarem la problemàtica que presenta eixa forma de treball i proposarem millores a la forma de comunicar-s’hi. Explicarem els orígens de les protectores d’animals, la seua finalitat, la seua forma de treball, tot l’esforç que estan fent i tot el que han aconseguit en aquests últims anys. Parlarem també del fenomen d’abandonament d’animals, tant a nivell europeu, com als nivells espanyol i valencià. Exposarem com a evolucionat el pensament de la gent en els últims anys gràcies a les campanyes de conscienciació i així de com s'han millorat els resultats en l'última dècada, malgrat que encara siga molt elevat el nombre d'abandonaments. Per últim comentarem l'impacte que té aquesta temàtica sobre les xarxes socials i el gran nombre de col·lectius que es dediquen a garantir una vida digna per als animals que la gent abandona. Entorn del projecte Les protectores d’animals es proveeixen d’Internet per poder promocionar-se i així poder fer-s’hi més visibles. A més a més, d’aquesta manera els resulta més fàcil difondre i gestionar la informació que hi reben. Qualsevol organització pot gestionar la informació en Internet mitjançant les pàgines web, què faciliten la inclusió i ordenació de la informació a traves de xarxa. A més a més és molt fàcil i còmoda la navegació a través de la informació per a l’usuari. No obstant això, però, la missió d’una protectora no és una altra que poder difondre la informació d’una manera ràpida i intel·ligent. És per això que els hi fa falta un mecanisme més “humà” que els permeta la difusió de la nomenada informació. Aquest mecanisme el podem aconseguir fàcilment amb les xarxes socials, i més concretament amb la que va ser objecte d’estudi: Facebook. Facebook proporciona a les protectores d’animals la facilitat d’estar en contacte directe amb les persones interessades. D’aquesta manera, resulta més senzill que els usuaris comuniquen la informació sobre els animals perduts o trobats. De la mateixa manera, les protectores poder fer eco de la notícia molt fàcilment i fer així que els avisos arriben a tots els seus usuaris en uns pocs de segons. Açò, no ha passat desapercebut, ja que fent una senzilla cerca hi podem trobar en aquesta xarxa social centenars de perfils i grups de protectores d’animals, alguns amb milers de seguidors, què s’encarreguen de difondre els avisos dels animals perduts i
18 Ramon Martí i Gallego abandonats. Aquest fet demostra també que aquesta temàtica provoca un gran interès social. A més de fer servir els mecanismes darrerament descrits, les ja mencionades organitzacions continuen enviant-se la informació a través del correu electrònic per a que resulte més senzilla la gestió dels animals abandonats i la cerca de nous. Tots aquests mitjans són de gran utilitat, però no ens hem d’oblidar dels mitjans habituals, com per exemple la col·locació de cartells a la via, als comerços o la publicitat a les revistes i els diaris. En canvi l’estructura actual no és gens eficient. El problema es produeix a l’existir tantes protectores d’animals en Facebook que gestionen les mateixes denúncies i no tindre cap coordinació entre elles. Els avisos s’hi envien de manera repetida als usuaris. Plasmarem amb un exemple de la forma de treballar que tenen les protectores en aquesta xarxa social: Un usuari perd un animal i es posa en contacte amb totes les protectores properes que hi coneix. Els perfils de les diferents protectores d’animals immediatament generen un avís. A més, avisaran a totes les protectores “amigues” que alhora tornaran a generar l’avís. Açò per tant, produeix que si un usuari es seguidor de vàries protectores d’animals (i els seguidors de protectores ho solen ser) l’hi arribaran molts avisos de la mateixa pèrdua. Si li afegim també que poden vàries perdudes i trobades al dia, resulta que a una mateixa persona li arriben massa avisos diàriament. Precisament amb açò aconseguim l’efecte contrari al desitjat, i és que les persones seguidores de protectores no li presten atenció als avisos rebuts, ja que els poden resultar repetitius. Per tant, aquests sistemes no resulten completament eficients. Problemàtica Un dels problemes que presenta el model descrit a l’apartat anterior, és que la informació no està centralitzada ni gestionada d’una manera única. Açò vol dir que no és disposa d’un sistema d’emmagatzematge de dades comú o sincronitzat en què és permeta que totes les protectores d’animals accedisquen a la informació, o fer servir d’una manera sincronitzada les diferents bases de dades de les que disposen cadascuna de les protectores per tal de poder gestionar de millor manera els animals. De disposar de l’anomenat sistema, es podria evitar que un mateix animal es done d’alta en diverses protectores amb diferents característiques i es tracte com animals diferents. També s’evitaria que un animal es done d’alta dues voltes en una mateixa protectora, una com a perdut i una altra com a trobat. D’aquesta manera resulta més fàcil poder relacionar un animal perdut amb un animal trobat. A més a més, es facilitaria així que si una mascota es perd més d’una vegada, es puga gestionar amb major rapidesa la devolució de l’animal amb els seus amos, ja que una mascota pot perdre’s i aparèixer relativament lluny d’on es va perdre i per tant podria ser entregat a una protectora diferent de la que va gestionar la pèrdua l’última volta. Un sistema centralitzat o sincronitzat, permetria identificar l’animal ràpidament i
19 Ramon Martí i Gallego poder accedir a la seua informació, de tal manera que es puga posar en contacte amb els seus responsables amb major rapidesa. D’altra banda, els problemes que presenta el model actual, és que no es disposa d’un protocol d’enviament de dades organitzat. Actualment, la les protectores d’animals intercanvien els avisos entre altres protectores i usuaris, mitjançant l’enviament d’informació “node a node” i amb una semàntica diferenciada. Explicarem el protocol actual ajudant-nos amb la Il·lustració 1. Il·lustració 1Distribució de la informació mitjançant el sistema actual S’ha d’entendre cada node com una persona o protectora. En aquest esquema, el node A rep la informació d’algun usuari que s’ha trobat un gos, o que ho ha perdut. D’aquesta manera A envia la informació als nodes B i C. El node B envia la informació a C i D, i el node C l’envia a B i F. Així doncs, els nodes C i B estan rebent la informació duplicada. De la mateixa forma, H rep els avisos dels nodes E i F, per tant H també rebrà la informació duplicada. Així, i tal com s’acaba de demostrar, aquest algorisme és imprecís i improvisat ja que no segueix cap patró. Simplement cada node envia les avisos a nodes “amics”. Per tant hi ha nodes què reben la informació duplicada i pot ser que hi haja nodes que no hi reben cap avís. A més a més, un altre dels inconvenients que mostra el algorisme darrerament descrit és que si algú dels nodes que serveixen d’unió entre dos grups cau o és dóna de baixa, com és el cas de D, es crearan dues xarxes aïllades què no intercanviaran cap dada, tal i es mostra en la Il·lustració 2.
20 Ramon Martí i Gallego Il·lustració 2 Distribució de la informació quan un node falla. Alguns dels problemes derivats de l’estructura de la distribució de la informació que fan servir les protectores són les següents. Per una banda, es produeixen llargs lapses temporals entre que es transmet la informació entre dos nodes. Actualment els temps d’espera depenen del temps que tarde la persona en llegir l’avís in transmetre'l. Així doncs, la informació pot donar alguns salts des que un node rep un avís fins que li arriba al node útil que pot gestionar l’avís. Per tant el mètode que s’utilitza ara és massa lent. D’altra banda, un altre problema que es desprèn d’aquest sistema és que es poden produir cicles. Un avís pot arribar a vàries protectores, i aquestes col·locaran el seu avís i difondran la informació. D’aquesta manera les associacions seguidores de les què han enviat l’avís, el reenviaran a tots els seus seguidors, i així successivament. Per tant, la mateixa informació s’està difonent per n-plicat, i en la majoria dels casos es mostrarà més d’un avís del mateix animal perdut en el mateix mur. Així el mètode produeix repetició de la informació. Per últim, amb aquest sistema s’hi generen nodes aïllats als què no els arribe l’avís, tal i com s’ha explicat a la Il·lustració 2 Per tant en lloc d’haver-hi una gran xarxa d’informació hi haurà n xarxes més menudes i pot ser que al node que realment l’interessa l’avís no l’hi arribe. Açò fa que el sistema no siga eficient per a tots els casos. Com a solució a aquests problemes es problemes, es proposa el desenvolupament d’una aplicació Facebook amb les següents característiques: En primer lloc l’usuari qui vulga difondre un avís de pèrdua d’un animal, haurà d’introduir la informació de l’animal en l’aplicació, i serà ella l’encarregada de difondre-la a tots els usuaris que així ho vulguen. Per tant aconseguim així que la informació es mostre una única vegada en cada mur dels seguidors. A més a més, d’aquesta manera, també aconseguirem que els avisos siguen uniformes i garantisquen una informació comuna a tots els avisos. Tal i com s’està fent ara, cada usuari difon l’avís com li pareix.
21 Ramon Martí i Gallego Altra de les característiques que ha de complir l’aplicació és tindre les dades uniformes i la informació centralitzada. Açò és pot aconseguir amb una base se dades comuna o amb diverses que n’estiguen sincronitzades. Amb açò s’evita que s’emmagatzeme la informació per duplicat, generant així que un mateix avís puga ser desat més d’una volta, i que a més totes les dades ho facen de la mateixa manera. Així la informació s’emmagatzemarà uniformement. D’aquesta manera, es poden esquematitzar els problemes actuals com segueix: • Temps entre avisos (varis salts fins que arriba al destinatari què pot fer servir la informació) • Cicles: El mateix animal dues vegades en el mateix mur. • Nodes aïllats o allunyats. I les seues possibles solucions: • Centralitzar l’avís • Centralitzar la informació • Uniformar les dades Sobre animals i abandonament El fenomen de l’abandonament d’animals de companyia és un fet alarmant, denunciat públicament des de l’any 1988 i que persisteix malgrat la legislació vigent i les campanyes de conscienciació. Il·lustració 3Primera campanya de conscienciació de l'abandonament animal.
22 Ramon Martí i Gallego Es pot afirmar que al nostre País, no deixen de nàixer ventrades de gossos i gats condemnades a l’abandonament. Segons fonts de la Fundació Affinity, a l’Estat Espanyol són abandonats cada anys milers de gossos i gats. Per exemple, al País Valencià les protectores d’animals arrepleguen vora 13.000 gossos anualment i més alarmant és el cas de Catalunya on segons l’estudi de l’anomenada fundació es recullen uns 16.500. Si parlem de gats, les xifres se situen en 4.500 i 5.500 respectivament. Per tant, l’única possible eixida que tenen els animals que romanen a les caneres és l’adopció. Per a poder aconseguir-ho, s’està fent un gran esforç per part de les Societats Protectores per a aconseguir incrementar el nombre d’adopcions, així com campanyes de conscienciació i d’informació ciutadana per evitar les elevades xifres d’abandonaments d’animals. A la resta d’Europa, i principalment al nord, han aconseguit aproximar-se a nivells òptims i d’ací uns anys s’exportaran animals per a ser adoptats a països com Alemanya, Àustria, Bèlgica o Suïssa, on la conscienciació ciutadà és molt gran i on els animals sense raça pura no estan discriminats i per tant les ventrades de cadells no desitjats pràcticament no hi existeixen. Amb açò es demostra que la prevenció de l’abandonament mitjançant el control de la natalitat que s’exerceix als nord d’Europa és la mesura més encertada per evitar el que ocorre als Països del Sud. D’entre les causes dels abandonament, hi destaquen les ventrades no desitjades. Així, un gran número d’abandonaments son cadellades no desitjades que arriben directament a les caneres o als refugis, o indirectament com a conseqüència d’adopcions forçades. Les altres causes són el mal comportament de l’animal, la fi de la temporada de la caça i els factors econòmics. La resta de causes es correspon als animals, i sobretot els gossos, etiquetats com perillosos per la legislació recent que, en lloc de recomanar la bona criança, educació i socialització dels animals com a mesura de prevenció, penalitza certes races, com a agressives. El futur d’aquests gossos que arriben a les gosseres, és lamentable, sobretot perquè amb la legislació vigent no és pot arreglar gairebé res. El nombre d’animals nascuts al carrer creix exponencialment. D’un abandonament d’una gata al carrer, als tres anys pot transformar-se en 376 gats criats al carrer, considerant un parell de cadellades a l’any i considerant un índex 2,8 gatets per part. Si parlem de gossos tindríem un número molt paregut, però encara més abundant. Una gossa abandonada, es podria convertir en 512 gossos en 3 anys. Així, moltes organitzacions, associacions de veterinaris, societats protectores i ciutadans i ciutadanes sensibilitzats, duen molts anys treballant a favor de la protecció dels animals abandonats. Els albergs de protecció animal, juguen un important paper per a atendre els animals de companya abandonats, malgrat els escassos recursos dels que hi disposen, que frena la bona gestió i la implantació de programes sanitaris. Per tant, i per culpa dels escassos recursos, els esforços per a crear col·lectivitats canines o felines no donen els fruits que es pot esperar d’elles ja que no poden atendre als milers dels animals nascuts pels descuits i per tant per poder fer front a la gran quantitat
23 Ramon Martí i Gallego d’animals nascuts sense sostre ha estat, desgraciadament, l’eutanàsia. Un seriós problema que afronten les organitzacions humanitàries i de protecció animal és haver d’afrontar que la principal causa de mort dels animals als albergs de protecció animal haja estat l’eutanàsia, ja que el nombre d’entrades és molt elevat, i en canvi el d’eixides és escàs. En la actualitat existeixen nombroses associacions de voluntaris que lluiten per oferir una solució al problema de l’abandonament animal. Conclusions Durant aquest capítol s’ha analitzat la problemàtica del protocol de comunicació que les protectores d’animals utilitzen en les seues relacions i ha quedat en evidència les grans deficiències que tenen. Hem proposat una aplicació en la que es centralitze l’avís, es centralitze la informació i s’uniformen les dades, per a resoldre eixes mancances. S’ha presentat el entorn del projecte per a que s’entenga millor quin és el context on es desenvolupa l’aplicació. S’han presentat les dades d’un informe de la fundació Affinity on s’analitza des de prop la problemàtica d’adopció d’animals. Les dades que es desprenen són alarmants per al moment en què vivim, on més de 90.000 gossos, i una xifra altament superior de gats han estat abandonats en els últims anys. Per últim, s’ha mostrat l’alt grau de penetració de conscienciació d’aquesta temàtica a les xarxes socials, i en especial a Facebook.
25 Ramon Martí i Gallego Conceptes teòrics de l’aplicació Introducció En aquest capítol, es descriu l’entorn de desenvolupament utilitzat per tal d’implementar l’aplicació web. Es presenta un estudi de les solucions tecnològiques disponibles en l’actualitat i s’escull posteriorment les tecnologies especifiques utilitzades per al desenvolupament de l’aplicació en sí. La decisió està molt condicionada a triar solucions de codi lliure donat el carácter social de l’entorn on la desenvolupem. Es pretén descriure les tecnologies des del punt de vista de la seua finalitat, la documentació de com la plataforma fa ús d’elles, es descriurà en capítols posteriors. Començarem amb una breu introducció al desenvolupament de les aplicacions Web i de com han evolucionat les principals tecnologies disponibles fins a l’actualitat. Descriurem també molt detalladament el concepte de xarxa social, i esmentarem les més importants, fent especial referència a la que és objecte d’estudi: Facebook. Aplicacions Web Una aplicació web, és una aplicació què els usuaris i usuàries poden utilitzar accedint a un servidor web a través d’Internet o d’una Intranet mitjançant un navegador. Les aplicacions Web són populars degut als avantatges de fer servir un navegador Web com a client lleuger i a més és independent del sistema operatiu al que és faça servir. Un client lleuger, és un client que depèn primàriament del servidor central per a les tasques de processament, i que principalment s’encarrega de transportar l’entrada i l’eixida entre l’usuari i el servidor remot. Així, és pot actualitzar i mantindre una aplicació sense distribuir ni instal·lar programari als milers d’usuaris que la facen servir ja que l’aplicació es troba físicament en un servidor. Programació per capes La programació per capes és una arquitectura client-servidor en la que l’objectiu primordial és la separació de la lògica de negoci de la lògica de disseny. L’avantatge principal d’aquest tipus d’estructura és que el desenvolupament es pot dur a terme en diversos nivells i en cas d’haver de canviar alguna cosa només es fa al nivell requerit sense haver de revisar entre codi barrejat. A més, aquesta arquitectura permet distribuir el treball de creació d’una aplicació per nivells perquè cada capa està totalment abstreta de la resta de nivells.
32 Ramon Martí i Gallego la màquina virtual de Java, el entorn o s’executen, s’arrenca a l’iniciar el servidor, romanent-n’hi activa durant tota l’execució. Així, per atendre cada petició no és llançarà un nou procés, sinó un thread, un procés lleuger de Java, molt més ràpid (de fet quasi instantani). A més a més, tindrem una quantitat de processos lleugers però sols una còpia de la màquina virtual de les seues classes. • Facilitat d’ús. L’estàndard de les miniaplicacions de servidor, ens ofereix una magnífica infraestructura de desenvolupament d’aplicacions web, proporcionant-nos mètodes per l’anàlisi automàtica i descodificació de les dades dels formularis d’HTML, accés a les capçaleres de les peticions HTTP, manejament de galetes (cookies), seguiment, control i gestió de sessions, entre d’altres moltes facilitats. • Potència. Els servlets Java permeten fer moltes coses que són difícils o impossibles de realitzar amb els CGI tradicionals. Les miniaplicacions de servidor poden compartir les dades entre ells, permetent compartir dades, connexions a bases de dades, etc. Així mateix, poden mantindre informació de sol·licitud en sol·licitud facilitant tasques com el seguiment de les sessions d’usuari, etc. • Portabilitat. Les miniaplicacions de servidor, estan escrits en Java i es regeixen per un API estàndard ben documentat. Com a conseqüència d’açò, els servlets poden executar-se en totes les plataformes que ens oferisquen suport de Java Servlets, i a més amb independència del sistema operatiu i l’arquitectura de maquinari. JSP JSP (Java Server Pages) és una tecnologia orientada a crear pàgines Web utilitzant el llenguatge de programació Java. Con JSP podem crear aplicacions Web que s’executen en diversos servidors Web de múltiples plataformes, ja que Java és essencialment un llenguatge multiplataforma. Les pàgines JSP es composen de codi HTML/XML entrebarrejat amb etiquetes especials per a programar scripts de servidor amb sintaxi de Java. El motor de les pàgines JSP està basat en les miniaplicacions de servidor de Java, programes en Java destinats a executar-se en el servidor. En JSP creem pàgines d’una manera semblant a com és creen en ASP o PHP. Generem arxius amb extensió .jsp que inclouen , dins de l’estructura d’etiquetes HTML, les sentències Java a executar en el servidor. Abans que siguen funcionals els arxius, el motor JSP du a terme una fase de traducció d’eixa pàgina en un servlet, implementat en un arxiu Class (Byte codes de Java) Aquesta fase de traducció es du a terme habitualment quan es rep la primera sol·licitud de la pàgina JSP, encara que existeix l’opció de precompilar en codi per evitar eixe temps d’espera la primera volta que un client sol·licita la pàgina. ASP y ASP.NET
33 Ramon Martí i Gallego ASP (Pàgines de Servidor Actiu) és la tecnologia desenvolupada per Microsoft per a la creació de pàgines dinàmiques de servidor. S’escriu en la mateixa pàgina Web, utilitzant el llenguatge Visual Basic Script o JScript (JavaScript de Microsoft). Un llenguatge de costat del servidor és aquell que s’executa en el servidor Web abans que s’envie la pàgina a través d’Internet al client. Les pàgines que s’executen en el servidor poder realitzar accessos a base de dades, connexions en xarxa i unes altres tasques per tal de crear la pàgina final que el client veurà. Així doncs, el client rep només una pàgina amb el codi HTML resultant de les pàgines ASP. Com la pàgina resultant conté únicament codi HTML, és compatible amb tots els navegadors. Amb les ASP podem realitzar molts tipus d’aplicacions distintes. Ens permet accedir a les bases de dates, al sistema d’arxius i en general a tots els recursos que tinga el propi servidor. No obstant això, ASP està obsolet i ha estat completament reemplaçat per ASP.NET, la versió d’ASP per a la plataforma .NET de Microsoft. La funció d’ASP.NET és la mateixa que la d’ASP però compta a més, amb un gran conjunt de classes que formen part del Framework .NET i amb la possibilitat d’utilitzar qualsevol llenguatge de programació compatible amb la plataforma. Així, ASP.NET es troba acoblada sobre tot al món de Microsoft i Windows, encara que també existeix ASP.NET per a Linux i altres sistemes basats en Unix gràcies a la plataforma Mono. Tot i que està suportat principalment pels servidors Web de Microsoft, també és suportat pel servidor Apache i molts altres. Però la integració d’ASP està optimitzada per a servidors Web de Microsoft i per aquest motiu es fa servir sobretot sota entorns Windows. PHP PHP, (PHP és una sigla que correspon a la denominació anglesa PHP hypertextpreprocessor ('preprocessador d'hipertext de pàgina d'inici personal').), és un llenguatge senzill, de sintaxi còmoda i semblant a la d’altres llenguatges com Perl, C i C++ i sol ser utilitzat per a crear pàgines Web dinàmiques. PHP fou creat per RasmusLerdorf en 1994 i ha evolucionat molt des d’ençà. Pot ser utilitzat a la majoria dels sistemes operatius i servidors Web, de tal manera que quan és reba una petició del servidor, s’inicie l’intèrpret de PHP processant l’script sol·licitat i generant el contingut de manera dinàmica És ràpid, interpretat, orientat a objectes i multiplataforma i es poden trobar per a ell multitud de llibreries. Així, PHP és un llenguatge ideal tant per aprendre a desenvolupar aplicacions web com per a desenvolupar aplicacions web complexes. A més, afegeix a tot açò l’avantatge de que l’intèrpret de PHP, els diversos mòduls i la gran quantitat de llibreries desenvolupades per a ell són de codi lliure, amb la qual cosa el programador disposa d’un impressionant arsenal d’eines lliures al seu abast per a desenvolupar aplicacions.
34 Ramon Martí i Gallego No obstant això, PHP sol ser utilitzat conjuntament amb Perl, Apache, MySQL o PostgreSQL en sistemes Linux, formant així una combinació barata (tots els components són de codi lliure), potent i versàtil. Tal ha estat l’expansió d’aquesta combinació que fins i tot a s’ha donat a conèixer al mercat amb un nom propi, LAMP, format per les inicials dels diversos productes. Avantatges del llenguatge PHP: És multiplataforma. Llenguatge orientat a desenvolupar aplicacions Web dinàmiques amb accés a la informació d’una base de dades. El codi PHP és invisible al navegador ja que el servidor és l’encarregar de processar el codi PHP i enviar el resultat en HTML o altres formats al navegador. És un llenguatge potent i segur. Permet connectar amb la majoria dels Sistemes de Gestió de Bases de Dades. Conté un gran conjunt d’extensions que ens permeten accedir amb una funcionalitat variada, des de creació d’imatges, documents PDF, etc. És de codi lliure i gratuït. Permet utilitzar tant programació estructurada com programació orientada a objectes. No requereix definir els tipus de les variables. Maneja excepcions. Presentació (HTML, CSS, JavaScript) La capa de presentació (també denominada capa d’usuari) és la que veu l’usuari, li presenta el sistema, li comunica la informació i captura la informació de l’usuari en un mínim procés consistent en realitzar un filtrat previ per comprovar-hi que no hi ha errors de format. També és coneguda com interfície gràfica i ha de tindre la característica de ser amigable, és a dir, comprensible y fàcil d’utilitzar per a l’usuari. Aquesta capa es comunica únicament amb la capa de negoci. HTML / XHTML HTML (acrònim d'Hyper Text Markup Language, en valencià, "llenguatge de marcat d'hipertext"), és un llenguatge de marcat dissenyat per estructurar textos i relacionar-los en forma d’hipertext. Gràcies a Internet i als navegadors web, s'ha convertit en un dels formats més populars que existeixen per a la construcció de documents per a la web. El llenguatge HTML utilitza enllaços d’hipertext què connecten els diferents recursos d’Internet, fent possible que l’usuari navegue d’una pàgina a una altra. HTML permet definir la semàntica d’un document utilitzant un conjunt d’etiquetes especials. En canvi, aquestes etiquetes no es fan servir per a definir l’aspecte gràfic de la pàgina. Malgrat que en versions anteriors del llenguatge es comptava amb algunes etiquetes que definien l’aspecte gràfic d’un document, en l’actualitat han estat reduïdes a favor de la tecnologia CSS.
35 Ramon Martí i Gallego HTML, està basat en l’SGML (Standard GeneralizedMarkup Language), què permet crear formularis que fan que l’usuari puga enviar dades al servidor. El llenguatge HTML és un estàndard les normes del qual defineix el WorldWide Web Consortium, més conegut com W3C. Al ser un estàndard dels navegadors, estan obligats a complir amb una sèrie de normes que permeten que una pàgina web s’hi visualitze segons l’estàndard. L’origen d’HTML es remunta a l’any 1980 quan Tim Berners-Lee (físic anglès considerat per hom el pare de la web) desenvolupà un sistema d’hipertext per compartir documents amb els resultats de les investigacions. El llenguatge ha evolucionat tant que avui dia hi podem trobar moltes aplicacions que l’utilitzen. En tots aquests anys el llenguatge ha estat remodelat en diferents versions, sent la darrera especificació oficial la versió HTML 4.01 i en vistes de futur l’esborrany de la versió HTML 5 què oferirà el canvi més innovador des dels seus inicis. CSS CSS és un llenguatge de fulls d’estil utilitzat per definir l’aspecte i la presentació dels documents HTML i XHTML. El llenguatge CSS va sorgir amb l’objectiu de separar els continguts d’un document de la seua presentació, de tal manera que el document no perda la seua validesa semàntica. El llenguatge CSS permet definit l’aspecte de cada element dins d’una pàgina web, ja siga el color, la grandària, el tipus de lletra o la seua posició visual. Els fulls d’estil aparegueren al voltant de l’any 1970 degut a que des del primer moment de l’existència d’un llenguatge de marcat com és HTML s’hi observà la mancança d’un mecanisme que permetera aplicar diferents estils a una mateixa pàgina. Al començament de la seua història, la guerra de navegadors i la manca d’un estàndard dificultaven la creació amb presentació semblant en diferents navegadors. En canvi, avui dia l’organisme W3C, el mateix que va crear l’estàndard per al llenguatge HTML, s’encarrega de l’estàndard dels fulls d’estil. De la mateixa manera que el llenguatge HTML, el llenguatge CSS ha evolucionat en diferents versions de l’estàndard. L’última especificació oficial és la versió 2.1, en canvi ja existeix un esborrany de l’especificació 3.0, pel què la majoria dels navegadors moderns ja ofereixen els nous elements dels que disposa aquesta darrera versió. Encara així, continuen havent incompatibilitats entre els diferents navegadors, limitant les possibilitats dels dissenyadors que han de conèixer fil per randa cadascuna de les incompatibilitats si volen oferir dissenys similars en cadascun dels navegadors més coneguts. JavaScript
36 Ramon Martí i Gallego JavaScript és un llenguatge script basat en el concepte de prototipus (herència per delegació), implementat originàriament per Netscape Communications Corporation, i que va derivar en l'estàndard ECMAScript. És conegut sobretot pel seu ús en pàgines web, però també s'utilitza en altres aplicacions. Malgrat el seu nom, JavaScript no deriva del llenguatge de programació Java, però tots dos comparteixen una sintaxi similar inspirada en el llenguatge C. Semànticament, JavaScript és més pròxim als llenguatges Self i ActionScript (basat també en l'ECMAScript). El nom "JavaScript" és una marca registrada per SunMicrosystems. Al 1995, BrendanEich va desenvolupar en Netscape Corporation la primera versió d'aquest llenguatge sota el nom Mocha, anomenat després com LiveScript i finalment com JavaScript. Aquest últim canvi de nom va coincidir amb la inclusió de la tecnologia Java per part del navegador web Netscape. La primera versió del llenguatge es va presentar en desembre de 1995 a la versió 2.0B3 del navegador Netscape. Microsoft implementà més tard una versió amb el nom JScript, però sovint també se l'anomena JavaScript. En un principi, s'usava a pàgines web HTML, per realitzar feines i operacions al marc de l'aplicació client servidor. Amb l'aparició de la Web 2.0, JavaScript s'ha convertit en un veritable llenguatge de programació que aporta la potència de càlcul al navegador pertal d’augmentar la usabilitat d'aplicacions web amb tècniques avançades com AJAX o JCC. El 1997 els autors van proposar JavaScript com estàndard de l' European Computer Manufacturers Association ECMA, que tot i el seu nom, no és europeu, sinó internacional, amb la seu a Ginebra. El juny de 1997 va ser adoptat com un estàndard ECMA, amb el nom ECMAScript. Poc després també va ser un estàndard ISO. JScript és la implementació del ECMAScript de Microsoft, molt semblant al JavaScript de Netscape, però amb certes diferències al model d'objecte del navegador que fan les dues versions incompatibles.Per evitar aquestes incompatibilitats, el WorldWide Web Consortium va dissenyar l'estàndard Document Object Model (DOM, o Model d'Objectes del Document en català), que incorpora el Konqueror, les versions 6 d'Internet Explorer i NetscapeNavigator, Opera versió 7, i Mozilla des de la seua primera versió. Les relacions d'herència entre objectes no són per classes i subclasses, sinó individuals entre un objecte i un altre, anomenat el seu prototipus (relacionats mitjançant la propietat prototype), al qual es deleguen les operacions i propietats que el primer desconeix (no pròpies o específiques). Només es pot establir un prototipus mitjançant una funció constructora. Els prototipus poden formar una cadena que ha de ser finita (no hi pot haver cicles). AJAX AJAX és un acrònim d’AsynchronousJavaScript + XML i no pas una tecnologia en si mateixa, sinó més bé una agrupació de diferents tecnologies que col·laboren per tal de
37 Ramon Martí i Gallego proporcionar la comunicació asíncrona amb el servidor d’una manera transparent per a l’usuari, és a dir, sense haver de recarregar una pàgina. Les tecnologies que intervenen en AJAX són: • XHTML i CSS per marcar el contingut i definir la presentació d’una pàgina. • DOM per a la interacció i la manipulació dels elements d’una pàgina. • XML, XSLT i JSON per al intercanvi d’informació entre el navegador i el servidor. • XMLHttpRequest, l’objecte JavaScrips encarregat de realitzar la comunicació asíncrona amb el servidor. • JavaScript com unificador de totes les diferents tecnologies. Il·lustració 5 Tecnologies AJAX La única manera que el usuari tenia fins l’aparició d’AJAX d’interactuar amb el servidor, era accedint a un enllaç o enviant informació mitjançant un formulari. El servidor sempre enviava una nova pàgina HTML com a resultat a aquestes peticions. Amb AJAX es permeten comunicacions sense la necessitat de recarregar una pàgina Web degut a que la comunicació es realitza de forma asíncrona i transparent per al usuari. AJAX arriba a substituir en moltes ocasions a tecnologies com ara FLASH, i ofereixen al usuari un estil d’aplicacions més avançades similars a les aplicacions d’escriptori. Xarxes socials Descripció de les xarxes socials Una xarxa social és una estructura social on hi ha individus que es troben relacionats entre sí.
38 Ramon Martí i Gallego Il·lustració 6 Esquema de les xarxes socials. Les xarxes socials en Internet, són comunitats virtuals on els seus usuaris interactuen amb persones de tot el món, amb qui troben gusts o interessos en comú. Funcionen com una plataforma de comunicacions que permet connectar gent que es coneix o que desitja conèixer-s’hi, i que els permet centralitzar recursos, com fotografies, vídeos o informació en un lloc fàcil d’accedir i administrat per cada usuari. Internet és un mitjà propici per a fer aquest tipus de connexions i, contràriament a la creença popular, la primera xarxa social disponible en Internet no es Facebook (2004) sinó una pàgina anomenada Classmates.com (que encara existeix), creada en 1995. Les xarxes socials es basen en una gran mesura en la teoria coneguda com els sis graus de separació (publicada en 1967), que bàsicament diu que tots els habitants del planeta Terra estem connectats entre nosaltres amb un nombre màxim de sis persones com intermediaris en la cadena. Per exemple: tu coneixes a algú, que coneix a algú, que coneix a algú, que coneix al teu artista preferit, formant una cadena de sis o menys persones pel mig. Açò fa que el nombre de persones conegudes en la cadena cresca exponencialment conforme el nombre de connexions creix, donant per resultat que només es necessita un nombre menut d’aquestes connexions per a formar una xarxa que ens connecta a tots, fent teòricament possible fer-li arribar un missatge a qualsevol persona en el món (es necessiten precisament sis nivells de connexions –o graus de separacióper connectar un billó de persones si s’assumeix que cada persona coneix a cent persones com a mitjana). En general aquestes xarxes socials es poden dividir en dos grans categories: la creació de xarxes socials internes (ISN) i la creació de xarxes socials externes (ESN) com per exemple Facebook, MySpace i Tuenti. Ambdós tipus poden augmentar el sentiment de comunitat entre les persones. L’ISN és una comunitat tancada i privada que es composa d’un grup de persones dins d’una empresa, associació, societat, el proveïdor d’educació i organització, o fins i tot una invitació, creat per un grup d’usuaris en un ESN. L’ESN és una xarxa social oberta i a disposició de tots els usuaris del web per a comunicar-se, està dissenyada amb la finalitat d’atraure als anunciants.
39 Ramon Martí i Gallego Les característiques principals de les xarxes socials són • Estan basades en l'usuari. Les xarxes socials són construïdes i administrades pels usuaris, els que a més les nodreixen amb continguts. • Són interactives. Les xarxes socials posseeixen a més d'un conjunt de sales de xat i fòrums, una sèrie d'aplicacions basades en una xarxa de jocs, com una forma de connectar-se i divertir-se amb els amics. • Impulsades per la comunitat. Les xarxes socials no només permeten descobrir nous amics sobre les bases d'interès, sinó que també permeten tornar a contactar amb els qui s'ha perdut el contacte des de fa temps. • Estableixen relacions. Les xarxes socials permeten que el contingut publicat per un usuari prolifere mitjançant una xarxa de contactes molt més gran del que es puga imaginar. Les xarxes socials es poden classificar: Segons el públic al que van adreçats i la temàtica. • Horitzontals. Dirigides a tot tipus d'usuaris i sense una temàtica definida. Es basen en una estructura de cel·les permetent la entrada i participació lliure i genèrica sense una finalitat distinta del de generar massa. Il·lustració 7 Xarxes socials Horitzontals. • Verticals. Concebudes sobre la base d'eix temàtic generador. El seu objectiu es el de congregar al voltant d'una temàtica ben definida, i adreçar-se a un col·lectiu molt concret. Poden ser professionals, d’oci o mixtes.
40 Ramon Martí i Gallego Il·lustració 1. Xarxes socials verticals. Segons el subjecte principal de la relació. • Humanes. Fomenten les relacions entre persones, unint-les segons el seu perfil social i en funció dels seus gustos, aficions, llocs de treball, viatges i activitats. Il·lustració 8Xarxes socials Humanes. • De continguts. Fomenten les relacions unint perfils a través del contingut publicat, els objectes que posseeix l'usuari o els arxius que s’hi troben.
41 Ramon Martí i Gallego Il·lustració 9Xarxes socials de continguts. • Xarxes socials inertes. El seu objectiu és unir marques, automòbils i llocs. Entre aquestes xarxes socials destaquen les dels morts, essent aquests els subjectes principals de la xarxa. Il·lustració 10Xarxa social inerta. Segons la localització geogràfica. • Xarxes socials sedentàries. Es transforma en funció de les relacions entre persones, els continguts compartits o els esdeveniments creats. Il·lustració 11Xarxes socials sedentàries.
48 Ramon Martí i Gallego • Després d'etiquetar a algú, rebran una notificació i es pot veure la foto i l'àlbum relacionats. • De moment les pàgines d’empreses i marques no tenen lloc en Google+ i tots els comptes d’eixe tipus han estat eliminats. • Anuncis. Encara que els usuaris no els troben a faltar, els anuncis porten molta facturació i beneficis, i Google no pot perdre eixe negoci amb més de 20 milions de potencials persones a les qui mostrar-se’ls • Esdeveniments i aniversaris. Encara no dóna la possibilitat d’organitzar esdeveniments i aniversaris, ni tan sols son una part del perfil de Google+. • Per als nous àlbums, qualsevol amb qui s'ha compartit un àlbum pot veure amb qui més s'ha compartit. Els àlbums que algú va compartir es poden etiquetar i tornar a compartir per uns altres. • Les fotos de fins a 2048 × 2048 píxels i vídeos de fins a 15 minuts, no comptaran per a la quota d'emmagatzematge d'1 GB dels usuaris de Google+ (que és 800 × 800 píxels pels no usuaris de Google+), creant el "virtualment il·limitat" emmagatzematge per als usuaris mòbils. Il·lustració 14 Interfície gràfica de Google+ • A més a més, amb Google+ es pot importar contactes d’altres xarxes socials, ja que inclou una funció per convidar a contactes de Yahoo! i Hotmail. En aquest moment, no obstant això, no hi ha forma oficial d'importar contactes de Facebook en Google+, però hi ha algunes solucions per aconseguir-ho. Facebook permet als usuaris descarregar les seues dades, però no en un format simple i fàcil per importar; els efectes de la xarxa ho fan difícil per a una nova
49 Ramon Martí i Gallego xarxa social, tal com Google+ per tindre èxit, i una eina fàcil per migrar a un servei rival podria reduir l'efecte. Segons el gerent de Google, Facebook permet als usuaris descarregar gran part de les seues dades, però no a l'instant i no en un format en que puga ser fàcilment importat als serveis del seu rival. Aquest no està en un format portàtil obert del tot . Quant a la censura que pateix Google+ per part d’alguns governs, diverses agències de notícies van informar que Google+ va ser bloquejat per la República Popular de Xina. Això és part d'una política més àmplia de censura a Xina continental. El govern de Iran també ha bloquejat l'accés a Google+ des de l'11 de juliol de 2011, com a part de la censura d'Internet a Iran. Per altra banda, Incorporar-se al servei requereix l'obligatòria divulgació del nom real i del gènere, que en el seu llançament va ser compartida com a informació pública. El selector de gènere té opcions per a "Masculí", "Femení" i "Uns altres". Aquest requeriment va ser criticat per causar la falta de privadesa i juntament amb Facebook i unes altres xarxes socials, per obligar a l'usuari a triar entre determinades categories que descriuen preconcebuts descriptors de gènere. L'obligatòria exposició pública del gènere dirigida a la crítica per fer públics els antics perfils de Google. En resposta, Google va fer canvis en el servei que permet als usuaris controlar els ajustos de privadesa de la informació de gènere. La justificació de Google per sol·licitar informació de gènere és que s'utilitza aquesta informació per al seu ús dels termes "ell", "ella", i "ells" en el seu lliurament d'informació als usuaris del servei. Si un usuari decideix fer la part del gènere del perfil privat, el llenguatge utilitzat per transmetre la informació es converteix en gènere neutre, utilitzant el singular ells en lloc dels pronoms de gènere específic. Google ha suspès comptes a causa que Google va creure que no estaven usant el seu nom real. Almenys en un cas això ha resultat que el titular del compte sigui bloquejat temporalment de tots els serveis de Google. Un empleat de Google, no obstant això, afirma que una violació dels termes del servei només hauria d'afectar al servei de la qual els termes s'han violat, no a cap dels altres serveis que ofereixen Google, i també que la suspensió no es fa sense previ avís. Fins a l'octubre de 2011 Google Plus ha seguit guanyant usuaris ràpidament, però el temps mitjà d'ús és molt escàs. Alguns crítics consideren que li queda molt per poder guanyar a Facebook, tement-se que torne a ser un error com GoogleBuzz. Twitter Twitter és un servei de microblogging, amb seu a San Francisco (Califòrnia) i amb filials el San Antonio (Texas) i Boston (Massachusetts) als Estats Units d’Amèrica. Twitter, Inc. fou creat originalment en Califòrnia, però està sota la jurisdicció de Delaware des de juliol de 2007. A la xarxa ha guanyat popularitat mundialment i es creu que té més de 200 milions d’usuàries, generant 65 milions de missatges diaris i maneja més de 800.000 peticions de cerca diàries. Permet als seus usuaris enviar i llegir missatges de text d'una longitud màxima de 140 caràcters (denominats tweets, tuits, o piulades) per mitjà del mateix web de Twitter, SMS, missatgeria instantània o bé aplicacions de tercers com Twidroid, Twitterrific, Tweetie, Facebook, Twinkle, Tweetboard o TweetDeck. Aquestes actualitzacions es mostren en la pàgina de perfil de l'usuari, i són també enviades de forma immediata a altres usuaris que han triat l'opció de rebre-les. L'usuari
50 Ramon Martí i Gallego original pot restringir el seguiment d'aquests missatges només per part dels membres del seu cercle d'amics, o permetre el seu accés a tots els usuaris, que és l'opció per defecte. Il·lustració 15 Interfície gràfica de Twitter Els usuaris poden rebre les actualitzacions des de la pàgina del Twitter, mitjançant missatgeria instantània, SMS, RSS i correu electrònic. Es calcula que es publiquen uns 130 milions de piulades al dia. Aquest servei té els seus orígens el març del 2006 com a projecte d'investigació i desenvolupament de la companyia Obvious, LLC, un xicotetstart-up de San Francisco. El nom original del producte era twttr (inspirat en Flickr), el primer tuit o piulada la va fer el cofundador Jack Dorsey el 21 de març de 2006 « just setting up mytwttr.» —Jack Dorsey, Primer missatge enviat al Twitter pel seu fundador En principi Twitter només era utilitzat com a eina de comunicació interna de l'empresa però l'octubre de 2006 en fa el llançament públic oficial. Jack Dorsey és el pare d'aquesta aplicació web i actual president del Consell d'administració de Twitter, Inc, empresa que va nàixer a partir d'Obvious, LLC, i de l'èxit de Twitter. A principis del 2008 l'equip del programa estava composat per 18 persones, i pel 2009 ja es va quadruplicar la plantilla de treballadors.
51 Ramon Martí i Gallego El Twitter va estar fent servir, durant un temps, el servei de publicitat AdSense de Google, però van descartar seguir-ho utilitzant per guanyar més usuaris a costa de no guanyar tants diners. Al setembre de 2009, Twitter va anunciar canvis en els termes de servei, deixant oberta la possibilitat d'incloure publicitat als seus serveis en un futur. La interfície de Twitter està escrita en Ruby on Rails. L'empresa d'investigació de mercat PearAnalytics, amb seu a San Antonio (Texas), va analitzar 2000 tweets (procedents dels EUA) durant un període de 2 setmanes entre les 11:00 i les 5:00 (CST) a l'agost del 2009, separant-los en sis categories: • Notícies • Spam • Autopromoció d'empreses • Paraules sense sentit • Converses • Retweets (RT) o missatges repetits L'empresa va considerar que "Paraules sense sentit" va ser la que va rebre més missatges (811, o el 40,55% dels missatges de la mostra). Il·lustració 16 Gràfica de l'estudi on s'analitza la temàtica de les piulades. Degut a la poca transcendència de molts dels missatges i a la limitació de caràcters d'aquests existeixen crítiques i dubtes pel que fa a la utilitat d'aquest servei. Però darrerament han començat a aflorar idees més que interessants entorn d'aquest servei. Una clara innovació és la utilització de Twitter per part d'alguns mitjans de comunicació, permetent als seus lectors rebre les notícies en la seua web, mòbil, Messenger o el mateix Twitter, així com accedir a altres serveis oferts per aquests. Durant el 2011 es va posar de moda entre els seus usuaris comentar en directe
52 Ramon Martí i Gallego programes de televisió mitjançant aquesta plataforma. També s’estén el seu ús en el camp de l'educació, tant en la comunicació entre l'alumnat i el professorat com entre membres de les diferents comunitats educatives. Al 2011, el Twitter va resultar una eina de gran utilitat per difondre i organitzar grans moviments de resposta ciutadana. Així, cal destacar el paper destacat del Twitter en les revoltes al món àrab així com al moviment del 15-M a l'estat espanyol i la resta del món. Pel que fa al Twitter en valencià, el conseller delegat de Twitter, Dick Costolo, va dir al Mobile Word Congress de Barcelona que hi havia la possibilitat de traduir Twitter en aquesta llengua. A principis de 2011 el periodista Albert Cuesta va iniciar la campanya #Twitterencatalà a la coneguda xarxa social, per fer una petició formal demanant la traducció de la plataforma. Va arribar a gairebé 5.000 signatures de suport. El setembre de 2011 van aparèixer 5 noves versions idiomàtiques de Twitter, però no en valencià. El mes de novembre del 2011 es va publicar un mapa de llengües d'ús (Il·lustració 17), on es demostrava que a Catalunya el català superava el castellà en ús a la coneguda xarxa social, i on també quedava constància que també era molt utilitzat, però en menor mesura, al País Valencià i a les Illes Balears. Més endavant, el març de 2012, l'empresa va incorporar l'àrab, el persa, l'hebreu i l'urdú als seus idiomes. Il·lustració 17 Mapa de les llengües a Twitter. Tuenti Tuenti és una xarxa sociald’Internet que només s'hi pot entrar amb invitació, creada el 2006 per l'estatunidencZarynDentzel. Està disponible en quatre de les llengües oficials a l’Estat espanyol(castellà, català, basc i gallec) , en anglés i en portugués. Permet xatejar, enviar missatges i compartir fotos i vídeos. És un dels llocs web més visitats d'Espanya, segons Alexa Internet. En el mes d'abril de 2011, Tuenti tenia 10,7 milions d'usuaris. El lloc està enfocat principalment per a la població espanyola. Permet a l'usuari crear el seu propi perfil, afegir a altres usuaris com amics i intercanviar missatges.
53 Ramon Martí i Gallego L'actual propietari de la companyia es Movistar, que després d'unes negociacions, es va fer amb el 85% de l'empresa per una xifra aproximada de 70.000.000€ d'euros. Tuenti va ser llançada a finals de 2006 per ZarynDentzel, Félix Ruiz, Joaquín Ayuso, Adejemy i KennyBentley. Dentzel va conèixer Espanya a través d'un intercanvi que el va portar a Cabeza del Buey (Badajoz) i anys més tard, arran d'aquesta experiència, va néixer Tuenti. Al principi anava dirigit a universitaris i només alguns coneguts van poder provar-ho. Més tard, en vista del seu èxit, van permetre l'entrada a més usuaris, però només si tenien invitació. Actualment Tuenti té 10,7 milions de usuaris, la majoria d'ells estudiants d'entre 10 i 28 anys. L'empresa compta actualment amb més de 209 empleats de 17 nacionalitats. Segons ZarynDentzel, el nom Tuenti va sorgir de la necessitat de trobar un que inclogués tu i ti. Per posar-li nom als membres del departament de màrqueting van estudiar molts noms, al final van escollir el apòcope Tuenti perquè s'assembla a "la teua entitat", a més de fer al·lusió al rang (universitaris vint) al qual anava orientat. L'accionista majoritari de Tuenti és Movistar, la qual el 4 d'agost de 2010 es va fer amb el 85% d'ella per una xifra aproximada de 72 milions d'euros. Telefónica té la intenció a mig-llarg termini d'expandir Tuenti a altres països (majoritàriament d'Amèrica Llatina i Europa). Resumint, Tuenti és una xarxa social d'accés restringit a la qual només s'entra mitjançant la invitació d'un membre anteriorment registrat. Aquest mecanisme, segons l'empresa, garanteix en principi que tot usuari nouvingut ja tingui un vincle amb un altre membre de la xarxa, a partir del qual pugui començar a establir relacions amb la resta dels usuaris. Els usuaris poden crear perfils amb fotos, llistes d'interessos personals, informació de contacte i altres dades personals. Els usuaris es poden comunicar amb amics i altres usuaris a través de missatges privats o públics i xat. També es poden unir a pàgines, algunes de les quals són mantingudes per organitzacions com un mitjà per fer publicitat. Per poder gestionar la privacitat, Tuenti permet als usuaris triar configurar qui pot veure determinades parts del seu perfil, així com bloquejar a certs usuaris o limitar certes opcions com ser etiquetat en determinades fotos. Tuenti disposa d'aplicacions oficials per a diverses plataformes mòbils, com iPhone, Blackberry, Android i J2ME. A més, els dispositius mòbils que accedeixen a Tuenti reben una versió adaptada segons les característiques del dispositiu. Com a elements principals hi destaquem: • El meu perfil. Cada usuari disposa dins de la xarxa d'una pàgina de perfil la visibilitat dins de la xarxa per la resta dels usuaris pot ser regulada de manera que només sigui visible pels amics de l'usuari, pels amics dels seus amics o per tots els usuaris . En ella es mostren dades personals com sexe, edat o data d'aniversari, i interessos com les seues aficions, les seues pel·lícules i llibres preferits, els seus grups de música favorits, i els llocs que sol freqüentar. La columna central de "El meu perfil" està dividida en dos blocs: el bloc i "El meu tauler". La secció de blog proporciona a l'usuari un espai on escriure textos i incloure vídeos a manera de blog, ordenant les entrades per ordre cronològic invers. "El meu tauler" és un espai on els altres usuaris de la xarxa poden deixar missatges personals i també on es pot visualitzar l'historial d'estats. El nou historial d'estats conté les actualitzacions d'estat que va estar fent la persona recentment. Aquests ser sincronitzats amb Twitter. Finalment, la columna dreta
54 Ramon Martí i Gallego mostra tres llistes reduïdes: un d'ells és una llista de les últimes sis fotos en què té l'etiqueta l'usuari, dues llistes dels amics de l'usuari ordenada segons la data d'actualització dels seus perfils i una altra llista més reduïda dels amics en comú amb la teva llista d'amics. • Buscador Tuenti disposa d'un cercador per localitzar tots els membres de la xarxa pel seu nom real. Per reduir els resultats de la recerca es disposa de diversos filtres com el sexe, l'edat, el centre d'estudis o treball i lloc de residència. Inclou suggeriments d'amistat. A més, a través del mateix cercador, és possible la recerca de Pàgines, Vídeos i Llocs en tota la xarxa de Tuenti. • Esdeveniments. Tuenti va afegir el novembre de 2007 la funcionalitat d'esdeveniments, que permet organitzar de forma senzilla dates destacades en les que s'organitzen esdeveniments en el lloc que es descrigui en cada pàgina d'esdeveniment i per saber qui assistiran o no. Aquesta funció es va crear amb la intenció que els usuaris puguen organitzar festes, reunions o activitats de forma pública o privada, però actualment la majoria d'usuaris l'utilitza per fer esdeveniments de publicitat, de vegades enganyosa, notícies, de les quals, moltes són faules, o de diversió, en què apareixen frases gracioses, entretingudes o que crida l'atenció al públic perquè el reenviï a més usuaris i així, augmenti l'assistència o l'interès a l'esdeveniment. • Xat.La xarxa social va estrenar el setembre de 2009 la funció de xat, que va ser ampliada l'agost del 2010 en incorporar vídeoxat. Ofereix la possibilitat de bloquejar aquells contactes amb els que no es vulgues establir conversa. També es pot proposar participar en jocs amb algun dels teus amics des del xat. Es pot silenciar el compte o desconnectar-se fàcilment. • Pàgines i llocs.Es va estrenar el 4 de maig de 2010 una nova eina anomenada Tuenti Pàgines que permet crear i compartir espais creats per usuaris de Tuenti o per patrocinadors de Tuenti per posar en comú allò al que els usuaris són afins. Amb aquesta eina a més, es poden afegir i compartir fotos o vídeos amb la resta d'usuaris que estiguin units a aquesta pàgina. A cada pàgina, l'administrador pot establir diverses prioritats, com moderar els membres (per fer o no Administrador de la Tuenti Pàgina) o editar les preferències de privacitat del grup, que pot ser públic (qualsevol usuari pot entrar automàticament al grup o requereix petició) o privat (el grup romandrà invisible i només es podran afiliar els usuaris que convidi i seleccioneu l'administrador). Per la seua banda, els llocs representen pàgines d'empreses que incorporen fotos i opinions d'usuaris. El gener de 2011 s'anunciava l'acord amb Pàgines Grogues per incorporar gairebé un milió de llocs. • Jocs. Durant la matinada del 2 de juny de 2010, es va afegir una altra funcionalitat anomenada Tuenti Jocs, una funció que permet jugar en temps real amb la xarxa d'un usuari. Els jocs estan servits per Metrogames, utilitzant Adobe Flash Player i es distribuiran en espanyol els primers jocs que es publiquen a Tuenti, però més endavant augmentarà el catàleg amb nous títols de jocs amb més categories.Els 10 jocs més jugats de Tuenti són:
55 Ramon Martí i Gallego 1.Backyard Monsters - 360.470 jugadors 2.Green Farm - 564.071 jugadors 3.La Superliga - 708.962 jugadors 4.Sports City - 431.658 jugadors 5.Millionaire City - 455.017 jugadors 6.Texas a lo Grande - 304.203 jugadors 7.Dragons of Atlantis - 191.395 jugadors 8.Fashion World - 330.552 jugadors 9.Pooltastic - 378.928 jugadors 10.Café Club - 376.007 jugadors • Vídeos. Tuenti va afegir una nova eina anomenada Tuenti Vídeos en què es mostren els vídeos més vistos classificats en: Música, Humor i Esports. Tots els vídeos permeten "afegir" a la teua col·lecció de vídeos favorits. A més l'aplicació et proposa automàticament els vídeos de la teua xarxa, que són els vídeos que han vist o han compartit els teus amics o les pagines on l'usuari està subscrit. Però a banda d'això ja és classifiquen els vídeos més vistos en diferents temes. Forsquare Foursquare és un servei basat el la localització web aplicada a les xarxes socials. La geolocalització permet localitzar un dispositiu fixe o mòbil en una ubicació geogràfica. El servei fou creat en 2009 per Dennis Crowley i SelvaduraiNaveen. Crowley fundà anteriorment Dodgeball, un projecte similar que Google comprà en 2005 i clausurà en 2009, reemplaçant-lo per GoogleLatitude. En desembre de 2010, la companyia anuncià haver hi arribat als 5 milions d’usuàries. L’aplicació, orientada principalment a Smartphones, compta amb versions per a iOS, Android, Java,WindowsPhone, Symbian, Blackberry i PS Vita. La idea principal de la xarxa és marcar (check-ins) llocs específics on un es troba i anar guanyant punts per “descobrir” nou llocs que es recompensarà amb “badges”, una mena de medalles, i fent “majorship” (batlle del lloc) a l’usuari que més check-ins fa en un cert lloc. A partir de la informació que les usuàries han anant introduint, el servei a evolucionat cap a un motor de recomanacions, què suggereix llocs interessants de manera intel·ligent.
56 Ramon Martí i Gallego Il·lustració 18 Interfície gràfica de Foursquare per a iOS Youtube YouTube és un lloc web per compartir vídeos, creada per tres ex empleats de PayPal el febrer de 2005, en què els usuaris poden pujar, compartir i veure vídeos. La companyia té la seua seu a San Bruno, Califòrnia, i utilitza el programari Adobe Flash Vídeo i HTML5 de tecnologia per mostrar una àmplia varietat de continguts generats per usuaris de vídeo, incloent clips de pel·lícules, clips de televisió, i vídeos musicals, així com a contingut amateur com els blogs de vídeo i curts de vídeo original. La major part dels continguts de YouTube ha estat pujat pels individus, si bé les empreses de mitjans com CBS, BBC, Vevo, Hulu, i altres organitzacions ofereixen part del seu material a través del lloc. Els usuaris no registrats poden veure vídeos, i els usuaris registrats poden pujar un nombre il·limitat de vídeos. Els Vídeos que es considera que un contingut potencialment ofensiu només estan disponibles per als usuaris registrats de 18 anys i majors. El novembre de 2006, YouTube, LLC va ser comprat per GoogleInc, per 1,65 $ EUA milions de dòlars, i ara opera com una subsidiària de Google. Youtube és una eina de Social Media, però que amb ella els usuaris han creat una xarxa social, ja que una xarxa social la configuren persones i en aquest cas convergeixen en ella usuàries amb un mateix interès: compartir vídeos. Les principals característiques que fan a Youtube una xarxa social són que l’usuari pot: • Registrar i crear un canal. El canal és una pàgina que veuen la resta d’usuaris registrats i que conté la informació del perfil de l’usuari, els vídeos que penja, els seus vídeos favorits, entre d’altres opcions. L’usuari pot canviar el seu perfil,
57 Ramon Martí i Gallego modificar-lo amb imatges i colors al seu gust. Al canal li poden deixar comentaris uns altres usuaris. • Subscriure’s als vídeos d’un canal. Açò permet estar informat sobre eixe canal sense haver de visitar-lo constantment. Il·lustració 19 Interfície gràfica de les Subscripcions als canals en Youtube. • Enviar una invitació o un missatge personal altre usuari registrat.
64 Ramon Martí i Gallego Il·lustració 26 Història sobre l'aplicació publicada al mur de l’usuari. Control de l’usuari A la pàgina de configuració de l’aplicació, els usuaris poden controlar quines aplicacions poden compartir amb el seu nom, y quines no. També poden controlar el públic al qui es pot adreçar l’aplicació. Així, si un usuari vol que la gent veja que esta jugant a un joc, però a un altre no, ho pot controlar. Il·lustració 27 Pàgina de configuració de l'aplicació. TimeLine (Línia de temps) El Timeline d’un usuari integra al detall l’activitat de jocs i aplicacions més utilitzats per ell durant un període de temps. El Timeline dels jocs, destaca els jocs que els usuaris més utilitzen, així com les millors puntuacions i èxits, el que permet un ràpid involucrament per part de l’usuari i que els seus amics descobreixen el joc.
65 Ramon Martí i Gallego Il·lustració 28 Timeline. Els desenvolupadors d’aplicacions classificades com ‘Jocs’, poden publicar històries utilitzant l’Open Graph, que permet incorporar les fites i les puntuacions. Aquestes històries només són mostrades als usuaris quan utilitzen una aplicació catalogada com a ‘Joc’. L’API d’Èxits (achievements API) publicar històries sobre l’usuari i els seus amics quan assolisquen un conjunt d’èxits que definisca l’aplicació. L’API de Resultats (scores API) ens permet publicar històries sobre l’usuari i els seus amics, quan superen les puntuacions dels altres en la nostra aplicació, tan aviat com l’usuari obtinga una nova alta puntuació. Per a poder utilitzar les API mencionades l’usuari ha de concedir a la nostra aplicació amb el permís publish_actions, abans de que puguem publicar èxits o resultats. A més a més la línia de Temps també mostrarà l’activitat recent d’un usuari al joc.
66 Ramon Martí i Gallego Cerca Quan la nostra aplicació arribe als 10 usuaris actius mensuals, la nostra aplicació serà afegida a una cua per a ser inclosa en l’índex de cerca la propera vegada que es reconstruïsca l’índex de cerca de Facebook. (és reconstrueix cada 2-4 setmanes). Així, quan l’índex de Facebook estiga reconstruït, la nostra aplicació serà detectable a través de la cerca. Il·lustració 29 Cerca d'aplicacions en Facebook. Pàgina Addicionalment, es pot crear una pàgina de Facebook per a la nostra aplicació des del desenvolupament de la mateixa (App Dev). Simplement hem d’anar a l’apartat d’Informació de contacte en la pestanya d’opcions avançades de l’App Dev i fer clic en “Crea una pàgina de Facebook”.
67 Ramon Martí i Gallego Il·lustració 30 Creació de la pàgina de Facebook de l’aplicació. Prement el botó de confirmació al següent diàleg, associa la pàgina de Facebook amb la nostra aplicació. La pàgina difereix lleugerament de les pàgines regular, ja que incorporarà un botó “Anar a l’aplicació” o un botó “Jugar”, així com els següents enllaços relacionats amb l’aplicació: • Bloquejar aplicació • Traieu aplicació • Poseu-vos en contacte amb el desenvolupador. • Informe d'aplicació Per defecte la pàgina és titularà amb el nom de l’aplicació seguit de la paraula “Comunity”, però podem canviar aquest nom en qualsevol moment, atenent-nos a les mateixes normes que regeixen els noms en totes les pàgines. Analítica. Utilitzarem Insights per a la nostra aplicació per poder fet un seguiment de com els usuaris interactuen amb la nostra aplicació i així poder fer la millor experiència possible per als nostres usuaris. Podeu accedir a Insights per aplicar directament a través del Panell de Insights , o mitjançant la selecció de la seva aplicació a la App Developer i fent clic a la "visió" enllaç.
68 Ramon Martí i Gallego Il·lustració 31 Insights Conclusions En aquest capítol, s’ha introduït a la programació per capes, explicant la funció de cada capa i presentat les principals tecnologies en cadascuna d’elles: Capa de dades, Capa de negoci i Capa de presentació. Així, s’ha realitzat un estudi de les solucions tecnològiques disponibles en l’actualitat des del punt de vista de la seua finalitat i s’han valorat els avantatges i desavantatges que ens proporcionaria cadascuna d’elles, estudiant quina és la més apropiada per a ser utilitzada com a tecnologia de l’aplicació. En aquest sentit, s’ha proposat el patró que descriu el Model–View–Controller (MVC) com estructura de l’arquitectura de tres capes, per tal d’aconseguir un programari de major qualitat. Per últim, s’ha explicat les principals característiques de les xarxes socials, i s’ha fet un estudi de les més utilitzades, explicant la història de cadascuna d’elles, quines són les característiques més rellevants, com s’utilitzen i a quin tipus d’usuari van dirigides. També s’ha introduït al lector a la programació en Facebook.
69 Ramon Martí i Gallego Disseny de l’aplicació Introducció En la fase de disseny en la que ens trobem anem a definir l’estructura lògica i funcional que ha de tindre l’aplicació. Així, dissenyarem els diferents diagrames i esquemes que definiran les entrades, eixides, relacions i comportaments entre els diferents elements que la integren i que farem servir el l’etapa de desenvolupament de l’aplicació. Així primer lloc presentarem l’especificació conceptual, en la que descrivírem d’una manera gràfica i esquemàtica el comportament lògic i natural del sistema per a uns casos determinats. A continuació definirem l’especificació de requeriments, document que té com a objectiu presentar els requeriments i les funcionalitats que implementarà l’aplicació. Per últim modelarem els esquemes que integren l’especificació formal de l’aplicació, i que realitzarem seguint l’estàndard d’UML. D’aquesta manera, per a la capa de presentació farem servir els diagramés de casos d’ús, per al capa de negoci els de seqüència, i per a la capa de dades el diagrama entitat-relació. Especificació conceptual L’especificació conceptual, és una descripció gràfica de com funciona el sistema per a uns casos determinats. No segueix cap estàndard, el que fa imprescindible una explicació de cada esquema conceptual per la correcta comprensió per part del lector. A continuació anem a mostrar els esquemes de les funcions més rellevants de l’aplicació: Alta animal A continuació anem a mostrar l'esquema conceptual de l'alta d'un animal al sistema, és a dir el procés natural a través del qual un usuari dóna d'alta un animal en el sistema
70 Ramon Martí i Gallego Il·lustració 32 Esquema conceptual de l'alta d'animal. Tal i com es mostra en la il·lustració, en primer lloc una persona (que posteriorment passarà a ser l'usuari) troba o perd un animal. A continuació, l'usuari es connecta a l'aplicació Facebook per tal de poder denunciar la pèrdua o l'abandonament de l'animal. Així, l'aplicació Facebook connecta amb el Servidor Web al que li envia les dades de l'animal que es desitja inserir. Finalment, el servidor construeix una ordre en SQL que envia al servidor de base de dades per tal que el registre s'inserisca a la base de dades. Modificació de l'animal A continuació anem a mostrar l'esquema conceptual de la modificació d'un animal al sistema, és a dir el procés natural a través del qual un usuari modifica el registre d'un animal en el sistema que ell mateix hi haja inserit. Il·lustració 33 Esquema conceptual de la modificació de l'animal.
71 Ramon Martí i Gallego Tal i com es mostra en la il·lustració, en primer lloc l'usuari que havia donat d'alta un animal al sistema, troba una característica nova de l'animal, o se n'adona que hi havia camps que no havia omplert correctament. Així, l'usuari es connecta a l'aplicació Facebook per tal de poder modificar les característiques de l'animal. A continuació, l'aplicació Facebook connecta amb el Servidor Web al que li envia les dades de l'animal que es desitja modificar. Finalment, el servidor construeix una ordre en SQL que envia al servidor de base de dades per tal que el registre es modifique a la base de dades. Cerca d'animals A continuació anem a mostrar l'esquema conceptual de la cerca d'un animal del sistema, és a dir el procés natural a través del qual un usuari fa una cerca dels animals que existeixen a la base de dades. Il·lustració 34 Esquema conceptual de la cerca d'animals. Tal i com es mostra en la il·lustració, en primer lloc es connecta al sistema un usuari que té en ment trobar un animal amb unes característiques determinades, ja siga perquè l'ha perdut i vol trobar-lo o perquè vol trobar un animal que adoptar i posa una sèrie de restriccions. En qualsevol cas, l'usuari accedeix a l'aplicació Facebook per tal de realitzar una cerca sobre la base de dades dels animals donats d'alta a l'aplicació. A continuació, l'aplicació Facebook connecta amb el Servidor Web al que li envia les dades de la cerca que es vol realitzar sobre la base de dades d'animals. Finalment, el servidor construeix una ordre en SQL que envia al servidor de base de dades per tal que es realitze una consulta amb les restriccions indicades. Esborrat d'animals A continuació anem a mostrar l'esquema conceptual de l'esborrat d'un animal al sistema, és a dir el procés natural a través del qual un usuari esborra el registre d'un animal en el sistema que ell mateix hi haja inserit.
72 Ramon Martí i Gallego Il·lustració 35 Esquema conceptual de l'esborrat d'un animal. Tal i com es mostra en la il·lustració, en primer lloc l'usuari que havia donat d'alta un animal al sistema, rep un avís que l'animal s'ha donat en adopció. Així, l'usuari es connecta a l'aplicació Facebook per tal de poder donar de baixa l'animal. A continuació, l'aplicació Facebook connecta amb el Servidor Web al que li envia les dades de l'animal que es desitja esborrar. Finalment, el servidor construeix una ordre en SQL que envia al servidor de base de dades per tal que el registre s'esborre de la base de dades. Usuari administrador A continuació anem a mostrar l'esquema conceptual de tot el que un usuari administrador pot fer al sistema. Il·lustració 36 Esquema conceptual dels permisos de l'usuari administrador. Tal com és mostra a la il·lustració, un usuari es connecta directament a l'aplicació web, per realitzar cerques, altes, modificacions o esborrats de qualsevol de les taules del sistema. Així, l'usuari es connecta a l'aplicació Facebook per tal de poder realitzar qualsevol de les operacions esmentades. A continuació, l'aplicació Facebook connecta
73 Ramon Martí i Gallego amb el Servidor Web al que li envia les dades de la taula amb la que es desitja operar. Finalment, el servidor construeix una ordre en SQL que envia al servidor de base de dades per tal que es realitze la operació sobre la taula afectada de la base de dades. Especificació de requeriments L'objectiu d’aquest document és el de presentar els requeriments i les funcionalitats que implementarà l’aplicació Facebook per a la gestió d’abandonaments i pèrdues d’animals. Com ja hem comentat en capítols anteriors, aquesta aplicació permetrà un eficaç maneig de la informació a través de la xarxa, i sobretot a través de Facebook. Així, als següents apartats descriurem les característiques i funcions de l'aplicació. Aquesta especificació va dirigida a tota persona interessada en el funcionament de l'aplicació. Es seguiran les directrius IEEE 830-1998, un dels estàndards més referenciats per a l'especificació de requeriments en projectes de programari. Àmbit L'aplicació Facebook està destinada a que les protectores d'animals puguen gestionar les pèrdues i els abandonaments de les mascotes. Així, l'aplicació ajudarà a les protectores a trobar persones què es puguen fer càrrec dels animals abandonats, i trobar els amos dels animals que s'hagen perdut. Per tant, a més de a les protectores, l'aplicació anirà dirigida a qualsevol persona que li agraden els animals i estiga interessada en col·laborar amb les protectores difonent la informació amb els seus contactes. Amb això, per un costat l'aplicació s'adreçarà a aquells usuaris que estiguen interessats en adoptar un animal de companyia, ja que podran accedir a la base de dades dels animals disponibles dins de la xarxa de protectores que estiguen incloses dins de l'aplicació, podent realitzar cerques segons els criteris que consideren oportuns. En segon lloc l'aplicació anirà dirigida als usuaris que hagen perdut una mascota, ja que amb l'aplicació podran denunciar la desaparició de l'animal, i així quan algú trobe un animal amb unes condicions semblants, l'usuari serà avisat. Visió general del document Aquest document consta de tres seccions. La primera secció és la introducció al document d'ERS i proporciona una visió general. La segona secció, tracta de fer una descripció general de l'aplicació, descrivint els factors que afecten a l'aplicació i el context en què s'hi troba, tot això sense entrar en excessius detalls, el que farà més comprensible la descripció dels requeriments específics. En l'última secció es defineixen fil per randa els requeriments de l'aplicació.
80 Ramon Martí i Gallego Requeriments Funcionals En aquest apartat és defineixen les accions fonamentals que han de tindre lloc en l'aplicació Facebook, acceptant i processant les entrades, executant i generant les eixides. Les diferents funcionalitats de l'aplicació s'han organitzat en funció de l'element al que fan referència, pel que s'han agrupat totes les accions que es poden realitzar sobre cada element de l'aplicació. Gestió de comptes d'usuari Registrar a un usuari. DESCRIPCIÓ A través d'aquesta funcionalitat es registra un usuari, cosa que permet l'accés a gran part de la funcionalitat de l'aplicació. Una volta l'usuari ha estat registrat, podrà navegar per l'aplicació podent accedir a tota la funcionalitat de l'usuari donat d'alta. ENTRADA Per a poder donar d'alta un usuari es necessita que l'usuari accepte que l'aplicació accedisca a les seues dades de Facebook. Una volta açò ocorra, es demanaran les dades que no es puguen obtindre a través de la interfície de Facebook. També se li demanarà preferències sobre els animals. EIXIDA Com a resposta el sistema registrarà l'usuari (si no viola cap restricció), i mostrarà un missatge per pantalla informant-nos de l'èxit o fallada del procés. RESTRICCIONS • Tots els camps són necessaris, per tant cap és por quedar en blanc. FUNCIONAMENT Després de la petició de l'usuari a registrar-se, l'usuari li sol·licitarà la informació necessària per tal de poder crear el registre del seu usuari. Si es completa sense incomplir cap restricció, el sistema enregistrarà a l'usuari al sistema d'informació i mostrarà la pàgina principal del perfil de l'usuari junt amb el missatge d'èxit de l'operació. En cas contrari, romandrà sol·licitant les dades de registre conservant la informació introduïda i mostrant els errors comesos.
81 Ramon Martí i Gallego Accedir a l'aplicació. DESCRIPCIÓ Cada volta que és desitge accedir a l'aplicació el sistema comprovarà que siga un usuari registrat. De no haver estat així, el sistema mostrarà que ha d'acceptar cedir les dades a l'aplicació, i en cas que ho haja fet però no haja acabat d'emplenar el formulari d'alta, es mostrarà el mencionat formulari per a que acabe el registre. L'objectiu d'aquest procés és evitar que usuaris no puguen accedir a la funcionalitat de l'aplicació sense haver acabat el procés de registre. ENTRADA El procés d'autenticació consisteix en que el sistema valide l'identificador de l'usuari Facebook contra la aula d'usuaris existent, i que trobe un registre amb el seu número d'identificació a la taula d'usuaris. EIXIDA El sistema emmagatzemarà les dades de la sessió o tornarà el formulari de registre en cas que no trobe l'usuari dins la taula d'usuaris per a que aquest acabe amb l'alta d'usuari. RESTRICCIONS • L'usuari ha d'estar registrat al sistema FUNCIONAMENT Per poder accedir a la funcionalitat de l'aplicació es realitza un procés d'autenticació amb la finalitat que usuaris que no estiguen identificats no pugen accedir a ella. Si la comprovació té èxit, el sistema oferirà la pàgina principal d'accés a les diferents opcions de l'aplicació, en cas contrari se li mostrarà a l'usuari el formulari de registre per tal que acabe d'emplenar les dades de registre. Gestió dels animals Donar d'alta un animal DESCRIPICIÓ Aquesta funcionalitat permet afegir un nou animal en adopció dins del sistema. Des d'eixe moment qualsevol usuari podran trobar eixe animal als resultats de la cerca. ENTRADA
82 Ramon Martí i Gallego Per tal de poder inserir un animal, ja siga abandonat o perdut, és necessari tota la informació de l'animal: nom, espècie, raça, gènere, grandària, edat, província i adreça, així com una descripció de l'animal. També és necessari l'identificador de l'usuari per tal de poder relacionar l'animal amb ell, encara que aquest valor ens ho proporciona la interfície de Facebook. EIXIDA Si tota la informació és valida i no és viola cap restricció, el resultat d'aquesta acció és la inserció d'un registre a la base de dades. Es mostrarà un missatge per pantalla informant-nos de l'èxit o no del procés. RESTRICCIONS • S'ha d'estar registrat dins del sistema. • Tots els camps del formulari de l'animal són necessaris pel que cap s'hi pot quedar en blanc. FUNCIONAMENT Qual l'usuari vulga afegir un nou animal al sistema, l'aplicació li proporcionarà un formulari per a introduir tota la informació necessària sobre l'animal. Si el procés es completa sense incomplir cap restricció, el sistema inserirà un registre nou a la base de dades, en concret a la taula d'animals. Si es produeix un error, el sistema tornarà a sol·licitar la informació a l'usuari recordant la informació prèviament introduïda, amb l'objectiu de millorar l'experiència de l'usuari. Modificar les dades d'un animal DESCRIPCIÓ Aquesta funcionalitat permet modificar un registre d'un animal existent prèviament introduït dins del sistema ENTRADA Per poder modificar les dades d'un animal, es necessita tota la majoria de la informació prèviament introduïda de l'animal, nom, espècie, raça, gènere, edat, província i adreça... per tal de poder trobar el registre que es desitja modificar dins del sistema. Una volta seleccionat el registre que es vol modificar, s'haurà de facilitar totes les dades que es volen modificar del registre. En canvi l'identificador de l'usuari no resulta necessari, ja que s'obtindrà de Facebook, però si es validarà que l'usuari qui vol realitzar modificacions sobre el registre siga el mateix que qui el va inserir. Així impedirem que un usuari puga modificar animals que ell no haja donat d'alta. EIXIDA
83 Ramon Martí i Gallego Com a resposta, el sistema modificarà el registre en la base de dades, sempre i qual no incomplisca cap restricció, i mostrarà un missatge per pantalla informant-nos de l'èxit o no del procés. RESTRICCIONS • S'ha d'estar registrat dins del sistema. • Tots els camps del formulari de l'animal són necessaris pel que cap s'hi pot quedar en blanc. • L'usuari ha de ser el mateix que el que el va donar d'alta. FUNCIONAMENT Quan l'usuari sol·licite la possibilitat de modificar les dades d'un animal, el sistema li sol·licitarà tota la informació de la que dispose per tal d'identificar l'animal sobre el qual va realitzar la modificació. Una volta el sistema haja identificat l'animal a modificar, es validarà que l'usuari que desitja fer la modificació siga el mateix que l'haja donat d'alta. En eixe cas se li mostrarà a l'usuari un formulari de modificació de l'animal, per tal que realitze les modificacions oportunes, en cas contrari se li mostrarà l'error pertinent. Una volta haja omplert el formulari de modificació, es realitzarà un update sobre la taula animal d'eixe registre sempre i quan no es viole cap restricció. En cas que si viole alguna restricció, el sistema tornarà sol·licitar la informació a l'usuari recordant la informació prèviament introduïda. Realitzar una cerca d'un animal DESCRIPICIÓ Aquesta funcionalitat permet cercar un animal o un conjunt d'animals amb unes característiques determinades que hagen estat donats d'alta al sistema. Podrem filtrar per cadascun dels atributs dels animals, és a dir, podrem llistar els animals d'una espècie, raça, gènere, grandària o edat determinada. ENTRADA Per a poder realitzar la cerca, l'usuari ha de proporcionar les condicions de cerca. EIXIDA Com a resposta el sistema mostrarà tots els animals que acomplisquen les característiques que l'usuari ha demanat. RESTRICCIONS • S'ha d'estar registrat dins del sistema. FUNICONAMENT
84 Ramon Martí i Gallego Quan l'usuari emplene el formulari de cerca, l'aplicació accedirà a la base de dades, i en concret a la taula dels animals per a resoldre la consulta que finalment li mostrarà els resultats que acomplisquen el criteri. Esborrar un animal DESCRIPCIÓ Aquesta funcionalitat permet eliminar un animal del sistema. ENTRADA Per poder utilitzar que aquesta opció, és necessari que l'identificador de l'usuari que executa l'operació siga el mateix que el que va donar d'alta el registre. EIXIDA Com a resposta, el sistema esborrarà el registre de l'animal de la base de dades. RESTRICCIONS • S'ha d'estar registrat dins del sistema. • L'usuari ha de ser el mateix que el que el va donar d'alta. FUNCIONAMENT Qual l'usuari sol·licite esborrar un animal del sistema, es comprovarà prèviament que eixe animal ho haja donat d'alta eixe usuari, per tal d'evitar que usuaris esborren animals que hagen donat d'alta altres usuaris. Així una volta feta la comprovació, el sistema esborrarà el registre de la base de dades. Gestió d'administració Donar d'alta un registre en qualsevol de les taules DESCRIPICIÓ Aquesta funcionalitat permet afegir un nou registre en qualsevol de les taules del sistema. ENTRADA
85 Ramon Martí i Gallego Per tal d'afegir registres a qualsevol taula del sistema és necessari que l'usuari s'acredite com administrador. Posteriorment haurà d'emplenar tots els camps de la taula on desitja inserir el registre. EIXIDA Si tota la informació és valida i no és viola cap restricció, el resultat d'aquesta acció és la inserció d'un registre a la base de dades. Es mostrarà un missatge per pantalla informant-nos de l'èxit o no del procés. RESTRICCIONS • S'ha de ser administrador • Tots els camps del formulari de la taula són necessaris, pel que cap s'hi pot quedar en blanc. FUNCIONAMENT Qual l'usuari vulga afegir un nou registre al sistema, l'aplicació en primer lloc validarà que l'usuari tinga permisos per a fer-ho. Posteriorment li proporcionarà un formulari per a introduir tota la informació necessària sobre la taula.. Si el procés es completa sense incomplir cap restricció, el sistema inserirà un registre nou a la base de dades. Si es produeix un error, el sistema tornarà a sol·licitar la informació a l'usuari recordant la informació prèviament introduïda. Modificar les dades de qualsevol taula DESCRIPCIÓ Aquesta funcionalitat permet modificar un registre de qualsevol de les taules del sistema. ENTRADA Per tal d'afegir registres a qualsevol taula del sistema és necessari que l'usuari s'acredite com administrador. Per poder modificar les dades d'un animal, es necessita la majoria de la informació del registre que es desitja modificar dins del sistema. Una volta seleccionat el registre que es vol modificar, s'haurà de facilitar totes les dades que es volen modificar del registre. EIXIDA Com a resposta, el sistema modificarà el registre en la base de dades, sempre i quan no incomplisca cap restricció, i mostrarà un missatge per pantalla informant-nos de l'èxit o no del procés. RESTRICCIONS
86 Ramon Martí i Gallego • S'ha de ser administrador • Tots els camps del formulari de la taula són necessaris, pel que cap s'hi pot quedar en blanc. FUNCIONAMENT Quan l'usuari sol·licite la possibilitat de modificar les dades d'un registre, el sistema validarà que és tracta d'un usuari amb permisos d'administrador i li sol·licitarà tota la informació de la que dispose per tal d'identificar el registre sobre el qual va realitzar la modificació. En eixe cas se li mostrarà a l'usuari un formulari de modificació del registre, per tal que realitze les modificacions oportunes, en cas contrari se li mostrarà l'error pertinent. Una volta haja omplert el formulari de modificació, es realitzarà un update sobre la taula, sempre i quan no es viole cap restricció. En cas que si viole alguna restricció, el sistema tornarà sol·licitar la informació a l'usuari recordant la informació prèviament introduïda. Realitzar consultes sobre qualsevol taula DESCRIPICIÓ Aquesta funcionalitat permet realitzar consultes sobre qualsevol taula del sistema. ENTRADA Per tal de consultar registres de qualsevol taula del sistema és necessari que l'usuari s'acredite com administrador. Per a poder realitzar la cerca, l'usuari ha de proporcionar les condicions de cerca, i seleccionar la taula sobre la qual realitzar-la EIXIDA Com a resposta el sistema mostrarà tots els registres que acomplisquen les condicions que l'usuari ha demanat. RESTRICCIONS • S'ha de ser administrador FUNICONAMENT Quan l'usuari emplene el formulari de cerca, l'aplicació accedirà a la base de dades, i en concret a la taula seleccionada per a resoldre la consulta que finalment li mostrarà els resultats que acomplisquen el criteri. Esborrar un registre de qualsevol taula DESCRIPCIÓ
87 Ramon Martí i Gallego Aquesta funcionalitat permet eliminar un registre de qualsevol taula del sistema. ENTRADA Per poder utilitzar que aquesta opció, és necessari que l'usuari tinga permisos d'administrador. EIXIDA Com a resposta, el sistema esborrarà el registre de la base de dades. RESTRICCIONS • S'ha de ser administrador • L'usuari ha de ser el mateix que el que el va donar d'alta. FUNCIONAMENT Qual l'usuari sol·licite esborrar un registre del sistema, es comprovarà prèviament que l'usuari tinga permisos d'administrador. Així una volta feta la comprovació, el sistema esborrarà el registre de la base de dades. Requeriments de rendiment El funcionament de les aplicacions web es basa en l'arquitectura client-servidor. En ella, un sistema demanda un servei (client) a un altre (servidor) que li proporciona una resposta. En el cas en què ens trobem, el nombre de peticions que es poden sol·licitar decreix de manera exponencial al nombre d'usuaris que la fan servir. Les peticions es resolen amb consultes sobre la base de dades, ja que és allà on s'emmagatzemen els continguts. Per tant, un nombre elevat d'usuaris que sol·liciten algun tipus de servei es resoldrà amb una gran quantitat de peticions sobre la base de dades (i per tant una gran quantitat de temps). És per això que un dels principis per tal de millorar el rendiment, millorant per tant la rapidesa i el temps de resposta de l'aplicació a l'usuari, se centren en la realització del menor nombre possible de consultes sobre la base de dades i el manejament del menor volum d'informació possible per poder solucionar correctament i ràpida les peticions del client. Per tant, seguint aquestes pautes, l'obtenció de resultats en el servidor consumeix menys temps de còmput. Restriccions de disseny L'única restricció del disseny es bassa en que hem d'ajustar la grandària de la pàgina a la zona que ens deixa Facebook per a enganxar la nostra aplicació dins de la seua interfície
88 Ramon Martí i Gallego gràfica. Llevat d'això, no hi ha més restriccions que realitzar la pàgina d'una manera clara i eficient, que permeta a l'usuari navegar per l'aplicació d'una manera còmoda. Especificació formal Capa de presentació Seguint l’estàndard d’UML, l’especificació formal de la capa de presentació es fa mitjançant el diagrama de casos d’ús. El cas d’ús és una estructura que ajuda als analistes a treballar amb els usuaris per determinar la forma en què s’utilitzarà el sistema, mostrant les interaccions del sistema amb l’exterior. Així, els casos d’ús són un element de modelar que s’empra per a la recol·lecció de necessitats del programari. En ells es mostren els escenaris on és visualitza la interacció amb els components externs, tant usuaris com altres subsistemes, per a aconseguir un objectiu específic. Pel que fa a la notació, els elements que apareixeran als diagrames són els següents. Il·lustració 37 Actor Els actors són els elements que interactuen amb el sistema. En ells comencen les comunicacions que determinaran la interacció de les entitats externes amb l’aplicació. Els actors són representats com en la Il·lustració 37. Il·lustració 38 Cas d'ús Els casos d’ús es representen amb dibuixos com el de la Il·lustració 38. En ells s’engloba una funcionalitat amb un objectiu definit, que satisfà algun requeriment establert pel client. Els enllaços serveixen per especificar les connexions entre dos elements. En ells s’indica el sentit de la comunicació.
89 Ramon Martí i Gallego Il·lustració 39 Comunicació entre casos d'ús A continuació es detallaran els casos d’ús corresponent a la nostra aplicació. Instal·lació de l’aplicació En la Il·lustració 40, es mostra el diagrama de cas d’ús de la instal·lació de la aplicació. La instal·lació la realitza l’usuari administrador, que és qui coneix les claus del sistema. La instal·lació de la aplicació cal fer-la en el sistema servidor Web, encara que per a inicialitzar la base de dades serà necessari connectar amb el servidor de Bases de Dades. Il·lustració 40 Diagrama de cas d'ús de la instal·lació de la aplicació.
96 Ramon Martí i Gallego Esborrat L’esborrat de dades de tipus d’animals es fa basant-se en el següent diagrama de cas d’ús en què es mostren els passos que es realitzaran des de que l’usuari sol·licita l’esborrat sobre la taula Animal_types, fins que l’aplicació realitza l’eliminació del registre i li presenta els resultats. Il·lustració 46 Esborrat Animal_Types La primera acció de l’usuari consisteix en accedir a la pàgina principal a través del navegador web. Així, s’accedirà al Servidor web, i s’obrirà el formulari d’esborrat de la taula Animal_breeds. A continuació, l’usuari haurà d’omplir el formulari d’esborrat. Quan l’usuari tinga el formulari omplert, s’enviarà la informació al servidor web. Des del servidor web, es cridarà al Servidor de BBDD, en primer lloc per a realitzar una consulta a la taula a la que es vol esborrar, i posteriorment s’hi accedirà per tal d’esborrar a la taula el registre enviat per l’usuari. Una volta realitzat l’esborrat, la informació tornarà al servidor Web, que serà l’encarregat de mostrar els resultats a l’usuari a través del navegador web.
97 Ramon Martí i Gallego Animal Consulta La consulta de dades de d’animals es fa basant-se en el següent diagrama de cas d’ús en què es mostren els passos que es realitzaran des de que l’usuari sol·licita la consulta sobre la taula Animal, fins que l’aplicació li presenta els resultats. Il·lustració 47 Consulta en Animal La primera acció de l’usuari consisteix en accedir a la pàgina principal a través del navegador web. Així, s’accedirà al Servidor web, i s’obrirà el formulari de consulta de la taula Animal. A continuació, l’usuari haurà d’omplir el formulari de consulta. Quan l’usuari tinga el formulari omplert, s’enviarà la informació al servidor web. Des del servidor web, es cridarà al Servidor de BBDD per tal de resoldre la consulta enviada per l’usuari. Una volta executada la consulta, la informació tornarà al servidor Web, que serà l’encarregat de mostrar els resultats a l’usuari a través del navegador web.
98 Ramon Martí i Gallego Alta L’alta de dades d’animals es fa basant-se en el següent diagrama de cas d’ús en què es mostren els passos que es realitzaran des de que l’usuari sol·licita la inserció sobre la taula Animal, fins que l’aplicació realitza la inserció i li presenta els resultats. Il·lustració 48 Inserció en Animal La primera acció de l’usuari consisteix en accedir a la pàgina principal a través del navegador web. Així, s’accedirà al Servidor web, i s’obrirà el formulari de inserció de la taula Animal_breeds. A continuació, l’usuari haurà d’omplir el formulari de inserció. Quan l’usuari tinga el formulari omplert, s’enviarà la informació al servidor web. Des del servidor web, es cridarà al Servidor de BBDD, en primer lloc per a realitzar una consulta a la taula a la que es vol inserir, i posteriorment s’hi accedirà per tal d’inserir a la taula el registre enviat per l’usuari. Una volta realitzada la inserció, la informació tornarà al servidor Web, que serà l’encarregat de mostrar els resultats a l’usuari a través del navegador web.
99 Ramon Martí i Gallego Esborrat L’esborrat de dades de tipus d’animals es fa basant-se en el següent diagrama de cas d’ús en què es mostren els passos que es realitzaran des de que l’usuari sol·licita l’esborrat sobre la taula Animal, fins que l’aplicació realitza l’eliminació del registre i li presenta els resultats. Il·lustració 49 Esborrat en Animal La primera acció de l’usuari consisteix en accedir a la pàgina principal a través del navegador web. Així, s’accedirà al Servidor web, i s’obrirà el formulari d’esborrat de la taula Animal. A continuació, l’usuari haurà d’omplir el formulari d’esborrat. Quan l’usuari tinga el formulari omplert, s’enviarà la informació al servidor web. Des del servidor web, es cridarà al Servidor de BBDD, en primer lloc per a realitzar una consulta a la taula a la que es vol esborrar, i posteriorment s’hi accedirà per tal d’esborrar a la taula el registre enviat per l’usuari. Una volta realitzat l’esborrat, la informació tornarà al servidor Web, que serà l’encarregat de mostrar els resultats a l’usuari a través del navegador web.
100 Ramon Martí i Gallego Capa de negoci La capa de negoci o el nivell d’aplicació, és en el conjunt de components de programari que implementen completament el comportament de les classes del domini, especificades en la fase de modelat conceptual. Es a dir, és en la capa de presentació on es du a terme la lògica del negoci del sistema. Seguint l’estàndard d’UML, modelarem la funcionalitat del sistema amb els diagrames de seqüència. La idea principal d’un diagrama de seqüència és que les interaccions entre els objectes es realitzen en una seqüència establida i que dita seqüència es pren el seu temps en anar des del principi fins al final. En un diagrama de seqüència posem alguns dels objectes o classes que formen part de la nostra aplicació i anem posant les diverses cridades que van fent uns a altres per tal de realitzar una tasca determinada. Al diagrama de seqüència de l’UML es mostra la forma en que els objectes es comuniquen entre sí al transcórrer el temps. Al diagrama, els objectes (representats per un rectangle), es col·loquen a la part superior del diagrama, d’esquerra a dreta, i s’ordenen de tal manera que el diagrama estiga el més simplificat possible. L’extensió que està baix i de manera descendent de cada objecte serà una línia discontinua coneguda com la línia de vida de l’objecte. Junt amb la línia de vida d’un objecte es troba un xicotet rectangle conegut com activació què representa la execució d’una operació que realitza l’objecte. La longitud del rectangle representa la duració de l’activació. Un missatge que va d’un objecte a un altre passa de la línia d’un objecte a la de l’altre. A més un objecte por enviar-se missatges a sí mateix, és a dir, la seua línia de vida cap a la seua pròpia línia de vida. El diagrama representa el temps en direcció vertical. El temps s’inicia en la part superior i avança cap a la part inferior. Un missatge que estiga més prop de la part superior esdevindrà abans que no un que estiga més prop de la part inferior. Amb això, el diagrama de seqüència te dues dimensions. La dimensió horitzontal és la disposició dels objectes, i la dimensió vertical mostra el pas del temps. Animal_breeds Consulta L’usuari és connecta al sistema mitjançant un navegador web, que accedeix al formulari de la consulta a realitzar. A continuació l’usuari omple els camps del formulari amb les dades amb les que vol realitzar la consulta. Quan té el formulari omplert, l’usuari prem el botó de consulta, i en eixe moment el navegador envia l’ordre http al servidor web per a que genere la petició de consulta SQL al servidor de BBDD amb la informació recaptada del formulari.
101 Ramon Martí i Gallego Una volta el Servidor Web ha generat la petició de consulta SQL, s’envia al servidor de BBDD . Quan la petició arriba s’executa la consulta en qüestió, i amb els resultats obtinguts es crida al mòdul encarregat d’imprimir les dades en un document en pdf. Una volta el mòdul ha generat el document pdf, s’envia al navegador web, per a que finalment es mostre a l’usuari. Il·lustració 50 Diagrama seqüència Consulta Animal_Breeds Per tant, observant la Il·lustració 50, la seqüència és la següent. L’usuari és connecta al navegador web on l’apareix un formulari de consulta. Quan el té omplert, i prem el botó de consulta, s’executa l’script Consulta_Animal_Breeds.php on es genera la petició de consulta a la BBDD. S’envia la petició, i en la BBDD es realitza la consulta sobre la taula afectada. Una volta obtinguts els resultats, s’envien a GeneraPDF.php, que genera les dades en un document pdf, i que mitjançant la resposta de Consulta_Animal_Breeds.php és mostra a l’usuari pel Navegador web. Inserció L’usuari és connecta al sistema mitjançant un navegador web, que accedeix al formulari on s’emplenaran les dades del registre a inserir. A continuació l’usuari omple els camps del formulari i quan té el formulari omplert, prem el botó d’inserció. És en eixe moment quan el navegador envia l’ordre http al servidor web per a que genere la petició d’inserció SQL al servidor de BBDD amb la informació recaptada del formulari. Una volta el Servidor Web ha generat la petició d’inserció, s’envia al servidor de BBDD Quan la petició arriba, s’executa la inserció del registre en la taula, i amb els resultats obtinguts es crida al mòdul encarregat d’imprimir el resultat de l’execució document en pdf. Una volta el mòdul ha generat el mencionant document, s’envia al navegador web per a que finalment es mostre a l’usuari.
102 Ramon Martí i Gallego Il·lustració 51 Diagrama de seqüència d'inserció d'Animal_Breeds Per tant, observant la Il·lustració 51, la seqüència és la següent. L’usuari és connecta al navegador web i sol·licita el formulari d’inserció. Així el navegador sol·licita el formulari a Formulari_Alta_Animal_Breds.php, qui en primer lloc connecta amb la BBDD per a consultar les dades d’alguns dels camps del formulari. Quan el servidor de BBDD torna les dades demanades a l’script, és mostra el formulari d’inserció al navegador web. Quan el té omplert, i prem el botó de consulta, s’executa l’script Formulari_Alta_Animal_Breds.php qui crida a insertar_Animal_Breeds.php. En aquest script es genera la petició d’inserció a la BBDD. S’envia la petició, i en la BBDD es realitzala inserció del registrea la taula afectada. Una volta obtinguts el resultat de l’execució, torna el control a Insertar_Animal_Breeds.php, qui envia el resultat de l’execució a GeneraPDF.php, per a generar les dades en un document pdf, que mitjançant la resposta de Insertar_Animal_Breeds.phpés mostra a l’usuari pel Navegador web. Esborrat L’usuari és connecta al sistema mitjançant un navegador web, que accedeix al formulari on s’emplenaran les dades del registre a esborrar. A continuació l’usuari omple els camps del formulari i quan té el formulari omplert, prem el botó d’esborrat. És en eixe moment quan el navegador envia l’ordre http al servidor web per a que genere la petició d’esborratdel registre al servidor de BBDD amb la informació recaptada del formulari.
103 Ramon Martí i Gallego Una volta el Servidor Web ha generat la petició, s’envia al servidor de BBDD Quan la petició arriba, s’executa l’esborrat del registre en la taula, i amb els resultats obtinguts es crida al mòdul encarregat d’imprimir el resultat de l’execució document en pdf. Una volta el mòdul ha generat el mencionat document, s’envia al navegador web per a que finalment es mostre a l’usuari. Il·lustració 52 Diagrama de seqüència d'esborrat en Animal_Breed Per tant, observant la Il·lustració 52, la seqüència és la següent. L’usuari és connecta al navegador web i sol·licita el formulari d’esborrat. Així el navegador sol·licita el formulari a Formulari_Esborrat_Animal_Breeds.php, qui en primer lloc connecta amb la BBDD per a consultar les dades d’alguns dels camps del formulari. Quan el servidor de BBDD torna les dades demanades a l’script, és mostra el formulari d’esborrat al navegador web. Quan el té omplert, i prem el botó de consulta, s’executa l’script Formulari_Esborrat_Animal_Breds.php qui crida a esborrar_Animal_Breeds.php. En aquest script es genera la petició d’esborrat a la BBDD. S’envia la petició, i en la BBDD es realitza la inserció del registre a la taula afectada. Una volta obtinguts el resultat de l’execució, torna el control a Esborrar_Animal_Breeds.php, qui envia el resultat de l’execució a GeneraPDF.php, per a generar les dades en un document pdf, que mitjançant la resposta d’Esborrar_Animal_Breeds.phpes mostra a l’usuari pel Navegador web. Animal_Types
104 Ramon Martí i Gallego Consulta L’usuari és connecta al sistema mitjançant un navegador web, que accedeix al formulari de la consulta a realitzar. A continuació l’usuari omple els camps del formulari amb les dades amb les que vol realitzar la consulta. Quan té el formulari omplert, l’usuari prem el botó de consulta, i en eixe moment el navegador envia l’ordre http al servidor web per a que genere la petició de consulta SQL al servidor de BBDD amb la informació recaptada del formulari. Una volta el Servidor Web ha generat la petició de consulta SQL, s’envia al servidor de BBDD . Quan la petició arriba s’executa la consulta en qüestió, i amb els resultats obtinguts es crida al mòdul encarregat d’imprimir les dades en un document en pdf. Una volta el mòdul ha generat el document pdf, s’envia al navegador web, per a que finalment es mostre a l’usuari. Usuari Consulta_Animal_Types. php Consulta (Botó) BBDD Consulta SQL GeneraPDF.php Generació PDF Mostrar dades Il·lustració 53 Diagrama de seqüència de consulta en Animal_Types Per tant, observant la Il·lustració 53, la seqüència és la següent. L’usuari és connecta al navegador web on l’apareix un formulari de consulta. Quan el té omplert, i prem el botó de consulta, s’executa l’script Consulta_Animal_Types.php on es genera la petició de consulta a la BBDD. S’envia la petició, i en la BBDD es realitza la consulta sobre la taula afectada. Una volta obtinguts els resultats, s’envien a GeneraPDF.php, que genera les dades en un document pdf, i que mitjançant la resposta de Consulta_Animal_Types.php és mostra a l’usuari pel Navegador web. Inserció
105 Ramon Martí i Gallego L’usuari és connecta al sistema mitjançant un navegador web, que accedeix al formulari on s’emplenaran les dades del registre a inserir. A continuació l’usuari omple els camps del formulari i quan té el formulari omplert, prem el botó d’inserció. És en eixe moment quan el navegador envia l’ordre http al servidor web per a que genere la petició d’inserció SQL al servidor de BBDD amb la informació recaptada del formulari. Una volta el Servidor Web ha generat la petició d’inserció, s’envia al servidor de BBDD Quan la petició arriba, s’executa la inserció del registre en la taula, i amb els resultats obtinguts es crida al mòdul encarregat d’imprimir el resultat de l’execució document en pdf. Una volta el mòdul ha generat el mencionant document, s’envia al navegador web per a que finalment es mostre a l’usuari. Il·lustració 54 Diagrama de seqüència d'inserció en Animal_Types Per tant, observant la Il·lustració 54, la seqüència és la següent. L’usuari és connecta al navegador web i sol·licita el formulari d’inserció. Així el navegador sol·licita el formulari a Formulari_Alta_Animal_Types.php, qui en primer lloc connecta amb la BBDD per a consultar les dades d’alguns dels camps del formulari. Quan el servidor de BBDD torna les dades demanades a l’script, és mostra el formulari d’inserció al navegador web. Quan el té omplert, i prem el botó de consulta, s’executa l’script Formulari_Alta_Animal_Types.php qui crida a insertar_Animal_Types.php. En aquest script es genera la petició d’inserció a la BBDD. S’envia la petició, i en la BBDD es realitza la inserció del registre a la taula afectada. Una volta obtinguts el resultat de l’execució, torna el control a Insertar_Animal_Types.php, qui envia el resultat de l’execució a GeneraPDF.php, per a generar les dades en un document pdf, que
112 Ramon Martí i Gallego • Description. LONGTEXT. Descripció. Ha de contindre una descripció amb la major precisió possible de l’animal. Tota la informació que no és puga codificar a la resta de camps, haurà de ser indicada ací. • Created_at. DATETIME. Data de creació. Es generà automàticament quan es dóna d’alta el registre en el sistema. • Updated_at. DATETIME. Data de creació modificació. Es modifica automàticament quan es canvia algun camp del registre. • User_id. Int(11) Usuari. Clau aliena del camp id de la taula users. Indica Identificador del usuari que és amo de l’animal, de l’usuari que se’l va trobar o de l’usuari que s’hi està fent càrrec . Índica la grandària de l’animal que és vol donar d’alta. Només inclou el número d’identificació de l’usuari. Taula USERS: tal i com el seu nom indica, defineix els elements que descriuen els usuaris al nostre sistema. Tot seguit anem a descriure els camps de la taula: • Id. INT(11). Número d’identificació. El camp Id és la clau primària de la taula. Identifica a l’usuari i no hi poden haver dos usuaris amb el mateix número d’identificació. S’assigna automàticament quan es dóna d’alta l’usuari i sempre correspon al número següent al id de l’últim usuari que es va donar d’alta. • Province_id. INT(11). Identificador de la província. Clau aliena del camp id de la taula Provinces. Indica la província de on resideix l’usuari. Només inclou el número d’identificació de la província. • Password. VARCHAR(255). Contrasenya. Correspon a la clau d’accés de l’usuari al sistema en cas que siga administrador. En cas de ser-hi, romandrà xifrada i servirà per tal de poder validar els accessos. En cas de que l’usuari no necessite contrasenya anirà informada a nuls. • Email. VARCHAR(255). Correu electrònic. Aquest camp vindrà informat amb una adreça de correu electrònic. En cas que l’usuari no en tinga, el camp vindrà informat a nuls. • Applicaion_email. VARCHAR(255). Aplicació de correu electrònic. Aquest camp vindrà informat amb el servidor electrònic. En cas que l’usuari no tinga correu, el camp vindrà informat a nuls. • Phone. VARCHAR(255). Telèfon. Aquest camp contendrà els telèfons de contacte de l’usuari, podrà contindre tants números de contacte com l’usuari vulga facilitar. En cas que l’usuari no tinga telèfon, el camp vindrà informat a nuls. • Address. VARCHAR(255). Adreça de l’usuari. Indica l’adreça de l’usuari: via, bloc, número, pis, porta, codi postal, localitat i població. • Information. LONGTEXT. Informació addicional. Contendrà tota la informació que l’usuari crega necessari afegir-hi • Geolocation. VARCHAR(150). Geolocalització. Contendrà les coordenades (altitud, latitud) on resideix l’usuari. • Surnames. VARCHAR(150). Cognoms de l’usuari. Us mostrem a continuació com és relacionen aquestes taules.
113 Ramon Martí i Gallego Il·lustració 59 Capa de dades de l'aplicació. Així doncs, i després de mostrar la resta de taules que apareixen a la Il·lustració 59, explicarem com es composen i quins són les seues relacions.
114 Ramon Martí i Gallego Taula ANIMALS_BREEDS: Representa la raça d’un animal dins d’una espècie. Una raça és una població d’individus d’una mateixa espècie que, encara que tinguen capacitat de tindre descendència fèrtil, l’aïllament i la manca de flux genètic els ha pogut donar un seguit de propietats distintives. Exemples de raça dins de l’espècie dels gossos, seria el husky siberià. Aquesta taula és creua amb la taula Animal_Types per poder obtindre l’espècie de l’animal a la que pertany l’espècie i amb la taula d’Animals per poder saber la raça de l’animal que s’ha perdut o trobat. Tot seguit anem a descriure els camps de la taula: • Id. INT(11). Número d’identificació. El camp Id és la clau primària de la taula. Identifica a l’espècie de l’animal i no hi poden haver dos espècies d’animals amb el mateix número d’identificació. S’assigna automàticament quan es dóna d’alta una espècie nova i sempre correspon al número següent al id de l’última espècie que es va donar d’alta. • Breed. VARCHAR(100). Raça. Conté el nom de la raça de l’animal dins de l’espècie a la que pertany. • Type_id. INT(11). Identificador del la espècie. Clau aliena del camp id de la taula Animal_types. Indica l’espècie d’animal a la que pertany la raça. Taula ANIMALS_TYPES: Representa els tipus d’animals, a les espècies. Una espècie està formada per tots els organismes individuals d’una població natural amb la capacitat de creuar-se entre ells, produint nous individus fèrtils. Exemples d’espècies serien gat i gos. Aquesta taula és creua amb la taula Animal per poder obtindre l’espècie de l’animal que s’ha perdut o trobat. Tot seguit anem a descriure els camps de la taula: • Id. INT(11). Número d’identificació. El camp Id és la clau primària de la taula. Identifica a l’espècie de l’animal i no hi poden haver dos espècies d’animals amb el mateix número d’identificació. S’assigna automàticament quan es dóna d’alta una espècie nova i sempre correspon al número següent al id de l’última espècie que es va donar d’alta. • Type. VARCHAR(100). Espècie. Conté el nom de l’espècie del’animal. Taula ANIMALS_AGES: Representa les diferents edats en les que es pot trobar un animal. Aquesta taula és creua amb la taula Animal per poder obtindre l’edat de l’animal que s’ha perdut o trobat. Tot seguit anem a descriure els camps de la taula: • Id. INT(11). Número d’identificació. El camp Id és la clau primària de la taula. • Age. VARCHAR(100). Edat. Conté el nom de l’edat del’animal. Aquesta taula conté els següents valors, i en principi, i a no ser que l’aplicació així ho requerira no sofrirà modificacions.
115 Ramon Martí i Gallego Id Age 0 No definida 1 Cadell 2 Jove 3 Adult 4 Vell Taula ANIMALS_SEXS: Representa els gènere dels animals. Aquesta taula és creua amb la taula Animal per poder obtindre el gènere de l’animal que s’ha perdut o trobat. Tot seguit anem a descriure els camps de la taula: • Id. INT(11). Número d’identificació. El camp Id és la clau primària de la taula. • Sex. VARCHAR(100). Gènere. Conté el nom del gènere. Aquesta taula conté els següents valors, i en principi, i a no ser que l’aplicació així ho requerira no sofrirà modificacions. Id Sex 0 No definit 1 Femella 2 Mascle Taula ANIMALS_SIZES: Representa les possibles grandàries dels animals. Aquesta taula és creua amb la taula Animal per poder obtindre grandària de l’animal que s’ha perdut o trobat. Tot seguit anem a descriure els camps de la taula: • Id. INT(11). Número d’identificació. El camp Id és la clau primària de la taula. • Size. VARCHAR(100). Grandària. Conté la descripció de la grandària. Aquesta taula conté els següents valors, i en principi, i a no ser que l’aplicació així ho requerira no sofrirà modificacions. Id Size 0 Menut 1 Mitjà 2 Gran Taula PROVINCES: Representa les províncies de l’Estat espanyol. Les províncies de l’Estat espanyol van ser van ser la divisió administrativa anterior a la divisió actual de 17 autonomies amb diferents nivells d'autogovern, i actualment es consideren una subdivisió administrativa d'aquestes. Aquesta taula és creua amb la taula Animal i amb
116 Ramon Martí i Gallego User per poder obtindre la província on es troba o es va perdre l’animal i la província on es troba l’usuari. Tot seguit anem a descriure els camps de la taula: • Id. INT(11). Número d’identificació. El camp Id és la clau primària de la taula. • Province. VARCHAR(100). Província. Conté el nom de la Província. Aquesta taula conté els següents valors, i en principi, i a no ser que l’aplicació així ho requerira no sofrirà modificacions. Id Province 1 Araba/Àlaba 3 Alacant 2 Albacete 4 Almería/Almeria 33 Asturias/Astúries 5 Ávila/Àvila 6 Badajoz 8 Burgos 9 Barcelona 10 Cáceres/Càceres 11 Cádiz/Cadis 39 Cantabria/Cantàbria 12 Castelló de la Plana 51 Ceuta 13 Ciudad Real 14 Cordoba/Còrdova 16 Cuenca/Conca 17 Girona 18 Granada 19 Guadalajara 20 Guipuzkoa/Guipúscoa 21 Huelva 22 Huesca/Osca 7 Illes Balears 23 Jaén 26 La Rioja 35 Las Palmas 24 León/Lleó 25 Lleida 27 Lugo 28 Madrid 29 Málaga/Màlaga 52 Melilla 30 Murcia/Múrcia 31 Nafarroa/Navarra 32 Ourense 34 Palencia/Palència
117 Ramon Martí i Gallego 36 Pontevedra 37 Salamanca 38 Santa Cruz de Tenerife 40 Segovi/Segòvia 42 Soria/Sòria 43 Tarragona 44 Teruel/Terol 45 Toledo 46 València 47 Valladolid 48 Bizkaia/Biscaia 49 Zamora 50 Zaragoza/Saragossa 99 Estranger Conclusions Durant el present capítol s’ha detallat en gran mesura la funcionalitat de la futura aplicació Facebook de gestió de pèrdues i abandonaments d’animals. En primer lloc s’ha realitzat l’especificació conceptual de l’aplicació, on s’han explicat les relacions naturals dels diferents elements que composen el nostre sistema des d’un punt de vista lògic. Així s’ha mostrat de forma totalment esquemàtica els principals processos que es duran a terme en el nostre sistema A continuació s’ha redactat el document principal d’especificació de requeriments de programari, en el que s’han presentat els requeriments i les funcionalitats que implementarà l’aplicació. Per últim s’han modelat els esquemes que integren l’especificació formal de l’aplicació, i que realitzarem seguint l’estàndard d’UML. D’aquesta manera, hem dissenyat els diagrames de casos d’ús i de seqüència en les que s’han definit les interaccions entre els objectes i l’usuari, i el diagrama entitat-relació on s’ha definit el sistema de base de dades.
118 Ramon Martí i Gallego Implementació de l’aplicació Introducció En aquest capítol, es desenvolupa la funcionalitat del sistema. Així, es presentarà un prototipus inicial que comptarà amb tota la funcionalitat bàsica de l’aplicació. Amb ell es presentarà l’aplicació i totes les possibilitats que hi ofereix. També podrem comprovar que el sistema funciona correctament per a tots els casos que s’han tingut en compte, amb el que garantirem la qualitat del programari desenvolupat. Seguidament s’explicaran les passes seguides per donar d’alta l’aplicació dins de la xarxa social de Facebook. Per últim i una volta connectada amb la plataforma social, es presentarà l’última versió de l’aplicació integrada en Facebook i on es mostraran les diferents opcions amb les que els usuaris podran comptar. Prototipus inicial Per tal de poder comprovar el correcte funcionament de la base de dades i de les funcions d’accés s’ha realitzat un prototip inicial centrat en aquestes accions. A continuació es mostraran les diferents accions del prototipus. Pàgina principal La pàgina principal del prototip (Il·lustració 60) permet l’accés a les operacions bàsiques de la base de dades. En aquest prototipus només s’han tingut en compte: Inicialització, races d’animals, tipus d’animal i animal. En pròximes versions, es detallaran tots aquestos aspectes.
119 Ramon Martí i Gallego Il·lustració 60 Pàgina principal del Prototip La inicialització (Il·lustració 60, botó “Inicialitzar”) consisteix en la creació de la base de dades i la inserció de dades en algunes taules. S’inseriran les dades a les taules que es considera que han d’estar prefixades des del principi per al correcte funcionament de l’aplicació i no s’han de modificar, o almenys no s’ha de fer pels usuaris de l’aplicació. Estes taules són: “Provinces”. Conté el nom de les províncies, dades que difícilment variaran en la vida útil de la aplicació. “Animal_types”. Aquesta és la taula dels tipus d’animals. S’han inclòs a la taula els tipus d’animals més comuns, com ara el gos, el gat, l’ocell, el porc, la fura, la serp, l’hàmster i la iguana. No obstant això és permetrà la inclusió de més tipus d’animals, fent servir la opció d’inserció a l’aplicació. “Animal_sexs”. Ací tenim els possibles sexes dels animals. Els valors per defecte hi seran “no definit”, “mascle” i “femella”. “Animal_ages”. En aquesta taula s’inclouen els rangs d’edat dels animals. Els valors possibles són “No identificat”, “Cadell”, “Adult” i “Vell”. “Animal_sizes”. Com bé indica el seu nom, ací hi seran les grandàries dels animals. La taula s’inicialitzarà amb els valors menut, mitjà i gran, no essent possible la inserció de més valors mitjançant la aplicació.
120 Ramon Martí i Gallego Il·lustració 61 Avís que mostra la correcta inicialització de la base de dades Consulta La consulta consisteix en la visualització de les dades d’una taula seleccionada. Des del prototipus de l’aplicació es pot consultar les dades de les taules.
121 Ramon Martí i Gallego Il·lustració 62 Consulta de la taula Animal_Types El la Il·lustració 62, és mostra el resultat de la taula Animal_Types amb el contingut inicial heretat de la creació de la base de dades. És poden veure els vuits registres dels tipus d’animals, comentats darrerament, amb els dos únics camps que componen cada registre, el camp id i el type. En la Il·lustració 63, el resultat de fer una consulta de la taula Animal_breeds quan està buida. Il·lustració 63 Consulta de la taula Animal_Breed buida Inserció La inserció consisteix en afegir un registre nou a la taula que prèviament haguem seleccionat per a fer-ho. Primerament és mostrarà un formulari en què és podrà introduir el valor de cada camp de manera individual. Quan els tinguem tots omplerts pressionarem el botó que executarà la sentència SQL que s’encarregarà d’inserir el registre darrerament definit.
128 Ramon Martí i Gallego Pàgina principal La pàgina principal de l’aplicació és la primera pàgina que l’usuari veurà quan accedisca a la nostra aplicació, En ella l’usuari podrà realitzar un seguit d’operacions sobre les taules principals de la nostra aplicació. La mostrem a la Il·lustració 74: Il·lustració 74 Pàgina principal de l'aplicació en Facebook. Tal i com es desprèn de la Il·lustració 74, l’usuari podrà realitzar una sèrie d’operacions a les que accedirà des del menú inicial de la pàgina principal. Les distintes opcions apareixen agrupades en trens grans blocs: Races d’animals, Espècies d’animals i Animal. Races d’animals Les operacions agrupades en aquesta secció, afecten a les Races d’animals i s’efectuen sobre la taula Animal_breeds del nostre sistema. En aquesta taula s’emmagatzemen les races de les diferents espècies dels animals que s’han previst per a l’aplicació. Hi ha tres opcions disponibles en aquesta secció. Per un costat tenim l’opció de Consulta de Races Existents. Amb aquesta opció podrem obtindre un llistat de les diferents races que existeixen al sistema.
129 Ramon Martí i Gallego Il·lustració 75 Consulta de races existents en Facebook. Així, tal i com es mostra a la Il·lustració 75 podem veure quines són les races donades d’alta en el sistema en el moment en què és consulten. D’altra banda tenim Alta d’una nova raça. Amb aquesta opció podrem donar d’alta una nova raça al sistema, seleccionant prèviament a quina espècie pertany. Il·lustració 76 Alta d'una raça en Facebook. Així, tal i com es mostra a la Il·lustració 76 podem inserir una nova raça al sistema, triant en primer lloc l’espècie a la que pertany, i a continuació indicant quin és el nom de la raça que volem donar d’alta. Per últim, cal que premem el botó d’inserir per tal que l’alta siga efectiva. Per últim en aquest apartat, tenim l’opció de donar de baixa una raça existent. Amb aquesta opció podrem donar de baixa una raça de les que hi hagen donades d’alta al sistema.
130 Ramon Martí i Gallego Il·lustració 77 Baixa d'una raça en Facebook. Així, tal i com es mostra a la Il·lustració 77, podem donar de baixa una raça del sistema. Per fer-ho, en primer lloc hem de triar l’espècie a la que pertany,i posteriorment seleccionar quina és la raça que volem donar de baixa. Per últim, cal que premem el botó d’esborrar per tal que la baixa es faça efectiva. Espècies d’animals Les operacions agrupades en aquesta secció, afecten a les Espècies d’animals i s’efectuen sobre la taula Animal_types del nostre sistema. En aquesta taula s’emmagatzemen les espècies dels animals que s’han previst per a l’aplicació. Hi ha tres opcions disponibles en aquesta secció. Per un costat tenim l’opció de Consulta de les Espècies Existents. Amb aquesta opció podrem obtindre un llistat de les diferents espècies que existeixen al sistema. Il·lustració 78 Consulta d'espècies a Facebook. Així, tal i com es mostra a la Il·lustració 78 podem veure quines són les espècies donades d’alta en el sistema en el moment en què és consulten. D’altra banda tenim Alta d’una nova Espècies. Amb aquesta opció podrem donar d’alta una nova espècie al sistema.
131 Ramon Martí i Gallego Il·lustració 79 Alta d'espècie a Facebook. Així, tal i com es mostra a la Il·lustració 79, podem inserir una nova espècie al sistema, omplint el formulari d’inserció que només consta d’un camp i on haurem d’indicar quin és el nom de l’espècie que volem donar d’alta. Per últim, cal que premem el botó d’inserir per tal que l’alta siga efectiva. Per últim en aquest apartat, tenim l’opció de donar de baixa una raça existent. Amb aquesta opció podrem donar de baixa una raça de les que hi hagen donades d’alta al sistema. Il·lustració 80 Baixa d'espècie en Facebook Així, tal i com es mostra a la Il·lustració 80, podem donar de baixa una espècie del sistema. Per fer-ho, en primer lloc hem d’omplir el formulari de baixa, que únicament consisteix en triar l’espècie que volem donar de baixa. Per últim, cal que premem el botó d’esborrar per tal que la baixa es faça efectiva. Animals Les operacions agrupades en aquesta secció, afecten als Animals directament. Serà les opcions que amb més freqüència faran servir els usuaris. Les operacions ací descrites s’efectuen sobre la taula Animals del nostre sistema. En aquesta taula s’emmagatzemen els animals que els usuaris van donant d’alta i de baixa, degut a les pèrdues i abandonaments i a les trobades i adopcions respectivament. Hi ha tres opcions disponibles en aquesta secció.
132 Ramon Martí i Gallego En primer lloc tenim l’opció “Alta d’un animal nou”. Amb aquesta opció els usuaris donaran d’alta en el sistema els animals que hagen perdut o abandonats. Il·lustració 81 Alta d'un animal en Facebook. Així, tal i com es mostra a la Il·lustració 81, podem inserir un nou animal al sistema, omplint el formulari d’inserció. Al formulari haurem d’indicar l’espècie de l’animal, la raça, el gènere, l’edat, la grandària, la província i adreça on es troba, el nom, i una breu descripció on s’indiquen característiques tant físiques com de comportament. Finalment i per a que el registre s’inserisca correctament, prenen el botó d’Inserir. D’altra banda tenim Consulta d’un animal existent. Amb aquesta els usuaris podran consultar els diferents animals que hagen estat donats d’alta al sistema.
133 Ramon Martí i Gallego Il·lustració 82 Consulta Animal Facebook. Així, tal i com es mostra a la Il·lustració 82, podem veure els diferents animals que s’han donat d’alta al sistema. Aquesta opció és extremadament útil per als usuaris, ja que amb ella podran trobar un animal per a poder adoptar, que al cap i a la fi és un dels principals objectius de l’aplicació. Conclusions En aquest s’ha explicat el procés de desenvolupament de l’aplicació. Així, hem partit d’un prototipus amb el que hem presentat totes les possibilitats que ofereix. També hem explicat tota la funcionalitat del sistema i hem provat el correcte funcionament sobre el prototipus amb el que hem pogut concloure que l’aplicació funciona correctament per a tots els casos que s’han provat. A continuació, s’ha detallat el procés pel qual hem inserit la nostra aplicació dins de la plataforma Facebook. Per últim, hem presentat l’ultima versió de l’aplicació, accedint això si ja des de la mencionada xarxa social. Així, hem mostrat les diferents opcions amb les que l’usuari podrà comptar finalment, i com resultarà la navegació a través d’ella.
135 Ramon Martí i Gallego Conclusions Treball desenvolupat Amb el desenvolupament del projecte final de carrera hem obtingut una visió de com s'ha de desenvolupar un projecte d'enginyeria de programari, partint d'una anàlisi del problema, avaluant les diferents alternatives, planificant i organitzant l'aplicació, elaborant les diferents especificacions seguint els estàndards per finalment acabar amb el desenvolupament de l'aplicació. El principal objectiu d'aquest projecte era per un costat analitzar el protocol de comunicació de les protectores d'animals a través d'Internet i de les xarxes socials en general, i en concret a través de Facebook, per a posteriorment dissenyar una aplicació en l'anomenada xarxa social per poder resoldre les principals deficiències. Així, per un costat s'ha realitzat una anàlisi de la situació en la que es troben les protectores d'animals i les dificultats amb les que treballen a través d'Internet, sobretot les dificultats amb les que es troben per tal de poder difondre els avisos d'animals perduts i abandonats i notificar-los als usuaris interessats evitant redundàncies, així com emmagatzemar la informació dels animals amb la major homogeneïtat i evitant duplicats. També hem realitzat un estudi de les diferents xarxes socials existents en aquest moment, quin és el seu impacte, com funcionen i a quin tipus de gent van dirigides. Posteriorment s'ha dissenyat una aplicació web que centralitze els avisos, centralitze la informació i uniforme les dades, per tal de reduir i organitzar el volum d'informació, i per millorar l'experiència de l'usuari. Finalment hem connectat aplicació web amb la xarxa social de Facebook En línies generals podem concloure que als projectes de enginyeria del programari, tant una bona planificació i seguiment de l'aplicació, juntament amb una estricta definició de l'extensió i dels seus límits, són elements clau per a que un projecte puga eixir endavant i finalitzar-lo dins de les restriccions temporals i espacials existents, malgrat les diferents dificultats que puguen eixir al llarg del desenvolupament. En referència amb els objectius tecnològics que es pretenien aconseguir amb el desenvolupament de l'aplicació, podem afirmar que en gran mesura els hem aconseguit. Referint-nos als objectius socials no podem assegurar que els objectius amb els què partíem s'hagen pogut assolir, ja que no s'ha pogut demostrar que l'aplicació fomente l'adopció dels animals ni que ajude a trobar les mascotes perdudes als usuaris. Amb tan poc de temps transcorregut entre el desenvolupament de l'aplicació i l'entrega d'aquesta memòria no hem pogut fer proves d'aquest tipus.
136 Ramon Martí i Gallego Treball futur En aquest apartat detallarem les futures línies de treball en que es podrà continuar amb el desenvolupament de l'aplicació. La implementació realitzada per al projecte final de carrera és un dels primers prototipus de l'aplicació Facebook que gestione la pèrdua i abandonament dels animals. Queda moltíssim treball per fer per poder complir amb els principals objectius socials: reduir l'abandonament d'animals i fomentar l'adopció dels mateixos. Amb açò, una de les primeres tasques que s'haurien de dur a terme es intentar aconseguir la participació de diferents associacions i protectores d'animals, sobretot, per poder recopilar informació que siga d'ajut per a la plataforma. Ningú més que elles poden proporcionar quines funcionalitats s'han d'implementar als següents prototipus de l'aplicació. Així, es podrien realitzar proves en que tant les protectores, com particulars podrien participar-hi com a usuaris de l'aplicació, proporcionant millores en la interfície gràfica i la usabilitat del sistema, amb l'objectiu de facilitar l'ús a la majoria dels usuaris.
137 Ramon Martí i Gallego Bibliografia Pàgines Webs Fundación Affinity. http://www.fundacion-affinity.org/ Programación por capas - Wikipedia. http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_capas Base de dades relacional - Viquipèdia. http://ca.wikipedia.org/wiki/Base_de_dades_relacional Php - Viquipèdia. http://ca.wikipedia.org/wiki/PHP Html - Viquipèdia. http://ca.wikipedia.org/wiki/Hyper_Text_Markup_Language JavaScript - Wikipedia. http://es.wikipedia.org/wiki/Javascript AJAX - Wikipedia. http://es.wikipedia.org/wiki/AJAX Facebook - Wikipedia. http://es.wikipedia.org/wiki/Facebook Google+ - Wikipedia http://es.wikipedia.org/wiki/Google%2B Youtube - Wikipedia http://es.wikipedia.org/wiki/Youtube Tuenti – Viquipèdia http://ca.wikipedia.org/wiki/Tuenti Twitter – Viquipèdia http://ca.wikipedia.org/wiki/Twitter Qué son las redes sociales. http://www.redessociales.es/que-son-las-redes-sociales/ Red social en Internet. http://aprenderinternet.about.com/od/RedesSociales/g/Que-Es-Una-RedSocial.htm Redes sociales. http://www.slideshare.net/jorluguvi/redes-sociales-2388331 ¿Es Youtube una red social? http://www.solomarketing.es/%C2%BFes-youtube-una-red-social/ Diagrama de Secuencia. http://www.chuidiang.com/ood/metodologia/diagrama_secuencia.php Modelado conceptual de aplicacions Web. http://www.slideshare.net/grialusal/modelado-conceptual-de-aplicaciones-web Facebook Developers http://developers.facebook.com/