scieee Science in your language
[sp] (orig)

Contribuciones a un proyecto Open Source de ámbito internacional: Ampache

Author: González Llaguno, Urtzi
Year: 2021
Source: https://addi.ehu.eus/bitstream/10810/53428/3/TFG_UrtziGonzalezLlaguno.pdf
Cu so: 2020-2021
Fecha: Bilbao, 30, Junio, 2021
Alumno/Alumna: González, Llaguno, U zi
Di ec o /Di ec o a: Pe ei a, Va ela, Juanan
GRADO EN INGENIERÍA INFORMÁTICA DE
GESTIÓN Y SISTEMAS DE INFORMACIÓN
TRABAJO FIN DE GRADO
CONTRIBUCIONES A UN PROYECTO OPEN
SOURCE DE ÁMBITO INTERNACIONAL:
AMPACHE
Resumen
Cas ellano
Es e abajo consis e en la con ibuci´on al desa ollo de Ampache, un
so wa e lib e pa a la ges i´on de con enido mul imedia. Teniendo como ob-
je i o apo a alo a˜nadido a un so wa e usado po miles de usua ios, se
han desa ollado mejo as p opues as po usua ios de la comunidad — la i-
sualizaci´on de la du aci´on o al de una lis a de ep oducci´on y la opci´on de
de ini una imagen de ondo pe sonalizada —, y ambi´en se ha con ibuido a
la emodelaci´on de la in e az de usua io.
Euska a
Lan hone an Ampache mul imedia-edukia kudea zeko so wa e lib ea en
ga apenean eka penak egin di a. Milaka e abil zailek e abili ako so wa ea i
balio e an sia ema ea helbu u izanik, komuni a eko e abil zaileek p oposa-
u ako hobekun zak egin di a — e ep odukzio-ze enda ba en i aupen osoa
bis a a zea e a ho ma i udi pe sonaliza ua de ini zeko auke a —, bai a e a-
bil zailea en in e azea bi molda zen lagundu da e e.
English
This wo k consis s o he con ibu ion o he de elopmen o Ampache,
a ee so wa e p ojec o mul imedia con en managemen . Aiming o add
alue o a so wa e used by housands o people, new ea u es p oposed by
communi y membe s ha e been de eloped - displaying he o al du a ion o
playlis s and he abili y o speci y a cus om backg ound image - as well as
helping in he edesign o he use in e ace.
i
ii
P e acio
La mo i aci´on de es e p oyec o su ge del in e ´es de aplica los conoci-
mien os y compe encias adqui idas en el g ado a un p oyec o del mundo eal,
ue a del ma co acad´emico. Con ibuyendo a un p oyec o exis en e con una
comunidad de usua ios, se consigue apo a un alo a˜nadido di ´ıcilmen e
alcanzable po o os abajos que pa en desde ce o. Adem´as, exis en e os
ans e sales ales como la comunicaci´on con o os con ibuido es expe imen-
ados y la comp ensi´on del c´odigo ya exis en e, que hacen que es e abajo
se asemeje mejo al escena io en el que los nue os g aduados de ingenie ´ıa
in o m´a ica nos encon a emos.
El p oyec o en cues i´on es Ampache, un adminis ado de a chi os y se -
ido de s eaming mul imedia lib e, que unciona sob e un se ido web.
Lanzado en 2001, sigue eniendo un desa ollo ac i o y una comunidad in-
oluc ada en la cons an e mejo a del se icio. Es ´a compues o de m´as de
500.000 l´ıneas de c´odigo p og amadas en PHP bajo la licencia AGPL 3.
iii

i
´
Indice gene al
Resumen
i
P e acio
iii
´
Indice de igu as
ii
´
Indice de ablas
ix
1. In oducci´on 1
1.1. Con ex o.............................. 2
1.2. Mo i aciones y bene icios . . . . . . . . . . . . . . . . . . . . . 3
1.3. Ampache.............................. 4
1.4. Obje i os ............................. 9
2. Me odolog´ıa 11
2.1. Plani icaci´on............................ 12
2.2. C onog ama............................ 27
2.3. He amien as u ilizadas . . . . . . . . . . . . . . . . . . . . . . 29
2.4. E aluaci´on econ´omica . . . . . . . . . . . . . . . . . . . . . . . 31
2.5. An´alisis de iesgos . . . . . . . . . . . . . . . . . . . . . . . . . 36
3. Ejecuci´on 41
3.1. Cap u a de equisi os . . . . . . . . . . . . . . . . . . . . . . . 42
3.2. In e az .............................. 48
3.3. An´alisis y dise˜no . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.4. Desa ollo ............................. 70
4. Resul ados 81
4.1. P uebas de calidad . . . . . . . . . . . . . . . . . . . . . . . . 82
4.2. In eg aci´on de los apo es . . . . . . . . . . . . . . . . . . . . 91
5. Conclusi´on 95
5.1. Di e encia en e es imaci´on y iempo eal . . . . . . . . . . . . 96
5.2. Fu u as l´ıneas de abajo . . . . . . . . . . . . . . . . . . . . . 98
5.3. Licencia .............................. 98
5.4. Re lexi´on pe sonal . . . . . . . . . . . . . . . . . . . . . . . . . 99
Ac ´onimos 101
Glosa io 103
Bibliog a ´ıa 107
i
´
Indice de igu as
1.3. A qui ec u a de Ampache. . . . . . . . . . . . . . . . . . . . . 6
1.4. Es uc u a in e na de Ampache. . . . . . . . . . . . . . . . . . 7
2.1. Visi´on gene al del diag ama EDT. . . . . . . . . . . . . . . . . 12
2.2. Paque es de abajo de la ag upaci´on ((Plani icaci´on)). . . . . . 13
2.3. Paque es de abajo de la ag upaci´on ((Fo maci´on)). ...... 15
2.4. Paque es de abajo de la ag upaci´on ((Cap u a de equisi os)). 17
2.5. Paque es de abajo de la ag upaci´on ((An´alisis y dise˜no)). . . . 19
2.6. Paque es de abajo de la ag upaci´on ((Implemen aci´on)). . . . 21
2.7. Paque es de abajo de la ag upaci´on ((P uebas))......... 23
2.8. Paque es de abajo de la ag upaci´on ((Documen aci´on)). . . . 25
2.9. Diag ama Gan de la plani icaci´on del p oyec o. . . . . . . . . 28
3.1. Je a qu´ıa de ac o es. . . . . . . . . . . . . . . . . . . . . . . . 42
3.2. Casos de uso gene ales. . . . . . . . . . . . . . . . . . . . . . . 43
3.3. P´agina p incipal de la he amien a issue............. 44
3.4. E ique as de la issue #2527.................... 45
3.5. E ique as de la issue #2582.................... 46
3.6. P´aginadeinicio. ......................... 48
3.7. P´agina de odos los a is as. . . . . . . . . . . . . . . . . . . . 49
3.8. P´agina de un a is a. . . . . . . . . . . . . . . . . . . . . . . . 50
3.9. P´agina de un ´album. . . . . . . . . . . . . . . . . . . . . . . . 51
3.10. P´agina de una canci´on. . . . . . . . . . . . . . . . . . . . . . . 51
3.11. Diag ama ER de la issue 2527. ................. 53
3.12. Diag ama de clases de la issue 2527. .............. 54
3.13. In e az de la p´agina show playlis s. ............. 55
3.14. In e az de la p´agina show playlis ............... 56
3.15. Diag ama de secuencia de la issue 2527. ............ 57
3.16. Diag ama ER de la issue 2582. ................. 59
3.17. Diag ama de clases de la issue 2582. .............. 60
3.18. In e az de la p´agina login.php. ................ 61
ii
Ampache U zi Gonz´alez Llaguno
1.3. Ampache
Ampache es una aplicaci´on web des inada a la ansmisi´on de audio y
´ıdeo que ealiza la unci´on de adminis aci´on de a chi os y me ada os.
Figu a 1.1: Logo ipo de Ampache.5
En e las ca ac e ´ıs icas des acables de Ampache es ´an incluidas (Ampa-
che [2020]):
Almacenamien o de m´usica: ca alogaci´on y adminis aci´on de co-
lecciones de m´usica a a ´es de una in e az web.
S eaming audio isual: ansmisi´on de con enido a ep oduc o es
mul imedia y ep oducci´on di ec a median e la p´agina web con el e-
p oduc o HTML5.
So wa e lib e: espe a la libe ad del usua io y el c´odigo es lib e-
men e accesible bajo la licencia AGPL 36.
Compa ibilidad: posibilidad de conexi´on a aplicaciones de e ce os
median e p o ocolos de ansmisi´on de in o maci´on.
5Publicado po el au o SUTJael bajo la licencia p´ublica GPL 2.
6La licencia AGPL 3 es una e si´on modi icada de la licencia GPL 3, que con iene una
´unica clausula adicional: al ejecu a un p og ama modi icado en un se ido , el se ido
debe pe mi i la desca ga del c´odigo uen e co espondien e a la e si´on modi icada que se
ejecu a (Founda ion [2015]).
4

U zi Gonz´alez Llaguno Ampache
1.3.1. Si uaci´on del p oyec o
Publicado en 2001 po Sco K e on, miemb o de la O egon S a e Uni-
e si y, el p oyec o Ampache ha enido m´ul iples man enedo es y m´as de 100
con ibuido es a lo la go de sus dos d´ecadas de exis encia (Figu a 1.2). Desde
2019 el p oyec o es man enido po el usua io aus aliano ((lachlan-00)).
Figu a 1.2: G ´a ico de ac i idad en el desa ollo de Ampache.7
Teniendo en cuen a que la mayo ´ıa de p oyec os open sou ce ienen una
espe anza de ida in e io a los dos a˜nos (Liao e al. [2017]), la longe idad de
Ampache se con ie e en una ca ac e ´ıs ica muy des acable del p oyec o8.
A echa de edacci´on de es a memo ia, la ´ul ima e si´on publicada es la
4.4.3 (5 de junio del 2021). La e si´on 5.0.0 — que inclui ´a cambios no ables
en la API y una mode nizaci´on de la in e az de usua io — se encuen a en
desa ollo ac ualmen e.
En pa alelo al desa ollo de nue as e siones, se es ´a ealizando un nue o
on end basado en el amewo k Reac — al que ambi´en se con ibui ´a con
es e abajo — con el obje i o de ob ene una in e az de usua io que enga
un aspec o m´as ac ualizado.
7Las apo aciones an e io es a 2006 no se ealiza on en el eposi o io ac ual de Gi Hub,
po lo que no hay egis o de ac i idad pa a esa anja de a˜nos.
8El e ec o Lindy, desc i o po el ma em´a ico Benoi Mandelb o y ampliado po Nassim
Taleb, indica que una ecnolog´ıa — o cualquie cosa no pe ecede a — aumen a su espe anza
de ida con cada d´ıa adicional de exis encia. Un so wa e que ha exis ido du an e 20 a˜nos
es p obable que siga exis iendo o os 20 a˜nos (Taleb [2012]).
5
Ampache U zi Gonz´alez Llaguno
1.3.2. A qui ec u a
Ampache sigue un un modelo de a qui ec u a clien e-se ido (Figu a
1.3). Los usua ios (clien e) in e accionan con la aplicaci´on (se ido ) me-
dian e dos posibles ´ıas: la in e az web HTML5 o los conec o es API pa a
clien es de e ce os.
Es a l´ogica se ejecu a sob e un se ido HTTP (Apache, NGINX, ligh pd,
e c.) el cual se enca ga de la comunicaci´on con el es o de elemen os y la base
de da os.
Figu a 1.3: A qui ec u a de Ampache.
La in e az web, desde la que acceden los na egado es, u iliza PHP y
Ja aSc ip pa a la pa e l´ogica y HTML5 jun o a CSS3 pa a la es uc u aci´on
de con enido. Dispone de un ep oduc o de audio y ´ıdeo y pe mi e la ges i´on
de la con igu aci´on de la aplicaci´on.
La es uc u a in e na de Ampache (Figu a 1.4) es ´a di idida en una je-
a qu´ıa de di ec o ios. La l´ogica de negocio se encuen a en la ca pe a ((lib)),
es aqu´ı donde es ´an de inidas las clases y m´e odos p incipales.
6
U zi Gonz´alez Llaguno Ampache
Figu a 1.4: Es uc u a in e na de Ampache.
El c´odigo base no es ´a desa ollado sob e ning´un amewo k, aunque s´ı
que se u ilizan algunas uncionalidades especi icas de algunos amewo ks
pa a a eas conc e as.
Se hace uso de m´ul iples lib e ´ıas ex e nas que acili an el desa ollo de
uncionalidades. Po ejemplo, se hace uso de la lib e ´ıa FFmpeg9pa a la
con e si´on de codecs; jQue y10 pa a la manipulaci´on de elemen os HTML; y
Boo s ap11 pa a la in e az g ´a ica. O as lib e ´ıas ex e nas u ilizadas son:
9FFmpeg: a comple e, c oss-pla o m solu ion o eco d, con e and s eam audio and
ideo (www. mpeg.o g)
10jQue y: he W i e Less, Do Mo e, Ja aSc ip Lib a y (www.jque y.com)
11Boo s ap: he mos popula HTML, CSS, and JS lib a y in he wo ld (www.
ge boo s ap.com)
7
Ampache U zi Gonz´alez Llaguno
Au o a.js12: amewo k pa a la decodi icaci´on y ep oducci´on de audio.
Bee s13: m´odulo pa a el manejo de a chi os mul imedia, ca aloga co-
lecciones y ges iona me ada os.
Cap cha: m´odulo de segu idad pa a p o ege los se icios de a aques
au oma izados.
Ho de14: amewo k de uso gene al que o ece uncionalidades pa a la
ges i´on de p e e encias, comp esi´on, de ecci´on de na egado , e c.
OAu h15: es ´anda de segu idad pa a la delegaci´on de acceso.
Rhinoslide 16: lib e ´ıa pa a la c eaci´on de e ec os especiales.
Ube Viz17: gene ado de e ec os isuales en base a audio.
Po o a pa e, los conec o es pe mi en la comunicaci´on con o as aplica-
ciones. Aplicaciones como Subsonic18 o DSub19 son compa ibles con Ampache
y habili an una expe iencia na i a pa a disposi i os And oid.
Pa a ello se es ablece un canal basado en un p o ocolo de comunicaci´on
(UPnP,WebDAV,DAAP, e c.) que ansmi e la in o maci´on en e ambas
aplicaciones. De es a mane a, se ab e la posibilidad de conec a se a Ampache
desde un disposi i o m´o il con una aplicaci´on na i a a su sis ema ope a i o.
12Au o a.js: Ja aSc ip audio decoding amewo k (www.gi hub.com/audiocogs/
au o a.js)
13Bee s: media lib a y managemen sys em o obsessi e music geeks (h ps://bee s.
io/)
14Ho de: gene al-pu pose web applica ion amewo k in PHP (www.ho de.o g)
15OAu h: indus y-s anda d p o ocol o au ho iza ion (www.oau h.ne )
16Rhinoslide : he mos lexible jQue y slide /slideshow (www. hinoslide .com)
17Ube Viz: cus om eal- ime audio- eac i e music isualize s (www.ube iz.io)
18Subsonic: s eam music and ideo om you home compu e o you phone (www.
subsonic.o g/pages/apps.jsp)
19DSub: music s eaming app o Subsonic se e s (www.gi hub.com/dane en2005/
Subsonic)
8
U zi Gonz´alez Llaguno Obje i os
1.4. Obje i os
A lo la go de la o maci´on en el g ado de Ingenie ´ıa In o m´a ica de Ges-
i´on y Sis emas de In o maci´on se han adqui ido mul i ud de compe encias.
En es e abajo se busca pone en p ´ac ica las compe encias y conocimien-
os adqui idos en el g ado pa a ayuda a co egi e o es y a˜nadi nue as
uncionalidades a un so wa e p o esional.
1.4.1. Aplica las compe encias ob enidas en el g ado
Se busca demos a la capacidad de las ecnolog´ıas is as en el g ado pa a
su implemen aci´on en un p oyec o eal. Siendo capaz de de ini equisi os a
ni el de so wa e que se ajus en a las especi icaciones y es ´anda es de la
indus ia.
Es o implica un conocimien o de la a qui ec u a y las dis in as ases de
desa ollo de un p oyec o so wa e, en e las que se encuen an: la cap u-
a de equisi os es ablecidos po el clien e, el an´alisis y dise˜no siguiendo los
equisi os es ablecidos, la implemen aci´on l´ogica median e lenguajes de p o-
g amaci´on, y la ealizaci´on de p uebas de calidad que e i iquen los esul ados
ob enidos.
Todo ello debe queda adecuadamen e documen ado pa a pe mi i la com-
p ensi´on po e ce os y acili a un desa ollo colabo a i o, es a documen-
aci´on debe ene un lenguaje cien ´ı ico- ´ecnico que se adec´ue al con ex o
in o m´a ico.
1.4.2. Con ibui a un so wa e lib e
Exis e una g an di e encia en e comenza un nue o p oyec o desde abula
asa, a ene que comp ende el abajo que decenas de pe sonas han ealizado
du an e d´ecadas, como es el caso de Ampache.
Es una p opiedad ecuen e de los p oyec os de g an en e gadu a en-
con a secciones que con engan ecnolog´ıa des asada y con poca o ninguna
documen aci´on. Lo ecomendable en esas si uaciones es ealiza una e ac-
9

Obje i os U zi Gonz´alez Llaguno
o izaci´on del c´odigo con el obje i o de educi la deuda ´ecnica (A i and
Rana [2020]).
Tambi´en es necesa io un conocimien o del ma co legal en el que se de-
sa olla un p oyec o open sou ce. Pa a ello es necesa io un es udio de la
pe misi idad de dis ibuci´on, modi icaci´on y uso come cial que o ecen los
dis in os ipos de licencias exis en es (AGPL, Apache, C ea i e Commons,
MIT, e c.).
1.4.3. Capacidad de elaci´on in e pe sonal en una len-
gua no ma e na
Realiza con ibuciones a un so wa e open sou ce supone un e o adicio-
nal, ya que es necesa ia una comunicaci´on — gene almen e en ingl´es — con
pe sonas de dis in as nacionalidades, cul u as y g´ene os. Dada la p oblem´a i-
ca de es a a ea, es ecuen e encon a c´odigos de conduc a en los p oyec os
open sou ce indicando expl´ıci amen e unas no mas que pe mi an un a o
espe uoso con el es o de pe sonas.
1.4.4. Ap endizaje au ´onomo de nue as ecnolog´ıas
Po muy ap os que esul en los conocimien os adqui idos en el g ado,
es os no son su icien es pa a abaja en un campo an din´amico como es la
in o m´a ica.
El ´ambi o in o m´a ico es uno donde la inno aci´on en la c eaci´on de nue as
me odolog´ıas y he amien as es cons an e. Es po ello que es necesa ia una
o maci´on con inua que se adap e a la di ecci´on en la que e oluciona el campo.
Tomando como base los conocimien os ob enidos en el g ado, median e el
desa ollo de es e abajo se busca expandi y p o undiza en las capacidades
´ecnicas an o de las ecnolog´ıas is as en el g ado como de ecnolog´ıas en
las que se ´a necesa ia una nue a o maci´on au ´onoma indi idual.
10
2. Me odolog´ıa
Plani icaci´on U zi Gonz´alez Llaguno
2.1. Plani icaci´on
Con el obje i o de acili a la plani icaci´on de es e abajo, los dis in os
m´odulos que lo componen han sido descompues os median e un diag ama
EDT.
El diag ama EDT esul an e es ´a compues o de las siguien es ag upacio-
nes (Figu a 2.1): plani icaci´on, o maci´on, cap u a de equisi os, an´alisis y
dise˜no, desa ollo, p uebas y documen aci´on.
Figu a 2.1: Visi´on gene al del diag ama EDT.
1. Plani icaci´on y seguimien o: es a ag upaci´on incluye las ac i idades
de coo dinaci´on pa a la ealizaci´on del p oyec o.
2. Fo maci´on: en es a ag upaci´on es ´an incluidas las he amien as y ec-
nolog´ıas que equie en de un ap endizaje au ´onomo adicional.
3. Cap u a de equisi os: ag upaci´on de la in o maci´on eque ida pa a
pode a on a los eque imien os de los s akeholde s.
4. An´alisis y dise˜no: es a ag upaci´on hace e e encia a la ase de mode-
lado y de inici´on de la es uc u a del so wa e a se desa ollado.
5. Implemen aci´on: ag upaci´on que incluye la ase de p og amaci´on del
c´odigo siguiendo el dise˜no p e iamen e de inido.
6. P uebas: en es a ag upaci´on es ´an con enidas las dis in as p uebas de
calidad y usabilidad ela i as al c´odigo desa ollado.
7. Documen aci´on: ag upaci´on que con iene los elemen os elacionados
a la ealizaci´on de la memo ia del p oyec o.
12
U zi Gonz´alez Llaguno Plani icaci´on
2.1.1. Plani icaci´on
En es a ag upaci´on es ´an incluidos los paque es de abajo (Figu a 2.2 y
Tablas 2.1,2.2,2.3,2.4) que o ecen un sopo e a la ges i´on de la ejecuci´on
del p oyec o.
Figu a 2.2: Paque es de abajo de la ag upaci´on ((Plani icaci´on)).
Diag ama EDT
Ag upaci´on: Plani icaci´on.
Du aci´on es imada: 5 ho as.
Desc ipci´on: la ealizaci´on de es e diag ama EDT, donde se descomponen
en paque es de abajo las a eas a ealiza a lo la go de la elabo aci´on del
p oyec o.
Salidas/En egables: diag ama EDT.
Recu sos necesa ios:so wa e ((diag ams.ne )).
Tabla 2.1: Paque e de abajo ((Diag ama EDT)).
13
Plani icaci´on U zi Gonz´alez Llaguno
An´alisis y dise˜no Issue 2582
Ag upaci´on: An´alisis y dise˜no.
Du aci´on es imada: 15 ho as.
Desc ipci´on: una ez dispues a la cap u a de equisi os, elabo aci´on y
desa ollo de diag amas ER, diag amas de clase y diag amas de secuencia.
Salidas/En egables: diag amas gene ados.
Recu sos necesa ios: caso de uso 2582 y so wa e ((diag ams.ne )).
Tabla 2.13: Paque e de abajo ((An´alisis y dise˜no Issue 2582)).
An´alisis y dise˜no Reac
Ag upaci´on: An´alisis y dise˜no.
Du aci´on es imada: 24 ho as.
Desc ipci´on: de inici´on de las clases, m´e odos y lujos de comunicaci´on
elacionados a las uncionalidades del nue o on end.
Salidas/En egables: diag amas gene ados.
Recu sos necesa ios: casos de uso elacionados al desa ollo Reac y
so wa e ((diag ams.ne )).
Tabla 2.14: Paque e de abajo ((An´alisis y dise˜no Reac )).
20

U zi Gonz´alez Llaguno Plani icaci´on
2.1.5. Implemen aci´on
En es a ag upaci´on es ´an incluidos los paque es de abajo (Figu a 2.6 y
Tablas 2.15,2.16,2.17) ela i os a la p og amaci´on l´ogica del c´odigo en base
a los dise˜nos concebidos p e iamen e.
Figu a 2.6: Paque es de abajo de la ag upaci´on ((Implemen aci´on)).
Implemen aci´on Issue 2527
Ag upaci´on: Implemen aci´on
Du aci´on es imada: 12 ho as
Desc ipci´on: p oceso de p og amaci´on en el lenguaje PHP siguiendo el
dise˜no de inido en la ase de an´alisis.
Salidas/En egables: c´odigo ela i o a la issue 2527.
Recu sos necesa ios: diag amas ER, diag amas de clase, diag amas aso-
cia i os y diag amas de secuencia ela i os a la issue 2527.
Tabla 2.15: Paque e de abajo ((Implemen aci´on Issue 2527)).
21
Plani icaci´on U zi Gonz´alez Llaguno
Implemen aci´on Issue 2582
Ag upaci´on: Implemen aci´on
Du aci´on es imada: 8 ho as
Desc ipci´on: de inici´on de la l´ogica de la issue 2582 median e c´odigo.
Salidas/En egables: c´odigo ela i o a la issue 2582.
Recu sos necesa ios: diag amas ER, diag amas de clase, diag amas aso-
cia i os y diag amas de secuencia ela i os a la issue 2582.
Tabla 2.16: Paque e de abajo ((Implemen aci´on Issue 2582)).
Implemen aci´on Reac
Ag upaci´on: Implemen aci´on
Du aci´on es imada: 15 ho as.
Desc ipci´on: desa ollo de c´odigo en el amewo k Reac siguiendo las
especi icaciones de dise˜no de inidas.
Salidas/En egables: c´odigo ela i o al desa ollo Reac .
Recu sos necesa ios: diag amas de inidos en el an´alisis y dise˜no de
Reac .
Tabla 2.17: Paque e de abajo ((Implemen aci´on Reac )).
22
U zi Gonz´alez Llaguno Plani icaci´on
2.1.6. P uebas
En es a ag upaci´on es ´an incluidos los paque es de abajo (Figu a 2.7 y
Tablas 2.18,2.19,2.20) ela i os a la comp obaci´on de la calidad y usabilidad
del c´odigo gene ado.
Figu a 2.7: Paque es de abajo de la ag upaci´on ((P uebas)).
P uebas Issue 2527
Ag upaci´on: P uebas.
Du aci´on es imada: 10 ho as.
Desc ipci´on: e i icaci´on de la calidad del c´odigo, de modo que se iden i-
iquen y solucionen los e o es encon ados an es de in eg a la implemen-
aci´on con el p oduc o inal.
Salidas/En egables: documen aci´on de las p uebas ealizadas sob e la
implemen aci´on de la issue 2527.
Recu sos necesa ios: c´odigo ela i o a la issue 2527.
Tabla 2.18: Paque e de abajo ((P uebas Issue 2527)).
23
Plani icaci´on U zi Gonz´alez Llaguno
P uebas Issue 2582
Ag upaci´on: P uebas.
Du aci´on es imada: 5 ho as.
Desc ipci´on: comp obaci´on de que la implemen aci´on ealizada alcanza
un ni el de calidad y usabilidad acep able.
Salidas/En egables: documen aci´on de las p uebas ealizadas sob e la
implemen aci´on de la issue 2582.
Recu sos necesa ios: c´odigo ela i o a la issue 2582.
Tabla 2.19: Paque e de abajo ((P uebas Issue 2582)).
P uebas Reac
Ag upaci´on: P uebas.
Du aci´on es imada: 15 ho as.
Desc ipci´on: es eo de la implemen aci´on ealizada con el obje i o de
comp oba e o es en el dise˜no o desa ollo.
Salidas/En egables: documen aci´on de las p uebas ealizadas sob e la
implemen aci´on del desa ollo Reac .
Recu sos necesa ios: c´odigo ela i o al desa ollo Reac .
Tabla 2.20: Paque e de abajo ((P uebas Reac )).
2.1.7. Documen aci´on
En es a ag upaci´on es ´an incluidos los paque es de abajo (Figu a 2.8 y
Tablas 2.21,2.22) ela i os a la in es igaci´on y edacci´on de los documen os
elacionados a la ejecuci´on del p oyec o.
24
U zi Gonz´alez Llaguno Plani icaci´on
Figu a 2.8: Paque es de abajo de la ag upaci´on ((Documen aci´on)).
Memo ia
Ag upaci´on: Documen aci´on.
Du aci´on es imada: 160 ho as.
Desc ipci´on: in es igaci´on, edacci´on y maque aci´on del p oceso comple-
o de la elabo aci´on del p oyec o.
Salidas/En egables: documen o de memo ia del TFG.
Recu sos necesa ios: odas las igu as, ex os, ablas, diag amas y c´odigo
gene ados a lo la go del p oyec o.
Tabla 2.21: Paque e de abajo ((Memo ia)).
De ensa
Ag upaci´on: Documen aci´on.
Du aci´on es imada: 8 ho as.
Desc ipci´on: c eaci´on de las diaposi i as pa a la p esen aci´on de la de-
ensa del abajo.
Salidas/En egables: conjun o de diaposi i as.
Recu sos necesa ios: igu as, ex os, ablas y diag amas m´as ele an es
del p oyec o.
Tabla 2.22: Paque e de abajo ((De ensa)).
25

Plani icaci´on U zi Gonz´alez Llaguno
2.1.8. Resumen de la plani icaci´on
Realizando una suma de la du aci´on indi idual de cada paque e de aba-
jo, se ob iene una du aci´on o al de 420 ho as pa a la ejecuci´on del p oyec o
comple o (Tabla 2.23).
Tabla 2.23: Resumen de iempos y p ecedencias del EDT.
26
U zi Gonz´alez Llaguno C onog ama
2.2. C onog ama
El p oyec o iene como echa inicio el d´ıa 1 de sep iemb e de 2020 y echa
de cie e el 23 de julio de 20211.
Exis en cie as a eas — como la edacci´on de la memo ia, las euniones
y el in e cambio de emails — que se ealizan a lo la go de odo el p oyec o
y o as — como la o maci´on en las he amien as — que solo se ealizan a lo
la go del desa ollo de las issues.
Se han de inido es hi os, cada uno es ´a asociado a la comple i ud del
desa ollo e in eg aci´on de una issue.
Hi o 1 - Issue 2527 comple ada: habiendo comenzado en oc ub e,
se espe a ene inalizada la p ime a issue pa a el d´ıa 1 de diciemb e
de 2020.
Hi o 2 - Issue 2582 comple ada: el desa ollo de la segunda issue
comienza inmedia amen e despu´es de e mina con la p ime a. Se es a-
blece como echa obje i o ene su in eg aci´on ealizada pa a el p ime
d´ıa de eb e o de 2021.
Hi o 3 - Funcionalidades Reac comple adas: dado que el ´ul imo
hi o se ealiza as la comple i ud de los dos an e io es, exis e la posibi-
lidad de que su plazo de ejecuci´on a ´ıe en mayo medida. No obs an e,
se ha es ablecido como me a inaliza su desa ollo pa a el 1 de ab il
de 2021.
Median e un diag ama Gan (Figu a 2.9) es posible ep esen a isual-
men e las echas mencionadas en es a secci´on y los paque es de abajo des-
c i os en el EDT de la secci´on an e io .
1La echa de cie e puede a ia en e el 19 y 23 de julio dependiendo de la echa de
de ensa asignada po la uni e sidad.
27
C onog ama U zi Gonz´alez Llaguno
Figu a 2.9: Diag ama Gan de la plani icaci´on del p oyec o.
28
U zi Gonz´alez Llaguno He amien as u ilizadas
2.3. He amien as u ilizadas
Pa a acili a las labo es elacionadas a es e abajo, se ha hecho uso de
he amien as y se icios que acili an la elabo aci´on del mismo. En e ellas,
las m´as des acables y di ec amen e elacionadas con el abajo han sido:
Apache: se ido web. En la con igu aci´on u ilizada, la aplicaci´on de
Ampache se ejecu a sob e un se ido mon ado en un se icio Apache.
diag ams.ne :so wa e de c eaci´on de diag amas. Los diag amas de
clases, diag amas asocia i os y diag amas de secuencia han sido eali-
zados con es a he amien a.
Gan P ojec : aplicaci´on de plani icaci´on de p oyec ow. Su uso ha
pe mi ido la ealizaci´on del diag ama Gan u ilizado pa a plani ica
es e p oyec o.
Gi : sis ema de con ol de e siones. Se ha u ilizado jun o a la pla a o -
ma Gi Hub2pa a ges iona las dis in as e siones de c´odigo gene adas.
In elliJ IDEA: en o no de desa ollo in eg ado. G acias a las uncio-
nalidades que o ece pa a el an´alisis de c´odigo, su uso ha acili ado la
comp ensi´on y desa ollo.
L
A
T
EX: sis ema de p epa aci´on de documen os. La documen aci´on aso-
ciada al abajo ha sido edac ada en el se icio O e lea 3el cual u iliza
el sis ema LaTeX.
MySQL Wo kbench:so wa e pa a el dise˜no isual de bases de da-
os. Su uso ha pe mi ido una mejo comp ensi´on de la base de da os
de Ampache. Los diag amas ER han sido gene ados median e es a he-
amien a.
Teleg am: se icio de mensaje ´ıa ins an ´anea4. Es el canal de comu-
nicaci´on gene al de los miemb os de la comunidad.
2Gi Hub: whe e he wo ld builds so wa e (www.gi hub.com)
3O e lea : online LaTeX Edi o (www.o e lea .com)
4Teleg am: a new e a o messaging (www. eleg am.o g)
29
An´alisis de iesgos U zi Gonz´alez Llaguno
2.5. An´alisis de iesgos
Tal y como es ablece la amilia de es ´anda es pa a la ges i´on del iesgo
ISO 31000, se busca una in eg aci´on de no ma i as en los p ocesos (Figu a
2.10), con el obje i o de iden i ica y ges iona los iesgos exis en es en la
ejecuci´on de un p oyec o.
Figu a 2.10: P oceso de ges i´on de iesgos.8
Pa a ello, se iden i ican los p incipales iesgos exis en es y se de ine pa a
cada uno:
P e enci´on: pau as pa a educi la posibilidad de que el iesgo se
ma e ialice.
Plan de con ingencia: en caso de p oduci se, pasos a oma pa a
minimiza el impac o causado.
P obabilidad: es imaci´on de la p obabilidad de que suceda el iesgo.
Impac o: consecuencias de su ma e ializaci´on.
Riesgo: mul iplicaci´on de la p obabilidad po el impac o pa a ob ene
una ci a de e aluaci´on del iesgo.
8Publicado po la In e na ional O ganiza ion o S anda diza ion (ISO [2018]).
36

U zi Gonz´alez Llaguno An´alisis de iesgos
Plani icaci´on inco ec a
Una de inici´on demasiado ambiciosa del alcance, una o maci´on len a en
las nue as he amien as o una es imaci´on gene al imp ecisa del iempo nece-
sa io pa a la ejecuci´on, son mo i os que gene an un iesgo en la ealizaci´on
del p oyec o.
P e enci´on
Realiza un c onog ama de los iempos ma cados.
Pe mi i holgu a en e a eas pa a palia posibles incon enien es.
De ini con el u o del abajo un alcance adecuado.
Plan de con ingencia
Rede ini el alcance del abajo.
Aumen a el n´ume o de ho as dedicadas a su ealizaci´on.
P obabilidad
Plani icaci´on lige amen e inco ec a - p obabilidad es imada 50 %.
Plani icaci´on excesi amen e inco ec a - p obabilidad es imada 2 %.
Impac o
Plani icaci´on lige amen e inco ec a: 5 d´ıas ×3 ho as/d´ıa = 15 ho as.
Impac o medio.
Plani icaci´on excesi amen e inco ec a: 30 d´ıas ×3 ho as/d´ıa = 90
ho as. Impac o al o.
Riesgo
Plani icaci´on lige amen e inco ec a: 50 % ×15 ho as = 7,5. Riesgo
medio.
Plani icaci´on excesi amen e inco ec a: 2 % ×90 ho as = 1,8. Riesgo
bajo.
37
An´alisis de iesgos U zi Gonz´alez Llaguno
Cancelaci´on o abandono del p oyec o p incipal
Al es a abajando sob e un p oyec o eal y dado que no exis e ning´un
con a o o mal, exis e la posibilidad de que el desa ollado p incipal aban-
done el p oyec o sin p e io a iso, bien sea po mo i o de ue za mayo ( a-
llecimien o, en e medad, e c.) o po olun ad p opia.
P e enci´on
Comunica se con el desa ollado p incipal pa a conoce su comp omiso
con el man enimien o del p oyec o.
Plan de con ingencia
Busca o o p oyec o al que pode con ibui .
Anima a o os desa ollado es con expe iencia a oma la posici´on de
desa ollado p incipal.
P obabilidad
Baja empo al del desa ollado p incipal 5 %.
Ausencia pe manen e del desa ollado p incipal 1 %.
Impac o
Baja empo al del desa ollado p incipal: 10 d´ıas ×3 ho as/d´ıa = 30
ho as. Impac o medio.
Ausencia pe manen e del desa ollado p incipal: 90 d´ıas ×3 ho as/d´ıa
= 270 ho as. Impac o muy al o.
Riesgo
Baja empo al del desa ollado p incipal: 5 % ×30 ho as = 1,5. Riesgo
bajo.
Ausencia pe manen e del desa ollado p incipal: 1 % ×270 ho as =
2,7. Riesgo bajo.
38
U zi Gonz´alez Llaguno An´alisis de iesgos
Incapacidad empo al
Baja po en e medad o acciden e que imposibili a empo almen e la ca-
pacidad pa a abaja .
P e enci´on
De i adas del abajo
•E i a mo imien os c ´onicos epe i i os.
•Es ablece un espacio de abajo e gon´omico.
•Es ablece pausas des inadas al descanso.
No de i adas del abajo
•Segui las pau as de salud gene al ecomendadas (descanso, die a,
dis anciamien o social, higiene, e c.) po los expe os en salud.
Plan de con ingencia
Solici a una alo aci´on de la lesi´on en un cen o m´edico homologado.
Segui las pau as ecibidas en la alo aci´on solici ada.
P obabilidad
Lesi´on le e (una semana de baja) - p obabilidad es imada 20 %.
Lesi´on g a e (un mes de baja) - p obabilidad es imada 2 %.
Impac o
Lesi´on le e: 7 d´ıas ×3 ho as/d´ıa = 21 ho as. Impac o medio.
Lesi´on g a e: 30 d´ıas ×3 ho as/d´ıa = 90 ho as. Impac o al o.
Riesgo
Lesi´on le e: 20 % ×21 ho as = 4,2. Riesgo bajo.
Lesi´on g a e: 2 % ×90 ho as = 1,8. Riesgo bajo.
39
An´alisis de iesgos U zi Gonz´alez Llaguno
P´e dida del abajo ealizado
Exis en mul i ud de mo i os ( i us o bugs en el so wa e; allo, p´e dida
o obo del ha dwa e; e o humano) po los que se puede da un de e io o o
p´e dida comple a del abajo ealizado, an o a ni el de documen aci´on como
de c´odigo.
P e enci´on
Realiza copias de segu idad pe i´odicas.
Man ene edundancia de los iche os en dis in os luga es.
U iliza e siones es ables y ac ualizadas de so wa e.
U iliza adecuadamen e el equipo in o m´a ico.
Plan de con ingencia
Vol e a ealiza el abajo pe dido.
En caso de se necesa io, aplaza las echas es imadas de ejecuci´on.
P obabilidad
P´e dida le e (una semana de abajo) - p obabilidad es imada 10 %.
P´e dida g a e ( es meses de abajo) - p obabilidad es imada 1 %.
Impac o
P´e dida le e: 7 d´ıas ×3 ho as/d´ıa = 21 ho as. Impac o medio.
P´e dida g a e: 90 d´ıas ×3 ho as/d´ıa = 180 ho as. Impac o muy al o.
Riesgo
P´e dida le e: 10 % ×21 ho as = 2,1. Riesgo bajo.
P´e dida g a e: 1 % ×180 ho as = 1,8. Riesgo bajo.
40
3. Ejecuci´on

Cap u a de equisi os U zi Gonz´alez Llaguno
3.1. Cap u a de equisi os
En es a secci´on se desc iben los ac o es que in e ac ´uan con el sis ema y
los casos de uso asociados. Tambi´en se p esen an las issues escogidas jun o a
una desc ipci´on de sus equisi os y obje i os a alcanza .
3.1.1. Je a qu´ıa de ac o es
Exis en es ipos de ac o es que u ilizan el sis ema (Figu a 3.1):
Usua io An´onimo: es e ac o hace e e encia a los pa icipan es que
acceden a la aplicaci´on de Ampache sin habe se iden i icado con una
cuen a egis ada en el sis ema.
Usua io: una ez un ((Usua io An´onimo)) se iden i ica con unas c e-
denciales ´alidas en la p´agina de login es e pasa a se un ((Usua io)).
Adminis ado : exis e una e ce a ca ego ´ıa des inada a las cuen as
de se icio pa a la adminis aci´on y man enimien o, pa a accede al
sis ema como ((Adminis ado )) es necesa io u iliza las c edenciales de
la cuen a de se icio c eada en la ins alaci´on de la aplicaci´on.
Figu a 3.1: Je a qu´ıa de ac o es.
42
U zi Gonz´alez Llaguno Cap u a de equisi os
3.1.2. Casos de uso
Los ac o es de inidos pueden ealiza las siguien es acciones (Figu a 3.2)
en la aplicaci´on:
Figu a 3.2: Casos de uso gene ales.
43
Cap u a de equisi os U zi Gonz´alez Llaguno
3.1.3. Selecci´on de issues
Siendo un p oyec o p´ublico, es la p opia comunidad de usua ios quien
p opone las nue as ca ac e ´ıs icas e in o ma de los allos o bugs exis en es de
mane a colabo a i a. Es a ges i´on de equisi os y sus espec i as soluciones
se ges iona median e la he amien a de issues de Gi Hub1(Figu a 3.3).
Figu a 3.3: P´agina p incipal de la he amien a issue.
El sis ema de as eo de issues pe mi e cen aliza en un ´unico luga odas
las incidencias y apo a g anula idad pues o que cada incidencia es a ada
de mane a indi idual. Una issue con iene los siguien es elemen os:
T´ı ulo y desc ipci´on indicando cual es el ema a a a .
Una pe sona apode ada que se ´a la esponsable de su esoluci´on.
Una secci´on de comen a ios que acili e la comunicaci´on en e de-
sa ollado es y usua ios.
Opcionalmen e, es posible a˜nadi e ique as (p.e. ((In e az)),((U gen e)),
((Mejo a))) que acili en la ca ego izaci´on.
1Gi Hub Guides: mas e ing issues (h ps://guides.gi hub.com/ ea u es/issues)
(Guides [2020])
44
U zi Gonz´alez Llaguno Cap u a de equisi os
#2527 [Fea u e Reques ] To al ime
Es a incidencia se ab i´o en sep iemb e de 2020 po el usua io ((4phun)) de
Ohio, Es ados Unidos (4phun [2020]). Posee las e ique as: in e az, base de
da os y mejo a (Figu a 3.4). La desc ipci´on inicial menciona lo siguien e:
((Hi, I hink i would be a g ea addi ion o he web UI o show he
o al ime o playlis s, albums, and whe e e else i may apply.))
Figu a 3.4: E ique as de la issue #2527.
Se a a de una incidencia pa a solici a una nue a ca ac e ´ıs ica en la
in e az de usua io. En conc e o, se solici a que las colecciones de canciones
como los ´albumes y lis as de ep oducci´on mues en su du aci´on o al.
#2582 [Fea u e Reques ] Changing login sc een backg ound
En es e caso, el usua io ((agopo)) de Alemania (agopo [2020]) indica que
le gus a ´ıa pode de ini un backg ound pa a la p´agina de inicio de sesi´on sin
necesidad de al e a las hojas de es ilo de la aplicaci´on:
((I’d like o be able o change he login sc een backg ound wi hou
ha ing o ampe wi h he main heme.))
Tambi´en especi ica el lujo de usabilidad deseado, indicando que desea ´ıa
que al accede como adminis ado del sis ema a los ajus es de p e e encias,
exis iese una opci´on pa a de e mina una URL que di ija a una imagen y que
es a imagen se aplique como ondo.
Conside ando los equisi os, el desa ollado p incipal incluye es a issue
den o del p oyec o ((Ampache Imp o emen and Mode niza ion)) y le asigna
las e ique as: UI y enhancemen (Figu a 3.5).
45
An´alisis y dise˜no U zi Gonz´alez Llaguno
3.3. An´alisis y dise˜no
Es a secci´on a a los aspec os de an´alisis y dise˜no co espondien es a
cada uncionalidad implemen ada.
Al a a se de un p oyec o de g an magni ud que posee cien os de clases
y ablas esul a imposible ep esen a median e un ´unico diag ama odas las
clases del sis ema, po lo que se ha decidido mos a con cada uncionalidad
las clases y ablas pe inen es a la misma.
A con inuaci´on, se mues an los diag amas elacionales, diag amas de
clase y diag amas de secuencia de cada issue.
3.3.1. #2527 [Fea u e Reques ] To al ime
Una isi´on de al o ni el de es a issue consis e en: ob ene la du aci´on o al
de una lis a de ep oducci´on median e la suma de la du aci´on sus canciones
y mos a dicha in o maci´on median e la in e az de usua io.
Pa a ello, se ha analizado la a qui ec u a del p og ama. Iden i icando los
luga es donde se almacenan de da os, y la comunicaci´on en e clases que
pe mi a accede a ellos y mos a los.
52

U zi Gonz´alez Llaguno An´alisis y dise˜no
Diag ama ER (#2527)
En p ime luga , ha sido necesa io iden i ica las ablas de la bases de
da os que con ienen la in o maci´on sob e la du aci´on de las canciones (Figu a
3.11). La abla song con iene la du aci´on de una canci´on y es ´a elacionada
con la abla playlis median e la elaci´on playlis da a. Adem´as oda
canci´on pe enece a un a is a y es ´a con enida en un ca alogo.
Figu a 3.11: Diag ama ER de la issue 2527.
Diag ama de clases (#2527)
A con inuaci´on, se ha analizado como ob ene es a in o maci´on median e
las clases adecuadas. En el diag ama de clases ealizado (Figu a 3.12), se
mues a la je a qu´ıa de las clases que implemen an las lis as de ep oducci´on.
La clase Playlis he eda de la clase abs ac a playlis objec , la cual
a su ez, he eda de la clase abs ac a da abase objec .
Tambi´en se obse a que la clase abs ac a playlis objec implemen a
la in e az lib a y i em, la cual he eda los a ibu os de playable i em.
53
An´alisis y dise˜no U zi Gonz´alez Llaguno
Las clases B owse ySea ch son u ilizadas pa a ealiza las consul as sob e
la base de da os y ob ene la du aci´on o al.
Figu a 3.12: Diag ama de clases de la issue 2527.
54
U zi Gonz´alez Llaguno An´alisis y dise˜no
Diag amas asocia i os (#2527)
T as ob ene la in o maci´on, es necesa io mos a la median e la in e az
de usua io. Pa a acili a es a labo , se han elabo ado diag amas que asocian
los elemen os de la in e az de usua io con las clases del sis ema.
En es e caso, dos p´aginas de la in e az mues an la in o maci´on ela i a
a las lis as de ep oducci´on: (1) el sc ip show playlis s (Figu a 3.13) se
enca ga de mos a una lis a de las lis as de ep oducci´on exis en es y (2)
el sc ip show playlis (Figu a 3.14) mues a los elemen os o canciones
con enidas en una lis a de ep oducci´on conc e a.
Figu a 3.13: In e az de la p´agina show playlis s.
55
An´alisis y dise˜no U zi Gonz´alez Llaguno
Figu a 3.14: In e az de la p´agina show playlis .
Diag ama de secuencia (#2527)
Es posible consegui una isi´on m´as en de alle median e el empleo de un
diag ama de secuencia donde se desc iba la secuencia de acciones (Figu a
3.15).
El sc ip show playlis s mues a al usua io las lis as de ep oducci´on
exis en es (Figu a 3.13) y el usua io selecciona una de las lis as. T as ha-
ce lo, se ins ancia a la clase Playlis , la cual solici a a la base de da os la
in o maci´on de la lis a de ep oducci´on.
T as la ins anciaci´on del obje o Playlis seleccionado, la in o maci´on
es mos ada po el sc ip show playlis .inc.php (Figu a 3.14). En es a
p´agina se mues a an o la in o maci´on ela i a a una lis a de ep oducci´on
especi ica, como las canciones que con iene.
En show playlis .inc.php se delega la ob enci´on de in o maci´on a la
clase B owse, la cual conociendo el a ibu o id de la Playlis , ealiza una
consul a al SGBD y ob iene la du aci´on o al (en segundos).
Finalmen e, la clase B owse llama al sc ip show playlis medias.inc.php
el cual mues a al usua io la du aci´on o al de la lis a de ep oducci´on.
56
U zi Gonz´alez Llaguno An´alisis y dise˜no
Figu a 3.15: Diag ama de secuencia de la issue 2527.
57

An´alisis y dise˜no U zi Gonz´alez Llaguno
3.3.2. #2582 [Fea u e Reques ] Changing login sc een
backg ound
T as ealiza un an´alisis de es a issue, se ha iden i icado que pa a su
implemen aci´on es necesa io a˜nadi una nue a opci´on de con igu aci´on a los
ajus es de Ampache.
Examinando las opciones de con igu aci´on ya exis en es pa a o os ajus-
es, se ha ealizado un dise˜no que se asemeje al uncionamien o de las mismas.
Diag ama ER (#2582)
P ime o se ha iden i icado cu´ales son las ablas de la bases de da os que
almacenan los ajus es de las p e e encias de usua io.
Es a in o maci´on es almacenada en las ablas: use ,use p e e ence
yp e e ence. La abla use , que almacena los usua ios del sis ema, es ´a
elacionada con m´ul iples alo es de la abla use p e e ence la cual si e
de nexo con la abla p e e ence que es donde se almacenan los a ibu os de
cada ajus e (Figu a 3.16).
Po lo que es necesa io ealiza dos inse ciones: la p ime a en la abla
p e e ence con los a ibu os necesa ios pa a pode almacena el ondo de
pan alla que de ina el usua io y la segunda en la abla use p e e ence pa a
enlaza el ajus e con el usua io que lo haya de inido.
58
U zi Gonz´alez Llaguno An´alisis y dise˜no
Figu a 3.16: Diag ama ER de la issue 2582.
Diag ama de clases (#2582)
Es a issue in oluc a la modi icaci´on de es clases: Upda e,P e e ence
yUI (Figu a 3.17).
Upda e es la clase enca gada de las ac ualizaciones del esquema de la
bases de da os, po lo que es en ella donde se in oducen las modi icaciones
mencionadas en la subsecci´on an e io .
La clase P e e ence, que he eda de la clase abs ac a da abase objec ,
es donde se ges ionan las p e e encias de Ampache. Es en es a clase donde
se habili a ´a la l´ogica que pe mi a al usua io modi ica la nue a p e e encia
in oducida desde el panel de con ol de Ampache.
Al se una uncionalidad que mues a un elemen o isual (el ondo de
pan alla), ambi´en es necesa ia una modi icaci´on de la clase UI de modo que
se mues e g ´a icamen e la imagen de inida po el usua io.
59
An´alisis y dise˜no U zi Gonz´alez Llaguno
Figu a 3.17: Diag ama de clases de la issue 2582.
60
U zi Gonz´alez Llaguno An´alisis y dise˜no
Diag ama asocia i os (#2582)
Con el obje i o de ob ene una ep esen aci´on isual que acili e la com-
p ensi´on de los elemen os a modi ica , se han gene ado unos diag amas (Fi-
gu as 3.18 y3.19) que asocian los elemen os de la in e az a las clases co es-
pondien es.
Po una pa e, se ha iden i icado que la l´ogica de la p´agina de inicio de
sesi´on se encuen a en el a chi o login.php. Sin emba go, pa a mos a un
ondo de pan alla, no es necesa ia la modi icaci´on de la l´ogica de inicio de
sesi´on, sino la in oducci´on de un nue o es ilo en la clase UI.class.php.
Po o a pa e, es necesa ia la in oducci´on de una nue a p e e encia y
que es a sea accesible desde la p´agina de ajus es p e e ences.php. Pa a
ello se inse a ´a una nue a a iable cus om login backgound que pe mi a
la modi icaci´on de es a nue a p e e encia desde la p´agina de p e e encias.
Figu a 3.18: In e az de la p´agina login.php.
61
An´alisis y dise˜no U zi Gonz´alez Llaguno
3.3.4. Clien e Reac - Fa o i os
Al accede a una lis a de canciones (pis as de un ´album, canciones de una
lis a de ep oducci´on, e c.), un usua io dispone de un bo ´on con o ma de
co az´on pa a ma ca una canci´on como a o i a (Figu a 3.25).
Figu a 3.25: Es ado ac ual de la uncionalidad a o i os.
En el p esen e, la uncionalidad de es e bo ´on no es ´a implemen ada, po
lo que, si se pulsa, no se p oduce ninguna acci´on.
El obje i o consis e en conec a el on end Reac con el backend de modo
que quede egis ada es a acci´on.
Diag amas de secuencia (Fa o i os)
Cuando un usua io accede a una lis a de canciones (´albumes, playlis s,
e c.), cada canci´on se mues a en una ila median e el elemen o SongRow.
Pa a a˜nadi o elimina una canci´on de a o i os, un usua io puede pulsa
el bo ´on con o ma de co az´on. Es a acci´on lanza una llamada a la API pa a
in e i el alo exis en e de la e ique a a o i os y de uel e en un JSON el
alo ac ualizado (Figu a 3.26).
68

U zi Gonz´alez Llaguno An´alisis y dise˜no
Al usua io se le in o ma del esul ado de es a acci´on, an o si el p oceso
es exi oso como si sucede alg´un e o , median e un pop-up con es ilo oas .
Figu a 3.26: Diag ama de secuencia de la uncionalidad a o i os.
69
Desa ollo U zi Gonz´alez Llaguno
3.4. Desa ollo
Es a secci´on de alla el p oceso indi idual seguido en la implemen aci´on de
cada issue. Se a a de un p oceso i e a i o que pa e de una soluci´on inicial,
incluye cambios en base a la e oalimen aci´on de la comunidad y concluye
con un esul ado inal.
Se incluye ambi´en una explicaci´on de los p oblemas encon ados y las
soluciones p opues as en es e p oceso de desa ollo.
3.4.1. #2527 [Fea u e Reques ] To al ime
P ime a ap oximaci´on
Pa a e i a el desa ollo de c´odigo edundan e, se ha ealizado una b´usque-
da de unciones ya de inidas que acili en la implemen aci´on de es a uncio-
nalidad.
En es e caso, se ha encon ado que exis e una unci´on ge o al du a ion()
(C´odigo 3.1) la cual ealiza una suma de iempos a ni el de BD.
Pa iendo de ella, se ha incluido una nue a columna en la p´agina show -
playlis s.inc.php. Es a columna, mues a los segundos calculados po
ge o al du a ion() en un o ma o HORAS:MINUTOS:SEGUNDOS pa a una
mejo comp ensi´on (Figu a 3.27).
70
U zi Gonz´alez Llaguno Desa ollo
1/**
2* ge _ o al_du a ion
3* Ge he o al du a ion o all songs.
4* @ e u n s ing | null
5*/
6
7public unc ion ge _ o al_du a ion ()
8{
9$songs = $ his -> ge _songs ();
10 $idlis = ’(’ .
implode
(’,’,$songs) . ’)’;
11
i
($idlis == ’() ’) {
12 e u n null;
13 }
14 $sql = " SELECT SUM(‘ ime ‘) FROM ‘song ‘ WHERE ‘id ‘
IN $idlis ";
15 $db_ esul s = Dba :: ead( $sql);
16
17 $ esul s = Dba :: e ch_ ow ( $db_ esul s);
18
19 e u n $ esul s [’0’];
20 }
C´odigo 3.1: Funci´on ge o al du a ion().
Figu a 3.27: Cambios en la p´agina show playlis s.inc.php pa a mos a
la du aci´on o al.
71
Desa ollo U zi Gonz´alez Llaguno
Cambios en base a e oalimen aci´on
T as ealiza es a p ime a ap oximaci´on, el usua io que inicialmen e ab i´o
la issue p opone inclui 5es a misma in o maci´on ambi´en en la p´agina show -
playlis .inc.php.
Siguiendo su p opues a, se ealiza un nue o commi en el que se incluye
el iempo o al jun o al elemen o I em Coun de la in e az (Figu a 3.28).
Figu a 3.28: Cambios en la p´agina show playlis .inc.php pa a mos a la
du aci´on o al.
5@4phun (c eado de la issue)((Hi, his is cool! Can we ge i on he playlis sc een oo?
Whe e he songs a e displayed.))
72
U zi Gonz´alez Llaguno Desa ollo
P oblemas y soluciones con la implemen aci´on
Con los nue os cambios se descub e un p oblema: la p´agina show playlis .inc.php
solamen e unciona con las lis as de ep oducci´on de ipo Playlis , mien as
que la p´agina no ca ga pa a las de ipo Sma Playlis .
Las Sma Playlis son lis as de ep oducci´on gene adas en base a il os
(p. ej. en base a angos en las echas de publicaci´on). Debido a es e mo i o,
son obje os de ipo Sea ch en luga de ipo Playlis . Es o hace que la
llamada a la unci´on ge o al du a ion() gene e un e o 6dado que no
encuen a el obje o Playlis espe ado.
Es e p oblema se ha solucionado ealizando una comp obaci´on del ipo de
obje o ecibido. Comp obando median e un ope ado e na io cual es el ipo
de obje o ecibido pa a pode llama a la unci´on ge o al du a ion() con
los pa ´ame os adecuados (C´odigo 3.2).
1$playlis _du a ion = $playlis === NULL ? $sea ch ->
ge _ o al_du a ion ( $objec _ids) : $playlis ->
ge _ o al_du a ion ();?>
C´odigo 3.2: Comp obaci´on de clase median e ope ado e na io.
T as su esoluci´on, se ha p ocedido a la ealizaci´on de p uebas desc i as
en la secci´on ((4.1 P uebas de calidad)).
6PHP Fa al e o : Uncaugh E o : Call o a membe unc ion on null
73

Desa ollo U zi Gonz´alez Llaguno
3.4.2. #2582 [Fea u e Reques ] Changing login sc een
backg ound
P ime a ap oximaci´on
En p ime luga se han analizado las p e e encias exis en es en busca
de una con un uncionamien o simila a ene como e e encia. T as es a
b´usqueda se ha encon ado la p e e encia ((Cus om URL - Login page logo)),
la cual pe mi e modi ica el logo ipo de Ampache po uno de inido po el
usua io.
Siguiendo la misma l´ogica se ha a˜nadido en la unci´on show cus om -
s yle() (C´odigo 3.3) un es ilo pa a mos a g ´a icamen e el ondo de pan alla
si es e es ´a de inido.
1public s a ic unc ion show_cus om_s yle ()
2{
3
i
( AmpCon ig :: ge (’cus om_login_backg ound’)) {
4
echo
"<s yle > body { backg ound - image : u l (’" .
AmpCon ig :: ge ( ’cus om_login_backg ound’)." ’) ! impo an
; }</ s yle >";
5}
6
7}
C´odigo 3.3: Adici´on ealizada a la unci´on show cus om s yle().
La inse ci´on de la nue a p e e encia en la base de da os se ha de inido
median e la unci´on upda e 400020() (C´odigo 3.4). Es a unci´on mues a
el c´odigo de una mig aci´on de la base de da os donde se a˜nade la en ada
cus om login backg ound en la abla p e e ence de la base de da os.
74
U zi Gonz´alez Llaguno Desa ollo
1/**
2* upda e_400020
3*
4* Cus omizable login backg ound image
5*/
6
7public s a ic unc ion upda e_400020 ()
8{
9$ e al =
ue
;
10
11 $sql = " INSERT INTO ‘p e e ence ‘ (‘name ‘, ‘ alue ‘, ‘
desc ip ion ‘, ‘le el ‘, ‘ ype ‘, ‘ca ago y ‘, ‘ subca ago y ‘)
".
12 " VALUES (’ cus om_login_backg ound ’, ’’, ’ Cus om URL -
Login page backg ound ’, 75, ’s ing ’, ’in e ace ’, ’
cus om’)";
13 $ e al &= Dba :: w i e ( $sql);
14 $ ow_id = Dba :: inse _id ();
15 $sql = " INSERT INTO ‘ use _p e e ence ‘ VALUES ( -1 ,? ,
’’)";
16 $ e al &= Dba :: w i e ($sql ,
a ay
($ ow_id ));
17
18 e u n $ e al;
19 }
C´odigo 3.4: Funci´on upda e 400020().
El n´ume o 400020 sigue la nomencla u a7u ilizada pa a man ene el
con ol de las mig aciones de la base de da os. Las mig aciones se ealizan de
mane a secuencial y el n´ume o 400020 de es a inse ci´on ep esen a la e si´on
4.0 ac ualizaci´on 20.
Tambi´en se ha a˜nadido el s ing ((Cus om URL - Login page backg ound))
a los a chi os de aducci´on messages.po y ansla able da abase -
s ings. x pa a pe mi i su aducci´on a los m´as de 20 idiomas en los
que es ´a disponible Ampache.
7((This class mainly handles schema upda es o he da abase. Ve sions a e a mono oni-
cally inc easing in ege : Fi s column(s) a e he majo e sion, ollowed by a single column
o he mino e sion and ou columns o he build numbe . 3.6 build 1 is 360000; 10.9
build 17 is 1090017.))
75
Desa ollo U zi Gonz´alez Llaguno
T as ealiza los cambios mencionados, se ha conseguido a˜nadi exi osa-
men e la nue a p e e encia ((Cus om URL - Login page backg ound)) en la
p´agina de ajus es (Figu a 3.29) y que se mues e la imagen en la p´agina de
inicio de sesi´on (Figu a 3.30).
Figu a 3.29: Cambios en la p´agina show p e e ences.inc.php pa a mos a
la nue a p e e encia.
Figu a 3.30: P´agina de inicio de sesi´on as de ini un ondo.
76
U zi Gonz´alez Llaguno Desa ollo
3.4.3. Clien e Reac - P´agina ´albumes
En las issues an e io es se han a˜nadido uncionalidades a una p´agina
ya exis en e. En cambio, en es a ocasi´on se es ´a desa ollando el m´odulo
p incipal de una p´agina.
P ime o de odo, se ha a˜nadido una egla de en u amien o en ou e . sx
de al modo que cuando un usua io acceda a la u a /albums deje de ob ene
un e o 404 y, en su luga , se mues e la p´agina de ´albumes.
La in o maci´on ela i a a los ´albumes se ob iene median e una llamada a
la API. Pa a ealiza es a llamada, se ha de inido la unci´on ge Albums en
la capa l´ogica del clien e (C´odigo 3.5).
1cons ge Albums = ( au hKey : Au hKey , includeSongs =
alse
) =>
{
2le includeS ing = ’’;
3
i
(includeSongs) {
4includeS ing += ’& include []= songs ’;
5}
6cons ge U l = ‘${ p ocess . en . Se e URL }/ se e /json .
se e .php ? ac ion = albums & au h =${au hKey}${ includeS ing }&
e sion =400001 ‘;
7
e u n
axios. ge ( ge U l ). hen (( esponse ) => {
8cons JSONDa a = esponse . da a;
9
i
(! JSONDa a ) {
10
h ow new
E o (’Se e E o ’);
11 }
12
i
( JSONDa a . e o ) {
13
h ow new
AmpacheE o ( JSONDa a . e o );
14 }
15
e u n
JSONDa a . album as Album [];
16 });
17 };
C´odigo 3.5: Funci´on ge Albums.
En la linea 6 es ´a de inida la llamada a la API. En conc e o, se es ´a
haciendo uso de la acci´on albums (Tabla 3.1) y suminis ando la a iable
au hKey que con iene la sesi´on del usua io.
77
P uebas de calidad U zi Gonz´alez Llaguno
Figu a 4.1: Log ( educido) de las p uebas au oma izadas sob e el pull eques
2527.
Es equisi o necesa io — pe o no su icien e — supe a odas las p uebas
au oma izadas pa a que un pull eques pueda se acep ado. Todos los pull
eques s p opues os en es e abajo han supe ado las p uebas de in eg aci´on.
4.1.2. P uebas manuales
#2527 [Fea u e Reques ] To al ime
En p ime luga , se han ealizado p uebas con dis in os n´ume os de ele-
men os (1, 5 y 100) pa a comp oba que an o la suma o al en segundos,
como su ep esen aci´on en el o ma o HORAS:MINUTOS:SEGUNDOS sea co ec a.
Realizando es as p uebas, se ha encon ado que en la soluci´on inicial el
n´ume o de ho as hac´ıa un o e low al llega al alo 24 debido a ep esen a
los alo es median e la unci´on gmda e(), la cual es ´a dise˜nada pa a ep e-
sen a las ho as de un d´ıa.
84

U zi Gonz´alez Llaguno P uebas de calidad
Pa a soluciona es e p oblema, se ha di idido la suma o al de segundos
en e 3600 ob eniendo as´ı el n´ume o de ho as y anexando a ello los minu os
y segundos ob enidos median e gmda e().
T as comp oba que el iempo se mues a co ec amen e, se ha e i icado
si el iempo de ca ga de la p´agina playlis s.php se man iene en un ma gen
acep able. Pa a ello, se ha compa ado el iempo de ca ga p e io con el iempo
de ca ga as in oduci los nue os cambios (Tabla 4.1).
Elemen os Tiempo P e io Tiempo Pos e io
2 0.3539s 0.3582s
115 3.9702s 4.0244s
315 5.8598s 5.9271s
Tabla 4.1: Compa aci´on en los iempos de ca ga del pull eques 2527.
Se encuen a una di e encia de al ededo de un 1 % en los iempos de
ca ga. Al no a a se de una di e encia no able, se acep an los esul ados
ob enidos.
#2582 [Fea u e Reques ] Changing login sc een backg ound
Usabilidad
En p ime luga , se ha ealizado el p oceso de ac ualizaci´on de e si´on
desde el pun o de is a de usua io pa a comp oba que la inse ci´on del nue o
a ibu o en la abla de la base de da os sea co ec a.
Al a a se de una uncionalidad con un elemen o isual, se ha ealizado
una comp obaci´on de su p esen aci´on en dis in as esoluciones. Pa a ello se
han omado dos disposi i os como e e encia: un moni o con una esoluci´on
1080p4(Figu a 4.2) y un disposi i o m´o il con una esoluci´on na i a5(Figu a
4.3).
41920 p´ıxeles de ancho y 1080 p´ıxeles de al o.
5400 p´ıxeles de ancho y 720 p´ıxeles de al o.
85
P uebas de calidad U zi Gonz´alez Llaguno
Figu a 4.2: Comp obaci´on de la ep esen aci´on isual de la issue 2582 en una
esoluci´on de 1080p.
Figu a 4.3: Comp obaci´on de la ep esen aci´on isual de la issue 2582 en una
esoluci´on m´o il de 720p.
86
U zi Gonz´alez Llaguno P uebas de calidad
Se puede ap ecia que la imagen elegida — en es e caso un ec ´angu-
lo de 100 p´ıxeles — se eplica ad in ini um has a cub i oda la esolu-
ci´on disponible. Es e es el compo amien o espe ado de la unci´on de PHP
backg ound-image u ilizada pa a mos a el ondo de pan alla.
Segu idad
Po o a pa e, se ha comp obado el aspec o de segu idad de es a nue a
ca ac e ´ıs ica. Al a a se de un campo con en ada de ex o lib e — que
adem´as in oduce un alo en la base de da os — exis e la posibilidad de
a aques ipo inyecci´on SQL oC oss Si e Sc ip ing (XSS).
Un ejemplo de a aque ipo inyecci´on SQL, pod ´ıa consis i en in oduci
en el campo de en ada la sen encia:
imagen.png’); DROP TABLE p e e ences;--
con el obje i o de elimina la abla p e e ences de la base de da os.
Sin emba go, as in en a ealiza es e a aque, no se ha conseguido pe-
ne a la segu idad del sis ema. Es o es debido a que la unci´on upda e()
de Ampache — que ac ualiza las p e e encias — il a adecuadamen e la en-
ada espe ada6, sal agua dando as´ı la segu idad del sis ema de inyecciones
maliciosas.
En cuan o a los a aques XSS, es os consis en en log a la ejecuci´on de un
sc ip malicioso en la pa e del clien e que accede al sis ema. Se ha p obado
a in oduci el siguien e sc ip ino ensi o pa a comp oba si es e ec o de
a aque es posible:
<sc ip >ale ("hacked")</sc ip >
Nue amen e se ha e i icado que es e ipo de a aque no es posible en el sis-
ema. En es e caso es la unci´on ge pos () de la clase gen´e ica co e.class.php
la que ealiza la sani izaci´on de la en ada eliminando los ca ac e es especiales
(<,>,/, e c.) que pueda con ene .
6Pa a ello u iliza la unci´on gen´e ica de PHP il e a () con el il o FILTER -
SANITIZE STRING que codi ica o elimina ca ac e es especiales (www.php.ne /manual/en/
unc ion. il e - a .php)
87
P uebas de calidad U zi Gonz´alez Llaguno
Clien e Reac - P´agina ´albumes
Con el obje i o de comp oba iempos de ca ga y posibles e o es, se ha
analizado el uncionamien o de la p´agina con dis in as can idades de ´albumes.
En caso de no ene ning´un ´album en el ca alogo, la p´agina de ´albumes
se mues a ac´ıa co ec amen e. Tan o con 1 como con 50 ´albumes el iempo
de ca ga es adecuado y la p´agina se mues a como es espe ado (Figu a 3.31).
Sin emba go, a pa i de 100 ´albumes el iempo de ca ga se con ie e
excesi o, el clien e a da demasiado en ob ene y mos a la in o maci´on.
Pa a sol en a es a p oblem´a ica, el desa ollado p incipal ha implemen ado
un paginamien o a modo de sc oll in ini o de modo que la in o maci´on se
ob enga p og esi amen e en ag upaciones de 50 ´albumes.
En caso de sucede un e o ob eniendo las in o maci´on de los ´albumes, se
le in o ma al usua io median e una no i icaci´on con el mensaje ((Some hing
wen w ong ge ing he albums)).
Clien e Reac - Fa o i os
Se han comp obado dos aspec os undamen ales de es a in eg aci´on: (1)
que la in e az sea ac ualizada co ec amen e as pulsa el bo ´on, es deci ,
que el icono con o ma de co az´on se ellena y ac´ıe espec i amen e y (2)
que la in o maci´on quede almacenada en la abla co espondien e de la base
de da os.
Pa a acili a es a a ea e in o ma al usua io de que su acci´on ha sido
egis ada, se han a˜nadido dos no i icaciones eme gen es con los mensajes
((Song added o a o i es)) y((Song emo ed om a o i es)).
Pa iendo de una lis a de canciones (Figu a 4.4), cuando el usua io pulsa
el bo ´on de a o i os, el icono se ellena (Figu a 4.5) y ac´ıa (Figu a 4.6)
co ec amen e.
88
U zi Gonz´alez Llaguno P uebas de calidad
Figu a 4.4: Lis a de canciones de un ´album.
Figu a 4.5: Canci´on ma cada como a o i a.
Figu a 4.6: Canci´on desma cada como a o i a.
89

P uebas de calidad U zi Gonz´alez Llaguno
En cuan o a la base de da os, a p io i la canci´on no es ´a ma cada como
a o i a, po lo que al ealiza una que y se ob iene un conjun o ac´ıo (Figu a
4.7).
Figu a 4.7: Que y an es de ma ca la canci´on como a o i a.
T as ma ca la como a o i a, al ol e a ealiza la que y se ob iene la
en ada co espondien e (Figu a 4.8).
Figu a 4.8: Que y despu´es de ma ca la canci´on como a o i a.
90
U zi Gonz´alez Llaguno In eg aci´on de los apo es
4.2. In eg aci´on de los apo es
La in eg aci´on de los apo es ealizados al eposi o io del p oyec o es un
p oceso elemen al en una con ibuci´on a un p oyec o open sou ce (Figu a
4.9).
Figu a 4.9: P oceso de in eg aci´on de apo es.7
El p oceso es ´a compues o de los siguien es elemen os:
1. C eaci´on un o k: el p ime paso consis e en clona el eposi o io del
p oyec o a un nue o eposi o io del que se se ´a p opie a io y se end ´a
pe misos de edici´on.
2. C eaci´on una ama: en es e paso se c ea una nue a ama de desa ollo
y se ´a en es a nue a ama donde se incluyan los cambios pe inen es al
c´odigo exis en e.
3. Desa ollo c´odigo: as ealiza adiciones y cambios al c´odigo exis-
en e, es as modi icaciones se in oducen en commi s, los cuales se sin-
c onizan con la ama del eposi o io que con iene el c´odigo.
4. Solici ud de pull eques : una ez e minado el desa ollo, se solici a
la in eg aci´on con el eposi o io o iginal median e un pull eques .
5. Ap obaci´on o denegaci´on de la solici ud: los cambios p opues os
son e isados po la pe sona que man iene del p oyec o y se ´a es a
pe sona quien decida si los cambios son ap os o no.
7Publicado po el au o Julien Danjou. (h ps://julien.danjou.in o/con en /
images/size/w2000/2018/06/gi hub-b anching.png)
91
In eg aci´on de los apo es U zi Gonz´alez Llaguno
4.2.1. #2527 [Fea u e Reques ] To al ime
El p ime pull eques ue solici ado en no iemb e de 2020. Es ´a compues o
de 7 commi s que a ec an a 10 a chi os del eposi o io. En la solici ud se
indica on los cambios y p uebas ealizadas (Figu a 4.10).
Figu a 4.10: Comen a io inicial del pull eques de la issue 2527.
El desa ollado p incipal del p oyec o ealiz´o una p egun a8 espec o a
la usabilidad, la cual ue espondida. T as ealiza unos cambios meno es al
pull eques p opues o, se acep ´o su in eg aci´on con la ama de elopmen del
p oyec o Ampache (Figu a 4.11).
Figu a 4.11: Commi en el eposi o io de Ampache del pull eques 2527.
8@lachlan: ((Fo la ge lis s a e hese hou minu es seconds s ill?))
92
U zi Gonz´alez Llaguno In eg aci´on de los apo es
4.2.2. #2582 [Fea u e Reques ] Changing login sc een
backg ound
El pull eques ealizado es ´a compues o de 6 commi s que modi ican un
o al de 5 a chi os.
Su gi´o un p oblema con las p uebas au oma izadas ealizadas po T a is
CI (Figu a 4.12) dado que el c´odigo p opues o inicialmen e no cumpl´ıa la
no ma i a de es ilo.
Figu a 4.12: Fallo del commi 40c0bb2 en el es au om´a ico de T a is CI.
Despu´es de ealiza los cambios necesa ios pa a adecua el c´odigo al es ilo
es ablecido — se es aban u ilizando 8 espacios pa a la inden aci´on de una
po ci´on de c´odigo que deb´ıa con ene 4 espacios — los cambios se acep a on
(Figu a 4.13) e in eg a on en la ama de elopmen del eposi o io.
Figu a 4.13: ´
Exi o en el es au om´a ico de T a is CI as ealiza los cambios
de es ilo al c´odigo.
T as in eg a los cambios, el usua io que inicialmen e ab i´o la issue indic´o
es a sa is echo con los cambios ealizados9.
9@agopo (usua io c eado de la issue): ((Hey, I hones ly didn’ expec his o be imple-
men ed so quickly (i a all). Thanks a lo o you wo k, I’m looking o wa d o i !))
93

Ac ´onimos
API
Applica ion P og amming In e ace. 5,46,66–68,77,80,98
BOE
Bole ´ın O icial del Es ado. 31
CSS
Cascading S yle Shee s. 46
EDT
Es uc u a de descomposici´on del abajo. 12,13,27
ER
En idad Relaci´on. 19,21,22,29
FOSS
F ee and open-sou ce so wa e. 3
FSF
F ee So wa e Founda ion. 1
HTML
Hype ex Ma kup Language. 46
ISO
In e na ional O ganiza ion o S anda diza ion. 36
101
Ac ´onimos U zi Gonz´alez Llaguno
JSON
Ja aSc ip Objec No a ion. 66–68,78
LSI
Lenguajes y Sis emas In o m´a icos. 2
MIT
Massachuse s Ins i u e o Technology. 1
SGBD
Sis ema de ges i´on de bases de da os. 56
SQL
S uc u ed Que y Language. 104
TFG
T abajo de Fin de G ado. 25,47
UML
Uni ied Modeling Language. 19,30
URL
Uni o m Resou ce Loca o . 45,104
XSS
C oss Si e Sc ip ing. 87
102
Glosa io
so wa e lib e
((So wa e que espe a la libe ad de los usua ios y la comunidad. A
g andes asgos, signi ica que los usua ios ienen la libe ad de ejecu a ,
copia , dis ibui , es udia , modi ica y mejo a el so wa e))(Founda ion
[2019]). 3,32
backend
Capa l´ogica de acceso a los da os en un so wa e, gene almen e se e ie e
al se ido de la aplicaci´on. 46,68
backg ound
Imagen u ilizada a modo de ondo de pan alla en una in e az g ´a ica.
45
bug
Aguje o, b echa o al a de segu idad de un p og ama de compu aci´on.
40,44,82,98
codec
P og ama que codi ica con enido y pe mi e comp imi in o maci´on. 7
commi
Den o del con ex o de un sis ema de con ol de e siones, se a a de
la ope aci´on que en ´ıa los cambios ealizados al eposi o io.72,91–94
compila
P oceso que con ie e el c´odigo uen e en bina io pa a su pos e io
ejecuci´on po una compu ado a. 82,83
103
Glosa io U zi Gonz´alez Llaguno
c´odigo uen e
Ve si´on del so wa e al y como ue esc i a o iginalmen e po un hu-
mano en ex o plano. Es la base desde la que se compilan los bina ios
ejecu ables que u ilizan los o denado es (P ojec [2006]). 1,103,105
DAAP
Ac ´onimo de ((Digi al Audio Access P o ocol)). Es un p o ocolo p opie-
a io de Apple pa a compa i a chi os mul imedia a a ´es de una ed
local. 8
amewo k
En o no de abajo que p o ee unciones gen´e icas modi icables con el
obje i o de acili a el desa ollo del so wa e.5,7,8,22,46
on end
Capa de p esen aci´on de una aplicaci´on so wa e.5,20,46,68
ha dwa e
Componen es ´ısicos de un sis ema in o m´a ico, como la unidad cen al
de p ocesamien o (CPU) y los disposi os pe i ´e icos. 40
inyecci´on SQL
Vulne abilidad que consis e en in oduci sen encias SQL en campos de
ex o o URLs pa a ac ua maliciosamen e sob e una base de da os. 87
issue
As´ı se denomina en Gi Hub a una esoluci´on de un e o o una p o-
pues a de mejo a. 14,18,19,21–24,27,42,44,45,47,52,58,59,70,
72,77,93,98
ke nel
P og ama que cons i uye el n´ucleo cen al de un sis ema ope a i o.
Tiene con ol o al sob e odo lo que ocu e en el sis ema (P ojec
[2005]). 1
log
A chi o que con iene un egis o de e en os. 83
104
U zi Gonz´alez Llaguno Glosa io
login
M´e odo de au en icaci´on en un sis ema in o m´a ico median e c eden-
ciales asociadas a una cuen a. 42
me ada os
In o maci´on que desc ibe el con enido, calidad, condiciones, his o ia,
disponibilidad y o as ca ac e ´ıs icas de los da os (sec e a ´ıa de Go-
bie no Digi al Pe uana [2020]). 4,8,50,51
open sou ce
Se llama as´ı a los p og amas in o m´a icos en los que el c´odigo uen e
es ´a disponible pa a su acceso p´ublico. 5,10,91
o e low
Sucede cuando de una ope aci´on a i m´e ica se ob iene un alo ue a
del ango de alo es ep esen ables. 84
P2P
Ac ´onimo de ((Pee - o-pee )). Es una a qui ec u a de ed que dis ibuye
el p ocesamien o en e los nodos que la o man. 106
playlis
Lis a de canciones y piezas musicales. T aducci´on: lis a de ep oduc-
ci´on. 68
pop-up
Ven ana eme gen e que se supe pone al es o de elemen os de la in e -
az. 69
pull eques
P oceso de in eg aci´on que pe mi e in o ma a o os usua ios sob e los
cambios ealizados en una ama de un eposi o io.83,84,91–94
p´ıxel
Unidad b´asica de ep esen aci´on en una imagen digi al. 85,87
que y
Consul a ealizada sob e una base de da os. 62,90
105

Glosa io U zi Gonz´alez Llaguno
README
Documen o que p esen a una in o maci´on gene al sob e un p oyec o,
si e a modo de ca a de p esen aci´on. 47
eposi o io
Luga donde se almacenan a chi os los a chi os de c´odigo. 15,16,82,
91–93,103,105
sc ip
Lis a de comandos pa a la au oma izaci´on de a eas que se ejecu an en
iempo de ejecuci´on. 55,56,62,64,87
so wa e
((Conjun o de p og amas, ins ucciones y eglas in o m´a icas pa a eje-
cu a cie as a eas en una compu ado a))(RAE [2020]). 1,2,9,10,
12–14,19,20,29,32,40,82,103,104
s akeholde
Indi iduo, g upo u o ganizaci´on que se e a ec ado po el esul ado de
un p oyec o. 12
s ing
Secuencia de ca ac e es. 75
UPnP
Ac ´onimo de ((Uni e sal Plug and Play)). Es un conjun o de p o ocolos
p opie a ios P2P dise˜nados pa a pe mi i la conec i idad en e dispo-
si i os de dis in os p o eedo es. 8
WebDAV
Ac ´onimo de ((Web Dis ibu ed Au ho ing and Ve sioning)). Es un con-
jun o de ex ensiones del p o ocolo HTTP que pe mi e a los usua ios
edi a y adminis a a chi os de o ma colabo a i a en se ido es web
(Whi ehead [2010]). 8
106
Bibliog a ´ıa
4phun. #2527 [ ea u e eques ] o al ime. www.gi hub.com/ampache/
ampache/issues/2527, 2020.
agopo. #2582 [ ea u e eques ] changing login sc een backg ound. www.
gi hub.com/ampache/ampache/issues/2582, 2020.
Oihane Albizu i. Con ibuciones a un p oyec o open sou ce de ´ambi o in e -
nacional: Gan p ojec . Uni e sidad del Pa´ıs Vasco, 2019.
Ampache. Music s eaming se ice. www.ampache.o g, 2020.
A. A i and Z. A. Rana. Re ac o ing o code o emo e echnical deb and
educe main enance e o . 2020 14 h In e na ional Con e ence on Open
Sou ce Sys ems and Technologies (ICOSST), 2020.
BOE. Resoluci´on de 7 de oc ub e de 2019, de la Di ecci´on Gene al de T a-
bajo, po la que se egis a y publica el XIX Con enio colec i o del sec o
de emp esas de ingenie ´ıa y o icinas de es udios ´ecnicos. Minis e io de
T abajo, Mig aciones y Segu idad Social, 2019.
Edua do Chillida. Elogio del ho izon e. Con e saciones con Edua do Chilli-
da. Des ino, 2003.
F ee So wa e Founda ion. Why he a e o gpl. www.gnu.o g/licenses/
why-a e o-gpl.en.h ml, 2015.
F ee So wa e Founda ion. ¿qu´e es el so wa e lib e? www.gnu.o g/
philosophy/ ee-sw.es.h ml, 2019.
Gi Hub Guides. Mas e ing issues. h ps://guides.gi hub.com/ ea u es/
issues, 2020.
ISO. Ges i´on del iesgo — Di ec ices. In e na ional O ganiza ion o S an-
da diza ion, 2018.
107
Bibliog a ´ıa U zi Gonz´alez Llaguno
Anai z Jaio. Con ibuciones a un p oyec o open sou ce de ´ambi o in e na-
cional: Gan p ojec . Uni e sidad del Pa´ıs Vasco, 2019.
Zhi ang Liao, Benhong Zhao, Shengzong Liu, Haozhi Jin, Dayu He, Liu Yang,
Jinsong Wu, and Yan Zhang. A p edic ion model o he p ojec li e-span
in open sou ce so wa e ecosys em, 2017.
Hans We ne Meue . Looking back o e 15 yea s o supe compu ing expe-
ience. The TOP500 P ojec , 2008.
Juanan Pe ei a. Le e aging inal deg ee p ojec s o open sou ce so wa e
con ibu ions. Elec onics, 10(10), 2021. ISSN 2079-9292. URL www.
mdpi.com/2079-9292/10/10/1181.
The Linux In o ma ion P ojec . Ke nel de ini ion. www.lin o.o g/ke nel.
h ml, 2005.
The Linux In o ma ion P ojec . Sou ce code de ini ion. www.lin o.o g/
sou ce_code.h ml, 2006.
RAE. Dicciona io de la lengua espa˜nola. RAE, 2020.
La sec e a ´ıa de Gobie no Digi al Pe uana. ¿qu´e son los me-
ada os? www.geoidep.gob.pe/conoce-las-ides/me ada os/
que-son-los-me ada os, 2020.
Nassim Taleb. An i agile: Things Tha Gain F om Diso de . Random House,
2012.
E ic on Hippel and Geo g on K ogh. Open sou ce so wa e and he
“p i a e-collec i e” inno a ion model: Issues o o ganiza ion science. Mas-
sachuse s Ins i u e o Technology, 2009.
Jim Whi ehead. Webda esou ces. www.webda .o g, 2010.
YAML. The o icial yaml web si e. www.yaml.o g, 2020.
108