scieee Open visual document viewer

Desenvolupament d’una aplicació web per a una ONG

Ginesta Marquès, Marc

Abstract

La Fundació UBUNTU és una ONG d’origen català presidida per Federico Mayor Zaragoza i amb seu a Barcelona que, per fer front al procés de globalització que sofreix el món en l’actualitat, s’encarrega de coordinar les activitats de les diferents organitzacions d’arreu del món que formen la societat civil internacional per tal que puguin incidir en els òrgans de govern, tant nacionals com internacionals, de manera que la societat civil pugui donar la seva opinió i tingui certa capacitat de decisió en aspectes polítics, socials, culturals i econòmics que afecten a tots els habitants del planeta. En aquest marc, l’ONG es planteja la necessitat d’un espai virtual on determinades organitzacions de la societat civil i estats implicats puguin publicar i compartir documents a fi de discutir-ne el contingut i intercanviar opinions sobre temes concrets. És per això que la Fundació UBUNTU m’ha encomanat el desenvolupament d’una aplicació que permeti dur a terme totes les funcionalitats esmentades anteriorment, per les quals es pot deduir clarament l’estructuració de l’aplicació en un fòrum. Per altra banda, em trobo al final de la carrera i necessito escollir un projecte (PFC). Tot i que inicialment he pensat d’agafar l’aplicació que em proposen com a projecte, després de rumiar-ho, considero que no té entitat suficient. Malgrat tot, com que sembla una aplicació interessant, he buscat la manera d’estendre-la per aconseguir un projecte amb prou gruix. La idea, doncs, és desenvolupar el fòrum amb la metodologia que fa servir l’ONG actualment i desenvolupar-lo posteriorment a partir d’un gestor de continguts (Content Management System, CMS) per tal de comparar les metodologies i el funcionament de l’aplicació; i en funció dels resultats obtinguts valorar la possibilitat d’implantació del CMS als llocs web de la Fundació UBUNTU, ja que segons la meva opinió la plataforma actual es basa en un sistema arcaic i poc amigable.

Full text

Tí ol: Desen olupamen d’una aplicació web pe a una ONG Volum: 1 Alumne: Ma c Gines a Ma quès Di ec o /Ponen : Ma ia Ca me Que Boso Depa amen : LSI Da a: 30 de juny de 2009 DADES DEL PROJECTE Tí ol del P ojec e: Desen olupamen d’una aplicació web pe a una ONG Nom de l'es udian : Ma c Gines a Ma quès Ti ulació: Enginye ia Tècnica en In o mà ica de Ges ió C èdi s: 22,5 Di ec o /Ponen : Ma ia Ca me Que Boso Depa amen : LSI MEMBRES DEL TRIBUNAL (nom i signa u a) P esiden a: C is ina Gómez Seoane Vocal: Joan T ias Pai ó Sec e à ia: Ma ia Ca me Que Boso QUALIFICACIÓ Quali icació numè ica: Quali icació desc ip i a: Da a: Desen olupamen d’una aplicació web pe a una ONG - 1 - Índex 1 Con ex del P ojec e _____________________________________________________3 2 Objec iu del P ojec e_____________________________________________________4 3 E apes del p ojec e ______________________________________________________5 4 Plani icació i es udi econòmic _____________________________________________6 4.1 Plani icació _____________________________________________________________ 6 4.2 Es udi econòmic _________________________________________________________ 8 5 Anàlisi de eque imen s _________________________________________________ 11 5.1 Desc ipció ex ual de l’aplicació ___________________________________________ 11 6 Reque imen s de alla s __________________________________________________14 6.1 Reque imen s Funcionals ________________________________________________ 14 6.2 Reque imen s No Funcionals _____________________________________________ 19 7 Especi icació __________________________________________________________22 7.1 Diag ames de casos d’ús _________________________________________________ 22 7.2 Desc ipció de casos d’ús__________________________________________________ 25 7.3 Diag ama de classes _____________________________________________________ 43 8 Disseny i implemen ació de l’aplicació en la me odologia adicional_____________46 8.1 A qui ec u a i pla a o ma ________________________________________________ 46 8.2 Disseny de la base de dades _______________________________________________ 47 8.3 Disseny dels ac amen s _________________________________________________ 54 8.4 Implemen ació _________________________________________________________ 58 9 Desen olupamen sob e un Sis ema Ges o de Con ingu s (CMS)________________73 9.1 Què són els CMS?_______________________________________________________ 73 9.2 Jus i icació de l’ús i implan ació d’un CMS _________________________________ 73 9.3 Selecció d’un CMS ______________________________________________________ 75 9.4 Disseny i implemen ació de l’aplicació a pa i del CMS escolli ________________ 81 10 P o es _______________________________________________________________94 Desen olupamen d’una aplicació web pe a una ONG - 2 - 11 Compa ació de les dues me odologies de desen olupamen ___________________96 12 Compa ació de ca ac e ís iques no- uncionals de les aplicacions ob ingudes ___100 13 Conside acions inals ________________________________________________103 14 Conclusions________________________________________________________105 Annex I: Ins al·lació de D upal ______________________________________________106 Annex II: Ins al·lació d’un ema a D upal _____________________________________108 Annex III: Ins al·lació d’un mòdul a D upal ___________________________________ 110 Bibliog a ia ______________________________________________________________ 111 Desen olupamen d’una aplicació web pe a una ONG - 3 - 1 Con ex del P ojec e La Fundació UBUNTU és una ONG d’o igen ca alà p esidida pe Fede ico Mayo Za agoza i amb seu a Ba celona que, pe e on al p océs de globali zació que so eix el món en l’ac uali a , s’enca ega de coo dina les ac i i a s de les di e en s o gani zacions d’a eu del món que o men la socie a ci il in e nacional pe al que puguin incidi en els ò gans de go e n, an nacionals com in e nacionals, de mane a que la socie a ci il pugui dona la se a opinió i ingui ce a capaci a de decisió en aspec es polí ics, socials, cul u als i econòmics que a ec en a o s els habi an s del plane a. En aques ma c, l’ONG es plan eja la necessi a d’un espai i ual on de e minades o gani zacions de la socie a ci il i es a s implica s puguin publica i compa i documen s a i de discu i -ne el con ingu i in e can ia opinions sob e emes conc e s. És pe això que la Fundació UBUNTU m’ha encomana el desen olupamen d’una aplicació que pe me i du a e me o es les uncionali a s esmen ades an e io men , pe les quals es po dedui cla amen l’es uc u ació de l’aplicació en un ò um. Pe al a banda, em obo al inal de la ca e a i necessi o escolli un p ojec e (PFC). To i que inicialmen he pensa d’aga a l’aplicació que em p oposen com a p ojec e, desp és de umia -ho, conside o que no é en i a su icien . Malg a o , com que sembla una aplicació in e essan , he busca la mane a d’es end e-la pe aconsegui un p ojec e amb p ou g uix. La idea, doncs, és desen olupa el ò um amb la me odologia que a se i l’ONG ac ualmen i desen olupa -lo pos e io men a pa i d’un ges o de con ingu s (Con en Managemen Sys em, CMS) pe al de compa a les me odologies i el uncionamen de l’aplicació; i en unció dels esul a s ob ingu s alo a la possibili a d’implan ació del CMS als llocs web de la Fundació UBUNTU, ja que segons la me a opinió la pla a o ma ac ual es basa en un sis ema a caic i poc amigable. Desen olupamen d’una aplicació web pe a una ONG - 4 - 2 Objec iu del P ojec e El p ojec e p e én e el seguimen del p océs comen a en el capí ol an e io . Així doncs, d’una banda l’objec iu és desen olupa l’aplicació amb un en ocamen més adicional seguin la me odologia usada pe l’ONG sob e la pla a o ma habi ual, i de l’al a, desen olupa l’aplicació a pa i de la implan ació d’un ges o de con ingu s (CMS) que acili i la eina a l’ho a de c ea nous con ingu s i ges iona -los. Tanma eix, del segon cas, se’n desp enen alguns objec ius addicionals: • Fe un es udi de me ca sob e els CMS exis en s (escolli els més adequa s en unció dels eque imen s, ca ac e ís iques, di e ències signi ica i es, e c.). • Escolli un CMS adequa d’aco d amb els eque imen s de l’ONG. • Desen olupa l’aplicació usan el CMS escolli . Finalmen , un cop desen olupades les dues aplicacions, ambé es ol: • Compa a el p océs de desen olupamen adicional en on d’un desen olupamen basa en p oduc es ja exis en s i eu e els a an a ges i incon enien s de cada un. • Compa a algunes ca ac e ís iques no- uncionals d’ambdues aplicacions que énen donades pel e de la pla a o ma sob e la que s’han implemen a . • Valo a la possibili a d’implan ació pe manen del CMS. Desen olupamen d’una aplicació web pe a una ONG - 5 - 3 E apes del p ojec e El p océs de desen olupamen del so wa e sol di idi -se en les següen s e apes: anàlisi de eque imen s, especi icació, disseny, implemen ació i p o es. Abans de comença p òpiamen amb el desen olupamen , es a eali za una plani icació inicial del p ojec e, i en inali za -lo s’ha e una plani icació on es p esen a el emps que s’ha iga ealmen en cada e apa. Ambdues plani icacions, inicial i inal, es poden oba al capí ol 4 jun amen amb l’es udi econòmic. A con inuació, es a p ocedi a e l’anàlisi de eque imen s i l’especi icació, que al se ac i i a s que no depenen de la ecnologia, són comunes a les dues me odologies de desen olupamen . El esul a d’aques es e apes s’exposa en els capí ols 5, 6 i 7. Les e apes de disseny i implemen ació es an eali za de mane a especí ica pe les dues pla a o mes d’explo ació. El esul a d’aques es e apes pe a l’aplicació p og amada a mida es desc iu al capí ol 8, i el esul a pe a l’aplicació que s’ha desen olupa en un CMS, al capí ol 9, el qual con é l’es udi i la compa ació de CMS que s’o e eixen en el me ca de componen s so wa e. To segui , al capí ol 10, es p esen en les p o es que es an eali za immedia amen desp és de l’e apa d’implemen ació de cada aplicació, les quals són comunes a les dues pla a o mes de desen olupamen . Alesho es, aig du a e me la compa ació de les dues me odologies de desen olupamen i la compa ació de les ca ac e ís iques no- uncionals de les aplicacions ob ingudes. El esul a d’aques s dos es udis es p esen a als capí ols 11 i 12. Pe acaba , es poden oba les conside acions inals al capí ol 13 i les conclusions al capí ol 14. Desen olupamen d’una aplicació web pe a una ONG - 6 - 4 Plani icació i es udi econòmic 4.1 Plani icació To segui , es p esen en les plani icacions inicial i inal de o ma conjun a, o i que s’han eali za pe sepa a (una al p incipi del p ojec e i l’al a en acaba -lo), pe al de pode con as a les di e ències en e les dues. En un p incipi, la idea e a comença el desen olupamen del p ojec e en un quad imes e i alesho es, a mesu a que anés aga an o ma, ma icula -lo pe al de p esen a -lo en el quad imes e següen ; és a di , du -lo a e me en el pe íode equi alen a un any acadèmic ja que pe mo ius labo als m’e a di ícil eali za -lo en un quad imes e. Malg a e la plani icació inicial, és di ícil segui -la al peu de la lle a i semp e hi po ha e con a emps que alla guin més del que s’espe a de e minades ases. A més, es udia i eballa al ma eix emps po compo a un ce isc pe inali za -ho o com s’ha planeja . Pe això no s’ha pogu compli els e minis ixa s i s’ha alla ga més dels 2 quad imes es espe a s degu a la dedicació i egula en el p ojec e. Tasca Es imació du ada (h) Du ada (h) Di e ència (h) Anàlisi de Reque imen s 20 40 20 Especi icació 40 80 40 Disseny de la base de dades 20 20 0 Disseny dels ac amen s 20 20 0 Implemen ació 100 160 60 P o es 20 20 0 Ce ca d'in o mació sob e CMS 20 30 10 Es udi de me ca CMS 20 30 10 Ce ca d’es udis compa a ius 20 30 10 Ce ca d’eines pe compa a CMS 20 30 10 Selecció i compa ació de CMS candida s 20 60 40 Ap enen a ge del CMS escolli 120 300 180 Disseny de les dades 20 40 20 Disseny de l’aplicació 20 40 20 Implemen ació 20 30 10 P o es 20 30 10 Compa ació de me odologies 20 30 10 Compa ació ca ac e ís iques no- uncionals 20 20 0 Conclusions 20 30 10 To al 580 1040 460 Com es po ap ecia a la aula, el nomb e eal d’ho es dedicades és cla amen supe io al que s’ha ia planeja . A pa de les pe i es a iacions que es poden Desen olupamen d’una aplicació web pe a una ONG - 13 - 5.1.1.2 Adminis ado (Admin) És l’usua i enca ega de ges iona el con ingu del ò um, con igu a les se es p opie a s i ges iona els usua is. A més, po du a e me les ma eixes accions que l’usua i No mal, pe ò en aques cas no es ind an en comp e les se es isions de i xes pe a ob eni el còmpu o al de isiona s ni ampoc es egis a an els seus accessos. Hi hau à un únic usua i d’aques ipus que, en p incipi, co espond à a un memb e de l’o gani zació clien . 5.1.1.3 In i a (Gues ) Es po compa a el compo amen de l’usua i In i a al d’un obse ado ja que en accedi a l’aplicació pod à isi a qualse ol secció, llis a documen s, desca ega -los i isuali za -ne les i xes pe ò en cap cas pod à puja -ne, deixa comen a is o penja no ícies. En quan a la zona d’adminis ació, an sols pod à llegi la in o mació del egis e, és a di , els accessos de cada usua i. No pod à c ea , esbo a o modi ica usua is, dona d’al a o de baixa seccions ni ca ego ies. Pel que a al isiona de i xes i al egis e dels accessos al ò um, es p ocedi à igual que en l’usua i Adminis ado . D’a a en enda an , es e e i à als usua is esmen a s com No mal, Admin i Gues . Desen olupamen d’una aplicació web pe a una ONG - 14 - 6 Reque imen s de alla s 6.1 Reque imen s Funcionals Tenin en comp e la desc ipció de l’apa a an e io , s’ob enen les següen s necessi a s: 6.1.1 Es uc u a L’aplicació ha de eque i a l’usua i el seu nom d’usua i i con asenya pe accedi a l’aplicació, isuali za el con ingu i e ús de o es les se es uncionali a s. L’aplicació ha de conside a com a mínim 3 ols d’usua i di e en s: • No mal: amb accés de lec u a i esc ip u a en de e mina s con ingu s. • Adminis ado : amb accés o al al con ingu , an de lec u a com esc ip u a. • In i a : amb accés o al de lec u a i es ingi o nul d’esc ip u a. L’aplicació ha de disposa , com a mínim, d’un menú pe accedi a les pàgines i seccions que la o men. A més ha d’in eg a un elemen pe accedi a l’à ea d’adminis ació i un al e que pe me i anca les sessions als usua is. Hi ha d’ha e una pàgina que con ingui in o mació gene al pe als usua is, de la qual pengin di e en s pàgines amb in o mació sob e l’aplicació. L’aplicació s’ha d’es uc u a en un nomb e conc e de seccions, on cadascuna ind à el seu llis a de documen s i no ícies. 6.1.1.1 Seccions Una secció es po oba ac i ada o bé desac i ada. Si una secció es à desac i ada, no s’ha de pode eali za cap acció en ella i s’ha d’indica que es oba desac i ada. Inicialmen , en una secció ac i ada s’han de mos a un màxim de 5 documen s i 10 no ícies. L’aplicació ha de pe me e a l’usua i llis a o s els documen s i no ícies. Cada secció ac i ada ha d’o e i la possibili a als usua is de penja no es no ícies i puja nous documen s. Desen olupamen d’una aplicació web pe a una ONG - 15 - 6.1.1.2 No ícies Pe al de penja una no ícia a una secció, l’aplicació ha de demana el í ol i el cos d’aques a. L’aplicació no ha de pe me e puja no ícies sense cos, pe ò en can i, sí que po pe me e penja -ne sense í ol. Pe cada no ícia penjada s’ha de mos a el í ol, el cos, la da a i ho a quan a se penjada i el nom d’usua i de la pe sona que l’ha penjada. A pa , si l’usua i és adminis ado s’han de mos a les opcions pe al de modi ica (edi a o esbo a ) la no ícia. Quan aques usua i edi i la no ícia, l’aplicació ha de pe me e modi ica an el í ol com el cos d’aques a. 6.1.1.3 Documen s Quan un usua i demani puja un documen a una secció, l’aplicació ha de eque i , a més dels i xe s en sí, el í ol, l’au o , la da a de c eació/publicació del documen , la secció on s’ha de puja , la ca ego ia i la subca ego ia. Pel que a a aques s dos úl ims a ibu s, s’u ili za an pe a la classi icació dels documen s i l’aplicació ha d’o e i una llis a amb di e en s opcions a escolli . A la llis a de documen s d’una secció s’ha de isuali za la da a de publicació/c eació del documen , el í ol, l’au o , el momen en què a se puja a l’aplicació, la ca ego ia i la subca ego ia, el nomb e de comen a is i les egades que s’ha isi a la i xa del documen . La llis a de documen s s’ha d’o dena pe de ec e segons la da a de publicació/c eació, del més al menys ecen , i l’aplicació ha de dona la possibili a a l’usua i d’elegi el c i e i d’o denació, el qual po se qualse ol dels a ibu s que es mos en a la llis a. A més, pe cada documen que es igui a la llis a, l’a ibu í ol de cada documen ha de pe me e accedi a la i xa d’aques . La i xa del documen ha d’es a o mada pe la llis a d’a ibu s que a in odui p è iamen l’usua i en puja -lo; és a di , s’han de isuali za el í ol, l’au o , la da a de c eació/publicació, la secció on es à penja , la ca ego ia, la subca ego ia, i la llis a de i xe s d’aques documen , cadascun dels quals ha de pe me e als usua is la se a isuali zació i descà ega. A més, la i xa ha d’indica quin usua i ha puja el Desen olupamen d’una aplicació web pe a una ONG - 16 - documen i la da a i ho a en què es a e . A pa , si l’usua i és adminis ado , s’han de mos a les opcions pe al de modi ica les dades e e en s al documen . L’adminis ado ha de pode edi a el í ol, l’au o , la da a de c eació/publicació, la secció on es oba, la ca ego ia, la subca ego ia i l’usua i que a puja el documen a l’aplicació. També ha de eni la possibili a d’esbo a el documen de l’aplicació. En aques cas, s’esbo a à de l’aplicació el documen , els seus comen a is, i els i xe s que li co esponen. D’al a banda, la i xa ha de con eni , a con inuació dels a ibu s del documen , una llis a amb un màxim de 10 comen a is o dena s c onològicamen del més al menys ecen i ha de pe me e isuali za o s els que s’han deixa sob e el documen . A més, cada i xa ha d’o e i la possibili a de deixa -ne de nous. 6.1.1.4 Comen a is Pe al de deixa un comen a i a un documen , l’aplicació ha de demana el ex d’aques . L’aplicació no ha de pe me e deixa comen a is bui s. Pe cada comen a i, s’ha de mos a l’usua i que l’ha deixa , la da a i ho a en què s’ha esc i i el ex d’aques . Si l’usua i és adminis ado , l’aplicació ha de pe me e modi ica -lo (edi a -lo o esbo a -lo). Quan l’usua i edi i el comen a i an sols ha de pode modi ica el ex , i l’aplicació no ha de pe me e cap comen a i que es igui bui . 6.1.2 Adminis ació L’à ea d’adminis ació només ha de se accessible pe als usua is de ipus Admin. Aques a ha de pe me e ges iona els usua is, les o gani zacions, les seccions, els documen s, les ca ego ies i les subca ego ies; i ambé ha de pe me e llis a quins usua is han en a a l’aplicació i el momen en què s’ha p oduï aques accés. Les accions que es de allen a con inuació es duen a e me únicamen des de l’à ea d’adminis ació i pe l’usua i adminis ado , a no se que s’especi iqui el con a i. 6.1.2.1 Usua is L’aplicació ha de pe me e c ea usua is, modi ica -los i esbo a -los. Quan es c eï un nou usua i, l’aplicació ha de eque i el nom, els cognoms, l’email, un email al e na iu, el ipus d’usua i, l’es a (ac i a /desac i a ), l’idioma, el ac e (com cal ad eça -s’hi; pe exemple: Doc o ), i l’o gani zació a la que pe any. L’aplicació ha Desen olupamen d’una aplicació web pe a una ONG - 17 - d’assigna un con asenya gene ada au omà icamen en c ea un nou usua i. Dins del p océs d’al a d’un usua i, l’aplicació ha de dona la possibili a d’en ia un co eu elec ònic a les ad eces in oduïdes p è iamen (als camps email i email al e na iu) no i ican que s’ha c ea un comp e i acili an l’ad eça URL pe accedi a l’aplicació, el nom d’usua i i la con asenya. Cal eni en comp e les següen s p emisses: • El nom d’usua i (necessa i pe accedi a l’aplicació) que s’assigna ha de se , pe no ma gene al, l’email de l’usua i. • Pe a l’a ibu idioma, l’aplicació ha de dona les següen s possibili a s: anglès, ancès, espanyol i ca alà. • Pe a l’a ibu ipus d’usua i, l’aplicació ha d’o e i les següen s possibili a s: adminis ado , in i a i no mal. • L’email al e na iu i el ac e no han de se obliga o is, poden deixa -se bui s, a di e ència de la es a d’a ibu s. Quan s’edi i un usua i es pod an modi ica o s els seus camps, és a di , el nom, els cognoms, l’email, un email al e na iu, el ipus d’usua i, l’es a , l’idioma, el ac e, i l’o gani zació a la que pe any. També se li ha de pode assigna una no a con asenya. A banda, qualse ol usua i (sigui del ipus que sigui) ha de eni la possibili a de modi ica la se a con asenya el p ime cop que en i a l’aplicació, ex e namen a l’à ea d’adminis ació. Quan s’esbo a un usua i s’han de conse a o s els documen s, comen a is i no ícies que ha puja o esc i du an el seu pe íode d’ac i i a . 6.1.2.2 O gani zacions L’aplicació ha de pe me e l’al a, la baixa i la modi icació d’o gani zacions. Pe dona d’al a una o gani zació l’aplicació eque i à el nom i el ipus d’o gani zació. En aques úl im cas, l’aplicació dona à a escolli en e les següen s opcions: O ganiza ions, S a es i O he s. Desen olupamen d’una aplicació web pe a una ONG - 18 - L’aplicació pe me à edi a o s dos a ibu s quan l’usua i modi iqui una o gani zació. Respec e a la baixa d’o gani zacions, només pe me à esbo a aquelles que no es iguin associades a cap usua i. 6.1.2.3 Seccions En p incipi, hi ha un nomb e conc e de seccions i pe això, de ca a a l’adminis ació, només es con emplen les opcions d’ac i ació i desac i ació de seccions. No es enen en comp e les accions d’al a i baixa o i que des d’un pun de is a de comple esa s’hau ien de eni en comp e. Respec e a la modi icació d’a ibu s, es pod à edi a el nom de les seccions. 6.1.2.4 Documen s Pel que a a documen s, s’han desc i an e io men les accions d’al a, baixa i modi icació. Respec e a l’à ea d’adminis ació, l’aplicació ha de pe me e llis a o s els documen s que s’han puja . En aques a llis a ha de cons a com a mínim el í ol del documen , el qual ha de pe me e accedi a la se a i xa pe al de modi ica -lo, deixa comen a is o esbo a -lo. A pa , s’ha de pode eali za la baixa de múl iples documen s simul àniamen . 6.1.2.5 Ca ego ies / Subca ego ies S’ag upen en un ma eix apa a ca ego ies i subca ego ies pe la se a analogia, o i que s’han de ges iona de mane a independen . A con inuació, quan es aci e e ència a ca ego ies, se à àlid ambé pe a subca ego ies. L’aplicació ha de dona la possibili a de c ea ca ego ies, isuali za les exis en s, modi ica -les i esbo a -les. Quan es ulgui c ea una no a ca ego ia, l’aplicació eque i à únicamen el nom, i l’usua i adminis ado l’ha de pode edi a en o momen . Pel que a a la baixa de ca ego ies, només es pe me à esbo a aquelles que no es iguin associades a cap documen . 6.1.2.6 Llis a s L’à ea d’adminis ació ha de pe me e llis a , a mode in o ma iu, quins han es a els úl ims accessos dels usua is a l’aplicació. El llis a ha de con eni el nom i els cognoms de l’usua i, el nom d’usua i i la da a i ho a de l’úl im accés, en cas que exis eixi. El llis a ha d’es a o dena segons la da a i ho a de l’úl im accés de o ma Desen olupamen d’una aplicació web pe a una ONG - 19 - descenden . En aques cas, l’usua i Gues ambé pod à isuali za el llis a d’accessos. 6.2 Reque imen s No Funcionals A di e ència dels eque imen s uncionals (els quals desc iuen les accions que ha de eali za el so wa e, el p ocessos d’en ada i so ida de dades, e c.), els eque imen s no uncionals de ineixen les quali a s que ha de compli l’aplicació en eali za la se a unció. Pe al d’a alua -los en p o undi a , s’aga a com a base l’es ànda d ISO/IEC 9126-1 [i] , el qual pe me a alua la quali a del so wa e. A banda, s’u ili za l’ex ensió NT- ISO/IEC 9126 [ii] de l’es ànda d esmen a pe al de pode a alua aspec es no ècnics, com a a, la essan econòmica del so wa e usa . To segui , es desc iuen els eque imen s no uncionals de l’aplicació ag upa s segons les ca ac e ís iques que de ineix l’es ànda d esmen a . 6.2.1 Segu e a Capaci a del p oduc e so wa e pe p o egi la in o mació i les dades de mane a que les pe sones o sis emes no au o i za s no les puguin llegi ni modi ica , al ma eix emps que no es denega l’accés a pe sones ni sis emes au o i za s. - L’aplicació ha de eballa sob e el p o ocol HTTPS (HTTP segu ), ja que es ac a d’un ò um p i a que necessi a l’in e can i segu de i xe s. - L’aplicació ha d’u ili za con asenyes pe al d’iden i ica i au en i ica els usua is. - L’aplicació ha d’emmaga zema xi ades 1 les con asenyes de o s els usua is de l’aplicació. 6.2.2 Fiabili a Capaci a del p oduc e so wa e de man eni el ni ell de p es ació so a condicions es able es du an un pe íode de emps es able . (madu esa, ecupe abili a ). - L’aplicació ha d’es a disponible en o momen als dominis able o dialogue.ne i 1 Xi a : Man eni ocul pe mi jà d’alguna ècnica de c ip og a ia, pe exemple, MD5 Desen olupamen d’una aplicació web pe a una ONG - 20 - able o dialogue.o g, pe què són els dos dominis que des ina al clien pe hos a ja l’aplicació. - S’ha de eali za una còpia de segu e a de l’aplicació dià iamen , de mane a que en cas de baixa del sis ema es pugui es au a la del dia an e io . 6.2.3 Usabili a Capaci a del p oduc e so wa e pe se en ès, ap ès, usa i se a ac iu pe als usua is inals, quan s’u ili za so a condicions conc e es. - La in e ície g à ica d’usua i ha de se desen olupada en anglès, ja que és l’idioma que dominen o s els usua is de l’aplicació. - L’aplicació ha de se àcil d’u ili za i el més in uï i a possible, pe què es ac a d’usua is, en la se a majo ia, no expe s. - L’aplicació ha de disposa d’eines que pe me in adminis a els con ingu s, els usua is i l’apa ença de la o ma més senzilla possible. - L’aplicació hau à de espec a , semp e que sigui possible, els es ànda ds web es able s pel W3C espec e a accessibili a , in e nacionali zació i independència de disposi ius. 6.2.4 E iciència Capaci a del p oduc e so wa e pe p opo ciona p es acions adequades, ela i es a la quan i a de ecu sos usa s, so a condicions de e minades. - El emps de espos a de l’aplicació ha de se accep able ja que no mou g ans quan i a s d’in o mació ni espe a g an concu ència d’usua is. Habi ualmen [iii] s’espe a una espos a d’un màxim de 2 segons. Excepcionalmen , es ixa una espos a màxima de 8 segons. 6.2.5 Man enibili a Conjun d’a ibu s elaciona s amb la acili a d’es end e, modi ica o co egi e o s en un p oduc e so wa e (anàlisi, can i, p o es). - L’especi icació s’ha de eali za en llengua ge UML, pe imposició del desen olupado pel e que es ac a d’un llengua ge es ànda d que acili a la Desen olupamen d’una aplicació web pe a una ONG - 21 - comp ensió i l’ex ensió. - L’aplicació ha de eballa semp e amb e sions es ables del so wa e. Les e sions no es ables queden es ingides a aplicacions en p o es. 6.2.6 Po abili a Capaci a d’un p oduc e so wa e pe se ans e i d’una pla a o ma a una al a. (ins al·lació, eemplaçamen , adap abili a ). - L’aplicació ha de isuali za -se co ec amen , com a mínim, en els següen s na egado s: In e ne Explo e ( e sions 6 i 7) i Mozilla Fi e ox ( e sions 2 i 3), ja que són els més u ili za s en e els usua is [i ] . - L’aplicació ha de desen olupa -se sob e un se ido Apache, s’ha de p og ama en PHP5 i ha d’u ili za MySQL com a sis ema ges o de bases de dades. - La base de dades de l’aplicació ha de pode adminis a -se amb eines especí iques pe a bases de dades, com a a PHPMyAdmin. - Només es pe me à puja documen s a l’aplicació en o ma PDF, pel e que és un o ma es ànda d i de lliu e accés. 6.2.7 Negoci Ca ac e ís iques del con ac e en e el p o eïdo i el clien que poden in lui en la quali a del so wa e. - Cos os de llicència: El so wa e u ili za pe al desen olupamen i ges ió de l’aplicació ha de se g a uï . Desen olupamen d’una aplicació web pe a una ONG - 22 - 7 Especi icació En aques capí ol es p esen en els diag ames de casos d’ús p opis de cada usua i i seguidamen es a la desc ipció d’aques s d’aco d amb els eque imen s uncionals explica s en el capí ol 6. Reque imen s de alla s. Pe acaba , es p esen a el diag ama de classes, amb i sense a ibu s. 7.1 Diag ames de casos d’ús 7.1.1 Usua i No mal L’usua i No mal é assigna s els següen casos d’ús: Desen olupamen d’una aplicació web pe a una ONG - 29 - 7.2.2.4 Gene a una con asenya pe a un usua i En ades id_usua i:in , no i ica :bool So ides Re o na ce si no es dóna cap e o . Semàn ica Gene a una con asenya de o ma alea ò ia pe a l’usua i iden i ica pe id_usua i. Flux d’in e acció Usua i Sis ema Selecciona l’opció de gene a una no a con asenya pe a l’usua i id_usua i. Assigna una no a con asenya gene ada alea ò iamen a l’usua i iden i ica pe id_usua i i es gua da a la base de dades. Finalmen , li en ia un email no i ican -li el can i. Cu sos al e na ius Si l’usua i desma ca la casella de no i icació, no se li en ia cap email. 7.2.2.5 Can ia la con asenya En ades new_pass:S ing, epea ed_pass:S ing So ides Re o na ce si no es dóna cap e o . Semàn ica Can ia la con asenya de l’usua i que es à u ili zan l’aplicació pe una que ell in odueix. Flux d’in e acció Usua i Sis ema In odueix la no a con asenya dues egades de o ma sepa ada. Si coincideixen, s’emmaga zema la no a con asenya i se li demana a l’usua i que o ni a en a a l’aplicació. Cu sos al e na ius Si no coincideixen les con asenyes new_pass i epea ed_pass, no es can ia la con asenya i es no i ica l’e o a l’usua i. 7.2.3 Casos d’ús de secció El ò um s’o gani za, en p incipi, en un nomb e ix de seccions, on cadascuna é els seus p opis documen s i no ícies. Una secció po es a ac i ada o desac i ada. Els usua is an sols poden puja documen s i penja no ícies en aquelles seccions que es obin ac i ades. D’aco d amb l’an e io pa àg a , els casos d’ús que es poden du a e me són: llis a els documen s i no ícies de les seccions, ac i a /desac i a seccions, modi ica -ne la in o mació, puja documen s i penja no ícies (aques es dues úl imes explicades en els apa a s 7.2.4.1 i 7.2.5.1, espec i amen ). Desen olupamen d’una aplicació web pe a una ONG - 30 - 7.2.3.1 Llis a una secció Esquema ípic d’una secció En ades id_seccio:in So ides No n’hi ha. Semàn ica Llis a els documen s i les no ícies de la secció iden i icada pe id_seccio. Flux d’in e acció Usua i Sis ema Escull la secció que desi ja llis a del menú p incipal. Mos a una llis a dels cinc documen s més ecen s (amb els seus a ibu s p opis: í ol, au o , da a, ca ego ia, e sions, e c.), a con inuació una llis a de les deu úl imes no ícies de la secció escollida, i inalmen una zona on pode in odui - ne de no es. Cu sos al e na ius En cas que no hi hagi documen s pe la secció escollida, es no i ica a l’usua i al si uació. Menú p incipal que con é cadascuna de les seccions Llis a dels documen s d’una secció Llis a de les no ícies d’una secció Zona pe in odui no ícies a la secció Menú d’accions de l’usua i Desen olupamen d’una aplicació web pe a una ONG - 31 - 7.2.3.2 Ac i ació de seccions En ades id_seccio:in So ides Re o na ce si s’ha ac i a sense p oblemes. Semàn ica Ac i a la secció iden i icada pe id_seccio. Flux d’in e acció Usua i Sis ema Escull la secció que desi ja ac i a i con i ma. Ac i a la secció escollida pe l’usua i. Cu sos al e na ius Si l’usua i no con i ma, es cancel·la l’acció. 7.2.3.3 Desac i ació de seccions En ades id_seccio:in So ides Re o na ce si s’ha desac i a sense p oblemes. Semàn ica Desac i a la secció iden i icada pe id_seccio. Flux d’in e acció Usua i Sis ema Escull la secció que desi ja desac i a i con i ma. El sis ema desac i a la secció escollida pe l’usua i. Cu sos al e na ius Es cancel·la l’acció si l’usua i no con i ma. Desen olupamen d’una aplicació web pe a una ONG - 32 - 7.2.3.4 Modi icació de seccions En ades id_seccio:in , nom_seccio:S ing So ides Re o na ce si s’ha modi ica sense p oblemes. Semàn ica Can ia el nom de la secció iden i icada pe id_seccio. Flux d’in e acció Usua i Sis ema Escull la secció que ol modi ica . Llis a els a ibu s p opis d’una secció i pe me edi a -los. Reali za els can is i escull l’opció de gua da -los del menú d’opcions. Emmaga zema els can is eali za s sob e la secció a la base de dades. Cu sos al e na ius Si les dades in oduïdes no són àlides, el sis ema no i ica el p oblema i no s’ac uali zen les dades. 7.2.4 Casos d’ús de documen Tal com s’ha explica an e io men els usua is poden puja documen s a les seccions del ò um. En e -ho es eque eix, a més del/s documen /s en sí, una sè ie de dades que l’iden i iquen, les quals són emmaga zemades a la base de dades de l’aplicació. Pos e io men , quan l’usua i ho demana, aques es dades són p esen ades a l’usua i en una i xa, on hi ha la possibili a de deixa -hi comen a is, isuali za i desca ega el/s documen /s. D’al a banda, l’usua i adminis ado duu la ges ió de documen s, de mane a que po modi ica -los i dona -los de baixa, és a di , esbo a -los del ò um. Desen olupamen d’una aplicació web pe a una ONG - 33 - 7.2.4.1 Puja documen s a una secció Esquema de la pan alla pe puja un documen En ades id_seccio:in , i ol_doc:S ing, au o _doc:S ing, da a_doc:Da e, ca ego ia:in , subca ego ia:in , i xe s[]:File So ides Re o na ce si ha pogu puja els i xe s al se ido i no s’ha dona cap e o . Semàn ica En egis a un nou documen amb les dades d’en ada i l’associa amb la secció iden i icada pe id_seccio. Puja els i xe s al se ido en el di ec o i co esponen . Flux d’in e acció Usua i Sis ema Omple els camps eque i s pe un documen ( í ol, au o , da a, secció on s’ha de llis a , ca ego ia, subca ego ia i els i xe s amb les di e en s e sions) i escull les e sions del documen a puja . Si les dades són àlides, es gua da el documen a la base de dades i s’emmaga zemen les di e en s e sions del documen al se ido . Cu sos al e na ius Si les dades in oduïdes no són àlides, el sis ema no gua da el documen i no emmaga zema les di e en s e sions d’aques . No i ica a l’usua i quines dades cal co egi . (zona pe imp imi no i icacions) Menú p incipal que con é cadascuna de les seccions Zona on es demanen els camps pe c ea la i xa del documen Zona on se seleccionen els i xe s amb les di e en s e sions del documen Menú d’accions de l’usua i Desen olupamen d’una aplicació web pe a una ONG - 34 - 7.2.4.2 Veu e la i xa d’un documen Esquema de la i xa d’un documen En ades id_documen :in So ides Re o na ce si el documen exis eix. En cas con a i, ope ació in àlida i es no i ica l’e o a l’usua i. Semàn ica Visuali za els a ibu s del documen iden i ica pe id_documen i els comen a is elaciona s. Flux d’in e acció Usua i Sis ema Escull el documen que ol consul a de la llis a de documen s d’una secció de e minada. Mos a les dades p òpies d’un documen ( í ol, au o , da a de publicació, secció on es à penja , ca ego ia, subca ego ia, e c.). Llis a els comen a is que han deixa els usua is sob e aques documen , en cas que n’hi hagi. S’inc emen a el nomb e de isi es a la i xa del documen . Cu sos al e na ius Si l’usua i és admin, pod à edi a la i xa i els comen a is del documen . Si l’usua i és admin o gues , no s’inc emen a el nomb e de isi es a la i xa del documen . Menú p incipal que con é cadascuna de les seccions Llis a dels a ibu s p opis del documen i les e sions de què disposa Llis a dels comen a is sob e el documen Zona pe in odui comen a is sob e documen Menú d’accions de l’usua i Menú d’opcions de la i xa del documen Desen olupamen d’una aplicació web pe a una ONG - 35 - 7.2.4.3 Visuali za /Desca ega un documen En ades i xe :URL So ides Re o na ce si el i xe exis eix. En cas con a i, ope ació in àlida i es no i ica l’e o a l’usua i. Semàn ica Desca ega el i xe emmaga zema a al se ido a pa i de la se a URL. Flux d’in e acció Usua i Sis ema Escull el documen que ol isuali za , ja sigui a la llis a de documen s d’una secció o bé a la i xa del p opi documen . Pe me la isuali zació o la descà ega del documen . Cu sos al e na ius No n’hi ha. 7.2.4.4 Baixa de documen s En ades id_documen :in So ides Re o na ce si no es dóna cap e o . Semàn ica Esbo a el documen iden i ica pe id_documen , els comen a is i els i xe s associa s. Flux d’in e acció Usua i Sis ema Escull els documen s que ol esbo a de l’aplicació. Demana que l’adminis ado con i mi la baixa dels documen s selecciona s. Con i ma la baixa dels documen s selecciona s. Esbo a els documen s i els seus comen a is de la base de dades i les di e en s e sions que s’han puja al se ido . Cu sos al e na ius Si l’usua i no con i ma la baixa dels documen s, es cancel·la l’ope ació. Desen olupamen d’una aplicació web pe a una ONG - 36 - 7.2.4.5 Modi icació de documen s En ades id_documen :in , i ol_doc:S ing, au o _doc:S ing, da a_doc:Da e, id_seccio:in , ca ego ia:in , subca ego ia:in , uploade :in So ides Re o na ce si no es dóna cap e o . Semàn ica Modi ica els a ibu s del documen iden i ica pe id_documen . Flux d’in e acció Usua i Sis ema Escull l’opció d’edició del menú d’opcions de la i xa del documen . Llis a els a ibu s p opis del documen i pe me edi a -los. Reali za els can is i escull l’opció de gua da -los del menú d’opcions de la i xa. Emmaga zema els can is eali za s sob e el documen a la base de dades. Cu sos al e na ius Si les dades in oduïdes no són àlides, el sis ema no ac uali za les dades i no i ica el p oblema a l’usua i. Si l’usua i cancel·la l’ope ació, no s’emmaga zema cap dels can is eali za s. 7.2.5 Casos d’ús de no ícies Les no ícies són els comen a is que deixen els usua is en una secció. Pe al d’accedi als casos d’ús d’una no ícia s’ha de e des de la ma eixa secció on es oba. A a bé, com es eu à pos e io men , els casos d’ús de baixa i modi icació de no ícies són exclusius de l’usua i adminis ado . 7.2.5.1 Penja no ícies a una secció En ades id_seccio:in , new_ i le:S ing, new_ ex :S ing So ides Re o na ce si no és dona cap e o . Semàn ica En egis a una new amb els a ibu s de l’en ada i l’associa amb la secció iden i icada pe id_seccio. Flux d’in e acció Usua i Sis ema In odueix el í ol i el ex de la no ícia a la zona que s’ha des ina dins de la secció. Si les dades són àlides, gua da la no ícia a la base de dades. Cu sos al e na ius Si les dades in oduïdes no són àlides, el sis ema no gua da la no ícia i no i ica el p oblema a l’usua i. Desen olupamen d’una aplicació web pe a una ONG - 37 - 7.2.5.2 Baixa de no ícies En ades id_new:in So ides Re o na ce si s’ha esbo a sense p oblemes. Semàn ica Esbo a la new iden i icada pe id_new de la base de dades. Flux d’in e acció Usua i Sis ema Escull la no ícia que ol dona de baixa. Demana que l’adminis ado con i mi la baixa de la no ícia seleccionada. Con i ma la baixa de la no ícia seleccionada. Esbo a la no ícia de la base de dades. Cu sos al e na ius Si l’usua i no con i ma la baixa de la no ícia, es cancel·la l’ope ació. 7.2.5.3 Modi icació de no ícies En ades id_new:in , new_ i le:S ing, new_ ex :S ing So ides Re o na ce si s’ha modi ica sense p oblemes. Semàn ica Modi ica la new iden i icada pe id_new. Flux d’in e acció Usua i Sis ema Escull la no ícia que ol modi ica . Llis a els a ibu s p opis de la no ícia i pe me edi a -los. Reali za els can is i escull l’opció de gua da -los del menú d’opcions. Emmaga zema els can is eali za s sob e la no ícia a la base de dades. Cu sos al e na ius Si les dades in oduïdes no són àlides, el sis ema no ac uali za les dades i no i ica el p oblema a l’usua i. 7.2.6 Casos d’ús de comen a is Els comen a is uncionen de o ma anàloga a les no ícies, donada la na u alesa d’aques es úl imes. En aques cas, s’accedeix als casos d’ús dels comen a is a a és de la i xa del documen al qual an e e ència, i els casos d’ús de baixa i modi icació ambé es an es ingides a l’usua i adminis ado . Desen olupamen d’una aplicació web pe a una ONG - 38 - 7.2.6.1 Deixa un comen a i a la i xa d’un documen En ades id_documen :in , ex _comen a i:S ing So ides Re o na ce si no s’ha dona cap e o . Semàn ica En egis a un comen a i amb les dades donades i l’associa amb el documen iden i ica pe id_documen . Flux d’in e acció Usua i Sis ema In odueix el ex del comen a i a la zona que s’ha des ina dins de la i xa del documen . Si les dades són àlides, gua da el comen a i a la base de dades. Cu sos al e na ius Si les dades in oduïdes no són àlides, el sis ema no gua da el comen a i i no i ica el p oblema a l’usua i. 7.2.6.2 Baixa de comen a is En ades id_comen a i:in So ides Re o na ce si s’ha esbo a sense p oblemes. Semàn ica Esbo a el comen a i iden i ica pe id_comen a i. Flux d’in e acció Usua i Sis ema Escull el comen a i que ol dona de baixa. Demana que con i mi la baixa del comen a i selecciona . Con i ma la baixa del comen a i selecciona . Esbo a el comen a i de la base de dades. Cu sos al e na ius Si l’usua i no con i ma la baixa del comen a i, es cancel·la l’ope ació. Desen olupamen d’una aplicació web pe a una ONG - 45 - 7.3.2 Diag ama de classes sense a ibu s 7.3.3 Diag ama de classes amb a ibu s Desen olupamen d’una aplicació web pe a una ONG - 46 - 8 Disseny i implemen ació de l’aplicació en la me odologia adicional 8.1 A qui ec u a i pla a o ma L’aplicació u ili za una a qui ec u a Clien /Se ido [ ] , de mane a que el clien , a a és del seu na egado pe sonal, eali za pe icions a una màquina emo a (el se ido ) que s’enca ega de p ocessa -les i e o na una espos a al clien . No obs an , no s’ha op a ni pe un disseny o ien a a objec es [ i] ni pe una dis ibució en capes [ ii] malg a que ambdues ècniques suposen mol s a an a ges espec e a la independència de les dades i l’ex ensibili a de l’aplicació. Sinó que s’ha p og ama l’aplicació seguin la me odologia habi ual de eball de l’ONG, és a di , en una a qui ec u a monolí ica [ iii] de la banda del se ido , el qual con ola l’en ada/so ida de dades, el p ocessamen d’aques es, la ges ió d’e o s i decideix, en ce a mane a, la in e ície d’usua i 2 . Esquema d’in e acció de l’a qui ec u a Clien /Se ido Així doncs, a la banda del se ido s’u ili za Apache com a se ido d’aplicacions (pe eque imen s no- uncionals de l’aplicació), el qual supo a PHP, el llengua ge amb el qual es p og ama l’aplicació ( ambé pe eque imen s no- uncionals de l’aplicació). 2 És e iden doncs, que aques a ècnica gene a un al ni ell d’acoblamen , el qual no és ecomanable de ca a a la man enibili a i ex ensibili a de l’aplicació, com es pod à eu e als capí ols 11 i 12 d’aques a memò ia. Desen olupamen d’una aplicació web pe a una ONG - 47 - A més, PHP pe me la connexió amb di e en s sis emes ges o s de bases de dades (SGBD). En aques cas s’u ili za MySQL (pe eque imen s no- uncionals de l’aplicació), un SGBD mul i- il i mul i-usua i mol u ili za en aplicacions web, p incipalmen pe la se a eloci a . Aques llengua ge de p og amació és in e p e a , com al es llengua ges de la ma eixa na u alesa 3 , de mane a que el se ido in e p e a o es les en ades (les pe icions del clien i els esul a s ob ingu s de les consul es a les bases de dades), les p ocessa i p esen a la so ida al clien . 8.2 Disseny de la base de dades El disseny de la base de dades é com a pun de pa ida el disseny concep ual, p esen a en aques a memò ia al capí ol 7.3 Diag ama de classes. A a bé, es eque eix un pas p e i abans de ans o ma el disseny concep ual en un disseny lògic. Aques és el p océs de no mali zació que es p esen a o segui . Les egles de no mali zació que s’apliquen són les següen s: • Es ans o ma l’associació e nà ia en e Pa icipan – Secció Ac i a – Da aHo a de la qual esul a la classe associa i a Documen . En conseqüència, s’a egeix la es icció ex ual: “No hi po ha e dos documen s amb els ma eixos Pa icipan , Secció Ac i a i Da a Ho a”. 3 Pe exemple, Py hon i Pe l. Desen olupamen d’una aplicació web pe a una ONG - 48 - • Aques a ma eix associació e nà ia (Pa icipan – Secció Ac i a – Da aHo a) ambé dóna lloc a la classe associa i a New. I pe an , cald à a egi la es icció ex ual: “No hi po ha e dues news amb els ma eixos Pa icipan , Secció Ac i a i Da aHo a”. • Es ans o ma l’associació e nà ia en e Pa icipan – Documen – Da aHo a de la qual s’esde é la classe associa i a Commen . En aques cas, la es icció ex ual que s’ha d’a egi és: “No hi po ha e dos commen s amb els ma eixos Pa icipan , Documen i Da aHo a”. • Es ma e iali za l’a ibu de i a “Views” de la classe Documen dins d’aques a ma eixa classe. Desen olupamen d’una aplicació web pe a una ONG - 49 - D’aco d amb el p océs de no mali zació desc i , el diag ama de classes co esponen al model concep ual queda com es mos a: Diag ama de classes no mali za A més, cal a egi les es iccions següen s: Res iccions d’in eg i a ex ual: No hi po ha e dos documen s amb els ma eixos Pa icipan , Secció Ac i a i Da a Ho a. No hi po ha e dues news amb els ma eixos Pa icipan , Secció Ac i a i Da aHo a. No hi po ha e dos commen s amb els ma eixos Pa icipan , Documen i Da aHo a. In o mació de i ada: Views con é el nomb e de isi es del documen pe pa d’usua is de ipus No mal. Pe a comple a la aducció al model elacional s’han de du a e me les ans o macions següen s basan -se en el model ob ingu desp és de no mali za : En p incipi, es c ea una elació ( aula a la base de dades) di e en pe cada classe. No obs an , s’elimina la supe classe Pa icipan , pel e que és una classe amb Desen olupamen d’una aplicació web pe a una ONG - 50 - l’objec iu de simpli ica l’esquema concep ual i no pe any al domini de l’aplicació. També s’elimina la classe Da aHo a pe què és una classe que es à implíci a en l’SGBD (sis ema ges o de bases de dades). A més, s’a egeix a cada elació un a ibu de ipus en e que se à la clau p imà ia, necessà ia pe pode iden i ica cada elemen (o ins ància). Pel que a a les associacions, o es són binà ies. D’en ada no hi ha associacions ecu si es ni associa i es, ja que pe mi jà de la no mali zació s’han elimina les e nà ies/associa i es. A més, o es les associacions binà ies són de ipus un-a- mol s. Això ol di que en un ex em de l’associació la mul iplici a és 0..1 o 1, men e que a l’al e ex em és mol s (*, 0..*, 1..*). En aques cas, la ans o mació consis eix en a egi un a ibu a la classe que es oba a l’ex em ‘mol s’ que aci e e ència a la classe que es oba a l’ex em ‘un’, en al es pa aules, com a clau o ana. A més, cal eni en comp e que el alo d’aques a ibu no po se nul, ja que la mul iplici a és 1. Es p esen a un exemple pe eu e el p ocedimen explica . En aques exemple, la classe Ve sion, ind à un a ibu que pe me i iden i ica i e e encia el Documen . De mane a in o mal, conside an que {Doc} i {Ve } són, espec i amen , les claus p imà ies de Documen i Ve sion, esul a à així: Documen (Doc, ...) Ve sion (Ve , ..., Doc) on {Doc} e e encia Documen Respec e a les especiali zacions (de ipus i es a ), se segueix una es a ègia simila al mapeig pe clau o ana, de mane a que s’inclou un a ibu a la supe classe que pe me i iden i ica la subclasse i a la qual e e encia en cas que s’hagi con e i en classe del model elacional. Desen olupamen d’una aplicació web pe a una ONG - 51 - Així doncs, les especiali zacions es a es ans o men en un a ibu de ipus booleà en la se a supe classe co esponen , i les especiali zacions ipus, en un a ibu de ipus en e que a e e ència (ja que és clau o ana) a una ins ància d’una classe de e minada. Es po eu e en el següen exemple: T ans o mació de l’especiali zació de ipus de la classe Use Pel que a a les enume acions, es con e eixen cadascuna d’elles en una classe, on cada ins ància es à o mada pe un iden i icado i un a ibu , el qual co espon a un elemen de l’enume ació. Finalmen , desp és dels p ocessos de no mali zació i ans o mació desc i s, s’ob é el següen disseny de la base de dades elacional. No a: en cada elació, la clau p imà ia es oba en doble sub a lla . Les claus o anes, en sub a lla simple i es desc iu a con inuació a quina elació e e encien. Use s(id_use , use , passwo d, language, o m_add ess, name, su name, mail, mail2, o ganiza ion, ype, ac i e) On {language} e e encia Languages On { ype} e e encia Use _ ypes On {o ganiza ion} e e encia O ganiza ions Desen olupamen d’una aplicació web pe a una ONG - 52 - Use _ ypes(id, ype_name) Aques a classe co espon a la ans o mació de l’especiali zació pe ipus de la classe Use , com s’ha explica més amun . O ganiza ions(id_o g, o g_name, o g_ ype) On {o g_ ype} e e encia O g_ ypes Sec ions(id_sec, i le, sub i le, in o_da e, olde , sec ion_name, ac i e) News(id_news, da e_added, news_ ex , news_ i le, sec ion, uploade ) On {sec ion} e e encia Sec ions On {uploade } e e encia Use s Documen s(id_doc, doc_ i le, au ho , ca ego y, subca ego y, doc_da e, sec ion, uploade , ins an _added, public, iews) On {ca ego y} e e encia Ca ego ies On {subca ego y} e e encia Subca ego ies On {sec ion} e e encia Sec ions On {uploade } e e encia Use s Ve sions(id_doc, id_lang, ile, doc_ ype) On {id_doc} e e encia Documen s On {id_lang} e e encia Languages Al ma eix emps, les dos claus o anes an de claus p imà ies Commen s(id_commen , doc, commen e , da e_added, commen _ ex ) On {doc} e e encia Documen s On {commen e } e e encia Use s Regis y(id_ eg, id_use , ime_acces, ip_add ess, b owse ) On {id_use } e e encia Use s Desen olupamen d’una aplicació web pe a una ONG - 53 - Les classes següen s co esponen a les enume acions: O g_ ypes(id, ype_name) Languages(id_lang, language) Ca ego ies(id_ca , name_ca ) Subca ego ies(id_subca , name_subca ) Doc_ ypes (id, doc_ ype_name) Desen olupamen d’una aplicació web pe a una ONG - 54 - 8.3 Disseny dels ac amen s En aques a secció s’explica com es duu a e me la in e acció en e els di e en s elemen s de l’a qui ec u a, és a di , en e el clien i el se ido . Es desc iu ex ualmen i g à ica la mane a com el clien en ia les pe icions al se ido , com aques úl im ges iona l’en ada i la so ida de dades, el p ocessamen d’aques es, la ges ió d’e o s, e c. Es conside a que la mecànica de o es les uncionali a s és la ma eixa, i pe això s’han busca dos exemples su icien men ep esen a ius que incloguin o s els escena is possibles i on in e inguin o s els se eis del se ido u ili za s pe l’aplicació. Es p esen en a con inuació. 8.3.1 Exemple 1 :: Puja documen s a una secció En p ime lloc, el clien demana isuali za la pàgina upload.php a a és del seu na egado . El se ido ep la pe ició i llegeix el i xe upload.php del seu disc du . A con inuació execu a l’in è p e de PHP, el qual eali za di e en s pe icions al sis ema ges o de bases de dades pe cons ui la pàgina sol·lici ada (quines seccions es an ac i es i quines ca ego ies i subca ego ies hi ha disponibles) i e o na el esul a al na egado pe què el mos i al clien . Seguidamen , el clien omple els camps del o mula i (a a és del na egado ) i en ia les dades al se ido pe mi jà del mè ode POST p emen el bo ó ‘Upload’. En aques cas, l’in è p e de PHP comp o a que l’usua i ingui els pe misos su icien s pe a eali za l’acció que sol·lici a. Si no és així, no execu a cap acció i e o na un missa ge al clien no i ican -li l’e o . Del con a i, comp o a que les dades en iades a a és de POST són àlides pe execu a les accions sol·lici ades i que els i xe s s’han en ia co ec amen al se ido . Si les dades no són àlides, inali za l’execució i e o na un missa ge al clien no i ican -li l’e o . Al amen , l’in è p e de PHP en ia les o d es al sis ema ges o de bases de dades pe inse i un nou documen i les di e en s e sions a la base de dades de l’aplicació. A con inuació, emmaga zema pe manen men cadascun dels i xe s en ia s a a és del o mula i en el di ec o i co esponen , ja que es oba en en un di ec o i empo al du an l’execució del p og ama. Desen olupamen d’una aplicació web pe a una ONG - 61 - access_lis .php Llis a els úl ims accessos dels usua is edi _new.php Baixa de no ícies, Modi icació de no ícies edi _commen .php Baixa de comen a is, Modi icació de comen a is Alguns i xe s, pe ò, no enen cap cas d’ús assigna , com pe exemple, les pàgines amb in o mació pe als usua is (p esen a ion.php, documen s.php, pa icipan s.php, suppo .php, ubun u.php), algunes de les capçale es i el peu (head_login.php, head_ hin.php i oo .php). Pel que a a l’es uc u a de i xe s i di ec o is, s’ha decidi posa en p ime pla o s els i xe s p incipals (els que an e e ència a pàgines) i ag upa en di e en s di ec o is la es a de i xe s. Així doncs, queda de la següen mane a: css/ Con é les plan illes de con igu ació en CSS. docs/ El o men 3 di ec o is (doha_p ocess, 2n_mee ing, 3 d_mee ing), els quals emmaga zemen els i xe s que pugen els usua is en cada secció de l’aplicació. img/ Es oben les di e en s ima ges que s’u ili zen a l’aplicació. includes/ Hi ha i xe s que acos umen a o ma pa de les capçale es. pape s/ Emmaga zema una sè ie de documen s que han es a penja s pe l’adminis ado del lloc web, enllaça s des de les pàgines d’in o mació. Quan als i xe s del di ec o i includes/, es p esen en a con inuació pe l’o d e en què s’u ili zen al i xe head.php: inici_sessio.php Inicia les sessions dels usua is. connexio_bd.php Es ableix la connexió amb la bases de dades. global.php Con é la de inició de a iables que s’u ili zen a l’aplicació, algunes de les quals es llegeixen di ec amen de la BD. e o s.php Es de ineixen els codis i missa ges d’e o pe a o s els o mula is de l’aplicació check_se ings.php Comp o a si l’usua i p o é de la pàgina se ings.php, on l’usua i accedeix el p ime cop que en a a l’aplicació i ha decidi conse a la con asenya donada. Desen olupamen d’una aplicació web pe a una ONG - 62 - check_sessio.php Comp o a si l’usua i que ha inicia la sessió exis eix a la base de dades i s’ha au en ica co ec amen . uncions.php Inclou o es les uncions que s’u ili zen a l’aplicació. Pe al a banda, aques di ec o i ambé con é les classes class.phpmaile .php i class.sm p.php, les quals són necessà ies pe a pode c ea i en ia emails a a és de l’aplicació, com s’explica à més enda an . 8.4.3 Fo mula is El sis ema pe aconsegui la in e acció usua is-aplicació (en al es pa aules, pe què els usua is puguin en ia dades a l’aplicació) es duu a e me a a és de o mula is. Exis eixen dos mè odes pe a eali za l’en iamen de dades: GET i POST. < o m ac ion="edi _sec ion.php" me hod="pos "> Exemple de la capçale a d’un o mula i que u ili za el mè ode POST 8.4.3.1 Mè ode GET El mè ode GET passa els a ibu s del o mula i a a és de l’ad eça URL desp és del ca àc e “?“ i PHP els emmaga zema en la a iable supe global $_GET. Cal des aca que els a ibu s en ia s es en isibles a l’usua i, cosa que po p o oca , si s’u ili zen o mula is amb di e sos a ibu s (com és habi ual), ad eces URL lla gues i o ça inin el·ligibles. A pa , la u ili zació d’aques mè ode pod ia comp ome e la segu e a de les dades en iades, pel e que un usua i malin enciona po modi ica àcilmen les dades que s’en ien amb inali a s que di e eixen del p opi ús de l’aplicació. Pels mo ius esmen a s, s’in en a e i a l’ús del mè ode GET semp e que sigui possible. Tanma eix, po se una bona opció en aquelles ocasions en què es ac in dades poc elle an s, es passin poques dades i es iguin degudamen ac a s o s possibles alo s que po p end e. En aques sen i , i al com s’ha comen a an e io men , s’ha u ili za aques mè ode pe desen olupa alguns accions de les pàgines index.php i i xa.php. S’explica el seu uncionamen a pa i dels exemples següen s: /index.php?sec=1&alldocs=1 Desen olupamen d’una aplicació web pe a una ONG - 63 - Es passen els a ibu s sec=1 i alldocs=1. D’aco d amb això, es mos a à la secció núme o 1 i es llis a an o s els seus documen s a la pàgina ac ual. / i xa.php?doc=83&sec=1&allcommen s=1 La pàgina i xa.php ep els a ibu s doc=83, sec=1 i allcommen s=1; de mane a que es ca ega à la i xa del documen núme o 83 i es mos a an o s els comen a is que an e e ència a aques . D’al a banda, la inali a de l’a ibu sec és pe me e la c eació de links pe e o na a la secció on es oba a l’usua i. 8.4.3.2 Mè ode POST Aques al e mè ode, en can i, u ili za la a iable supe global $_POST i s’u ili za més comunamen ja que les a iables que es passen a a és d’un o mula i són en p incipi in isibles als usua is, o i que hi ha eines pe a in e cep a -les i llegi -les. Alesho es, és esponsabili a del p og amado que es aci co ec amen el ac amen de les a iables. Aques mè ode és el que s’ha u ili za en la majo ia de o mula is de l’aplicació, pe exemple, pe en a a l’aplicació (login), puja un documen , penja no ícies a les seccions, deixa un comen a i a un documen , can ia la con asenya, així com qualse ol o mula i u ili za a l’à ea d’adminis ació. Fo mula i pe edi a seccions, el qual u ili za el mè ode POST 8.4.3.3 Recepció i ús de les dades en iades A la capçale a dels o mula is s’especi ica, a pa del mè ode que s’u ili za, quina pàgina ecull les dades que s’en ien. Això s’aconsegueix pe mi jà de l’e ique a ac ion. A més, cal iden i ica cadascuna de les a iables del o mula i amb un nom pe al que siguin accessibles des de la pàgina des í, amb independència del mè ode que s’u ili zi pe en ia -les. Així pe exemple, el següen o mula i es à o ma pe 2 camps, new_ i le i new_ ex , Desen olupamen d’una aplicació web pe a una ONG - 64 - que se an en ia s pe POST a la pàgina index.php. < o m ac ion="index.php" me hod="pos "> <inpu name="new_ i le" ype=" ex " size="80" maxleng h="255" alue=""> < ex a ea name="new_ ex " cols="60" ows="6" maxleng h="255" alue=""> <inpu class="inpu s" ype="submi " name="add_new" alue="Pos "> </ o m> Si es ol accedi i assigna el alo d’aques s camps des de la pàgina index.php cald à e -ho de la següen mane a: $ i ol=$_POST["new_ i le"] Es p ocedi ia de mane a simila en cas que s’hagués u ili za el mè ode GET, subs i uin la a iable $_POST pe $_GET. 8.4.3.4 T ac amen de les dades i de ecció d’e o s S’ha de eni en comp e, que els o mula is poden se objec e de manipulacions amb p opòsi s malin enciona s amb la inali a que l’aplicació no uncioni co ec amen o eu e’n algun p o i , com es comen a a an e io men . Pe al d’e i a aques s p oblemes, les dades han de eb e un ac amen que ga an eixi que a iben en un o ma conc e i pode eballa co ec amen amb elles. Aques ac amen es eali za a la pàgina on s’en ien les dades, en e la capçale a i el cos de pàgina, abans d’imp imi el con ingu . D’aques a mane a, el esul a ob ingu en les comp o acions pe me à dis ingi a l’in è p e si ha de ca ega el con ingu sol·lici a (quan les dades en iades siguin co ec es) o imp imi un missa ge no i ican l’e o . De o ma gene al, cal comp o a que: • Els camps de ipus ex no es an bui s. A més cal elimina els espais bui s del p incipi i el inal del camp, i escapa els ca àc e s especials com “ i ‘. • Els camps de ipus da a no es an bui s, con enen dades numè iques i da es àlides. • En les llis es seleccionables, que l’elemen selecciona és una opció àlida. Desen olupamen d’una aplicació web pe a una ONG - 65 - • En els camps de ipus i xe , que s’ha adjun a un documen i és del ipus espe a . A més, cal e i a a acs conegu s [ix] com injeccions SQL i XSS (C oss-si e sc ip ing). El p ime a e e ència a la inse ció de codi SQL dins d’una consul a que s’ha d’execu a pe al de modi ica -ne el compo amen i execu a el codi maliciós a la base de dades. El segon consis eix, gene almen , en inse i codi HTML o Ja asc ip als o mula is pe al que es publiquin de o ma il·legal de e mina s con ingu s en una pàgina web. En qualse ol cas, aques s a acs es poden soluciona ac an opo unamen les dades en iades. Pel que a a les injeccions SQL, cal escapa els ca àc e s pe illosos (com “ i ‘) pe mi jà de la col·locació de con aba es ( ) al da an . Respec e als a acs XSS, pe e i a -los és necessa i elimina o el ex comp ès en e els ca àc e s “<” i “>” pe mi jà de uncions de PHP com s ip_ ags(). Si les dades no són àlides, l’aplicació no eali za cap acció, in en a econèixe l’e o i mos a a l’usua i un missa ge pe al que modi iqui aquelles dades que l’aplicació ma ca com in àlides. Pe codi ica i iden i ica els e o s s’u ili za la següen ècnica. P ime amen , s’iden i iquen o s els possibles e o s que po dona un o mula i i s’assigna a cadascun d’ells una po ència de 2 di e en (1, 2, 4, 8, 16, ...). El e que el nomb e d’e o sigui una po ència de 2 pe me codi ica di e sos e o s en una única a iable, ja que la iden i icació es a pe mi jà d’ope ado s bi a bi . En segon lloc, s’han de de ini els missa ges d’e o que cald à mos a si es donen i inalmen , comp o a els e o s que s’han p oduï i imp imi el missa ge d’e o co esponen . A con inuació es p esen a un exemple pe acili a la comp ensió. S’aga a un o mula i amb 2 camps de ex ( ex 1, ex 2) i 2 llis es seleccionables (llis a1, llis a2). Els possibles e o s són: Elemen E o Codi icació Tex 1 bui 1 Tex 2 bui 2 Llis a1 Elemen in àlid 4 Llis a2 Elemen in àlid 8 Desen olupamen d’una aplicació web pe a una ONG - 66 - El codi pe a comp o a si es p odueix algun e o és el següen : $e o =0; //inicialmen no hi ha cap e o i ($_POST[" ex 1"]==''){ $e o =$e o + 1; } i ($_POST[" ex 2"]==''){ $e o =$e o + 2; } i (!in_a ay($_POST["llis a1"], $ alo s_llis a1) { $e o =$e o + 4; } i (!in_a ay($_POST["llis a2"], $ alo s_llis a2)) { $e o =$e o + 8; } Es de ineixen els següen s missa ges d’e o : $e o s_possibles=a ay( 1 => 'Tex 1 bui ', 2 => 'Tex 2 bui ', 4 => 'Elemen llis a1 in àlid', 8 => 'Elemen llis a2 in àlid' ); Finalmen , es comp o en els e o s que s’han p oduï : i ($e o !=0){ o each($e o s_possibles as $num_e o => $ ex _e o ){ i ($num_e o &$e o ){ //imp imeix missa ge d'e o $ ex _e o } } } En el codi an e io , s’execu a un bucle que a cada ol a comp o a si es dóna un e o di e en . La comp o ació es eali za amb l’ope ació $num_e o &$e o , que u ili za l’ope ado bi a bi &. Aques e o na el p oduc e bi a bi dels dos ope ands; si el esul a és ze o no hi ha e o , en cas con a i hi ha e o i cal imp imi el missa ge co esponen . 8.4.3.5 En iamen de i xe s L’en iamen de i xe s és necessa i pe pode puja documen s a l’aplicació, cosa que es a a a és de la pàgina upload.php. S’implemen a a pa i del mè ode POST i Desen olupamen d’una aplicació web pe a una ONG - 67 - pe e -ho u ili za la a iable supe global $_FILES, la qual és un ec o que gua da el nom, el amany, el ipus i la u a on es gua da el i xe empo almen de la següen mane a: $_FILES['nom_ i xe ']['name'] $_FILES['nom_ i xe ']['size'] $_FILES['nom_ i xe '][' ype'] $_FILES['nom_ i xe '][' mp_name'] (subs i uin ‘nom_ i xe ’ pel nom del camp que s’u ili za al o mula i) A més, cal inclou e pa àme es al o mula i pe dis ingi que es pugen i xe s a a és d’ell (pe mi jà de enc ype="mul ipa / o m-da a"). < o m id=" o m_upload" enc ype="mul ipa / o m-da a" ac ion="upload.php?sec=<?echo $mysec;?>" me hod="pos "> I ambé cal indica el amany màxim (en by es) de l’a xiu a a és d’un inpu ocul que ha de po a el nom MAX_FILE_SIZE. <inpu ype="hidden" name="MAX_FILE_SIZE" alue="10000000"> To i això, el na egado po no espec a el màxim ixa i, en conseqüència, cal comp o a pos e io men que la a iable $_FILES[“ i xe ”][“size”] no supe a el alo es able . $max=10000000; i ($_FILES["doc_ ile"]["size"]<= $max){ //codi que s’execu a solamen si el amany //no supe a el màxim que s’ha es able p è iamen } Desp és de e el ac amen de dades co esponen , cal mou e el i xe , el qual es oba en un di ec o i empo al, al di ec o i de ini iu on es gua da à. El na egado ha de disposa dels pe misos necessa is pe pode llegi i esc iu e en de e mina s di ec o is del se ido . Pe al que sigui possible, s’ha decidi posa -lo com usua i p opie a i del di ec o i docs i de o s els seus subdi ec o is, a pa de disposa dels pe misos de lec u a i esc ip u a. $ chown –R www-da a:www-da a docs/ $ chmod –R 750 docs/ Desen olupamen d’una aplicació web pe a una ONG - 68 - Dins del di ec o i docs es oben 3 di ec o is: doha_p ocess, 2nd_mee ing i 3 d_mee ing, cadascun dels quals co esponen a una secció de l’aplicació. Al ma eix emps, cadascun d’aques s con é 4 di ec o is (en, es, , c ), que an e e ència a les qua e llengües en què es po penja un documen . Amb l’es uc u a p esen ada, els i xe s queden o gani za s pe seccions i llengües. D’al a banda, pe al de no sob eesc iu e els documen s penja s an e io men , s’u ili za l’algo isme de xi a MD5 pe gene a una clau única a pa i de l’ins an en què es puja el documen , de mane a que es c ea un di ec o i que po a pe nom el esul a ob ingu del xi a ge en el di ec o i de les llengües ma cades al o mula i, on cadascun d’ells con é el documen penja . Po se l’explicació esul a una mica con usa, pe això p esen a el següen exemple. Suposem que a a és del o mula i es puja el documen “in o me.pd ” en ca alà i en anglès a la secció Second Mee ing. Si es el esul a del hash de l’ins an en què es puja és 4d186321c1a7 0 354b297e8914ab240, les dues e sions se an accessibles a les següen s ad eces: $di ec o i_ inal= hash("md5",mic o ime()); //s’ob é el esul a 4d186321c1a7 0 354b297e8914ab240 docs/second_mee ing/c /4d186321c1a7 0 354b297e8914ab240/in o me.pd docs/second_mee ing/en/4d186321c1a7 0 354b297e8914ab240/in o me.pd En el momen de c ea el di ec o i cal dona -li els pe misos co esponen s i inalmen mou e el documen del di ec o i empo al al di ec o i que s’acaba de c ea . mkdi ($di ec o i, 0750); $des i="docs/second_mee ing/c /4d186321c1a7 0 354b297e8914ab240/in o me.pd "; mo e_uploaded_ ile($_FILES["doc_ ile"][" mp_name"], $des i); 8.4.4 Adminis ació S’ha decidi du l’adminis ació del lloc web de o ma cen ali zada a pa i de la pàgina managemen .php. Així doncs, s’ha p o eï aques a pàgina de o mula is que pe me in c ea , edi a i esbo a usua is, o gani zacions, ca ego ies, e c., cosa que no ep esen a g ans a iacions espec e al que s’ha explica an e io men . A a bé, al la pena des aca el sis ema de ges ió d’usua is, el qual pe me en ia -los Desen olupamen d’una aplicació web pe a una ONG - 69 - emails no i ican -los l’al a d’usua i o la gene ació d’un no a con asenya 4 , cosa que s’aconsegueix pe mi jà de dues classes de PHP: PHPMaile i SMTP, les quals s’implemen en en els i xe s class.phpmaile .php i class.sm p.php, espec i amen . A pa i d’aques es es poden en ia emails amb o es les possibili a s de què disposa qualse ol clien de co eu ( i xe s adjun s, con igu ació del missa ge HTML, e c.). Pe e -ho, cal ins al·la les classes en algun di ec o i de l’aplicació i usa els mè odes que o e eixen. A més, ambé s’ha c ea una unció p òpia que s’enca ega d’es abli la con igu ació i cons ui l’email a pa i de les dades ebudes. Es p esen a la capçale a d’aques a: unc ion en ia_mail($mail_use , $mail2_use , $pass, $lang_use , $ ac e_use , $nom_use , $cognom_use , $o g_use , $ ipus_no i icacio) En aques a es oben a ibu s pe a cons ui el missa ge (nom i cognoms de l’usua i, con asenya, o gani zació, e c.), dades de con igu ació (ad eces de l’usua i, llengua en què s’ha de edac a el missa ge, e c.) i un a ibu que indica el ipus de no i icació: al a d’usua i o gene ació d’un con asenya no a. D’aco d amb o l’an e io , es p esen a una e sió adap ada de la unció en ia_mail() a mode d’exemple. //capçale a necessà ia pe pode u ili za les classes equi e_once "includes/class.phpmaile .php"; //con igu ació de la classe phpmaile $mail = new phpmaile (); $mail->PluginDi = ""; $mail->Maile = "sm p"; $mail->Hos = " elay.upc.edu"; //con igu ació de l'email $mail->SMTPAu h = alse; 4 Veu e uncionali a s Al a d’usua is i Gene a una con asenya pe a un usua i Desen olupamen d’una aplicació web pe a una ONG - 70 - $mail->isHTML( ue); $mail->F om = "[email p o ec ed]"; $mail->F omName = "In o Table o Dialogue"; .. .. .. .. $mail->AddAdd ess($mail_use ); i ($mail2_use !="") $mail->AddAdd ess($mail2_use ); //es cons ueix el cos de l'email a pa i de les uncions //cons ueix_mail_accoun i cons ueix_mail_passwo d. //No es posen pe no sob eca ega l'exemple i ($ ipus_no i icacio==0) $cos=cons ueix_mail_accoun ($mail_use , $pass, $lang_use , $o g_use ); elsei ($ ipus_no i icacio==1) $cos=cons ueix_mail_passwo d($mail_use , $pass, $lang_use ); //es cons ueix l'assump e de l'email swi ch($ ipus_no i icacio){ case 0: $assump e="New Accoun o able o dialogue.ne "; b eak; case 1: $assump e="Passwo d eco e y o able o dialogue.ne "; b eak; de aul : b eak; } $mail->Subjec = $assump e; $mail->Body = "<h ml><body>$cos</body></h ml>"; $body_newuse =$mail->Body; .. .. .. .. Desen olupamen d’una aplicació web pe a una ONG - 77 - P opòsi Un CMS g a uï de p opòsi gene al Funcionali a s Au en icació d’usua is De inició de di e en s ols ( ipus) d’usua i Accés i in e ac i i a amb les bases de dades Adminis ació web del con ingu O gani zació en di e en s emes de discussió ( ò um) Pe me e la in oducció de PHP en el codi Cà ega/descà ega de documen s Possibili a d’in eg ació d’una eina de ce ca Compa ibili a amb el se ido Se ido Apache HTTP Bases de dades MySQL Llengua ge de p og amació PHP (p e e en men ) Apa ença Que l’apa ença sigui àmpliamen con olable i pe sonali zable en CSS i/o l’à ea d’adminis ació de l’aplicació. Comuni a Que la comuni a que hi ha al da e a sigui ac i a, pe al d’ob eni ac uali zacions de segu e a , no es uncionali a s, manuals, u o ials i in o mació de supo (semp e que sigui possible) Reque imen s que ha de compli el CMS Desp és de e una p ospecció de me ca es po eu e que mol s CMS g a uï s compleixen els equisi s de compa ibili a amb el se ido (Apache, PHP, MySQL), i pe an cald à ce ca en es udis, in o mes compa a ius i obse a la endència del me ca pe de e mina els CMS que cal eni en comp e. 9.3.2 Ce ca d’es udis compa a ius a In e ne Es poden oba bas an s es udis [xi] que compa en els CMS del me ca , pe ò so in acos uma a ha e un cla (i ine i able) a o i isme pe pa de l’au o de l’es udi. Pe això m’he cen a en es udis en què l’au o hagi u ili za els CMS que compa a, pe al de se el més impa cial possible. Vold ia essal a el següen es udi: "The 2008 Open Sou ce CMS Ma ke Sha e Repo ” [xii] , el qual no espon quin és el millo CMS open sou ce, sinó quin o quins són els líde s del me ca . Aques comple es udi es basa en dos indicado s: el i me d’adopció ( a e o adop ion) i la o ça de la companyia (b and s eng h). El p ime indicado é en comp e ac o s com el nomb e de descà egues, d’ins al·lacions, llib es imp esos, e c. El segon, en can i, es ixa en la se a isibili a als mo o s de ce ca (Google, Desen olupamen d’una aplicació web pe a una ONG - 78 - Yahoo, e c.), en la popula i a , en el ànsi en llocs web de demos ació, en les mencions en mi jans de comunicació, e c., i a especial essò als p emis a o ga s a cadascun dels CMS. Segons el p ime indicado (malg a la subjec i i a dels ac o s), el g up dels líde s es à o ma pe Wo dP ess, Joomla! i D upal. El segon indicado , pe ò, con i ma el lide a ge d’aques s es CMS espec e la es a, els quals se si uen a una dis ància o ça conside able. Pel que a a p emis, cal des aca que D upal i Joomla! són els que més p emis s’han empo a en els da e s anys pe pa de l’emp esa Pack Publishing [xiii] . No obs an , el guanyado absolu de les dues úl imes edicions ha es a D upal, men e que Joomla! ha queda en segon lloc. Pe al a banda, nomb osos es udis essal en que D upal disposa de millo s uncionali a s (especialmen en la ges ió d’usua is i pe misos) i és mol més lexible en quan a ges ió d’ex ensions i con ingu s que no el seu compe ido Joomla!. 9.3.3 Eines de compa ació dels CMS Tal com s’ha explica an e io men , el e d’escolli un CMS és una asca complexa i p o a -los o s (ins al·la -los i du a e me uncions senzilles) és in iable. Donada la gene ali zació de l’ús de CMS han apa egu di e ses eines, a més de llocs webs que ecullen alo acions i pun uacions dels usua is, pe ajuda a compa a les se es ca ac e ís iques. En e aques es, des aco dues eines. La p ime a és CMS Ma ix [xi ] , la qual consis eix en una ex ensa llis a de CMS de la qual es poden escolli els que es olen compa a i llis a -ne les ca ac e ís iques, els eque imen s de sis ema i les uncionali a s de què disposa espec e a segu e a , acili a d’ús, supo , ges ió, e c. Desen olupamen d’una aplicació web pe a una ONG - 79 - Compa ació dels CMS D upal i Joomla a CMS Ma ix La segona és OpenSou ceCMS [x ] . Aques lloc web e acili a, en e al es coses, una in e ície de p o es (ja ins al·lada) pe cada CMS i un cop au en ica com a usua i es poden ges iona els con ingu s i anali za el seu uncionamen . Pe al a banda, ambé p opo ciona una llis a [x i] dels CMS, ag upa s pe p opòsi , que con é la pun uació mi jana a o gada pels usua is a cada ges o . Llis a de ges o s amb les se es pun uacions a OpenSou ceCMS To i que no é alidesa su icien pe a di quin és el millo CMS (ja que les Desen olupamen d’una aplicació web pe a una ONG - 80 - pun uacions poden se manipulades o an di e ses egades a a o in un ges o o un al e) pe me e -se una idea sob e quins són els més usa s i en quins es an més in e essa s els usua is. 9.3.4 Resum del p ocedimen de selecció El p ocedimen de selecció que s’ha segui es po dedui dels apa a s an e io s. P ime de o , s’han plan eja les 5 p egun es bàsiques i el esul a ob ingu ha es a la Taula de eque imen s que ha de compli el CMS de l’apa a 9.3.1. Es udi de me ca dels CMS. A con inuació, aga an com a e e ència l’es udi de Ric Sh e es - wa e &s one ci a en l’apa a 9.3.2 s’han busca es udis compa a ius en e Joomla! [x ii] , Wo dP ess [x iii] i D upal [xix] ja que compleixen plenamen els eque imen s es able s, pe l’ac i i a de les comuni a s que enen al da e a i, en especial, pe l’eno me quan i a de uncionali a s de què disposen. No s’ha desca a Wo dP ess ja que, malg a no se conside a en mol s casos un CMS de p opòsi gene al, é una àmplia accep ació i un g an nomb e de uncionali a s que el an mol po en . Pos e io men , s’han compa a els CMS escolli s. En p ime lloc, u ili zan l’eina OpenSou ceCMS, con as an les pun uacions i obse acions dels usua is. En segon lloc, llis an les ca ac e ís iques de cadascun amb CMS Ma ix. A pa i d’aques úl im es po conclou e que Wo dP ess é enca a mol es ex ensions de segu e a , ges ió i lexibili a pe cob i ; i pe an queda desca a . Es po conside a que D upal i Joomla! queden en igual a de condicions i s’ha op a pe ins al·la -los o s dos pe al de compa a els p ocessos d’ins al·lació i p end e con ac e amb cadascun. To s dos enen un p océs d’ins al·lació simple i àpid. Segons la me a opinió, la in e ície de D upal és mol més in uï i a i p o essional, a di e ència de la de Joomla!, la qual sembla més senzilla i amb menys possibili a s. Finalmen , conside an les dis incions ebudes, els es udis ci a s en l’apa a 9.3.2 (que si uen en millo s posicions D upal que Joomla!) i una mínima expe iència pe sonal, es conclou que D upal és més adequa pe al desen olupamen de la no a aplicació de l’ONG ja que, a di e ència de Joomla!, é eines pe sa is e eque imen s uncionals impo an s (com l’es ablimen de pe misos de o ma g anula , con igu ació de ipus de dades p opis), i compleix més idelmen els Desen olupamen d’una aplicació web pe a una ONG - 81 - es ànda ds d’In e ne . Així ma eix, é una majo ex ensibili a , escalabili a i lexibili a , cosa que cal eni en comp e da an la possibili a d’implan ació del CMS en la es a d’aplicacions de l’ONG. 9.4 Disseny i implemen ació de l’aplicació a pa i del CMS escolli Desp és de la àpida i senzilla ins al·lació de D upal al se ido , s’ha p ocedi a la ins al·lació d’un ema que pe me i dona -li l’es uc u a adien , i a pa i de la qual es pugui ixa la con igu ació i l’apa ença desi jada d’aco d amb els eque imen s es able s en el capí ol 6. Els passos esmen a s es poden oba als annexos I i II d’aques a memò ia. A con inuació, s’ha p ocedi en el disseny de les dades, el disseny i la implemen ació de l’aplicació al com es desc iu o segui . 9.4.1 Disseny de les dades Des del meu pun de is a, D upal s’o gani za al ol an de dos concep es bàsics: Node i Module. Pe node s’en én qualse ol ipus de con ingu (és a di , pàgines, en ades de blog, e c.), els quals poden con eni di e en s uni a s de con ingu com comen a is o i xe s, i es a elaciona s amb al es nodes. Pe al a banda, els mòduls són pe i es aplicacions que pe me en es end e o augmen a les uncionali a s exis en s del ges o de con ingu s, o bé, a egi -ne de no es pe al d’aconsegui un de e mina compo amen o objec iu ins alesho es inabas able. Con é essal a que el nucli de D upal (és a di , el conjun d’elemen s bàsics pe al seu uncionamen ) es à di idi en mòduls essencials i mòduls opcionals. En el p ime , es oben mòduls com: • Use : Ges iona el egis e d’usua i i l’en ada al sis ema. • Block: Con ola els blocs d’in o mació (menús, capçale a, peu, e c.) que es mos en al ol an del con ingu p incipal. • Fil e : Reali za el il a ge de con ingu que ha de se mos a . Desen olupamen d’una aplicació web pe a una ONG - 82 - • Node: Pe me la in oducció de nou con ingu i l’o gani za en pàgines. • Sys em: Ges iona la con igu ació gene al del lloc pels adminis ado s. En can i, en el conjun de mòduls opcionals es oben u ili a s o ça habi uals en les aplicacions web com el ce cado (Sea ch), els comen a is (Commen ), ... mol s d’ells pe ò, a di e ència dels mòduls essencials, cal ac i a -los abans de pode -los u ili za . Pe de ec e D upal duu di e sos mòduls ac i a s, on, a més dels mòduls essencials, es oben els comen a is (Commen ) i el ges o de menús (Menu), en e d’al es; cosa que pe me eni una aplicació o ça uncional jus desp és de la ins al·lació. En aques sen i , es po es abli un ce pa al·lelisme (no es ic e, sinó uncional) en e els di e en s mòduls de D upal i les classes que o men l’aplicació. Es desc iu a con inuació: Use Es po aconsegui una ges ió d’usua is en di e en s ols a pa i del mòdul Use . A més, pe me la de inició de nous ols i l’assignació de pe misos ( an pe l’accés al con ingu com pe la u ili zació de di e en s mòduls). A pa , es po aconsegui la con igu ació dels usua is ac i an el mòdul P o ile, pe al d’a egi a ibu s pe sonali za s. Sec ion Les seccions es poden ges iona des d’una pàgina. (Cald à in odui ce s can is, com s’explica à més enda an ). Commen El mòdul Commen de D upal és equi alen . New Les no ícies (comen a is dins d’una secció) ambé poden ac a -se amb el mòdul Commen . Ve sion La classe Ve sion es po conside a com un i xe adjun a una pàgina. Cal ac i a el mòdul Upload pe pode adjun a i xe s a les pàgines. Regis y No cal implemen a aques a classe pel e que D upal disposa del mòdul Da abase logging, que s’enca ega de egis a o es les accions/esde enimen s de l’aplicació a la base de dades. Alesho es, Desen olupamen d’una aplicació web pe a una ONG - 83 - es po ob eni la in o mació desi jada des ian -la de la es a, com s’explica à més enda an . Finalmen , pe comple a el disseny de dades, cal ins al·la els mòduls d’aquells ipus de dades amb els quals D upal no comp a inicialmen i que són necessa is pe a l’aplicació: Email i Da e. Aques s pe me en de ini a ibu s de ipus e-mail i da a, espec i amen , i al ma eix emps po en inco po ades les es iccions necessà ies pe aques s ipus de dades. (pe exemple: que el ca àc e @ es igui en els emails, que la da a sigui àlida: no es pe me in da es de l’es il 31 de eb e de 2009). Malg a o , les possibili a s que dóna D upal no són su icien s pe a e on a qualse ol classe de l’aplicació, ja que n’hi ha algunes que enen mol s a ibu s o bé necessi en a ibu s conc e s. D upal, pe si ma eix, és incapaç de cob i o es les necessi a s i uncionali a s que es olen assigna a una classe pe sonali zada i pe això cal busca un mòdul que pe me i modela els ipus de con ingu . Així doncs, D upal disposa d’un mòdul mol po en (i en ce a mane a “màgic”) anomena Con en Cons uc ion Ki (CCK), el qual pe me c ea ipus de con ingu s pe sonali za s com ambé a egi a ibu s als ipus de con ingu exis en s pe al de dona -li una inali a especí ica. 9.4.1.1 P océs de c eació de nous ipus de con ingu El p océs de c eació de nous ipus de con ingu es eali za des de l’à ea d’adminis ació de l’aplicació i consis eix en espond e un segui de p egun es que o mula l’aplicació. Inicialmen , s’ha de espond e a les ca ac e ís iques del nou ipus: • Nom i desc ipció del nou ipus • Noms dels a ibu s Ti le i Body (aques úl im opcional) • Volum de eball (si s’ha de publica , si ha d’apa èixe a la p ime a pàgina, e c.) • Ca ac e ís iques dels comen a is (decidi si el nou ipus de con ingu s n’accep a, i en cas a i ma iu, con igu ació d’aques s) Desen olupamen d’una aplicació web pe a una ONG - 84 - Selecció de ca ac e ís iques d’un nou ipus de con ingu A con inuació, basan -se en l’es uc u a ípica d’una pàgina (Ti le i Body), cal in odui els a ibu s un pe un, decidi el ipus de dades i les se es ca ac e ís iques; i, pe úl im, decidi com es mos a an. Edició dels a ibu s d’un nou ipus de con ingu Desen olupamen d’una aplicació web pe a una ONG - 85 - 9.4.1.2 C eació de nous ipus de con ingu pe aques p ojec e D upal es à equipa amb un segui de mòduls que pe me en cob i di e sos ipus de con ingu o ça habi uals en aplicacions web. Així, pe exemple, inco po a Page (pe pode c ea pàgines), S o y (pe e pàgines més senzilles que equi alen en ades de blog) i Commen , el qual pe me dona lloc als comen a is. Així ma eix, els mòduls menciona s són u ili za s de la següen mane a: Page, pe a c ea pàgines d’in o mació; S o y, pe a in odui en ades a la pàgina p incipal del lloc web; i Commen , pe implemen a comen a is dels documen s i no ícies de les seccions. No obs an , com s’ha comen a an e io men , hi ha classes que queden més enllà dels lími s de D upal i s’han d’implemen a pe sepa a , en aques cas, amb el mòdul CCK (Con en Cons uc ion Ki ). El p ocedimen p esen a en l’apa a an e io és el que s’ha segui pe a c ea els ipus Documen , Sec ion i O ganiza ion. A con inuació, es po eu e l’es uc u a esul an dels ipus de con ingu esmen a s. 9.4.1.2.1 Documen En aques cas s’ha desac i a l’a ibu Body, ja que no se à u ili za . I s’a egeixen els camps que es poden eu e a la aula: A ibu Nom Tipus Ti le Node module o m. Au ho Field_au ho Tex Da e Field_da e Da e Sec ion Field_sec ion Tex Ca ego y Field_ca ego y Tex Subca ego y Field_subca ego y Tex Menu se ings Menu module o m. File a achmen s Upload module o m. L’a ibu de i a Views, el qual con é el núme o de isi es, no s’ha ma e iali za en aques cas, és a di , no es a explíci en el ipus de con ingu Documen , ja que es ges iona in e namen a pa i dels mòduls S a is ics i S a is ics Ad anced Se ings que es poden adminis a de mane a senzilla i enen una g an lexibili a . Desen olupamen d’una aplicació web pe a una ONG - 86 - 9.4.1.2.2 Sec ion El compo amen i l’es uc u a de les seccions se à mol semblan al d’una pàgina qualse ol, i únicamen s’a egeix el camp Sub i le. A ibu Nom Tipus Ti le Node module o m. Sub i le Field_au ho Tex Menu se ings Menu module o m. Body Node module o m. 9.4.1.2.3 O ganiza ion En el cas de les o gani zacions es can ia el nom de l’a ibu p incipal Ti le pe Name i es desac i a el Body, pe què ampoc se à u ili za . Finalmen s’a egeixen els camps que es poden eu e a la aula: A ibu Nom Tipus Name Node module o m. Ac onym Field_au ho Tex Type Field_sec ion Tex Menu se ings Menu module o m. 9.4.1.3 Con igu ació de la classe Usua i Pe a comple a la con igu ació dels usua is, se segueix un p ocedimen simila al que s’ha explica amb el mòdul CCK, o i que en aques cas a pa i del mòdul P o ile. La mecànica és la ma eixa, és a di , ana a egin successi amen a ibu s, escolli el ipus de dades i les se es ca ac e ís iques ins a con o ma l’usua i al com es desi ja. Desen olupamen d’una aplicació web pe a una ONG - 93 - 9.4.3 Implemen ació En aques apa a , s’explica com s’ha a iba a aconsegui l’es ablimen de pe misos, ja que no queda cobe amb el que s’ha explica an e io men . Cal eco da que s’han dis ingi 3 ipus d’usua is (admin, no mal i gues ) amb di e en s possibili a s sob e el con ingu i pe això cal assigna -los di e en s pe misos. Pe aconsegui -ho, es a se i el mòdul Con en Access, el qual pe me ixa pe misos de o ma gene al (pe ipus de con ingu ) i pe cada node, o en al es pa aules, de o ma g anula , cosa que dóna mol a lexibili a . Edició dels pe misos dels di e en s ipus d’usua i sob e un node Desen olupamen d’una aplicació web pe a una ONG - 94 - 10 P o es Aques a e apa és una de les més impo an s del desen olupamen ja que, a pa de p o a que s’ob é el compo amen desi ja de o s els casos d’ús, pe me descob i possibles ulne abili a s amb les que no s’ha ia comp a an e io men i que pod ien comp ome e la segu e a de les dades del lloc web. Pe a eali za les p o es s’ha u ili za el na egado Fi e ox 3, ajuda de l’ex ensió Web De elope [xx] . Es p esen en a con inuació, els escena is p o a s 6 . Escena is p o a s P og. a mida D upal En el momen d’en a a l’aplicació Deixa els camps use name i passwo d bui s. X X U ili za dades inco ec es en els camps use name i passwo d. X X De o ma gene al Els usua is només poden accedi a les pàgines on disposen dels pe misos necessa is. X X Només es comp abili zen les isi es dels usua is de ipus No mal pe al còmpu de isi es dels documen s. X X Els documen s d’una secció es mos en o dena s c onològicamen . X X La llis a de documen s d’una aula es po o dena pe qualse ol camp. X X Les no ícies i els comen a is es mos en o dena s c onològicamen . X X En el momen de publica i edi a el con ingu Deixa els camps bui s i in en a publica . X X In odui dades no numè iques en els camps de ipus da a. X X In odui da es in àlides en els camps de ipus da a. X X Escolli una secció no pe mesa. X X Inse i dades amb longi ud supe io al lími pe mès. X X Inse i ca àc e s especials (‘, “, accen s,...) i comp o a que es ac en co ec amen . X X Inse i codi en HTML i Ja asc ip . X X Publica més de 10 comen a is/no ícies pe comp o a que se seleccionen els/les més ecen s. X X Penja més de 5 documen s en una secció i comp o a que seleccionen els més ecen s. X X La da a i l’ho a en què s’ha publica és co ec a. X X 6 Els que es an ma ca s amb NA, no s’han pogu p o a en D upal ja que s’implemen a de mane a di e en . Com s’explica à en p ope capí ol, s’han hagu de ebaixa alguns dels objec ius. Desen olupamen d’una aplicació web pe a una ONG - 95 - Comp o a que només es poden puja documen s en o ma PDF. X X A l’à ea d’adminis ació No assigna cap con asenya a un usua i. X X Assigna una con asenya més lla ga/cu a del lími . X X In odui una ad eça de co eu in àlida (sense @). X X Comp o a que les con asenyes es gua den xi ades. X X C ea un usua i i comp o a que s’en ia co eu elec ònic de no i icació. X X Comp o a que l’usua i po can ia la con asenya la p ime a egada que en a a l’aplicació. X NA Comp o a que quan s’esbo a un usua i es conse en els documen s, no ícies i comen a is que ha deixa a l’aplicació. X X Desac i a una secció i comp o a que no es llis en els seus documen s ni no ícies. X X Comp o a que no es po esbo a una o gani zació inculada amb algun usua i. X NA Comp o a que no es po esbo a una ca ego ia o subca ego ia inculada amb algun documen . X NA Comp o a que la llis a del úl ims accessos dels usua is aga a ealmen l’úl im accés de cada usua i. X X Desen olupamen d’una aplicació web pe a una ONG - 96 - 11 Compa ació de les dues me odologies de desen olupamen L’objec iu p incipal d’aques capí ol és anali za les dues me odologies de desen olupamen en base a di e en s ac o s que es p esen en a con inuació. 11.1 Ap enen a ge El mè ode adicional eque eix conèixe HTML i PHP pe pode p og ama les pàgines, SQL pe pode e les consul es a les bases de dades i la sin axi CSS pe pode dissenya una apa ença amb ulls d’es il. En can i, en D upal, un adminis ado no ell pod ia p escindi de o s aques s coneixemen s. A a bé, pe aconsegui un ni ell de pe sonali zació com el que s’ha aconsegui a l’aplicació que es p esen a, a més d’aques s coneixemen s es necessi a un ap enen a ge pe e unciona el CMS: ins al·lació, con igu ació, l’adminis ació, publicació, ... i en de ini i a la pe sonali zació de l’aplicació pe què sigui com s’espe a. Con é essal a , pe ò, que donada la se a complexi a , D upal é una co ba d’ap enen a ge len a si es compa a amb al es CMS, els quals no són an po en s ni disposen de les ma eixes possibili a s. 11.2 Documen ació Pe so , D upal disposa de mol a documen ació (manuals, ídeos, ò ums de deba , e c.) i acos uma a segui unes pau es pe al d’uni ica el sis ema pe a e de e minades coses. En el cas de l’aplicació desen olupada des de ze o, en p incipi la documen ació és inexis en , si no es enen en comp e l’API 7 de PHP i les sin axis HTML i CSS. No obs an , el desen olupado po cons ui la se a p òpia documen ació pels emes que ho eque eixin. 11.3 Posada en ma xa L’aplicació adicional é una posada en ma xa len a i p og essi a, on cal ana i e an 7 Applica ion P og amming In e ace Desen olupamen d’una aplicació web pe a una ONG - 97 - en la p og amació i en les p o es conc e es ins a aconsegui el esul a espe a . Con à iamen passa en D upal, el qual é una posada en ma xa mol àpida, de mane a que en an sols unes ho es es po eni una aplicació uncionan , la qual cald à complemen a amb la ins al·lació dels di e en s mòduls. 11.4 Con igu ació Ambdues aplicacions eque eixen con igu acions p è ies que els pe me in ges iona els seus i xe s en el se ido (lec u a i esc ip u a) i accedi a la base de dades. En elació amb aques úl im pun , cal essal a que a l’aplicació adicional s’ha hagu de dissenya la base de dades i implemen a -la, cosa que en D upal és anspa en al desen olupado . És a di , D upal c ea i adminis a les aules de la base de dades d’aco d amb el con ingu que ges iona, els mòduls ins al·la s i les se es con igu acions. 11.5 Funcionali a s Respec e als casos d’ús que s’ha ien dissenya , a l’aplicació adicional s’han hagu de p og ama des de ze o cadascun d’ells. De o ma con à ia, en D upal els casos d’ús s’implemen en en base a mòduls con igu a s con enien men pe aconsegui el esul a espe a . Malg a o , a egades esul a di ícil sa is e els objec ius ixa s i cal pensa solucions al e na i es o ebaixa els objec ius. Així ma eix, no ha es a possible sa is e les es iccions desc i es pels casos d’ús 7.2.7.2. Baixa d’o gani zacions i 7.2.8.2. Baixa de ca ego ies, que diuen que no es poden dona de baixa o gani zacions ni ca ego ies (i subca ego ies) que es iguin associades a usua is i documen s, espec i amen . En aques cas, s’ha p ocedi a ebaixa els objec ius, i es deixa com a esponsabili a de l’adminis ado la asca de man eni la conco dança en e usua is-o gani zacions i documen s-ca ego ies pe al que no es p odueixin p oblemes. Respec e al cas d’ús 7.2.2.5. Can ia la con asenya, s’ha ia con ingu que els usua is pod ien can ia la se a con asenya, únicamen , la p ime a egada que en essin a l’aplicació i, en D upal, la poden can ia en qualse ol momen sense necessi a de o na a inicia la sessió. Aques can i, d’en ada, no suposa cap p oblema, pe ò sí que compo a una ebaixa dels objec ius. Desen olupamen d’una aplicació web pe a una ONG - 98 - 11.6 Adminis ació Pel que a a l’adminis ació de l’aplicació, D upal disposa de mol es uncionali a s d’adminis ació ( an de o ma gene al com a ni ell de mòduls i emes), les quals es an p e-dissenyades i enen mol es capaci a s. En can i, a l’aplicació adicional s’han hagu de desen olupa des de ze o o es les uncionali a s que es necessi a en. 11.7 Apa ença To es dues aplicacions pe me en la sepa ació del con ingu i la se a p esen ació pe mi jà de la de inició d’es ils en els i xe s CSS. Alesho es, depèn de les habili a s del desen olupado , aconsegui una apa ença a ac i a pe a l’aplicació. A més, D upal pe me una ges ió de l’apa ença a a és del na egado , de la qual l’aplicació adicional no disposa. 11.8 Publicació de con ingu s Respec e a la publicació de con ingu s, ambdues disposen de o mula is que pe me en au oma i za el p océs de publicació. Com s’ha comen a an e io men pe a les uncionali a s i l’adminis ació, a l’aplicació adicional s’ha hagu de p og ama i, en can i, a D upal únicamen és a ús del mòduls necessa is. 11.9 Es ablimen de pe misos Sob e l’es ablimen de pe misos, D upal pe me du un con ol bas an exhaus iu dels pe misos sob e cada uncionali a . A més, po es abli pe misos de o ma g anula , o en al es pa aules, pe misos conc e s pe cada node, la qual cosa dóna mol de joc. Pel que a a l’aplicació adicional, s’ha op a pe una ges ió de pe misos o ça senzilla, inc us ada en el codi i gens au oma i zada, que cald ia e isa si es olgués e més dinàmica i ope a i a des de l’à ea d’adminis ació, pe ò que sa is à les necessi a s plan ejades pe l’aplicació. 11.10 Ex ensibili a Quan a l’ex ensibili a de les aplicacions, D upal és o almen ex ensible a pa i de mòduls i gene almen no implica la modi icació del codi. To es les uncionali a s Desen olupamen d’una aplicació web pe a una ONG - 99 - desi jades es poden aconsegui amb la ins al·lació del mòdul co esponen , en cas que exis eixi. A més, D upal ole a o s els can is en les bases de dades que compo a la ins al·lació i l’ús d’aques s mòduls. En can i, l’aplicació p og amada a mida, é una ex ensibili a limi ada en el sen i que qualse ol can i en el compo amen d’una uncionali a o en la base de dades compo a modi ica el codi, la qual cosa esul a incòmoda i poc a an a josa. 11.11 Segu e a Respec e a la segu e a , o es dues aplicacions inco po en disposi ius pe ga an i -ne la segu e a (pe exemple, el xi a de les con asenyes). No obs an això, els o mula is amb què es eballa són ocus pe explo a les ulne abili a s de les aplicacions web en els que cal pa a especial a enció. Pe no ma gene al, com més usua is eballin amb una aplicació, més àcil és descob i -ne els pun s dèbils. Al ma eix emps pe ò, una aplicació àmpliamen usada ambé po se objec iu d’a acs ap o i an les ulne abili a s conegudes, cosa que no passa en una aplicació p og amada a mida, en p incipi amb un ús més es ingi . D’al a banda, en aques a úl ima, po se que s’hagin ob ia o no s’hagin ingu en comp e ce s p oblemes En de ini i a, en quan a segu e a un CMS possiblemen es a à més p epa a , pe què amb el emps hau à p o a més escena is i s’hau an soluciona més p oblemes (g àcies a la comuni a d’usua is i desen olupado s) que una aplicació p og amada a mida. Desen olupamen d’una aplicació web pe a una ONG - 100 - 12 Compa ació de ca ac e ís iques no- uncionals de les aplicacions ob ingudes La compa ació que es p esen a en aques capí ol segueix l’es uc u a que s’ha ixa al capí ol 6 espec e a Reque imen s No Funcionals. 12.1 Segu e a - To es dues aplicacions poden eballa sob e p o ocol HTTPS pe ga an i l’in e can i segu de i xe s. - També s’u ili zen noms d’usua i i con asenyes pe e l’au en icació d’usua is i es ingi l’accés al con ingu . - Les dues gua den les con asenyes xi ades pe mi jà de l’algo isme MD5. 12.2 Fiabili a - Les aplicacions es oben disponibles des de les ad eces able o dialogue.ne i able o dialogue.o g. La edi ecció po a a l’usua i l’aplicació desen olupada amb D upal. Pe accedi a l’aplicació p og amada a mida cal a egi a /old al inal de la URL. - Ex e namen , es eali zen còpies de segu e a del se ido ( o als i inc emen als). Pe aques mo iu no cal implemen a -les des de les aplicacions. 12.3 Usabili a - Les dues in e ícies es an desen olupades en anglès. A l’aplicació e a a mida s’ha hagu d’esc iu e i e isa o el ocabula i. En can i, D upal disposa pe de ec e del ocabula i en anglès. - S’ha in en a e les dues aplicacions el més in uï i es possible i on es pugui accedi àcilmen als con ingu s a a és de menús i enllaços si ua s adequadamen . - Les dues aplicacions disposen d’una à ea d’adminis ació pe ges iona els con ingu s i els usua is. L’à ea d’adminis ació de D upal és més comple a i Desen olupamen d’una aplicació web pe a una ONG - 101 - o e eix més possibili a s. Malg a o , és una mica més complexa. - Pel que a als es ànda ds d’accessibili a , in e nacionali zació i independència, D upal els espec a en majo g au, i el complimen d’aques s no eque eix es o ç pe pa dels usua is (adminis ado s i desen olupado s, en p incipi) pel e que es ges iona au omà icamen , a di e ència de l’aplicació p og amada des de ze o on cons an men cal comp o a que es sa is an els es ànda ds ci a s. 12.4 E iciència - El emps de espos a de les aplicacions se si ua en o s dos casos dins de l’espe a ( ixa el màxim en uns 2 segons). No obs an , el emps de l’aplicació desen olupada a mida és lleuge amen meno . En cap cas, s’a iba al màxim ixa de 8 segons. 12.5 Man enibili a - Com s’ha indica an e io men , D upal és àcil i àpid d’es end e en o s els sen i s ( uncionali a s, adminis ació, e c.), men e que qualse ol ex ensió en l’aplicació desen olupada des de ze o eque eix la modi icació del codi, cosa que po compo a bas an eball. - Pel que a la solució d’e o s, de o ma gene al es po di que D upal disposa d’una comuni a al da e a que s’enca ega de esold e’ls i publica no es e sions del so wa e que no p esen en els e o s de ec a s. No obs an això, els p oblemes pun uals i pe i s són ela i amen àcils de de ec a en l’aplicació p og amada des de ze o. 12.6 Po abili a - Les dues aplicacions es isuali zen co ec amen In e ne Explo e 6 i 7, i en Mozilla Fi e ox 2 i 3. - Ambdues aplicacions s’han desen olupa sob e un se ido Apache, s’han p og ama en el llengua ge PHP5 i u ili zen MySQL com a sis ema ges o de bases de dades. - En els dos casos, les bases de dades poden adminis a -se ex e namen amb Desen olupamen d’una aplicació web pe a una ONG - 102 - eines com PHPMyAdmin. - Les dues aplicacions pe me en puja , únicamen , documen s en PDF. 12.7 Negoci - En ambdues pla a o mes de desen olupamen , els p og ames u ili za s disposa en de llicències g a uï es. Desen olupamen d’una aplicació web pe a una ONG - 109 - Esquema de l’es uc u a ípica d’un ema de D upal Desen olupamen d’una aplicació web pe a una ONG - 110 - Annex III: Ins al·lació d’un mòdul a D upal La ins al·lació d’un mòdul, el qual pe me dona una uncionali a de e minada a l’aplicació, segueix un esquema mol simila al p ocedimen u ili za pe a ins al·la un ema. És el següen : • Desca ega el mòdul d’In e ne • T aspassa el mòdul al se ido amb algun p og ama que implemen i els p o ocols FTP o SSH, i desempaque a -lo al di ec o i si es/all/modules/. • Ac i a el mòdul desi ja des de l’à ea d’adminis ació (Adminis e >Si e building>Modules). Ac i ació de di e sos mòduls a a és de l’à ea d’adminis ació Desen olupamen d’una aplicació web pe a una ONG - 111 - Bibliog a ia La bibliog a ia s’es uc u a c onològicamen seguin els capí ols de la memò ia. Hi ha on s bibliog à iques que s’han u ili za com a base pe al conjun d’un capí ol i d’al es, en can i, que an e e ència a e mes conc e s i, pe això, es acili a la e e ència en núme os omans a la ma eixa pàgina on apa eix el e me. Reque imen s Ingenie ía de equisi os: h p://es.wikipedia.o g/wiki/Ingenie ía_de_ eque imien os [i] ISO/IEC 9126: h p://es.wikipedia.o g/wiki/ISO_912 [ii] Ca allo, J. P.; F anch, X.; Que C. “Towa ds a Uni ied Ca alogue o Non- echnical Quali y A ibu es o Suppo COTS-Based Sys ems Li ecycle Ac i i ies” (bes pape ). In e na ional Con e ence on COTS-Based So wa e Sys ems, ICCBSS 2007 [iii] “¿Cuán o es el iempo de ca ga de una página web que conside amos acep able?”: h p://www.clikea .com/cuan o_ iempo_ca ga_14752.aspx [i ] “B owse S a is ics”: h p://www.w3schools.com/b owse s/b owse s_s a s.asp Especi icació Cos al, D.; F anch, X.; Ribe a Sancho, M.; Tenien e, E. (2000). “Enginye ia del So wa e: Especi icació: Especi icació dels sis emes o ien a s a objec es amb la no ació UML”. Ba celona: Edicions UPC. F anch, X.; Gómez, C.; Ma ínez, E.; P adel, J.; Raya, J.A. “T anspa ències de l’assigna u a Enginye ia del So wa e II (ES2)”. Cos al, D.; Rod íguez, E.; U pí, T.; Ma ín, C.; Que , C. “T anspa ències Bases de Dades”. CPET. Disseny i implemen ació So wa e a chi ec u e: h p://en.wikipedia.o g/wiki/So wa e_a chi ec u e [ ] Clien -se e : h p://en.wikipedia.o g/wiki/Clien -se e [ i] Objec -o ien ed p og amming: h p://en.wikipedia.o g/wiki/Objec -o ien ed_p og amming [ ii] Mul i ie a chi ec u e: h p://en.wikipedia.o g/wiki/Th ee_ ie _a chi ec u e Desen olupamen d’una aplicació web pe a una ONG - 112 - [ iii] Monoli hic sys em: h p://en.wikipedia.o g/wiki/Monoli hic_sys em [ix] Insegu idad in o má ica: h p://es.wikipedia.o g/wiki/Insegu idad_in o má ica In o mació sob e els CMS Con en managemen sys em: h p://en.wikipedia.o g/wiki/Con en _managemen _sys em Sis ema de ges ión de con enido: h p://es.wikipedia.o g/wiki/Cms [x] “5 Tips o help you choose a CMS”: h p://cmsc i ic.com/5- ips- o-help-you-choose-a-cms Es udis Compa a ius [xi] S’han ingu en comp e di e ses compa acions de ges o s de con ingu s: • “Red Social con D upal s Joomla… o s Elgg”: h p://www.plane ahue o.es/in e ne /2008/07/18/ ed-social-con-d upal- s-joomla-o- s- elgg/ • “D upal 6 s Joomla 1.5. Ac ualización”: h p://www.plane ahue o.es/2008/07/23/in e ne /d upal- s-joomla-ac ualizacion/ • “Compa ing D upal s. Joomla s. Typo3 and O he s”: h p://www.use ul alk.com/cms- wikis/compa ing-d upal- s-joomla- s- ypo3-and-o he s “Compa ing Open Sou ce CMSes: Joomla, D upal and Plone”: h p://www.idealwa e.o g/a icles/joomla_d upal_plone.php • “Joomla e sus D upal”: h p://www.communicopia.ne /blog/joomla- e sus-d upal • “Wo dp ess s D upal”: h p://www.bi ings epo .com/2007/wo dp ess- s-d upal/ • “Wo dp ess s. D upal - Ba le o he CMS”: h p://www.b ianchappell.com/wo dp ess- s- d upal-ba le-o - he-cms/ [xii] “The 2008 Open Sou ce CMS Ma ke Sha e Repo , by Ric Sh e es. Published by wa e &s one”: h p://www.wa e ands one.com [xiii] P emis Pack Publishing 2008: h p://www.pack pub.com/a icle/2008-open-sou ce-cms- awa d-winne -announced Eines de compa ació dels CMS [xi ] CMS Ma ix: h p://www.cmsma ix.o g/ Desen olupamen d’una aplicació web pe a una ONG - 113 - [x ] OpenSou ceCMS: h p://php.opensou cecms.com/ [x i] Llis a de alo acions de CMS en PHP a OpenSou ceCMS: h p://php.opensou cecms.com/gene al/ a ings.php Ges o s de con ingu s [x ii] Joomla.o g: h p://www.joomla.o g/ [x iii] Wo dp ess.o g: h p://wo dp ess.o g/ [xix] D upal.o g: h p://d upal.o g/ Documen ació i u o ials de D upal D upal.o g: h p://d upal.o g/p ojec /Modules D upal.o g - Themes: h p://d upal.o g/p ojec /Themes D upal.o g - Modules: h p://d upal.o g/p ojec /Modules D upalmodules.com: h p://d upalmodules.com/ Lea nby hed op.com: h p://www.lea nby hed op.com Go D upal.com: h p://go d upal.com/ Mas e ingd upal.com: h p://www.mas e ingd upal.com/ Theming guide - D upal.o g: h p://d upal.o g/ heme-guide “App oaches o Access Con ol”: h p://www.je ayno .o g/node/96 P o es [xx] Mozilla.o g: h ps://addons.mozilla.o g/es-ES/ i e ox/addon/60 Conside acions inals [xxi] S’han u ili za di e ses on s: • “Usa CMS o p og ama a medida un p oyec o web”: h p://www.seop o esional.com/usa -cms-o-p og ama -a-medida-un-p oyec o-web/ • “Las implicaciones de usa un CMS”: h p://www.lucioalbenga.com/2008/11/03/las- implicaciones-de-usa -un-cms/ Desen olupamen d’una aplicació web pe a una ONG - 114 - • “¿CMS o desa ollo web pe sonalizado?”: h p://www.ya aonline.com/po al/joomla/joomla-no icias/cms-o-desa ollo-web- pe sonalizado.h ml Conclusions “Choosing he Righ CMS Pla o m o You Websi e ( om an SEO pe spec i e)”: h p://www.seomoz.o g/blog/choosing- he- igh -cms-pla o m- o -you -websi e- om-an-seo- pe spec i e