scieee Science in your language
[es] (orig)

Depuración de SQL

Abstract

SQL es un lenguaje de programación declarativo que esconde muchos de sus mecanismos de resolución y por tanto no tiene un flujo de depuración claro como puedan tener otros lenguajes como C cuando se encuentra un error. Actualmenteexisten muy pocos métodos para hacer una depuración de una base de datos y la depuración declarativa es una de las soluciones más efectivas para esto. DES es un programa que permite la depuración de bases de datos a través de una interfaz textual pero resulta tedioso de usar en comparación a una interfaz gráfica. En este trabajo crearemos una interfaz gráfica para la depuración de bases de datos en ACIDE, que es un IDE especializado en bases de datos que usa DES como soporte para realizar sus operaciones. En esta versión se ha añadido una ampliación de la depuración que hay en la última versión disponible de DES que permite asignar el estado de tablas y vistas que no están seleccionadas, mejorando la usabilidad del sistema. Además, en este trabajo se han realizado tareas de mantenimiento y corrección de errores en ACIDE.

Read accessible full text

Depuración de SQL

Author: García Rodríguez, Sergio
Year: 2020
Source: https://docta.ucm.es/bitstreams/399a8eee-8034-4bfd-9a80-f13b6955d1c1/download
TRABAJO DE FIN DE GRADO 2019/2020
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
Depu ación de SQL/
Debugging SQL
Realizado po :
Se gio Ga cía Rod íguez
T abajo de in de g ado del G ado en Ingenie ía del So wa e
Di igido po :
P o . Fe nando Sáenz Pé ez
Dp o. Ingenie ía del So wa e e In eligencia A i icial
RESUMEN
SQL es un lenguaje de p og amación decla a i o que esconde muchos de sus
mecanismos de esolución y po an o no iene un lujo de depu ación cla o como
puedan ene o os lenguajes como C cuando se encuen a un e o . Ac ualmen e
exis en muy pocos mé odos pa a hace una depu ación de una base de da os y la
depu ación decla a i a es una de las soluciones más e ec i as pa a es o.
DES es un p og ama que pe mi e la depu ación de bases de da os a a és de una
in e az ex ual pe o esul a edioso de usa en compa ación a una in e az g á ica. En
es e abajo c ea emos una in e az g á ica pa a la depu ación de bases de da os en
ACIDE, que es un IDE especializado en bases de da os que usa DES como sopo e pa a
ealiza sus ope aciones. En es a e sión se ha añadido una ampliación de la
depu ación que hay en la úl ima e sión disponible de DES que pe mi e asigna el
es ado de ablas y is as que no es án seleccionadas, mejo ando la usabilidad del
sis ema. Además en es e abajo se han ealizado a eas de man enimien o y
co ección de e o es en ACIDE.
Palab as cla e: DES, ACIDE, Depu ación decla a i a, IDE, SQL, Base de da os,
TAPI, Consola.
T abajo de Fin de G ado 2019-2020 2
ABSTRACT
SQL is a decla a i e p og amming language ha hides many o i s esolu ion
mechanisms and he e o e does no ha e a clea debugging low as o he languages
such as C may ha e when an e o is encoun e ed. Cu en ly he e a e e y ew
me hods o debugging a da abase and decla a i e debugging is one o he mos
e ec i e solu ions o his.
DES is a p og am ha allows debugging da abases h ough a ex ual in e ace bu
i is edious o use compa ed o a g aphical in e ace. In his wo k we will c ea e a
g aphical in e ace o debugging da abases in ACIDE, which is an IDE specialized in
da abases ha uses DES as suppo o ca y ou i s ope a ions. In his e sion, an
ex ension o he debugging ha is in he la es a ailable e sion o DES has been
added ha allows assigning he s a us o ables and iews ha a e no selec ed,
imp o ing he usabili y o he sys em. In addi ion, his wo k has ca ied ou
main enance and e o co ec ion asks in ACIDE.
Keywo ds: DES, ACIDE, Decla a i e Debugging, IDE, SQL, Da abase, TAPI, Console.
T abajo de Fin de G ado 2019-2020 3
ÍNDICE DE CONTENIDOS
Resumen 2
Abs ac 3
Índice de con enidos 4
1. In oducción 6
1.1 Mo i ación 6
1.2 Obje i os 6
1.3 P eceden es del p oyec o 7
1.4 Plan de abajo 8
1.5 Plan de es uc u a 8
2. In oduc ion 9
2.1 Mo i a ion 9
2.2 Objec i es 9
2.3 Backg ound o he p ojec 10
2.4 Wo k plan 11
2.5 S uc u e plan 11
3. Depu ación decla a i a en SQL 12
4. Comunicación en e ACIDE y DES 16
4.1 Opciones de depu ación 16
4.2 Comandos 17
4.3 Funcionamien o de la depu ación 18
5. Diseño de la in e az 20
6. Depu ación decla a i a en p ác ica 25
6.1 Depu ación Decla a i a SQL en DES 28
6.2Depu ación Decla a i a SQL en ACIDE 34
7. Ta eas de man enimien o ealizadas 48
8. He amien as y ecnologías 50
9. Documen ación 51
10. Conclusiones 52
11. T abajo u u o 53
T abajo de Fin de G ado 2019-2020 4
12. Conclusions 54
13. Fu u e wo k 55
14. Bibliog a ía 56
15. Re e encias 57
Anexo: P epa ación del en o no de desa ollo 58
T abajo de Fin de G ado 2019-2020 5

1. INTRODUCCIÓN
La p esen e memo ia desc ibe el desa ollo de la in e az de usua io pa a la
depu ación de bases de da os SQL como abajo de in de g ado.
En ella, se p esen an los undamen os eó icos de la depu ación decla a i a de
bases de da os SQL, el uncionamien o de es a en el sis ema DES, el diseño de la
in e az y el uncionamien o de la misma en el sis ema ACIDE.
Al inal de la memo ia se encuen a una guía de ins alación des inada a los
alumnos y o os in e esados que quie an desa olla nue as uncionalidades en
ACIDE.
1.1. MOTIVACIÓN
Ac ualmen e no exis en sis emas que pe mi an la depu ación de bases de da os
SQL, aunque sí que exis en mé odos de depu ación pa a ejecuciones de PL/SQL. Los
lenguajes como C y Ja a ienen un lujo de ejecución y depu ación cla o pe o no
ocu e lo mismo en lenguajes decla a i os como SQL en los que se ocul an los
mecanismos de esolución. Pa a de e mina la uen e de un e o se necesi a aplica
la depu ación decla a i a, que es una écnica de depu ación que pe mi e encon a el
o igen del e o en un sis ema basándose en las in e p e aciones p e endidas del
mismo.
El sis ema DES [6] pe mi e hace una depu ación ex ual de bases de da os SQL
pe o la u ilidad es limi ada en compa ación con sis emas de depu ación g á icos.
ACIDE es un IDE que ayuda a nue os p og amado es a c ea bases de da os y se
comunica con DES, po an o el obje i o de es e abajo es la ealización de una
in e az g á ica de depu ación en ACIDE que ap o eche las uncionalidades o o gadas
po la aplicación DES.
1.2. OBJETIVOS
Es e abajo de in de g ado iene como obje i o desa olla una in e az g á ica
pa a la depu ación de bases de da os SQL den o de la aplicación ACIDE y la
ealización de a eas de man enimien o y co ección de e o es de la aplicación. Es a
in e az o ece la capacidad de iden i ica de o ma sencilla, en caso de que es e
exis a, el o igen del e o en una base de da os a a és de la depu ación decla a i a
de Da alog y SQL usando la he amien a DES en un con ex o en el que in e ienen
múl iples is as. La in e az g á ica p opo ciona una solución sencilla e in ui i a a los
usua ios, especialmen e a es udian es y nue os p og amado es en SQL, pa a
a e igua el o igen del p oblema de su base de da os en SQL.
T abajo de Fin de G ado 2019-2020 6
La depu ación se ealiza a a és de p egun as en base a los da os ob enidos de la
is a o abla, siendo las posibles espues as: álido, no álido, upla pe dida y upla
e ónea.
El uncionamien o como explica emos en apa ados pos e io es de o ma más
ex ensa es el siguien e: en p ime luga , el usua io selecciona á la is a o abla que ha
de ec ado como inco ec a y el sis ema selecciona á la siguien e is a o abla
elacionada con la an e io con más posibilidades de se el nodo e óneo en base a la
espues a p opo cionada po el usua io. El usua io ambién puede ano a el es ado de
un nodo en cualquie momen o de la depu ación haciendo que sea mucho más ápida.
Una ez encon ado el nodo de la base de da os de ec ado como e óneo el usua io se
dispond á a edi a la abla o is a haciendo que la base de da os quede en el es ado
que el usua io que ía desde un p incipio.
1.3. PRECEDENTES DEL PROYECTO
ACIDE es un en o no de desa ollo in eg ado que puede se u ilizado ácilmen e
como in é p e e, compilado o sis ema de bases de da os pa a Álgeb a Relacional,
TRC, DRC, Da alog y SQL.
Es e p oyec o es una con inuación en el desa ollo de la he amien a, que ha sido
desa ollada po g upos an e io es pa a la asigna u a Sis emas In o má icos:
●El p ime año en el que se lle ó a cabo ue en el cu so académico 2006-2007
po Diego Ca diel F ei e, Juan José O iz Sánchez y Del ín Rupé ez Cañas.
●Du an e el cu so académico 2007-2008 el desa ollo ue con inuado po
Miguel Ma ín Láza o.
●La siguien e i e ación en el desa ollo de ACIDE ue en el cu so 2010-2011 po
Ja ie Salcedo Gómez.
●Du an e el cu so académico 2012-2013 el desa ollo de ACIDE siguió en
manos de Pablo Gu ié ez Ga cía-Pa do, Elena Tejei o Pé ez de Ág eda y
And és Vicen e del Cu a.
●En el cu so académico 2013-2014 el desa ollo se ealizó po Juan Jesús
Ma qués O iz, Fe nando O dás Lo en e y Semí amis Gu ié ez Quin ana.
●Y du an e el cu so 2014-2015 el desa ollo se ealizó po Se gio Domínguez
Fuen es quien dejó el p oyec o en el es ado en que me lo encon é.
Es e p oyec o siemp e ue di igido po Fe nando Sáenz Pé ez.
Es as memo ias se encuen an en la sección [1],[2],[3],[4] y[5] del capí ulo
Re e encias.
La e sión con la que empecé a desa olla el p oyec o ue la  0.17 enía un código
uen e es anda izado y un compo amien o es able en cuan o a la ges ión de
p oyec os, c eación y edición de iche os de ex o en di e en es lenguajes de
p og amación, conexión an o con ODBC como con DES (Da alog Educa ional Sys em)
[6]. La e sión gene ada a pa i de es e abajo es la  .18.
T abajo de Fin de G ado 2019-2020 7
1.4. PLAN DE TRABAJO
Al comienzo del p oyec o, el di ec o me p opo cionó una especi icación de los
equisi os que debía cumpli el sis ema y a pa i de ella he ealizado
implemen aciones de los mismos. Cuando es as implemen aciones han sido
ealizadas se gene aba una nue a e sión del sis ema y la en iaba al di ec o que
alidaba dichas uncionalidades. De es a o ma se ha e inado el sis ema has a que se
ha gene ado una e sión es able que posee odas las uncionalidades eque idas al
p incipio del p oyec o.
1.5. PLAN DE ESTRUCTURA
El es o de la memo ia es á es uc u ada de la siguien e mane a:
●En el apa ado 3 se de ine la écnica de depu ación decla a i a que es el
undamen o sob e el uso de es e p oyec o.
●En el apa ado 4 se expone la comunicación en e DES que posee la
implemen ación de la depu ación decla a i a y ACIDE que expone la
uncionalidad de DES de o ma g á ica.
●En el apa ado 5 se explica el diseño de la in e az implemen ada en ACIDE.
●En el apa ado 6 se exponen ejemplos de la depu ación decla a i a.
●En el apa ado 7 se exponen las a eas de man enimien o ealizadas.
●En el apa ado 8 se exponen las he amien as y ecnologías usadas pa a la
ealización del p oyec o.
●En el apa ado 9 se expone la documen ación gene ada a lo la go del p oyec o.
●En el apa ado 10 se exponen las conclusiones del p oyec o.
●En el apa ado 11 se expone el abajo u u o del p oyec o.
●En el apa ado 12 se exponen las conclusiones del p oyec o en inglés.
●En el apa ado 13 se expone el abajo u u o del p oyec o en inglés.
●En el apa ado 14 se expone la bibliog a ía usada pa a la ealización del
p oyec o.
●En el apa ado 15 se exponen las e e encias usadas en es a memo ia.
●Al inal de la memo ia se encuen a un anexo con los pasos a ealiza pa a
pode desa olla nue as uncionalidades en ACIDE.
T abajo de Fin de G ado 2019-2020 8
2. INTRODUCTION
This epo desc ibes he de elopmen o he use in e ace o debugging SQL
da abases as a inal deg ee p ojec .
In i , he heo e ical ounda ions o he decla a i e debugging o SQL da abases, i s
ope a ion in he DES sys em, he in e ace design and i s ope a ion in he ACIDE
sys em a e p esen ed.
A he end o he epo he e is an ins alla ion guide o s uden s and o he
in e es ed pa ies who wan o de elop new unc ionali ies in ACIDE.
2.1. MOTIVATION
Cu en ly he e a e no sys ems ha allow debugging o SQL da abases, al hough
he e a e debugging me hods o PL / SQL execu ions. Languages such as C and Ja a
ha e a clea execu ion and debugging low, bu he same does no happen in
decla a i e languages such as SQL in which he esolu ion mechanisms a e hidden. To
de e mine he sou ce o an e o i is necessa y o apply decla a i e debugging, which
is a debugging echnique ha allows inding he sou ce o he e o in a sys em based
on he in ended in e p e a ions o i .
The DES [6] sys em allows ex ual debugging o SQL da abases, bu he u ili y is
limi ed compa ed o g aphical debugging sys ems. ACIDE is an IDE ha helps new
p og amme s o c ea e da abases and communica es wi h DES, he e o e he
objec i e o his wo k is o c ea e a g aphical debugging in e ace in ACIDE ha akes
ad an age o he unc ionali ies p o ided by he DES applica ion.
2.2. OBJECTIVES
This inal deg ee p ojec aims o de elop a g aphical in e ace o debugging SQL
da abases wi hin he ACIDE applica ion and ca ying ou main enance and e o
co ec ion asks o he applica ion. This in e ace o e s he abili y o easily iden i y,
i i exis s, he sou ce o he e o in a da abase h ough decla a i e debugging o
Da alog and SQL using he DES ool in a con ex in which hey in e ene mul iple
iews. The g aphical in e ace p o ides a simple and in ui i e solu ion o use s,
especially s uden s and new SQL p og amme s, o ind ou he sou ce o hei
da abase p oblem in SQL.
The debugging is done h ough ques ions based on he da a ob ained om he
iew o able, he possible answe s being: alid, in alid, missing uple and w ong
uple.
The ope a ion, as we will explain mo e ex ensi ely in la e sec ions, is as ollows:
i s , he use will selec he iew o able ha has been de ec ed as inco ec and he
T abajo de Fin de G ado 2019-2020 9
4. COMUNICACIÓN ENTRE ACIDE Y DES
Pa a en ende cómo a a unciona la in e az de usua io y las posibilidades que
iene hay que sabe cómo se aplica lo explicado en el apa ado an e io .
DES es una aplicación basada en P olog de un Sis ema de bases de da os
deduc i as que pe mi e el uso de Da alog, SQL, Álgeb a Relacional (RA), Cálculo
Relacional de Tuplas (TRC), y Cálculo Relacional de Dominios (DRC). Es e sis ema es
el que iene implemen ado el algo i mo de depu ación y oda la lógica necesa ia pa a
su ealización.
ACIDE es un IDE que expone las uncionalidades que posee DES de o ma g á ica, y
en es e apa ado explica emos las uncionalidades que deben se implemen adas en
ACIDE y o a in o mación ele an e.
La comunicación que se ealiza en e DES y ACIDE es a a és de comandos. Los
comandos empiezan po el ca ác e ‘/’, y se puede an epone ‘/ api’ a los comandos
pa a que sigan el p o ocolo TAPI (Tex ual Applica ion P og amming In e ace) y
de uel a la in o mación es uc u ada. Las posibles espues as a comandos son:
●Respues a con éxi o y sin de ol e da os:
$success
●Respues a con e o :
$e o
código
ex o
...
ex o
$eo
Donde código es el código del e o ,  ex o es el ex o del e o , que puede
ex ende se a ias líneas y $eo es el in de la ansmisión de da os.
4.1. OPCIONES DE DEPURACIÓN
A con inuación se an a lis a las posibles ope aciones y con igu aciones que se
an a usa en los comandos pa a la depu ación de bases de da os.
●Es ados de los nodos:
S a e

:=
 alid |
non alid  |
e oneous
●Con igu ación de la depu ación:
T abajo de Fin de G ado 2019-2020 16

o us _ ables([yes|no]): es a opción indica si se con ía en las ablas
de nues a base de da os, es deci , en caso de con ia en las ablas sus
nodos end án el es ado ‘ alid’.
o us _ ile(FileName

): es a opción indica que se con íen en las
is as de inidas en el a chi o indicado.
odebug([ ull|plain]): es a opción indica si se pueden o no usa las
opciones de upla al an e y e ónea.
oo de ([ca dinali y| opdown]): es a opción indica el o den de
selección de nodos.
●Tuplas:
Tuple :=
Rela ion

(Value

,...,Value

)
Los alo es se encie an en e comillas simples pa a alo es de ipo s ing.
●P egun as al usua io:
Ques ion :=
all(ViewName

) |
in(Tuple

,Rela ionName

) |
subse (Rela ionName1

,Rela ionName2

)
●Respues as del usua io:
Answe

:=
abo | % Pa a odas las p egun as
 alid | % Pa a odas las p egun as
non alid | % Pa a odas las p egun as
missing(Pa ialTuple

) | % Menos pa a in y subse
w ong(To alTuple

) | % Menos pa a in
4.2. COMANDOS
En es e apa ado amos a expone los comandos de depu ación y sus
uncionalidades.
●Comenza la depu ación:
/ api /debug_sql ViewName Op ions
Donde ViewName es el nomb e de la is a a depu a y Op ions es la lis a de
opciones de depu ación comen ada an e io men e sepa ada po espacios.
●Ma ca nodo con su es ado:
/ api /debug_sql_se _node NodeName S a e
T abajo de Fin de G ado 2019-2020 17
●P egun a al usua io:
/ api /debug_sql_cu en _ques ion
●Respues a del usua io:
/ api /debug_sql_answe  Ques ion Answe
●Es adís icas de la depu ación:
/ api /debug_sql_s a is ics
4.3. FUNCIONAMIENTO DE LA DEPURACIÓN
Cuando el usua io de ec a que una is a no de uel e los esul ados espe ados (no
es álida), puede inicia la sesión de depu ación emi iendo el siguien e comando:
/ api /debug_sql ViewName Op ions
Como espues a, DES de ol e á una lis a de nodos y sus es ados si no hay e o . En
es a lis a de nodos que de uel e DES es posible que se encuen e el nodo causan e del
p oblema. En es e caso el nodo es á iden i icado como e óneo: e oneous (po
ejemplo cuando se selecciona una is a que solo depende de ablas y se con ía en sus
con enidos). En es e caso hab ía e minado la depu ación. Si de uel e un e o
( espues a es ánda de e o como se desc ibe en el pun o 6) la depu ación hab ía
e minado.
Las opciones (Op ions

) son las de inidas en el apa ado 6.1. Dependiendo de la
espues a del usua io, Answe

oma á dis in os alo es:
●No álida (Non- alid): Al elegi es a opción se emi e el comando:
/ api /debug_sql ViewName

non alid Op ions
●Tupla e ónea (W ong Tuple): Pa a elegi es a opción se debe selecciona la
upla e ónea en la ejilla de da os de ViewName

(la upla es ob iamen e o al).
Al elegi es a opción se emi e el comando:
/ api /debug_sql ViewName

w ong(Tuple

) Op ions
●Tupla al an e (Missing Tuple): Pa a elegi es a opción se deben esc ibi los
alo es de la upla en una ejilla. Alguno de los alo es puede es a acío (es
deci , la upla puede se pa cial, como se desc ibe en el apa ado 1). Al elegi
es a opción se emi e el comando:
/ api /debug_sql ViewName

missing(Tuple

) Op ions
Después el sis ema gene a una p egun a y selecciona el siguien e nodo que debe
se depu ado. El ipo de p egun a que se espe a que esponda el usua io se de e mina
con el comando:
/debug_sql_cu en _ques ion
que de uel e ese ipo de p egun a, que se de allan a con inuación.
Pa a dicha p egun a se pueden ene las siguien es espues as:
T abajo de Fin de G ado 2019-2020 18
●Válida (Valid): Al elegi es a opción se esponde con:
/ api /debug_sql_answe all/subse /in(ViewName

)  alid
●No álida (Non- alid): Al elegi es a opción se esponde con:
/ api /debug_sql_answe all/subse /in(ViewName

) non alid
●Tupla e ónea (W ong Tuple): Pa a elegi es a opción se deben esc ibi los
alo es de la upla. Alguno de los alo es puede es a acío.
/ api /debug_sql_answe all/subse (ViewName

) w ong(Tuple

)
●Tupla al an e (Missing Tuple): Pa a elegi es a opción se deben esc ibi los
alo es de la upla. Alguno de los alo es puede es a acío.
/ api /debug_sql_answe all(ViewName

) missing(Tuple

)
●Abo a (Abo ): Abo a la depu ación. Al elegi es a opción se esponde con:
/ api /debug_sql_answe all(ViewName

) abo
En cualquie momen o el usua io puede ma ca los nodos de los que no se conozca
aún su es ado con el siguien e comando:
/ api /debug_sql_se _node NodeName


s a e
La depu ación e mina po que la cancela el usua io o bien po que se de uel e un
nodo e óneo (e oneous, esul ado del comando / api /debug_sql_answe ). En
es e úl imo caso se indica el nodo e óneo y se in o ma de las es adís icas, que se
ob ienen con el comando  api /debug_sql_s a is ics explicado en el apa ado
6.2.
En el siguien e apa ado se mues a cómo se ha diseñado la in e az g á ica en base
a es os comandos.
T abajo de Fin de G ado 2019-2020 19
5. DISEÑO DE LA INTERFAZ
Como hemos comen ado en la in oducción, ACIDE es un IDE desa ollado po
a ios g upos de es udian es en años an e io es. En el momen o de comenza es e
p oyec o ya es aba c eado el panel de depu ación den o del sis ema. És e enía un
compo amien o es able en cuan o a la ob ención de las is as exis en es en la base de
da os en uso y la gene ación de g a os que mues an la elación en e is as y ablas,
como puede isualiza se en la siguien e imagen.
El p incipal obje i o de la in e az iene que se la depu ación de o ma ápida e
in ui i a pa a que cualquie usua io que no enga expe iencia p e ia con la aplicación
ACIDE pueda encon a los e o es que pueda ene su base de da os.
Las ca ac e ís icas p incipales que iene que ene la in e az es de se cla a pa a
el usua io y po an o en cada paso de depu ación el sis ema debe expone oda la
in o mación disponible. Pa a ello el panel ‘Debug SQL’ de ACIDE mues a el g a o de
compu ación con los es ados de los nodos ac ualizados y una en ana con la
in o mación del nodo que es á siendo depu ado ac ualmen e.
En es e panel se han incluido 3 bo ones nue os con el obje i o de mos a la
in o mación de la is a seleccionada, pa a comenza la depu ación y pa a con igu a
la depu ación como se mues a en la siguien e imagen.
T abajo de Fin de G ado 2019-2020 20
El p ime bo ón mues a la in o mación ob enida de la is a seleccionada que es la
is a que el usua io ha de ec ado como e ónea. Es o pe mi e que el usua io pueda
compa a en cualquie momen o esa is a con o as is as o ablas elacionadas con
ella, eniendo un mayo con ex o sob e cuál puede se el o igen del p oblema.
Pulsando es e bo ón se ob iene una nue a en ana como la siguien e:
En caso de pulsa en el bo ón de comenza la depu ación se ab i á una nue a
en ana con la in o mación de la is a o abla que es emos depu ando en ese
momen o con las opciones disponibles. La abla de da os siemp e end á su úl ima ila
acía y el usua io la ellena á en caso de que e in o ma al sis ema que hay una upla
al an e en dicha is a o abla. En caso de que e indica que hay una upla inco ec a,
se in o ma á al sis ema en iando la upla comple a que es é seleccionada en ese
momen o.
T abajo de Fin de G ado 2019-2020 21

En cada paso de depu ación se ac ualizan los colo es de los nodos del g a o de
depu ación con la in o mación que iene ac ualmen e el sis ema, los colo es de los
nodos son los siguien es:
●G is: en caso de que dicho nodo no haya sido explo ado.
●Ama illo: indica que dicho nodo es el seleccionado ac ualmen e.
●Ve de: en caso de que el nodo haya sido e aluado como álido.
●Na anja: en caso de que el nodo haya sido e aluado como no álido.
●Rojo: indica que dicho nodo es el o igen del e o en la base de da os.
Al inaliza se el p oceso de depu ación, se mues a cuál e a el nodo que causaba el
p oblema, pe mi iendo e pos e io men e las es adís icas de la depu ación y edi a
dicho nodo:
T abajo de Fin de G ado 2019-2020 22
La mues a de es adís icas iene la in o mación de el núme o de nodos, el máximo
núme o de p egun as, el núme o de p egun as, el núme o de uplas inspeccionadas, el
núme o de uplas aíz y el núme o de uplas que no son aíz:
La opción de edición del nodo ab i á una abla en la que se puede edi a la
in o mación en caso de se abla o la edición de la o mulación en SQL de la de inición
de la is a en caso de se lo:
También se han añadido opciones al g a o de depu ación con menús con ex uales
en cada nodo haciendo clic de echo sob e el mismo con las di e en es opciones que
dispone el nodo. De es a o ma se puede hace una depu ación más ápida aún ya que
pe mi e al usua io elegi el nodo que quie e depu a dando una mayo libe ad al
usua io de pode depu a sus bases de da os. Es as opciones no se encuen an
disponibles oda ía en la úl ima e sión de DES publicada.
T abajo de Fin de G ado 2019-2020 23
En caso de pulsa el bo ón de con igu a la depu ación se mos a á una nue a
en ana con las opciones desc i as en el apa ado an e io :
Con odo es o desc i o an e io men e el uncionamien o es el siguien e: el usua io
selecciona la is a que ha de ec ado como inco ec a en el desplegable de is as que
hay en el panel ‘Debug SQL’ y después comienza la depu ación a a és del bo ón
‘S a Debug’ del panel de ‘Debug SQL’ o a a és del menú con ex ual de dicho nodo.
En caso de que haya pulsado el bo ón ‘S a Debug’ comenza á la depu ación
guiada y mos a á la in o mación de los nodos y las opciones disponibles de dicho
nodo.
En caso de que el usua io haya seleccionado las opciones del menú con ex ual se
ealiza á la depu ación lib e en la que el usua io segui á seleccionando las opciones
del menú con ex ual.
En cualquie momen o el usua io puede cambia de modo de depu ación que le
con enga más en ese momen o.
Cuando el p oceso de depu ación e mine ob end á la en ana que mues a cual
es el nodo inco ec o y las opciones de mos a es adís icas y la de edición del nodo
e óneo.
A con inuación mos a emos en la p ác ica odo lo explicado an e io men e pa a
e la u ilidad y e iciencia de ealiza una depu ación g á ica en con aposición de
ealiza lo con una in e az ex ual.
T abajo de Fin de G ado 2019-2020 24
6. DEPURACIÓN DECLARATIVA EN PRÁCTICA
En es e apa ado mos a emos en la p ác ica el uncionamien o de la depu ación
decla a i a. Pa a ealiza lo, amos a expone
Pa a es e ejemplo de depu ación amos a de ini una base de da os de una ienda
de moda ‘Pa uá’ que con iene 4 ablas: empleados, a ículos, en as e in o_ en a.
En es a ienda les gus a ecompensa a sus mejo es dependien es ya que
pa icipan ac i amen e du an e el p oceso de en a pa a aconseja e in en a ende
odo lo posible. Pa a hace la dis inción de sus mejo es dependien es ienen que
supe a una se ie de equisi os en base a la in o mación almacenada es sus bases de
da os a lo la go del mes. Es os equisi os suelen se muy exigen es ya que a los que
supe an odos los il os 3 meses seguidos ienen la posibilidad de ascenso y una
semana de acaciones pagadas a ca go de la emp esa.
Las es icciones impues as pa a la ob ención de mejo es empleados son las
siguien es:
●Los dependien es deben ene una media de en as c uzadas mayo a 1,6. Las
en as c uzadas co esponden a la can idad de p oduc os endidos en un
mismo icke , e.g. un dependien e ende 2 p oduc os a un clien e y después
ende o o p oduc o a un clien e dis in o, las en as c uzadas co esponden a
1,5 ya que ha endido 3 p oduc os a 2 clien es.
●Tienen que habe pa icipado ac i amen e en el op de p oduc os más
endidos po la ienda.
●Tienen que ene en as con un impo e mayo a 50 eu os.
●Tienen que ene un endimien o de sueldo mayo a 5, es deci , las en as que
hace a lo la go del mes ienen que se al menos 5 eces su sueldo.
En la igu a X.X se mues a las ablas de la base de da os Pa uá. Las cla es
p ima ias se mues an sub ayadas. La igu a Y.Y mues a las is as c eadas pa a la
selección de los mejo es empleados de nues a ienda. La p ime a is a es
buenas_ en as(id_empleado, nume o_ en as)

que ob iene el id de los empleados que
han hecho en as con impo es supe io es a 50 eu os y el núme o de eces que lo han
conseguido. La segunda is a  op_a ículos(id_a ículo, can idad)

mues a los a ículos
más endidos de la ienda y sus unidades endidas. La e ce a is a mues a
op_a iculo_empleado(id_empleado, id_a iculo)

ecoge el a ículo más endido de
cada empleado. La cua a is a empleado_en_ op(id_empleado)

mues a los empleados
cuyo p oduc o más endido es é en la is a  op_a ículos.

La quin a is a
en as_c uzadas(id_empleado, en a_c uzada)

ob iene los ids de los empleados cuya
en a c uzada media sea mayo que 1,6 jun o a su en a c uzada. La sex a is a
sueldos_ en ables(id_empleado, sueldo)

ob iene los id de los empleados y sueldo de
aquellos cuyas en as sean al menos 5 eces supe io es a su sueldo. La sép ima is a
mejo es_empleados(id_empleado)

ecoge a los empleados que es án en
empleado_en_ op

, buenas_ en as

,  en as_c uzadas

y sueldos_ en ables

.
T abajo de Fin de G ado 2019-2020 25
In o:
p ocessAnswe (subse ( en as_empleado_slice1, en as_empleado),w ong( en as_em
pleado(2,1850)))
In o: 31 ules lis ed.
In o: Ques ion: all( op_a iculos)
In o: Debugging  iew ' op_a iculos'.
{
1- op_a iculos(5),
2- op_a iculos(7),
3- op_a iculos(9),
4- op_a iculos(13),
5- op_a iculos(14)
}
Según hemos is o en la in o mación mos ada an e io men e, la is a
op_a iculos es co ec a pues o que sus uplas son las espe adas.
Inpu : Is his he expec ed answe  o  iew ' op_a iculos'?
(y/n/m/mT/w/wN/a/h) [y]: y
In o: p ocessAnswe (all( op_a iculos), alid)
In o: 32 ules lis ed.
In o: Ques ion: all( en a)
In o: Debugging  able ' en a'.
{
1- en a(1,8,7,80,2),
2- en a(2,9,2,600,2),
3- en a(3,1,3,375,3),
4- en a(8,5,2,1250,8),
5- en a(9,8,5,200,1)
}
Como ya sospechábamos an e io men e, la abla en as no debe ía de es a bien
pues o que las is as que dependían de es a e an e óneas. En es e caso sabemos que
la segunda y cua a upla iene una en a con el ID de empleado 2, en es e caso
T abajo de Fin de G ado 2019-2020 32

espondemos que la abla no es álida y con es o descub imos el o igen de nues o
p oblema.
Inpu : Is his he expec ed answe  o  able ' en a'? (y/n/m/mT/w/wN/a/h) [y]:
n
In o: p ocessAnswe (all( en a),non alid)
In o: 33 ules lis ed.
In o: Buggy  able ound: ' en a'.
In o: Debug S a is ics:
In o: Numbe o nodes : 12
In o: Max. numbe o ques ions : 12
In o: Numbe o ques ions : 12
In o: Numbe o inspec ed uples: 20
In o: Numbe o oo uples : 1
In o: Numbe o non- oo uples : 19
El p oblema de es a depu ación no es solo que el p oceso es muy ex enso ya que
además se han eliminado en la sesión de depu ación an e io el lis ado de eglas
mos ado an e io a las líneas ‘In o: x ules lis ed.’ , sino que ambién se puede ol e
con uso pa a los usua ios que in en an hace una depu ación de sus bases de da os ya
que no pueden e de o ma cla a la in o mación que es án depu ando. En nues o
caso sabíamos que el empleado con ID 2 no podía es a en nues as is as de mejo
empleado po que es aba de acaciones pe o en caso de habe sido po un allo en el
cálculo de alguna is a al no mos a escasa in o mación hab ía sido más complicado
pa a el usua io de ec a como álidas o no álidas las is as.
T abajo de Fin de G ado 2019-2020 33
6.2. DEPURACIÓN DECLARATIVA SQL EN ACIDE
Como hemos is o en el apa ado an e io el p oceso de depu ación puede se
bas an e edioso, po eso el obje i o de es e TFG es la c eación de una in e az g á ica
en la que se pueda hace una depu ación de una base de da os de una o ma más
ápida e in ui i a.
Únicamen e enemos que ab i ACIDE y p ocesa nues o a chi o SQL como
ha íamos en DES. Una ez p ocesado podemos selecciona la is a que que emos
depu a pa a mos a el g a o de dependencias en e is as y ablas y comenza la
depu ación pulsando el bo ón play.
T abajo de Fin de G ado 2019-2020 34
Al pulsa lo se mues a el con enido de la is a y las posibles opciones de
depu ación.
T abajo de Fin de G ado 2019-2020 35
En nues o caso sabemos que el empleado con ID 2 no debe ía de es a en la abla
así que pulsa emos el bo ón ‘W ong Tuple’.
Con cada paso de depu ación se ma ca un nue o nodo del g a o y se ma ca con
di e en es colo es el es ado de los nodos explo ados. Los colo es posibles pueden se :
e de pa a los nodos álidos, na anja pa a los nodos no álidos y ojo pa a los nodos
e óneos.
T abajo de Fin de G ado 2019-2020 36
Aho a p ocedemos a depu a a is a sueldos_ en ables, que ampoco es una is a
álida, po lo an o pulsamos el bo ón ‘Non Valid’.
T abajo de Fin de G ado 2019-2020 37

La is a buenas_ en as posee el id 2 po lo an o no debe pe enece a es a.
La is a empleado_en_ op iene el id 2 po lo an o ampoco debe ía de es a en
es a.
T abajo de Fin de G ado 2019-2020 38
La is a sueldos_ en ables no debe ene la upla con id 2.
La in o mación de la is a empleados es á bien así que pulsamos ‘Yes’.
T abajo de Fin de G ado 2019-2020 39
La upla con ID_EMPLEADO 2 no debe ía de es a en op_a iculos_empleado.
T abajo de Fin de G ado 2019-2020 40
La is a de op_a iculos es co ec a.
T abajo de Fin de G ado 2019-2020 41
7. TAREAS DE MANTENIMIENTO REALIZADAS
El obje i o p incipal de es e TFG ha sido la elabo ación de la in e az de usua io
pa a la depu ación de bases de da os en ACIDE pe o además se ha ealizado g andes
es ue zos po hace man enimien o de la aplicación y esolución de bugs de años
an e io es. A con inuación se an a expone las a eas de man enimien o y esolución
de bugs más no ables que se han ealizado:
●Homogeneiza los es ilos de dibujo de odos los g a os de ACIDE haciendo que
el nodo aíz se man enga en la pa e supe io .
●C eación de un g a o nue o RDG den o del panel PDG y mos a el g a o al
ab i es e panel.
●Man ene la con igu ación léxica de la consola de ACIDE al einicia la.
●En el panel ‘Da abase’ ac ualiza las is as an es de mos a las, an es
man enían los con enidos del p ocesamien o del a chi o SQL pe o no las
modi icaciones ealizadas desde la aplicación.
●Realiza con ol de e o es a la ho a de ealiza edición de una is a
(modi icación de la consul a SQL). Es o co ompía al sis ema.
●E i a la modi icación de da os de las is as du an e su isualización.
●Añadi la uncionalidad al checkbox ‘SQL Tex ’ de ab i y selecciona el nodo
del á bol en el panel ‘Da abase’ y cen a dicho nodo en el panel pa a que el
usua io pueda e lo.
●Inc emen a el núme o de comandos en e ACIDE yDES usen el p o ocolo
TAPI pa a una mejo man enibilidad de la comunicación en e los dos
sis emas y eliminación de comandos duplicados.
T abajo de Fin de G ado 2019-2020 48

●A eglada la modi icación de inse ción de da os en las ablas en uplas que
enían más de 1 columna y la uncionalidad de bo ado de upla.
●A eglada la isualización de is as y ablas pa a las bases de da os ex e nas a
DES.
●A eglada la isualización de ex o SQL en bases de da os ex e nas a DES pa a
la edición de is as. Es os 2 úl imos pun os han sido imp escindibles pa a el
co ec o uncionamien o de la depu ación en bases de da os ex e nas.
T abajo de Fin de G ado 2019-2020 49
8. HERRAMIENTAS Y TECNOLOGÍAS
La he amien a con la que se ha lle ado a cabo el con ol de e siones ha sido
Gi Hub [13], debido a mi expe iencia de uso de es a he amien a y al ex enso uso de
es a, de o ma que u u os g upos puedan segui u ilizando es e eposi o io ya
con igu ado pa a u u os desa ollos sob e ACIDE.
El IDE u ilizado pa a el desa ollo de código ha sido In ellij po su g an sis ema de
depu ación y mi expe iencia de uso del mismo.
Pa a el uso de bases de da os ex e nas a a és de ODBC he usado la he amien a
XAMPP que iene como base de da os MySQL.
Pa a el desa ollo de la in e az he u ilizado Ja a Swing ya que es e p oyec o e a
una con inuación de abajos de años an e io es y ACIDE es á desa ollado con es a
ecnología.
Pa a la ans e encia de a chi os y ejecu ables en e alumno y di ec o hemos
usado Google D i e[21].
T abajo de Fin de G ado 2019-2020 50
9. DOCUMENTACIÓN
Todos los a chi os del p oyec o, an o los a chi os de documen ación como los
a chi os de código son obje o de con ol de la ges ión de la con igu ación. Se ha
seguido con la con igu ación de la ges ión desc i a en las memo ias [1],[2],[3], [4],
[5] y [6].
En la comunicación en e alumno y di ec o du an e la ealización del p oyec o, se
ha lle ado a cabo el seguimien o del documen o de a eas llamado
“ a eas_XX-XX-XXXX” en la ca pe a de en egas de Google D i e[21] donde
XX-XX-XXXX es la echa de en ega. Es e documen o de a eas se ac ualizaba según se
ealizaban las a eas y se hacían nue as i e aciones sob e el p oyec o.
En es e documen o, las a eas podían es a en 3 es ados posibles
●PENDIENTE:Ta ea eque ida po pa e del di ec o pa a se
implemen ada.
●REVISAR:Implemen ación ealizada po el alumno, pe o pendien e de
ap obación.
●OK: Implemen ación ealizada y ap obada po el di ec o .
Los es ánda es aplicados en es e documen o han sido los mismos que en años
an e io es pa a man ene uni o midad de las documen aciones, pa a más
in o mación e isa las memo ias e e enciadas en [1], [2], [3], [4], [5] y [6].
Con cada i e ación en el desa ollo se ha en egado una nue a e sión de la
aplicación al di ec o que consis ía en un a chi o ZIP, el a chi o ejecu able ja y una
ac ualización en el documen o de a eas de Google D i e [21]. Den o del a chi o
ZIP se encon aba el ejecu able del p oyec o, los a chi os de con igu ación, el código
del p oyec o y a chi os SQL pa a se p ocesados po la aplicación. Cada en ío se
gua daba en una ca pe a con la echa de en ega. De es a o ma se almacenan las
di e en es e siones de ACIDE eniendo un con ol sob e los a ances del p oyec o.
T abajo de Fin de G ado 2019-2020 51
10. CONCLUSIONES
Con la inalización del p oyec o se han cumplido los obje i os p opues os al inicio
del mismo al mismo iempo que se han esuel o e o es que enía la he amien a y se
han ealizado o as mejo as mencionadas en el apa ado an e io .
Se ha c eado una in e az g á ica a ín a la ya exis en e en ACIDE. Se han
man enido odos los es ánda es de código y documen ación es ablecidos en años
an e io es. Es o es muy impo an e ya que ACIDE es un p og ama de código abie o
que se usa en uni e sidades de odo el mundo y p obablemen e se ealiza án abajos
de in de g ado en un u u o elacionados con es e sis ema.
Hay que ene en cuen a que ACIDE es una aplicación bas an e g ande en la que
han in e enido muchos p og amado es y po an o los p ime os meses de abajo
me ha supues o un g an es ue zo pa a empapa me del uncionamien o de la
aplicación y de la in aes uc u a in e na del mismo.
Se pueden p ocesa odos los ejemplos e lejados en la manual o icial de DES [7]
an o en el modo de depu ación guiada como en el modo de depu ación de los menús
con ex uales de los nodos de los g a os.
La aplicación ACIDE es un IDE  obus o que puede se de g an ayuda pa a nue os
p og amado es pe o puede mejo a se po an o en el siguien e apa ado se exponen
posibles mejo as que pueden implemen a se en el sis ema pa a una mejo a en la
expe iencia de usua io y man enibilidad.
T abajo de Fin de G ado 2019-2020 52
11. TRABAJO FUTURO
En es a sección se lis an las mejo as más no ables que mejo a ían el uso de la
aplicación:
●In oduci en el iche o de idioma los a ajos de eclado, de es e modo los
a ajos queda ían asociados al idioma ca gado en la aplicación.
●Inclui un panel en la pan alla p incipal la base de da os ase ada en ez de
mos a la en una nue a en ana.
●Pe mi i el uso de pe spec i as como en In ellij o Eclipse[10]. Debido a la
g an can idad de paneles y uncionalidades que posee ACIDE se ía
in e esan e que se pudie an con igu a pe spec i as como o os IDE
mejo ando la expe iencia de los usua ios.
●Añadi la uncionalidad de ab i iche os en el edi o de ex o de ACIDE
cuando un usua io pulsa y a as a un a chi o den o de es e.
●Inclui es uni a ios y de in eg ación, de es a o ma se asegu a una mayo
man enibilidad de la aplicación cuando se modi iquen uncionalidades o se
c ean nue as e siones de DES asegu ando la comple a compa ibilidad
en e ambas aplicaciones.
Los pun os an e io es son los que conside o más impo an es pa a una mejo a de
la aplicación pe o pueden encon a se más mejo as en el documen o
TODO_ACIDE.doc. Es e documen o se encuen a en la ca pe a de Google D i e del
p oyec o.
T abajo de Fin de G ado 2019-2020 53

12. CONCLUSIONS
Wi h he comple ion o he p ojec , he objec i es p oposed a he beginning o he
p ojec ha e been me , a he same ime ha e o s in he ool ha e been esol ed and
o he imp o emen s men ioned in he p e ious sec ion ha e been made.
An in e ace has been implemen ed acco ding o al eady implemen ed wi hin
ACIDE and all he code and documen a ion s anda ds es ablished in p e ious yea s
ha e been main ained, his is e y impo an since ACIDE is an open sou ce p og am
ha is used in uni e si ies a ound he wo ld and he e will p obably be inal deg ee
p ojec s in he u u e ela ed o his sys em.
Keep in mind ha ACIDE is a ai ly la ge applica ion in which many p og amme s
ha e in e ened and he e o e he i s mon hs o wo k ha e in ol ed a g ea e o o
soak up he ope a ion o he applica ion and i s in e nal in as uc u e.
All he examples e lec ed in he o icial DES manual [7] can be p ocessed bo h in
he guided debugging mode and in he debugging mode o he con ex ual menus o
he g aph nodes.
The ACIDE applica ion is a obus IDE  ha can be o g ea help o new
p og amme s bu i can be imp o ed, he e o e, he nex sec ion p esen s possible
imp o emen s ha can be implemen ed in he sys em o an imp o emen in he use
expe ience and main ainabili y.
T abajo de Fin de G ado 2019-2020 54
13. FUTURE WORK
This sec ion lis s he mos no able imp o emen s ha would imp o e he use o
he applica ion:
●En e he keyboa d sho cu s in he language ile, in his way he sho cu s
would be associa ed wi h he language loaded in he applica ion.
●Include a panel on he main sc een o he asse ed da abase ins ead o
displaying i in a new window.
●Allow he use o pe spec i es as in In ellij o Eclipse [10]. Due o he la ge
numbe o panels and unc ionali ies ha ACIDE has, i would be in e es ing i
i could be con igu ed like o he IDEs o which use s a e al eady accus omed
and can con igu e i o hei own liking.
●Add he unc ionali y o open iles in he ACIDE  ex edi o when a use clicks
and d ags a ile in o i .
●Include uni and in eg a ion es s, in his way, g ea e main ainabili y o he
applica ion is ensu ed when unc ionali ies a e modi ied o new e sions o
DES a e c ea ed, ensu ing comple e compa ibili y be ween bo h applica ions.
The p e ious poin s a e he ones ha I conside mos impo an o an
imp o emen o he applica ion bu mo e imp o emen s can be ound in he
TODO_ACIDE.doc documen
T abajo de Fin de G ado 2019-2020 55
14. BIBLIOGRAFÍA
Pa a desa olla el p esen e p oyec o se han seguido las siguien es uen es:
●Explicación del uncionamien o de los comandos de DES.
o Da alog Educa ional Sys em V6.5 Use ’s Manual. Fe nando Sáenz
Pé ez. Uni e sidad Complu ense de Mad id. 2020.
●Teo ía sob e la depu ación decla a i a en SQL:
o Decla a i e Debugging o W ong and MissingAnswe s o SQL Views.
Ra ael Caballe o, Yollanda Ga cía-Ruíz, y Fe nando Sáenz Pé ez.
Uni e sidad Complu ense de Mad id. 2013.
oAlgo i hmic Debugging o SQL Views.R. Caballe o, Y. Ga cía-Ruiz and
F. Sáenz-Pé ez

.

Uni e sidad Complu ense de Mad id. 2011.
T abajo de Fin de G ado 2019-2020 56
15. REFERENCIAS
[1] D. Ca diel F ei e, J. J. O iz Sánchez y D. Rupé ez Cañas. ACIDE: A Con igu able IDE.
Uni e sidad Complu ense de Mad id. 2007.
[2] M. Ma ín Láza o. ACIDE 0.2: a con igu able in eg a ed de elopmen en i onmen .
Uni e sidad Complu ense de Mad id. 2008.
[3] J. Salcedo Gómez. ACIDE: A Con igu able IDE. DES GUI F on -end. Uni e sidad
Complu ense de Mad id. 2011.
[4] P. Gu ié ez Ga cía-Pa do, E. Tejei o Pé ez de Ág eda, A. Vicen e del Cu a: A
Con igu able IDE. DES GUI F on -end. Uni e sidad Complu ense de Mad id. 2013
[5] J. J. Ma qués O iz, F. O dás Lo en e y S. Gu ié ez Quin ana: A Con igu able IDE.
DES GUI F on -end. Uni e sidad Complu ense de Mad id. 2014
[6] S. Domínguez Fuen es: Acide: a con igu able IDE: ACIDE debugging. Uni e sidad
Complu ense de Mad id. 2015
[7] Manual o icial de DES:
h ps://www. di.ucm.es/p o eso / e nan/des/h ml/manual/manualDES.h ml
[8] R. Caballe o, Y. Ga cía-Ruiz, and F. Sáenz-Pé ez, Decla a i e Debugging o W ong
and Missing Answe s o SQL Views. Uni e sidad Complu ense de Mad id. 2013.
[9]R. Caballe o, Y. Ga cía-Ruiz and F. Sáenz-Pé ez. Algo i hmic Debugging o SQL
Views. Uni e sidad Complu ense de Mad id. 2011.
[10] Página o icial de Eclipse: h ps://www.eclipse.o g/
[11] Página o icial de Google d i e: h ps://d i e.google.com/
[12] Página o icial de In ellij: h ps://www.je b ains.com/es-es/idea/
[13] Página o icial de Gi Hub: h ps://gi hub.com/
T abajo de Fin de G ado 2019-2020 57
Añadimos únicamen e los a chi os .ja  que es án den o de la ca pe a lib:
T abajo de Fin de G ado 2019-2020 64

Aplicamos los cambios:
T abajo de Fin de G ado 2019-2020 65
Aho a enemos que añadi un nue o pe il de ejecución, en el bo ón de inicia
pulsamos en el desplegable y seleccionamos la opción de ‘Run Con igu a ions’:
Añadimos una nue a con igu ación den o de ‘Ja a Applica ion’ y seleccionamos
como la clase p incipal ‘AcideMain’:
T abajo de Fin de G ado 2019-2020 66
Aho a ya somos capaces de co e la aplicación, lo único que nos queda es gene a
nues os ejecu ables, pa a ello hacemos clic de echo en el p oyec o y seleccionamos
la opción de expo a :
T abajo de Fin de G ado 2019-2020 67
Una ez hayamos seleccionado la opción pulsa emos la opción ‘Runnable JAR ile’
den o de la ca pe a ‘Ja a’.
T abajo de Fin de G ado 2019-2020 68
Después selecciona emos con igu ación de ejecución gene ada an e io men e y
damos nomb e a nues o ejecu able y nos asegu amos de que es é en la aíz del
p oyec o pues o que pa a ejecu a se necesi a los a chi os de con igu ación.
T abajo de Fin de G ado 2019-2020 69

Con es o ya enemos odas las opciones que necesi amos como desa ollado es.
T abajo de Fin de G ado 2019-2020 70