Está en la página 1de 22

SISTEMA EXPERTO PARA DETECTAR LAS ENFERMEDADES TROPICALES

PRODUCIDAS POR EL MOSQUITO EN LA AMAZONIA

1. CAPÍTULO I

1.1. Introducción
En la ciudad de Riberalta existe un clima tropical húmedo donde la proliferación
de mosquitos provoca enfermedades como el dengue, chikungunya, zika y
malaria las cuales cuando no son diagnosticadas a tiempo pueden traer graves
consecuencias como la muerte.
Es importante detectar estas enfermedades a tiempo, para evitar gastos
innecesarios y pérdidas humanas.

1.2. Planteamiento Del Problema


La ciudad de Riberalta está ubicada en la Amazonía de Bolivia, debido a su
ubicación los mosquitos están muy presentes en la zona.
Los mosquitos pueden portar enfermedades, de las cuales destacan el dengue,
la chikungunya, zika y malaria; estas enfermedades son parecidas entre sí y
afectan a la población que normalmente no tienen la suficiente la información
para identificar correctamente la enfermedad

1.3. F​ ormulación Del Problema


¿Cuál será la manera de detectar de forma más rápida las enfermedades
tropicales producidas por el mosquito en la Amazonía?

1.4. ​Objetivo

1.4.1. Objetivo General


Desarrollar un sistema experto para detectar de forma más rápida las
enfermedades tropicales producidas por el mosquito en la amazonia

1.4.2. Objetivos Específicos


● Analizar las enfermedades tropicales mediante entrevistas al experto y
recolección de datos.
● Diseñar la estructura del sistema experto con el conocimiento obtenido.
● Desarrollar el sistema experto basado en reglas.
● Realizar pruebas en el sistema experto para la validación.

1.5. Hipótesis
El desarrollo de un sistema experto permitirá detectar de forma más rápida las
enfermedades tropicales producidas por el mosquito en la amazonia.
1.6. Justificación
1.6.1. Social
Se justifica socialmente debido a que el presente proyecto ayudará a la población
de Riberalta para que puedan identificar de manera más accesible las
enfermedades tropicales producidas por el mosquito, mediante un diagnóstico
que proporciona el sistema experto.
También ayuda a que puedan acceder a la información necesaria, según el
diagnóstico para su futuro tratamiento de la enfermedad en un centro de salud
autorizado en caso de que la persona sea afectada por una de estas
enfermedades.

1.6.2. Técnica
Se justifica técnicamente el proyecto porque el sistema experto implementará
una nueva estrategia de diagnóstico de enfermedades tropicales mediante
preguntas para un obtener un diagnóstico aproximado ayudando así al
diagnóstico rápido y eficiente de las enfermedades.

1.6.3. Económica
Se justifica económicamente el proyecto porque el sistema experto al
diagnosticar correctamente las enfermedades evitará a la población de ir a
hacerse una consulta así evitando hacer gastos extra solo en el diagnóstico,
como también al incrementar gastos cuando no son detectadas a tiempo.

1.7. ​Tabla De Acciones

Objetivo Específico. Acciones.

Analizar las ·​ ​Entrevistar a un experto.


enfermedades tropicales ·​ ​Revisar historiales médicos.
para la identificación de la ·​ ​Investigar síntomas producidos
base del conocimiento por las diferentes enfermedades
tropicales.

Diseñar la estructura del ·​ ​Diseñar la base de hechos


sistema experto con el ·​ ​Diseñar la base de conocimiento
conocimiento obtenido
·​ ​ iseñar y programar el motor de
D
inferencia
Desarrollar el sistema ·​ ​Programar la base de hechos
experto basado en reglas ·​ ​Programar la base de
conocimiento
·​ ​Programar las GUI

·​ ​Pruebas del sistema experto.


Realizar las pruebas en el ·​ ​Verificación del sistema experto.
sistema experto para la ·​ ​Corrección del sistema experto
validación

2. CAPÍTULO II
2.1. Marco Teórico
2.1.1. Enfermedades Tropicales
Las enfermedades tropicales son aquellas que ocurren únicamente, o
principalmente, en los trópicos. En la práctica, la expresión se refiere a las
enfermedades infecciosas que predominan en climas calientes y húmedos,
como el paludismo, la leishmaniasis, la esquistosomiasis, la oncocercosis, la
filariasis linfática, la enfermedad de Chagas, la tripanosomiasis africana y el
dengue.Insectos como los mosquitos y las moscas y arácnidos como las
garrapatas son de lejos los portadores de enfermedades o vectores más
comunes. Los insectos presentes en los trópicos pueden transportar parásitos,
bacterias o virus infecciosos para los seres humanos y los animales.
Frecuentemente, la enfermedad es transmitida por la picadura de un artrópodo
que ocasiona la transmisión del agente infeccioso por medio de intercambio
subcutáneo de sangre.

La exploración de selvas tropicales, la deforestación y creciente inmigración y


tráfico aéreo internacional ha llevado a una incidencia progresivamente
globalizada de tales enfermedades.

2.1.1.1. Malaria
Causada por el protozoo parásito Plasmodium transmitido por el mosquito
Anopheles.
Infecta a 300-500 millones de personas cada año, matando a más de un millón
de ellas.
Síntomas
Las personas pueden sufrir:
Áreas de dolor: abdomen o músculos
Todo el cuerpo: escalofríos, fatiga, fiebre, sudoración o sudores nocturnos
Gastrointestinales: diarrea, náusea o vómitos
También comunes: confusión, dolor de cabeza, frecuencia cardíaca rápida o
palidez

2.1.1.2. Dengue
Causado por un virus transmitido por mosquitos portadores, como Aedes
aegypti. El dengue es una enfermedad infecciosa causada por el virus del
dengue, del género flavivirus o estegomia calopus. La infección causa
síndromes gripales, y en ocasiones evoluciona hasta convertirse en un cuadro
potencialmente mortal, llamado dengue grave o dengue hemorrágico.
Síntomas
Las personas pueden sufrir:
Áreas de dolor: abdomen, articulaciones, espalda, huesos, músculos o parte
posterior de los ojos
Todo el cuerpo: escalofríos, fatiga, fiebre o pérdida de apetito
Gastrointestinales: náusea o vómitos
Piel: erupciones o manchas rojas
También comunes: dolor de cabeza, dolor de garganta, facilidad para desarrollar
hematomas o sangrado
En los casos más graves puede haber hemorragia profusa y un shock, que
pueden llevar a la muerte.

2.1.1.3. Chikungunya
O fiebre de chikunguña es un virus del tipo alfavirus, que se transmite a las
personas mediante la picadura de los mosquitos portadores Aedes; tanto el
Aedes aegypti como el Aedes albopictus. El virus se transmite de manera similar
a la fiebre del dengue y causa una enfermedad con una fase febril aguda que
dura de 2 a 5 días, seguido de un período de dolores en las articulaciones de las
extremidades; este dolor puede persistir semanas, meses o incluso durante
años en un porcentaje que puede rondar el 12 % de los casos.
Síntomas
Los síntomas generalmente aparecen una semana después de la infección. La
fiebre y el dolor de articulaciones pueden aparecer repentinamente. También
puede haber dolor muscular, dolor de cabeza, fatiga y sarpullido.
Las personas pueden sufrir:
Áreas de dolor: abdomen, articulaciones, músculos o parte posterior de los ojos.
Todo el cuerpo: fiebre, escalofríos o fatiga.
También comunes: dolor de cabeza, dolor persistente en las articulaciones o
erupción cutánea.
2.1.1.4. Zika
Enfermedad provocada por el virus del Zika, que se transmite por picaduras de
mosquito.
En la mayoría de los casos, no hay síntomas. En casos poco frecuentes, el zika
puede causar parálisis (síndrome de Guillain-Barré). En mujeres embarazadas,
puede causar defectos congénitos en el feto.
Se contagia por la mordedura o picadura de animales o insectos y por
relaciones sexuales vaginales, anales u orales sin protección.
Síntomas
Si se presentan síntomas, suelen ser moderados y duran menos de una
semana. Incluyen fiebre, sarpullido, dolor en las articulaciones y ojos rojos.
Puede no presentar síntomas, pero las personas pueden sufrir:
Áreas de dolor: articulaciones, músculos o parte posterior de los ojos.
Todo el cuerpo: fatiga, fiebre, escalofríos, pérdida de apetito o sudoración.
También comunes: dolor de cabeza, enrojecimiento del ojo, erupción cutánea o
vómito.

2.1.2. Sistemas Expertos


Sistemas expertos(ES, siglas del término Expert System) es un sistema de
información basado en el conocimiento que usa su conocimiento de un área de
aplicación compleja y específica a fin de actuar como un consultor experto para
los usuarios finales. Los sistemas expertos proporcionan respuestas sobre un
área problemática muy específica al hacer inferencias semejantes a las
humanas sobre los conocimientos obtenidos en una base de conocimientos
especializados.

Los Sistemas Expertos (SE) pueden ser considerados como un subconjunto de


la IA (Rossini, 2000). El nombre Sistema Experto deriva del término “sistema
experto basado en conocimiento”. Un Sistema Experto es un sistema que
emplea conocimiento humano capturado en una computadora para resolver
problemas que normalmente requieren de expertos humanos. Los sistemas bien
diseñados imitan el proceso de razonamiento que los expertos utilizan para
resolver problemas específicos. Dichos sistemas pueden ser utilizados por
no-expertos para mejorar sus habilidades en la resolución de problemas. Los SE
también pueden ser utilizados como asistentes por expertos. Además, estos
sistemas pueden funcionar mejor que cualquier humano experto individualmente
tomando decisiones en una específica y acotada área de pericia, denominado
como dominio (Turban, 1995). Hacia los años ‘80, comienza a surgir la industria
de los Sistemas Expertos (Waltz, 1997). Se realizaron importantes inversiones
en varios países de Europa, Asia y América, con el fin de lograr generar un
sistema capaz de reproducir la actividad de un experto humano en tópicos
específicos. Como en otras áreas de la inteligencia artificial, los primeros
resultados fueron atractivos y eso generó una expectativa desmesurada. Pero la
comunidad halló severas dificultades en la manipulación de la gran cantidad de
información necesaria para poder llevar a cabo una actividad realmente experta
en el sentido humano.

En esta área resulta estratégico poder resolver las siguientes tareas de forma
eficiente y completa:

● Identificar la información necesaria para el tópico en cuestión, conformando la


Base de Conocimiento.
● Codificar de manera concisa, eficiente y precisa la información, de modo que
la manipulación sea efectiva y ubicua.
Como la comunidad aún no estaba preparada para este otro salto (que se dará
mucho después con el advenimiento de las técnicas de minería de datos hacia
los años 90), esto derivó en resultados tibios que no cubrieron los ambiciosos
objetivos planteados para estas tecnologías. En consecuencia los fondos y el
interés mudaron rápidamente a otras tecnologías. Ante esto, la comunidad
reacciona con nuevas metodologías como el aprendizaje automático con
refinamiento automático (para evitar los problemas de selección de variables y
codificación), y sistemas basados en sentido común (para cubrir los huecos de
conocimientos del SE). Con la incorporación de estas nuevas tecnologías, surge
una nueva generación de SE, mucho más fáciles de mantener, desarrollar y
flexibles. Actualmente, los desarrolladores tienen a disposición interesantes
alternativas sobre lo que hoy se considera una tecnología madura, disponiendo
de métodos sofisticados de razonamiento, manejo de errores, incerteza,
incompletitud y fallas. Los nuevos SE, son mucho más robustos y apropiados
para el diagnóstico y planificación. Han surgido también tecnologías híbridas
capaces de combinar las representaciones simbólicas del conocimiento con
otras tecnologías más flexibles y cercanas al comportamiento humano. También
se han ido incorporando técnicas de las bases de datos, aprendizaje inteligente
y estadísticas. Los Sistemas Expertos es una de las áreas de la inteligencia
artificial ampliamente utilizada en la actualidad, pero así mismo tienen un gran
potencial para seguir siendo investigadas. En el desarrollo de este trabajo se
intentará introducir al lector en la temática, a modo de punto de partida para
continuar con el estudio e indagación del tema.

2.1.3. Sistemas Expertos Basados en Reglas


Un sistema experto está diseñado para trabajar como si fuera una persona
experta en algún tema específico. Trata de replicar o de simular el conocimiento
que han
adquirido estas personas basándose en las herramientas que ofrece la
inteligencia artificial. Su función principal es tratar de ofrecer soluciones que
puedan resolver problemas prácticos o también la creación de conocimiento
nuevo.
Analizaremos las componentes de la arquitectura general de un sistema Experto.
● Experto: es la persona que interactúa con el sistema para “transferir su
conocimiento”, mediante la inserción de reglas.
● Módulo de Adquisición del Conocimiento: es la interface entre el sistema experto
basado en reglas y el humano experto, por medio del cual ingresa nuevo
conocimiento a la base de conocimientos.
● Base de Datos (Hechos): son los datos importantes o relevantes relacionados al
problema específico.
● Base de Conocimientos (Reglas): forma en que se guarda el conocimiento
mediante el uso de reglas. Una regla es solo una parte del conocimiento con el
cual se soluciona el problema.
No son deducciones lógicas, sino más bien el conocimiento adquirido por un
experto.
● Módulo de Explicación: este es el encargado de generar los resultados o
diagnósticos para el usuario, que se han obtenido del motor de inferencia.
● Motor de Inferencia: es el encargado de la generación de conocimiento nuevo
utilizando el que ya se tiene, por medio de la simulación de un procedimiento de
razonamiento. Este procedimiento parte de una serie de datos hasta obtener una
solución.

2.1.4. Reglas y Estrategias de Inferencia y Control


Para poder encontrar todas las posibles soluciones o conclusiones hay que
utilizar varias reglas y estrategias del sistema experto.
Las que se usan para conclusiones simples son:
Modus Ponens: Si se tiene una regla en la cual se cumple la hipótesis, entonces
se infiere que la conclusión es cierta. Esta regla es la base de los Sistemas
Expertos Basados en Reglas.
Modus Tollens: Si se tiene una regla en la cual la conclusión es falsa, entonces
se infiere que la hipótesis también es falsa. Es una regla muy sencilla pero es
menos utilizada que Modus Ponens.
Para llegar a conclusiones compuestas se utilizan las siguientes reglas y
estrategias:
Resolución: esta también es una regla de inferencia. Tiene varios pasos:

● Se sustituyen las reglas por expresiones lógicas equivalentes.


● Se combinan las expresiones para formar una nueva expresión lógica.
● Se utiliza la nueva expresión lógica para llegar a una solución.
La regla de resolución requiere utilizar los conceptos de la lógica como
combinación de expresiones lógicas y su correspondiente simplificación.
Encadenamiento de Reglas: es la estrategia más usada. Esta se aplica cuando
las hipótesis de algunas reglas coinciden con las conclusiones de otras. De esta
forma los hechos obtenidos se usan para obtener nuevos hechos. Se realiza
iterativamente hasta que ya no hay más encadenamiento. Esta estrategia es
bastante útil en problemas donde se conocen alguno “síntomas” y se trata de
llegar a un “diagnóstico”.

Encadenamiento de Reglas Orientado a un Objetivo: en esta estrategia se tiene


una variable como objetivo. Se exploran todas las reglas y se trata de encontrar
una conclusión para ese objetivo. Si no se puede llegar a una conclusión se le
pide al usuario más información para así poder encontrar un camino. A diferencia
del encadenamiento de reglas, esta estrategia es útil cuando se conocen los
“diagnósticos” y se trata de encontrar los “síntomas” que dieron lugar a esas
conclusiones.

Compilación de Reglas: esta estrategia trabaja con información para llegar a


cumplir ciertos objetivos. Entonces se compilan las reglas y se escriben los
objetivos en función de los datos. Así se crean las ecuaciones objetivos.

2.1.5. Construcción de Sistemas Expertos Basados en Reglas


El encargado de esta tarea es el llamado Ingeniero de Conocimiento, el cual
tiene dos tareas o funciones principales: elegir el tipo de inferencia que usará el
motor y generar la base de conocimiento. (Fernández, 2008) En el tipo de
inferencia hay que decidir si se utilizar encadenamiento hacia adelante o hacia
atrás, esto se realiza de acuerdo a como los hechos se relacionan con las
conclusiones inferidas. Esto depende también de la aplicación que tendrá el
sistema experto que se construye.

Para generar la base de conocimientos se realiza una adquisición de


conocimiento. Se podría decir que esta es la parte en la que se “enseña” al
sistema a ser un experto en la materia. Este conocimiento puede provenir de
diversas fuentes, como ser: libros, manuales, bases de datos o de personas
expertas en el tema. Es muy importante que el Ingeniero de Conocimiento se
empape suficientemente del tema para así poder descubrir las reglas que
formarán parte de la base de conocimiento.

El ingeniero debe de verificar que los conocimientos adquiridos por el sistema


sean válidos. La mejor forma de hacerlo es mediante entrevistas, cuestionarios
planteados al experto en la materia para así poder validar toda la información.
Siempre es recomendable utilizar además técnicas automáticas para agilizar el
proceso de adquisición de conocimiento, ya que los algoritmos eligen las reglas
que optimizan el sistema y reducen el tiempo de ejecución del motor de
inferencia.
2.1.6. Amazonía
Es una vasta región de la parte central y septentrional de América del Sur que
comprende la selva tropical de la cuenca del río Amazonas. Las adyacentes
regiones de las Guayanas y el Gran Chaco también posee selvas tropicales, por
lo que muchas veces se les considera parte de la Amazonia.
Esta selva amazónica es el bosque tropical más extenso del mundo.Se
considera que su extensión llega a los 7 000 000 km² (siete millones de
kilómetros cuadrados) repartidos entre nueve países, de los cuales Brasil y Perú
poseen la mayor extensión, seguidos por Bolivia, Colombia, Venezuela,
Ecuador, Guyana, Francia (Guayana Francesa) y Surinam. La Amazonia se
destaca por ser una de las ecorregiones con mayor biodiversidad en el planeta.

2.1.6.1. Amazonía Boliviana


Bolivia es el país que tiene el mayor porcentaje de su territorio en la cuenca
amazónica. Según datos del Tratado de Cooperación Amazónica, la superficie
amazónica de Bolivia cubre una extensión de 824.000 kilómetros cuadrados, que
representa el 75% de su territorio nacional y el 11.20 % de toda la cuenca
amazónica continental.
La Amazonía boliviana se encuentra ubicada en los departamentos de Beni,
Pando, Santa Cruz, La Paz y Cochabamba. Los ríos de la cuenca amazónica
nacen en los nevados andinos y dan origen a uno de los más importantes
afluentes del Amazonas: el río Madera.
La región tiene la mayor diversidad étnica y cultural del país y es habitada por
una treintena de pueblos indígenas, cada uno de ellos con sus propias formas de
organización sociocultural e idiomas propios. También es el escenario de una
diversidad biológica que se expresa en una extensa flora y una variada fauna.
Gracias a ello, Bolivia ocupa el número siete entre los países del mundo con
mayor diversidad de aves y el once en variedad de mamíferos.
El impacto e intervención ecológica en la Amazonía boliviana es uno de los más
bajos en la región, el índice demográfico es de menos de 2 habitantes por
kilómetro cuadrados y el grado de deforestación dirigida está muy por debajo de
los niveles que experimentan los países vecinos.

2.1.7. Diagramas UML


El UML está compuesto por diversos elementos gráficos que se combinan para
conformar diagramas. Debido a que el UML es un lenguaje, cuenta con reglas
para combinar tales elementos. La finalidad de los diagramas es presentar
diversas perspectivas de un sistema, a las cuales se les conoce como modelo.
Recordemos que un modelo es una representación simplificada de la realidad; el
modelo UML describe lo que supuestamente hará un sistema, pero no dice cómo
implementar dicho sistema.

2.1.7.1. Diagramas de Casos de Uso


Los Casos de Uso no forma parte de la llamada Fase de Diseño, sino parte de la
fase de Análisis, respondiendo el interrogante ¿Qué?. De forma que al ser parte
del análisis ayuda a describir qué es lo que el sistema debe hacer.
Estos diagramas muestran operaciones que se esperan de una aplicación o
sistema y cómo se relaciona con su entorno, es por ello que se ve desde el punto
de vista del usuario. Describen un uso del sistema y cómo éste interactúa con el
usuario.
Los casos de usos se representan en el diagrama por una elipses la cual denota
un requerimiento solucionado por el sistema.
El conjunto de casos de usos representa la totalidad de operaciones que va a
desarrollar el sistema. Por último a estos elipses lo acompaña un nombre
significativo de manera de rótulo.
Otro elemento fundamental de estos diagramas son los actores la cual
representa a un usuario del sistema, que necesita o interactúa con algún caso de
uso, la que también es acompañado por un nombre.Por último tenemos los flujos
de eventos que corresponde a la ejecución normal y exitosa del caso de uso.

2.1.7.2. Diagrama de Actividades


Un diagrama de actividades muestra el flujo de actividades, siendo un actividad
una ejecución general entre los objetos que se está ejecutando en un momento
dado dentro de una máquina de estados, el resultado de un actividad es una
acción que producen un cambio en el estado del sistema o la devolución de un
valor. Las acciones incluyen llamadas a otras operaciones, envío de señales,
creación o destrucción de objetos o simples cálculos. Gráficamente un diagrama
de actividades será un conjunto de arcos y nodos. Desde un punto de vista
conceptual, el diagrama de actividades muestra cómo fluye el control de unas
clases a otras con la finalidad de culminar con un flujo de control total que se
corresponde con la consecución de un proceso más complejo. Por este motivo,
en un diagrama de actividades aparecerán acciones y actividades
correspondientes a distintas clases. Colaborando todas ellas para conseguir un
mismo fin.

2.1.8. Lenguaje de Programación


2.1.8.1. Java
Es un lenguaje sencillo de aprender. Su sintaxis es la de C++ “simplificada”. Los
creadores de Java partieron de la sintaxis de C++ y trataron de eliminar de este
todo lo que resultase complicado o fuente de errores en este lenguaje.
Java es un lenguaje orientado a objetos, aunque no de los denominados puros;
en Java todos los tipos, a excepción de los tipos fundamentales de variables (int,
char, long...) son clases. Sin embargo, en los lenguajes orientados a objetos
puros​ incluso estos tipos fundamentales son clases, por ejemplo en Smalltalk.
El código generado por el compilador Java es independiente de la arquitectura:
podría ejecutarse en un entorno UNIX, Mac o Windows. El motivo de esto es que
el que realmente ejecuta el código generado por el compilador no es el
procesador del ordenador directamente, sino que este se ejecuta mediante una
máquina virtual. Esto permite que los Applets de una web pueda ejecutarlos
cualquier máquina que se conecte a ella independientemente de qué sistema
operativo emplee (siempre y cuando el ordenador en cuestión tenga instalada
una máquina virtual de Java).
● Lenguaje totalmente orientado a Objetos. Todos los conceptos en los que se
apoya esta técnica, encapsulación, herencia, polimorfismo, etc., están
presentes en Java.
● Disponibilidad de un amplio conjunto de bibliotecas. Como ya se mencionó
anteriormente, Java es algo más que un lenguaje. La programación de
aplicaciones con Java se basa no solo en el empleo del juego de
instrucciones que componen el lenguaje, sino, fundamentalmente, en la
posibilidad de utilizar el amplísimo conjunto de clases que Sun pone a
disposición del programador y con las cuales es posible realizar
prácticamente cualquier tipo de aplicación.
● Lenguaje simple. Java posee una curva de aprendizaje muy rápida. Resulta
relativamente sencillo escribir applets interesantes desde el principio. Todos
aquellos familiarizados con C++ encontrarán que Java es más sencillo, ya
que se han eliminado ciertas características, como los punteros. Debido a su
semejanza con C y C++, y dado que la mayoría de la gente los conoce
aunque sea de forma elemental, resulta muy fácil aprender Java. Los
programadores experimentados en C++ pueden migrar muy rápidamente a
Java y ser productivos en poco tiempo.
● Distribuido. Java proporciona una colección de clases para su uso en
aplicaciones de red, que permiten abrir sockets y establecer y aceptar
conexiones con servidores o clientes remotos, facilitando así la creación de
aplicaciones distribuidas.
● Interpretado y compilado a la vez. Java es compilado, en la medida en que su
código fuente se transforma en una especie de código máquina, los
bytecodes, semejantes a las instrucciones de ensamblador. Por otra parte, es
interpretado, ya que los bytecodes se pueden ejecutar directamente sobre
cualquier máquina a la cual se hayan portado el intérprete y el sistema de
ejecución en tiempo real (run-time).
● Robusto. Java fue diseñado para crear software altamente fiable. Para ello
proporciona numerosas comprobaciones en compilación y en tiempo de
ejecución. Sus características de memoria liberan a los programadores de
una familia entera de errores (la aritmética de punteros), ya que se ha
prescindido por completo de los punteros, y la recolección de basura elimina
la necesidad de liberación explícita de memoria.
● Seguro. Dada la naturaleza distribuida de Java, donde las applets se bajan
desde cualquier punto de la Red, la seguridad se impuso como una
necesidad de vital importancia. A nadie le gustaría ejecutar en su ordenador
programas con acceso total a su sistema, procedentes de fuentes
desconocidas. Así que se implementaron barreras de seguridad en el
lenguaje y en el sistema de ejecución en tiempo real.
● Indiferente a la arquitectura. Java está diseñado para soportar aplicaciones
que serán ejecutadas en los más variados entornos de red, desde Unix a
Windows Nt, pasando por Mac y estaciones de trabajo, sobre arquitecturas
distintas y con sistemas operativos diversos. Para acomodar requisitos de
ejecución tan diversos o variopintos, el compilador de Java genera bytecodes:
un formato intermedio indiferente a la arquitectura diseñado para transportar
el código eficientemente a múltiples plataformas hardware y software. El resto
de problemas los soluciona el intérprete de Java.
● Portable. La indiferencia a la arquitectura representa sólo una parte de su
portabilidad. Además, Java especifica los tamaños de sus tipos de datos
básicos y el comportamiento de sus operadores aritméticos, de manera que
los programas son iguales en todas las plataformas. Estas dos últimas
características se conocen como la Máquina Virtual Java (JVM).
● Alto rendimiento.
● Multihebra. Hoy en día ya se ven como terriblemente limitadas las
aplicaciones que sólo pueden ejecutar una acción a la vez. Java soporta
sincronización de múltiples hilos de ejecución (multithreading) a nivel de
lenguaje, especialmente útiles en la creación de aplicaciones de red
distribuidas. Así, mientras un hilo se encarga de la comunicación, otro puede
interactuar con el usuario mientras otro presenta una animación en pantalla y
otro realiza cálculos.
● Dinámico. El lenguaje Java y su sistema de ejecución en tiempo real son
dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que
son necesitadas. Se pueden enlazar nuevos módulos de código bajo
demanda, procedente de fuentes muy variadas, incluso desde la Red.
● Produce applets. Java puede ser usado para crear dos tipos de programas:
aplicaciones independientes y applets. Las aplicaciones independientes se
comportan como cualquier otro programa escrito en cualquier lenguaje, como
por ejemplo el navegador de Web HotJava, escrito íntegramente en Java. Por
su parte, las applets son pequeños programas que aparecen embebidos en
las páginas Web, como aparecen los gráficos o el texto, pero con la
capacidad de ejecutar acciones muy complejas, como animar imagenes,
establecer conexiones de red, presentar menús y cuadros de diálogo para
luego emprender acciones, etc.

2.1.9. Metodología Lineal


También llamado "Ciclo de vida básico" o "Modelo de cascada" tiene su origen
en el "Modelo de cascada" ingeniado por Winston Royce, aunque omite los
muchos bucles de este último. El Modelo Lineal Secuencial sugiere un enfoque
sistemático o más bien secuencial del desarrollo de software que comienza en un
nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y
mantenimiento.
El Modelo Lineal Secuencial acompaña las siguientes actividades:

● Análisis de los requerimientos del software:


Es la fase en la cual se reúnen todos los requisitos que debe cumplir el software.
En esta etapa es fundamental la presencia del cliente que documenta y repasa
dichos requisitos.

● Diseño:
Es una etapa dirigida hacia la estructura de datos, la arquitectura del software,
las representaciones de la interfaz y el detalle procedimental (algoritmo). En
forma general se hace un esbozo de lo solicitado y se documenta haciéndose
parte del software.
● Generación del código:
Es la etapa en la cual se traduce el diseño para que sea comprensible por la
máquina. Esta etapa va a depender estrechamente de lo detallado del diseño.
● Pruebas:
Esta etapa se centra en los procesos lógicos internos del software, asegurando
que todas las sentencias se han comprobado, y en la detección de errores.
● Mantenimiento:
Debido a que el programa puede tener errores, puede no ser del completo
agrado del cliente o puede necesitar, eventualmente acoplarse a los cambios en
su entorno. Esto quiere decir que no se rehace el programa, sino que sobre la
base de uno ya existente se realizan algunos cambios. El Modelo Lineal
Secuencial es el paradigma de desarrollo de software más antiguo que existe, sin
embargo esto no ha impedido que se haya creado una desconfianza alrededor
de él basada en los siguientes errores reales:
Los proyectos raramente siguen el paradigma secuencial que propone el
proyecto.

3. CAPÍTULO III
3.1. Marco Práctico
3.1.1. Metodología Lineal
3.1.2. Análisis de los Requerimientos del Software

En esta fase se realizó la recolección de la información necesaria para conocer


cada una de las enfermedades, los síntomas y el tratamiento que requieren. Esta
recolección se realizó mediante una entrevista.

Fuente: ​Elaboración Propia


Mediante la entrevista se obtuvo el siguiente cuadro de síntomas y
enfermedades:

Gastrointestin
Áreas de dolor Todo el cuerpo ales Piel Síntomas Comunes

AB AT EP H MC DPO EF FT FB SN SD PA NV DR EC MR DC CF FCR PD EO DG HS DA

Dengue X X X X X X X X X X X X X X X X
Chikung
unya X X X X X X X X X X

Zika X X X X X X X X X X X X

Malaria X X X X X X X X X X X X X

Fuente: ​Elaboración Propia

Donde

AB : Abdomen
AT : Articulaciones
EP : Espalda
H : Huesos
MC : Músculos
DPO : Parte posterior de los ojos
EF : Escalofríos
FT : Fatiga
FB : Fiebre
SN : Sudores nocturnos
SD : Sudoración
PA : Pérdida de apetito
NV : Náuseas o vómitos
DR : Diarrea
EC : Erupciones cutáneas
MR : Manchas rojas
DC : Dolores de cabeza
CF : Confusión
FCR : Frecuencia cardiaca rápida
PD : Palidez
EO : Enrojecimiento de los ojos
DG : Dolor de garganta
HS : Facilidad para desarrollar hematomas o sangrado
DA : Dolor persistente en las articulaciones
3.1.3. Diseño
3.1.3.1. Diagramas UML
3.1.3.1.1. Diagramas de Casos de Uso

Fuente: ​Elaboración Propia


3.1.3.1.2. Diagrama de Actividades

Fuente: ​Elaboración Propia


3.1.4. Generación del Código
3.1.4.1. Codificación
Variables globales:
int contZika ;
int contChiku ;
int contMala ;
int contDengue ;
Estas variables se encargan de contar en cada una de las pantallas los síntomas
que marquen los usuarios del sistema según la enfermedad (Zika, Chikungunya,
Malaria o Dengue).
A continuación se mostrará el código principal donde se evalúa cual es la
enfermedad que posee en mayor porcentaje.

public void Porcentaje(){


pzika = (contZika*100)/12;
pchiku = (contChiku*100)/10;
pmala = (contMala*100)/13;
pdengue = (contDengue*100)/16;
vista.zika2.setText(pzika+"%");
vista.lbChikungunya.setText(pchiku+"%");
vista.mala2.setText(pmala+"%");
vista.lbDengue.setText(pdengue+"%");
if (pzika>pchiku) {
if (pzika>pmala) {
if (pzika>pdengue) {
vista.lbDiagnostico.setText("Zika "+pzika+"%");
vista.txtTratamiento.setText("No existe ninguna vacuna o tratamiento
específico."
+ " Sin embargo, se hace hincapié en aliviar los síntomas,
hacer reposo, "
+ "rehidratarse y en ingerir paracetamol para aliviar la fiebre y el
dolor. "
+ "Se debe evitar el consumo de aspirinas y medicamentos
antiinflamatorios no esteroideos (AINE) como el ibuprofeno.");
}
else{
vista.lbDiagnostico.setText("Dengue "+pdengue+"%");
vista.txtTratamiento.setText("El tratamiento incluye la ingesta de
líquidos y el uso de analgésicos."
+ " Si su caso es más grave requiere atención hospitalaria.");
}
}else{
if(pmala>pdengue){
vista.lbDiagnostico.setText("Malaria "+pmala+"%");
vista.txtTratamiento.setText("Las personas que viajan a regiones
donde la malaria es común suelen utilizar"
+ " fármacos preventivos antes, durante y después del viaje. El
tratamiento incluye el uso de antipalúdicos. Se recomienda "
+ "tomar antiparasitarios y antibioticos.");
}else{
vista.lbDiagnostico.setText("Dengue "+pdengue+"%");
vista.txtTratamiento.setText("El tratamiento incluye la ingesta de
líquidos y el uso de analgésicos."
+ " Si su caso es más grave requiere atención hospitalaria.");
}
}
} else {
if (pchiku>pmala) {
if (pchiku>pdengue) {
vista.lbDiagnostico.setText("Chikungunya "+pchiku+"%");
vista.txtTratamiento.setText("El tratamiento consiste en ingesta de
líquidos y analgésicos, está destinado al alivio de los síntomas. "
+ "La mayoría de las personas se sienten mejor al cabo de una
semana, una vez que el virus sigue su curso."
+ " Se recomienda tomar antiiflamatorios y analgésicos");
}
else{
vista.lbDiagnostico.setText("Dengue "+pdengue+"%");
vista.txtTratamiento.setText("El tratamiento incluye la ingesta de
líquidos y el uso de analgésicos."
+ " Si su caso es más grave requiere atención hospitalaria.");
}
}
else{
if(pmala>pdengue){
vista.lbDiagnostico.setText("Malaria "+pmala+"%");
vista.txtTratamiento.setText("Las personas que viajan a regiones
donde la malaria es común suelen utilizar"
+ " fármacos preventivos antes, durante y después del viaje. El
tratamiento incluye el uso de antipalúdicos."
+ " Se recomienda tomar antiparasitarios y antibioticos.");
}
else{
vista.lbDiagnostico.setText("Dengue "+pdengue+"%");
vista.txtTratamiento.setText("El tratamiento incluye la ingesta de
líquidos y el uso de analgésicos."
+ " Si su caso es más grave requiere atención hospitalaria.");
}}}}
3.1.5. Pruebas
Se realizó una prueba piloto al sistema experto, de la cual se obtuvieron las
siguientes capturas.

Fuente: ​Elaboración Propia


En esta pantalla se observa la bienvenida al sistema, al presionar el botón
comenzar test se mostrará la siguiente pantalla.

Fuente: ​Elaboración Propia


Luego en las siguientes pantallas seleccionará todos los síntomas

Por último muestra los resultados en base a todos los síntomas seleccionados en
las anteriores vistas.
4. CAPÍTULO IV
4.1. Conclusiones y Recomendaciones
4.1.1. Conclusión en Relación a los Objetivos Específicos
● Dentro del análisis expuesto, las enfermedades tropicales tienen varios
síntomas en común, por lo cual es fácil confundirlos.
● En base al buen diseño de la estructura del sistema experto se logró reflejar el
conocimiento adquirido.
● Con todos los conocimientos obtenidos en la materia, se logró desarrollar un
sistema experto basado en reglas.
● En las pruebas del sistema se demostró el correcto funcionamiento al realizar el
diagnóstico de las enfermedades tropicales.

4.1.2. Recomendación
● La población riberalteña al utilizar el sistema experto de manera temprana se
logra identificar estas enfermedades tropicales en base a probabilidades y
evitará gastos extra cuando no son detectadas a tiempo.
● Se recomienda mejorar el diseño del sistema experto para futuros trabajos
académicos.
● Se sugiere buscar más herramientas de desarrollo para las futuras versiones.
● En los centros de salud se recomienda el uso del sistema experto como un
apoyo para la institución y guia de los pacientes.

4.2. Bibliografía
● Colaboradores de Wikipedia. (2019a, 19 abril). Enfermedad tropical - Wikipedia,
la enciclopedia libre. Recuperado 9 junio, 2019, de
https://es.wikipedia.org/wiki/Enfermedad_tropical
● Colaboradores de Wikipedia. (2019b, 15 junio). selva tropical de la cuenca del
Amazonas. Recuperado 9 junio, 2019, de https://es.wikipedia.org/wiki/Amazonia
● Fundación Wikimedia. (s.f.). Programación en Java/Características del lenguaje -
Wikilibros. Recuperado 18 junio, 2019, de
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Caracter%C3%ADs
ticas_del_lenguaje
● Multicomunicación Amazónica de Servicios MAS S.R.L.. (2013). Portal de la
Amazonia Boliviana. Recuperado 1 junio, 2019, de
http://www.amazonia.bo/amazonia.php?codigo_enviado=uZSP15bn5cgh+CODCl
zd7kCYswHMHbu0VnJkmd7yKnU=
● Sanchez, D. M., & Heras, R. J. (s.f.). Sistemas Expertos Basados en Reglas -
Sistemas Expertos IS-UNAH. Recuperado 9 junio, 2019, de
https://sites.google.com/site/sistemasexpertosunah/home/sistemas-expertos-bas
ados-en-reglas
● Torres, H. (s.f.). Diagramas del UML. Recuperado 2 junio, 2019, de
https://www.academia.edu/8815980/Diagramas_del_UML
● Unidad II.- Lenguaje Modulado Unificado. (2013, 29 noviembre). Recuperado 18
junio, 2019, de https://modulopoo.wordpress.com/unidad-ii/
● Unidad II: Representación del conocimiento, razonamiento y los Aspecto
Metodológicos en Inteligencias Artificial - Clase de Inteligencia Artificial. (s.f.).
Recuperado 18 junio, 2019, de
https://sites.google.com/site/clasedeinteligenciaartificial/home/unidad-ii-represent
acion-del-conocimiento-razonamiento-y-los-aspecto-metodologicos-en-inteligenci
as-artificial
● World Health Organization. (2018, 30 diciembre). Enfermedades tropicales.
Recuperado 18 junio, 2019, de https://www.who.int/topics/tropical_diseases/es/
● Zika y las consecuencias en la salud. - Docsity. (s.f.). Recuperado 18 junio, 2019,
de

También podría gustarte