Está en la página 1de 173

TITULO:

“Desarrollo de un Sistema Experto para el control y


seguimiento del manejo agro técnico de maíz hibrido de la
zona maicera de la provincia de Loja”

Tesis previa a la obtención del


Título de Ingeniero en Sistemas

Autores:
Galo Leonel Abad Tillaguango

Cecilia Esther Abad Tillaguango.

Directora:

Ing. Ketty Delfina Palacios Montalván

Loja-Ecuador

2011
1
Sistema Experto MAHIX

CERTIFICACIÓN

Ing. Ing. Ketty Delfina Palacios Montalván


DOCENTE DEL ÁREA DE LA ENERGÍA, LAS INDUSTRIAS Y LOS RECURSOS
NATURALES NO RENOVABLES DE LA UNIVERSIDAD NACIONAL DE LOJA

CERTIFICA:

Haber dirigido, revisado y corregido en todas sus partes el desarrollo de la tesis de


Ingeniería en Sistemas titulada: “DESARROLLO DE UN SISTEMA EXPERTO
PARA EL CONTROL Y SEGUIMIENTO DEL MANEJO AGRO TÉCNICO DE
MAÍZ HIBRIDO DE LA ZONA MAICERA DE LA PROVINCIA DE LOJA”, con
autoría de Galo Leonel Abad Tillaguango y Cecilia Esther Abad Tillaguango. En razón
de que la misma reúne a satisfacción los requisitos de fondo y forma, exigidos para una
investigación de este nivel, autorizo su presentación, sustentación y defensa ante el
tribunal designado para el efecto.

Loja, Mayo del 2011

………………………….
Ing. Ketty Delfina Palacios Montalván
DIRECTORA DE TESIS
2
Sistema Experto MAHIX

AUTORIA

Las ideas y conceptos vertidos en el presente trabajo de investigación han sido


elaboradas bajo criterio de los autores, por lo tanto se declaran como autores legítimos
de este trabajo.
3
Sistema Experto MAHIX

CESIÓN DE DERECHOS

Galo Leonel Abad Tillaguango y Cecilia Esther Abad Tillaguango, autores intelectuales
del presente trabajo de investigación, autorizamos a la Universidad Nacional de Loja,
hacer uso del mismo con la finalidad que estime conveniente.

………………………………… …….…………………………
Galo Leonel Abad Tillaguango Cecilia Esther Abad Tillaguango
4
Sistema Experto MAHIX

AGRADECIMIENTO

Queremos dejar constancia de nuestro agradecimiento sincero y consideración profunda,


a la Universidad Nacional de Loja y en particular al Área de La Energía, las Industrias y
los Recursos Naturales no Renovables, por concedernos la oportunidad de ser
estudiantes de la carrera de Ingeniería en Sistemas, agradecer también a cada de uno de
los ingenieros que buscan sin escatimar esfuerzo, la superación de los demás, tratando
de esa manera dar al país nuevos elementos que brinden soluciones a los problemas que
afectan a nuestra sociedad, a la Señora Ingeniera Ketty Delfina Palacios Montalván, por
haberse constituido la principal personera en la dirección y revisión de la tesis, previa la
obtención del título de Ingeniero en Sistemas.
5
Sistema Experto MAHIX

DEDICATORIA

A Dios mi Misericordioso, por


permitir cumplir esta meta, a mi
madre por ser mi inspiración, a mi
padre por ser mi fuerza, a mis
hermanos, a mi hijo, a mi esposo y
a todos mis familiares que siempre
me apoyaron e impulsaron con este
presente trabajo investigativo.
Cecilia Esther Abad Tillaguango

Dedico este trabajo a mi Dios quien


me ha permitido culminar con esta
meta. Con mi padre que me han dado
todo su apoyo y mi madre que siempre
estuvo ahí durante todo este tiempo, a
mis hermanas y amigos quienes me
han brindado su apoyo incondicional
hasta culminar el presente trabajo.
Galo Leonel Abad Tillaguango
6
Sistema Experto MAHIX

ÍNDICE DE CONTENIDOS PÁG.

1. RESUMEN…………………………………………………………………… 12
2. SUMMARY………………………………………………………………….. 13
3. INTRODUCCIÓN…………………………………………………………… 14
4. METODOLOGÍA……………………………………………………………. 16
4.1. Metodología para el Desarrollo del Software…………………………… 16
4.2. Técnicas de investigación……………………………………………….. 18
4.3. Métodos de investigación……………………………………………….. 19
5. FUNDAMENTACIÓN TEÓRICA…………………………………………. 20
CAPÍTULO 1: SISTEMAS EXPERTOS Y EL CONOCIMIENTO…………… 20
1. Sistemas expertos y el conocimiento…………………………………………. 20
1.1.Definición de Sistema Experto…………………………………………… 20
1.2. Características……………………………………………………………. 20
1.3.Diferencias entre un Sistema Experto y un Sistema Convencional………. 21
1.4.Motivaciones para el uso de Sistemas Expertos………………………….. 21
1.5.Problemas y Limitaciones de los Sistemas Expertos…………………….. 22
1.6.Etapas de un Sistema Experto……………………………………………. 22
1.7.Ciclo de vida de un sistema experto……………………………………… 23
1.8. Áreas de Aplicación……………………………………………………… 25
1.9. Arquitectura de un sistema experto……………………………………… 25
1.10. Componentes de un sistema experto………………………………….. 26
1.10.1. Base de conocimiento…………………………………………….. 26
1.10.2. Shell del Sistema Experto………………………………………… 27
1.10.2.1. Motor de Inferencia………………………………………. 27
1.10.2.2. Base de Hechos…………………………………………… 27
1.10.2.3. Interfaz de Usuario………………………………………… 27
1.10.2.4. Módulo de comunicaciones……………………………….. 27
1.10.2.5. Módulo de explicaciones…………………………………. 28
1.10.2.6. Módulo de adquisición de conocimiento…………………. 28
1.11. Conocimiento y su relación con los datos…………………………….. 28
1.12. Componentes del conocimiento………………………………………. 29
1.12.1. Descripción………………………………………………………. 29
1.12.2. Organización……………………………………………………… 29
7
Sistema Experto MAHIX

1.12.3. Denominación…………………………………………………….. 29
1.12.4. Restricciones…………………………………………………….... 29
1.12.5. Otras relaciones…………………………………………………… 30
1.13. Clasificación del conocimiento………………………………………… 30
1.14. Técnicas de representación el conocimiento…………………………... 30

CAPÍTULO 2: WEKA Y REDES NEURONALES…………………………….. 32


2. Weka y redes neuronales……………………………………………..……… 32
2.1. Introducción a WEKA………………………………………………… 32
2.2. Datos de Entrenamiento……………………………………………….. 32
2.3. Clasificadores…………………………………………………………. 32
2.4. MULTILAYER PERCEPTRON……………………………………… 33
2.5. Redes Neuronales……………………………………………………… 34
2.6. Componentes de una Red Neuronal…………………………………… 34
2.6.1. La neurona………………………………………………………… 35
2.6.1.1. Función de integración……………………………………… 35
2.6.1.2. Función de transferencia o activación………………………. 36
2.7. Red de Retro-propagación…………………………………………….. 37
CAPÍTULO 3: SISTEMA GEOGRÁFICO Y BATIK………………………….. 38
3. Sistema Geográfico y Batik………………………..………………………… 38
3.1. Definición……………………………………………………………… 38
3.2. Funcionamiento de un SIG……………………………………………. 38
3.3. Técnicas utilizadas en los Sistemas de Información Geográfica……… 39
3.3.1. La creación de datos…………………………………………..…. 39
3.3.2. La representación de los datos……………………………………. 40
3.3.2.1. Raster……………………………………………………….. 40
3.3.2.2. Vectorial……………………………………………………. 40
3.4. Introducción a Batik…………………………………………………… 42
3.5. Concepto de batik y aplicabilidad…………………………………..…. 42
3.6. Especificación de SVG……………………………………..………….. 44
CAPÍTULO 4: EL MAÍZ………………………………………………………… 45
4. EL MAÍZ…………………………..………………………………………… 45
4.1. Cultivo de Maíz…………………………………………………… 45
8
Sistema Experto MAHIX

4.2. Exigencias del maíz………………………………………………. 45


4.2.1. Climatológicas……………………………………………….. 45
4.2.2. Suelo………………………………………………………………. 45
4.3. Ciclo de Desarrollo…………………………………………………….. 46
4.4. Tipos de maíz…………………………………………………………... 46
4.5. Enfermedades y plagas del maíz……………………………………….. 47
4.5.1. Enfermedades……………………………………………………… 47
4.5.1.1. Roya del maíz (Pucciniasorghi)……………………………… 47
4.5.1.2. Carbón negro………………………………………………… 47
4.5.1.3. Botrytis cinérea……………………………………………… 48
4.5.1.4. Helmintosporiosis (Helminthosporiumsp)…………………… 49
4.5.1.5. Curvularia lunata……………………………………………. 49
4.5.1.6. Macrophomina sp…………………………………………… 50
4.5.2. Plagas……………………………………………………………… 50
4.5.2.1. Agrotis………………………………………………………. 50
4.5.2.2. Pulgones…………………………………………………….. 51
4.5.2.3. Ácaros………………………………………………………. 51
4.5.2.4. Mosca Blanca………………………………………………. 52
4.5.2.5. Heliothis zea………………………………………………... 52
4.5.2.6. Diatraea sp………………………………………………….. 53
4.5.2.7. Spodoptera………………………………………………….. 54
4.5.2.8. Gusano blanco………………………………………………. 54
6. EVALUACIÓN DEL OBJETO DE INVESTIGACIÓN…………………….. 56
7. DESARROLLO DE LA PROPUESTA ALTERNATIVA…………………... 58
7.1. REQUERIMIENTOS FUNCIONALES Y NO FUNCIONALES DEL
SISTEMA EXPERTO…………………………………………………… 59
7.2. BASE DE CONOCIMIENTO PARA EL SISTEMA EXPERTO……... 61
7.3. GLOSARIO DE TÉRMINOS…………………………………………… 68
7.4. MODELO DEL DOMINIO…………………………………………….. 69
7.5. DIAGRAMA DE CASO DE USO……………………………………… 70
7.6. PROTOTIPADO DE PANTALLAS DEL CASO DE USO ADMINISTRAR
CUENTA………………………………………………………………… 71
9
Sistema Experto MAHIX

7.6.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR


CUENTA……………………………………………………………. 73
7.6.2. DIAGRAMA DE SECUENCIA CASO DE USO ADMINISTRAR
CUENTA……………………………………………………………. 75
7.7. PROTOTIPADO DE PANTALLAS DEL CASO DE USO ADMINISTRAR
SEMILLA………………………………………………………………... 78
7.7.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR
SEMILLA…………………………………………………………… 80
7.7.2. DIAGRAMA DE SECUENCIA DEL CASO DE USO ADMINISTRAR
SEMILLA…………………………………………………………… 83
7.8. PROTOTIPADO DE PANTALLA DE PANTALLAS DEL CASO DE USO
ADMINISTRAR AGRICULTOR………………………………………. 86
7.8.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR
AGRICULTOR……………………………………………………… 88
7.8.2. DIAGRAMA DE SECUENCIA DEL CASO DE USO ADMINISTRAR
AGRICULTOR……………………………………………………… 91
7.9. PROTOTIPADO DE PANTALLA DE PANTALLAS DEL CASO DE USO
ADMINISTRAR CULTIVO……………………………………………. 95
7.9.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR
CULTIVO…………………………………………………………… 101
7.9.2. DIAGRAMA DE SECUENCIA DEL CASO DE USO ADMINISTRAR
CULTIVO…………………………………………………………… 108
7.10. PROROTIPADO DE PANTALLAS DEL CASO DE USO
ADMINISTRAR SÍNTOMA……………………………………………. 116
7.10.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR
SÍNTOMA…………………………………………………………… 119
7.10.2. DIAGRAMA DE SECUENCIA DEL CASO DE USO ADMINISTRAR
SÍNTOMA…………………………………………………………… 123
7.11. PROTOTIPADO DE PANTALLAS DEL CASO DE USO
ADMINISTRAR PRODUCTO………………………………………….. 128
7.11.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR
PRODUCTO………………………………………………………… 129
7.11.2. DIAGRAMA DE SECUENCIA DEL CASO DE USO ADMINISTRAR
PRODUCTO………………………………………………………… 132
10
Sistema Experto MAHIX

7.12. BATIK EN LA APLICACIÓN…………………………………… 135


7.13. IDENTIFICACIÓN DE LAS ENFERMEDADES POR MEDIO DE
WEKA……………………………………………………………………. 135
7.14. MODELO ENTIDAD-RELACIÓN CONCEPTUAL DEL SISTEMA
EXPERTO………………………………………………………………... 140
7.15. MODELO ENTIDAD-RELACIÓN FÍSICO DEL SISTEMA
EXPERTO………………………………………………………………... 141
7.16. DIAGRAMA DE CLASES FINAL DEL SISTEMA EXPERTO POR
PAQUETES……………………………………………………………… 142
7.16.1. Paquete MAHIX.Control…………………………………………. 142
7.16.2. Paquete MAHIX.negocio.dao……………………………………. 145
7.16.3. Paquete.MAHIX.vistas…………………………………………… 146
7.16.4. Paquete MAHIX.vistas.modeloTabla…………………………….. 150
7.16.5. Paquete MAHIX.negocio.dominio……………………………….. 152
7.17. DIAGRAMA DE DESPLIEGUE………………………………… 153
7.18. DIAGRAMA DE PAQUETES…………………………………… 153
7.19. PRUEBAS DE VALIDACIÓN………………………………….. 154
8. VALORACIÓN TÉCNICO-ECONÓMICA-AMBIENTAL………………… 162
9. CONCLUSIONES……………………………………………………………. 165
10. RECOMENDACIONES……………………………………………………… 166
11. BIBLIOGRAFÍA Y REFERENCIAS………………………………………… 167
ANEXOS………………………………………………………………………….. 169

Índice de Gráficos
Fig.1. Ciclo de vida de un Sistema Experto………………………………………. 23
Fig.2. Arquitectura de un Sistema Experto……………………………………….. 26
Fig.3. Clasificación De Los Sistemas según el nivel de abstracción……………… 28
Fig.4. Red Neuronal Multicapa……………………………………………………. 34
Fig.5. Modelo Gráfico de una Neurona…………………………………………… 35
Fig.6. Representación de un Sistema Geográfico (SIG)…………………………... 38
Fig.7. Representación de Patrones en un Sistema Geográfico…………………….. 38
Fig.8. Digitalización de una imagen de un mapa………………………………….. 40
Fig.9. Representación vectorial de un mapa………………………………………. 40
11
Sistema Experto MAHIX

Fig. 10 .Elementos Geométricos…………………………………………………… 41


Fig. 11. Estructura de Funcionamiento de Batik………………………………….. 43
Fig.12. Roya……………………………………………………………………… 47
Fig.13. Carbon……………………………………………………………………. 48
Fig.14.Botrytis cinérea……………………………………………………………. 48
Fig.15. Helmintosporiosis………………………………………………………… 49
Fig.16. Curvularia lunata…………………………………………………………. 49
Fig.17. Macrophomina sp………………………………………………………… 50
Fig.18. Agrotis…………………………………………………………………….. 50
Fig.19. Pulgón…………………………………………………………………….. 51
Fig.20. Acaro……………………………………………………………………… 52
Fig.21. Mosca Blanca……………………………………………………………… 52
Fig.22.Heliothis zea……………………………………………………………….. 53
Fig.23. Diatraea sp………………………………………………………………… 53
Fig.24. Spodoptera………………………………………………………………… 54
Fig.25. Gusano Blanco…………………………………………………………… 55
Índice de Tablas
Tabla 1. Diferencias entre un Sistema Experto y un convencional……………….. 21
Tabla 2. Tabla de las áreas en que trabaja los Sistemas Expertos………………… 25
Tabla 3. Recursos Humanos………………………………………………………. 162
Tabla 4. Recursos Técnicos……………………………………………………….. 163
Tabla 5. Recursos Materiales……………………………………………………… 163
Tabla 6. Presupuesto Final………………………………………………………… 164
12
Sistema Experto MAHIX

1. RESUMEN

En el presente trabajo de investigación se ha desarrollado un software para la institución


comercial Ecuaquimica que brindo el apoyo para el desarrollo de un Sistema Experto
para el control y seguimiento del manejo Agro Técnico de maíz híbrido en la zona
maicera de la provincia de Loja con la finalidad de que las actividades que se realiza el
Agro Técnico en dicha entidad, se cumplan de manera más rápida, efectiva y confiable.

En la elaboración del proyecto de tesis se utilizó la metodología ICONIX, la misma que


comprende: Determinación de requerimientos, Análisis y Diseño del Sistema que
permitió un conocimiento global del proceso que emplea el agro técnico en las
diferentes fases del cultivo y se realizó un prototipado de pantallas, el modelado estático
y dinámico, Implementación, se desarrolló la codificación del sistema y en la Prueba se
realizó todas las posibles correcciones y depuraciones que necesite la aplicación.

El software ofrece al Agro Técnico los módulos de Administración de semilla,


agricultor, cultivo y síntomas de enfermedades, la identificación de plagas mediante la
ayuda de imágenes mostradas en el sistema, da un seguimiento en cada una de las etapas
de crecimiento del cultivo, muestra la información de la fertilización que debe emplear
el Agro Técnico. Además en el módulo Revisión de Enfermedades del Cultivo cuenta
con la implementación del Sistema Experto que se encarga de identificar las
enfermedades que afecta al maíz híbrido. Este sistema experto está compuesto por la
librería WEKA, la cual permite conocer si un cultivo posee o no, alguna de las
enfermedades, para esta actividad utilizamos el Algoritmo MultiLayer Perceptron, el
cual se trata de una Red Neuronal Multicapa, que asigna valores a cada uno de los arcos
de los nodos, la misma que minimiza tanto como sea posible, para lograr un alto nivel
de efectividad al momento de identificar.

Además se cuenta con otras librerías, entre las principales tenemos: jasperReports que
facilita la realización e impresión de modelos de reportes; hibernate que permite la
manipulación de la base de datos en nuestro caso MySQL de una manera más sencilla.
13
Sistema Experto MAHIX

2. SUMMARY

Presently investigation work has been developed a software for the commercial
institution Ecuaquimica that I offer the support for the development of an Expert
System for the control and pursuit of the handling Technical Agriculture of hybrid
corn in the area maicera of the county of Loja with the purpose that the activities that
he/she is carried out the Technical Agriculture in this entity, are completed in a more
quick, effective and reliable way.

In the elaboration of the thesis project the methodology ICONIX was used, the same
one that understands: Determination of requirements, Analysis and Design of the
System that it allowed a global knowledge of the process that uses the technical
agriculture in the different phases of the cultivation and he/she was carried out a
prototipado of screens, the modeling one static and dynamic, Implementation, the
code of the system was developed and in the Test he/she was carried out all the
possible corrections and purifications that he/she needs the application.

The software offers to the Technical Agriculture the modules of seed Administration,
farmer, cultivation and symptoms of illnesses, the identification of plagues by means
of the help of images shown in the system, gives a pursuit in each one of the stages
of growth of the cultivation, it shows the information of the fertilization that should
use the Technical Agriculture. Also in the module Revision of Illnesses of the
Cultivation it has the implementation of the Expert System that takes charge of
identifying the illnesses that it affects to the hybrid corn. This expert system is
compound for the bookstore WEKA, which allows to know if a cultivation possesses
or not, some of the illnesses, for this activity uses the Algorithm MultiLayer
Perceptron, which is about a Net Neuronal Multicapa that assigns values to each one
of the arches of the nodes, the same one that minimizes as much as it is possible, to
achieve a high level of effectiveness to the moment to identify.

It is also had other bookstores, among the main ones we have: jasperReports that
facilitates the realization and impression of models of reports; you hibernate yourself
that it allows the manipulation of the database in our case MySQL in a simpler way.
14
Sistema Experto MAHIX

3. INTRODUCCIÓN

El presente trabajo de investigación es el resultado de un análisis minucioso y


profundo, que se realizó con la finalidad de obtener el título de Ingeniero en
Sistemas, y a la vez que sirva de guía para los lectores del presente proyecto.

Conscientes que la formación académica es la precursora del desarrollo social,


hemos creído conveniente realizar este trabajo de investigación que nos permite
poner en práctica todos los conocimientos, técnicas y métodos aprendidos durante el
transcurso de nuestra formación en la carrera de Ingeniería en Sistemas de la
Universidad Nacional de Loja.

La institución comercial Ecuaquimica constituye en una de las mejores empresas de


nuestro país, ya que está fundamentada en brindar apoyo técnico para el desarrollo,
crecimiento agrícola a nivel nacional e internacional. Además brinda servicios
agrarios, como soporte agro técnico, venta de productos para control de plagas y
enfermedades, se especializa en la venta de nuevas semillas hibridas (maíz, tomate,
cacao, arroz entre otras). Es así que es necesario de un Sistema Experto que de
apoyo a los Agro Técnicos para lograr ser más eficientes en la información brindada
a los agricultores de nuestra provincia y de un control más eficiente de los cultivos
que tienen cada uno de ellos. Así mismo dar una solución oportuna de las
enfermedades o plagas que padecen los cultivos de maíz híbrido.

La Metodología ICONIX permite la planificación de tareas que se debe realizar para


obtención de la información necesaria, con el fin de entregar como resultado un
software de calidad que cumpla con los requerimientos del usuario.

La Fundamentación Teórica reúne toda la información necesaria que está


relacionada de manera directa con el presente proyecto.

La Evaluación del Objeto de Investigación da a conocer la situación actual del área


del soporte Agro Técnico de la empresa comercial Ecuaquimica.

El Desarrollo de la Propuesta Alternativa, explica la solución planteada para


solventar los problemas que afectan actualmente el área de soporte Agro técnico de
la empresa Ecuaquimica, informe detallado de las etapas del desarrollo del software.
15
Sistema Experto MAHIX

Valoración técnico-económica-ambiental en donde se expone principalmente las


inversiones realizadas para cumplir con la culminación del presente trabajo
investigativo.

Conclusiones, las cuales dan una valoración del grado de cumplimiento de los
objetivos trazados y los resultados alcanzados.

Recomendaciones en donde se brindan consejos pertinentes a tomar en cuenta en


desarrollos de proyectos de esta índole.

Bibliografía: libros, revistas y páginas de internet consultados que han sido de gran
importancia para el desarrollo del presente trabajo investigativo. Y por último los
Anexos en donde se detalla información complementaria y también necesaria para el
proyecto.
16
Sistema Experto MAHIX

4. METODOLOGÍA

4.1. Metodología para el Desarrollo del Software

En todo proyecto de desarrollo de software, se hace necesario adoptar una


metodología de desarrollo, la cual por medio de una serie de actividades definidas
nos permitió llegar a culminar con éxito nuestro trabajo. Luego de haber analizado
las múltiples metodologías existentes para este fin, y relacionándolas con la
naturaleza y con las actividades que se deben realizar para cumplir con los objetivos
del presente proyecto, hemos creído oportuno y conveniente adoptar al modelo de
desarrollo ICONIX, la cual se adapta a las necesidades de desarrollo de nuestro
proyecto, permitiéndonos cumplir con las etapas de análisis, diseño e
implementación en una forma ordenada y efectiva, además debido a su concepción
de ser iterativa e incremental; esta es una metodología de desarrollo que minimiza
hasta un cierto grado el tiempo de desarrollo y permite a través de las actividades
propias de la misma que nuestro software se vaya perfeccionando y actualizando
hasta convertirse en la solución a la problemática planteada. Las etapas que esta
constituida la metodología son:

 La etapa de Determinación de requerimientos se basó en el proceso de


recolección de información mediante la comunicación constante con el usuario
(soporte agro técnico, Ecuaquimica) para determinar cuáles son sus necesidades
y expectativas con respecto al Sistema Experto que se desarrolló, y con la ayuda
de las diferentes técnicas e instrumentos de investigación como entrevistas,
cuestionarios y observación directa permitió identificar los problemas que
presenta el soporte agro técnico, es el área que se encarga de dar información a
los agricultores sobre el correcto desarrollo de los cultivos. Luego de esto, se
realizó el respectivo análisis de la información y mediante la ayuda de modelos
conceptuales se determinó los requerimientos funcionales y no funcionales del
proceso actual.

 En la etapa de Análisis del Sistema se obtuvo un entendimiento y clarificación


de todo el Sistema, es decir la interacción de los objetos que intervinieron en el
mismo. Es en esta etapa, en donde se adquirió un conocimiento global de todo el
17
Sistema Experto MAHIX

proceso empleado para el correcto desarrollo de los cultivos de maíz hibrido, así
como también una identificación de las posibles plagas y enfermedades que
afecte a los mismos, los productos que se deben aplicar para cada enfermedad o
plaga identificada.

 En la etapa de Diseño del Sistema se determinó los detalles que establecerá la


forma en la que el sistema cumplirá con los requerimientos identificados durante
la fase de Análisis. Además se realizó un prototipado de pantallas (IGU) las
cuales serán amigables al usuario.

Es importante mencionar que para el Análisis y Diseño se utilizó la Metodología


ICONIX, la misma que comprende el modelado estático y dinámico. El
modelado dinámico que incluye Diagramas de Caso de Uso, de Robustez y de
Secuencia en forma paralela, el modelado estático comprende el modelo de
dominio y Diagramas de Clase.

El modelo del dominio es una parte esencial del proceso de ICONIX, en donde
se construyó la porción estática inicial de un modelo que es esencial al manejar
la aplicación, antes de los casos de uso.

Dentro del proceso de ICONIX, uno de los primeros pasos involucra la


construcción del modelo de casos de uso, el cual permitió la respectiva
descripción de cursos normales y cursos alternos. Este modelo se usó para
capturar los requisitos del área del soporte técnico, detallando todos los pasos
que el agro técnico realizara.

Otra técnica empleada en el proceso ICONIX es el análisis de robustez. Esta


técnica es simple y útil, se une el análisis al diseño asegurando que su texto de
caso de uso sea correcto. Involucrará análisis del texto de descripción de los
casos de uso e identificará un conjunto de primeras suposiciones de los objetos
que participarán en cada caso de uso, clasificando estos objetos en tres tipos: el
objeto límite, el objeto entidad y el objeto control.

Cuando se haya terminado el planeamiento de dominio y análisis de robustez, se


habrá encontrado la mayoría de los objetos en el problema y se asignó algunos
18
Sistema Experto MAHIX

atributos a ellos. Se habrá definido las relaciones estáticas entre los objetos en su
diagrama de clases de alto nivel y unas relaciones dinámicas en sus diagramas de
robustez.

Uno de los procesos que representa mayor trabajo durante la etapa de diseño es
elaborar los diagramas de secuencia, en donde se encontró nuevas clases o
nuevos objetos y ayudaron a descubrir los métodos de las clases.

Como paso final en la metodología ICONIX se elaboró los diagramas de clases,


en los que se detallaron los conceptos o clases, asociaciones, herencias, etc. que
intervienen en el desarrollo del sistema para tener mayor entendimiento al
momento de desarrollar la etapa de implementación.

 En la etapa de Implementación, se desarrolló toda la aplicación, considerando la


descripción y los diagramas de casos de uso, diagramas de robustez, diagramas
de secuencia y diagramas de clase, tratando en medida de cumplir con todos los
requerimientos que demanda el área de soporte agro técnico.

 En la etapa de Prueba se verificó que el software no tenga fallas y que funcione


de acuerdo con las especificaciones y en la forma en que los usuarios esperan
que lo haga. Es aquí donde se realizaró todas las posibles correcciones y
depuraciones que necesite la aplicación.

4.2. Técnicas de investigación

Para la recolección de información se ha utilizado las siguientes técnicas:

Sondeo.- Con la ayuda de esta técnica se realizó una observación más real del
área de soporte Agro Técnico que brinda la empresa comercial Ecuaquimica,
con el fin de obtener información relevante de las actividades normales y
anormales que se presentan en el desarrollo de los cultivos de maíz.

Entrevista.- Esta técnica se utilizó para mantener conversaciones directas con el


Ing. Jorge Torres persona encargada del área de soporte Agro Técnico de la zona
maicera de la provincia de Loja (Ecuaquimica) para tratar los diferentes puntos
19
Sistema Experto MAHIX

que están relacionados con el desarrollo del proyecto de investigación como: el


ciclo vegetativo de la planta de maíz, enfermedades y plagas que afectan a los
cultivos, la dosificación y producto requerido para cada enfermedad y plaga
identificada en el cultivo.

Encuesta.- Esta técnica es utilizó para las pruebas de validación del software,
obteniendo información necesaria por parte de los usuarios del sistema para
conocer si existe algún tipo de inconveniente al manipular el sistema o si faltan
requerimientos que deben cubrirse.

4.3. Métodos de investigación

Los métodos utilizados en la presente investigación son:

Método inductivo: Este método se caracteriza, porque su desarrollo va de lo


particular a lo general, crea leyes a partir de la observación de los hechos,
mediante la generalización del comportamiento observado, nos sirvió para la
recolección, análisis e interpretación de la información relacionada a las
actividades del área de soporte Agro Técnico de la empresa comercial
Ecuaquimica.

Método deductivo: Este método se caracteriza por que su desarrollo va de lo


general a lo particular aspira demostrar, mediante la lógica pura, la conclusión
en su totalidad a partir de unas premisas, de manera que se garantiza la
veracidad de las conclusiones. El empleo de este método es para el
descubrimiento de procedimientos que retardan los procesos realizados en el
área de soporte Agro Técnico de la empresa Ecuaquimica.

Método científico: Se caracteriza por ser un método sistemático y por el


análisis de los problemas que se presentan en una investigación. El empleo de
este método nos sirvió para encontrar por medio de procedimientos mentales y
la observación exhaustiva los problemas que se dan en el área de soporte Agro
Técnico y de esta manera buscar y encontrar soluciones adecuadas para el
desarrollo del sistema experto que cubran las necesidades del área antes
mencionada.
20
Sistema Experto MAHIX

5. FUNDAMENTACIÓN TEÓRICA

CAPÍTULO 1: SISTEMAS EXPERTOS Y EL CONOCIMIENTO

1. Sistemas expertos y el conocimiento

1.1. Definición de Sistema Experto.

Un sistema experto puede definirse como un sistema basado en los conocimientos que
imita el pensamiento de un experto, para resolver problemas de un terreno particular de
aplicación. Una de las características principales de los sistemas expertos es que están
basados en reglas, es decir, contienen unos conocimientos predefinidos que se utilizan
para tomar todas las decisiones1.

1.2. Características 2

 Es una aplicación informática capaz de solucionar un conjunto de problemas que


exigen un gran conocimiento sobre un determinado tema.
 Un sistema experto es un conjunto de programas que, sobre una base de
conocimientos, posee información de uno o más expertos en un área específica.
Se puede entender como una rama de la inteligencia artificial.
 Estos sistemas imitan las actividades de un humano para resolver problemas de
distinta índole (no necesariamente tiene que ser de inteligencia artificial).
 Un SE se basa en el conocimiento declarativo (hechos sobre objetos,
situaciones) y el conocimiento de control (información sobre el seguimiento de
una acción).
 Para que un sistema experto sea herramienta efectiva, los usuarios deben
interactuar de una forma fácil, reuniendo dos capacidades para poder cumplirlo:
Explicar sus razonamientos o base del conocimiento: los sistemas expertos se
deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se
pueda generar la explicación para cada una de estas reglas, que a la vez se basan
en hechos.

1
FERNANDEZ Angel, “Concepto Sistemas Expertos”,28-11-2009
[http://www.monografias.com/trabajos16/sistemas-expertos/sistemas-expertos.shtml]
2
RICH, Elaine. Knight Kevin., Inteligencia Artificial, Segunda Edición, Editorial McGraw Hill, 2001, España
21
Sistema Experto MAHIX

Adquisición de nuevos conocimientos o integrador del sistema: son


mecanismos de razonamiento que sirven para modificar los conocimientos
anteriores. Sobre la base de lo anterior se puede decir que los sistemas expertos
son el producto de investigaciones en el campo de la inteligencia artificial ya
que ésta no intenta sustituir a los expertos humanos, sino que se desea ayudarlos
a realizar con más rapidez y eficacia todas las tareas que realiza.

Debido a esto en la actualidad se están mezclando diferentes técnicas o aplicaciones


aprovechando las ventajas que cada una de estas ofrece para poder tener empresas más
seguras. Un ejemplo de estas técnicas sería los agentes que tienen la capacidad de
negociar y navegar a través de recursos en línea; y es por eso que en la actualidad juega
un papel preponderante en los sistemas expertos.

1.3. Diferencias entre un Sistema Experto y un Sistema Convencional.

Sistema Convencional Sistema Experto


- Conocimiento y la lógica del proceso - Base de conocimiento y el mecanismo
están mezclados en un programa. de inferencia están separados
- Es difícil efectuar cambios en los - Es más fácil modificar la base de
conocimientos programados conocimiento
- Necesita información completa para - Deben ser tolerantes para operar aún
operar con alguna información desconocida.
- Generalmente maneja datos - Manejan datos cualitativos
cuantitativos primordialmente

Tabla 1. Diferencias entre un Sistema Experto y un convencional

1.4. Motivaciones para el uso de Sistemas Expertos.

Algunas de las motivaciones para usar sistemas expertos son:


 Los expertos son escasos y costosos.

 Puede ahorrar tiempo al experto humano para que este se dedique a cosas más
difíciles que excedan la capacidad del sistema experto.
22
Sistema Experto MAHIX

 Exhiben una concordancia bastante aceptable entre sus conclusiones y las de un


experto.

 Tienen conocimientos utilizables de manera inmediata, descentralizada y


duradera.

 Un sistema experto puede tener funcionamiento consistente, ya que no presenta


dificultades humanas como: cansancio, aburrido, enfermo, etc.

1.5. Problemas y Limitaciones de los Sistemas Expertos.

 Superficialidad de los conocimientos

 Estreches del dominio de la aplicación.

 Falla catastróficamente, tan pronto nos apartamos de su campo de aplicación.

 Poco o nulo conocimiento de su propio alcance y limitaciones.

 Dificultades de imagen para su introducción en las organizaciones.

1.6. Etapas de un Sistema Experto.

Dentro de las etapas de un sistema experto tenemos:


 Desarrollo: Creación de la base del conocimiento incluye hechos o datos y
reglas. Ing. del Conocimiento trasmite a la base del conocimiento todo el
conocimiento del Experto Humano. Realiza el motor de inferencia y también escoge
la estrategia de inferencia.
 Utilización: Motor de inferencia mediante el uso del conocimiento alojado en la
base del conocimiento y emite alternativas de solución.
 Mantenimiento: Se trata de actualizar la base del conocimiento.
23
Sistema Experto MAHIX

1.7. Ciclo de vida de un sistema experto3

Para la construcción del sistema experto es necesario que este cumpla con varias etapas
para su culminación, tal como lo indica la figura 1. en la cual se detalla el ciclo de vida
de un sistema experto.

Fig. 1. Ciclo de vida de un Sistema Experto


Análisis del Problema
 Evaluar el problema y los recursos disponibles para determinar la aplicación de
una solución basada en conocimiento.
 Desarrollar análisis costo-beneficio del SE
 Se puede requerir de una investigación de mercado, un examen profundo del
propósito del sistema pedido, para determinar la efectividad del costo del
sistema.
Especificación de Requerimientos
 Formalizar y poner por escrito lo que fue adquirido durante la fase de análisis.
 Determina los objetivos del proyecto, y establece los medios para obtener dichos
objetivos.

3
GONZÁLEZ ,Roberto, “Ciclo de Vida de Sistemas Expertos”, 30-11-2009
[http://www.monografias.com/trabajos16/sistemas-expertos/sistemas-expertos.shtml]
24
Sistema Experto MAHIX

 La experiencia demuestra que sin tener especificaciones no es posible diseñar un


S.E. de real utilidad.
 El documento de especificaciones debe plantear claramente y discutir los
objetivos y las características del sistema, el entorno del usuario, y las
limitaciones.
Diseño Preliminar
 Considera las decisiones de alto nivel necesarias para preparar y desarrollar
rápidamente el prototipo inicial.
 Determina la herramienta escogida para construir el prototipo, y la selección de
los expertos.
 Puede ser necesaria una considerable recopilación de conocimiento tanto de los
expertos, como de fuentes impresas/electrónicas, para poder tomar decisiones
sólidas.
Prototipo inicial (Rápido) y evaluación
 Etapa clave debido a que todas las decisiones tomadas en el diseño preliminar
deben ser ya sea confirmadas, rectificadas o desechadas, sobre la base del
conocimiento recopilado de los expertos en el proceso hasta completar esta
etapa.
 El prototipo inicial debe verse como el sistema completo, excepto que estará
limitado en su cobertura.
 Debe incluirse una bien definida interfaz con el usuario y un robusto
subconjunto de conocimiento de tal forma que los usuarios puedan juzgar su
aceptabilidad.
 Cualquier error cometido en las etapas anteriores debería ser detectado y
corregido en esta etapa.
Diseño Final
 Selección de las herramientas y de los recursos necesarios para desarrollar el
sistema a ser entregado.
 Selección del modelo para representar el conocimiento.
 Se recomienda realizar una descripción gráfica de los diferentes módulos del
sistema.
 Para cada uno de estos módulos el diseño debe incluir las especificaciones de las
entradas típicas y las salidas o conclusiones esperadas.
25
Sistema Experto MAHIX

 Como es muy factible que una misma entrada se use en más de un módulo, es
primordial preparar una descripción del subsistema de interfaces.
Implementación
 Puede consumir la mayor parte del tiempo del ciclo de vida de un SE, aún
cuando exista un excelente diseño.
 La implementación comprende el proceso completo de adquisición del
conocimiento para todos los módulos o subsistemas.
 En esta etapa tiene lugar el desarrollo incremental.
Pruebas
 Se desea asegurar la calidad del S.E., especialmente a medida que el S.E. es más
grande y complejo, o es de aplicación crítica.
 El Plan de Prueba debe incluir procesos de verificación y validación.

1.8. Áreas de Aplicación4

Los S.E. se aplican a una gran diversidad de campos y/o áreas. A continuación se
listan algunas de las principales:

Militar Informática Telecomunicaciones

Química Derecho Aeronáutica

Geología Arqueología Agricultura

Electrónica Transporte Educación

Medicina Industria Finanzas y Gestión

Tabla 2. Tabla de las áreas en que trabaja los Sistemas Expertos

1.9. Arquitectura de un sistema experto

Todo el conocimiento está almacenado en una Base de Conocimientos, y el computador


está programado de manera que pueda hacer inferencias a partir de ese conocimiento. El
razonamiento lo desarrolla un componente denominado Mecanismo de Inferencia, el

4
MARQUEZ, Fabian “Informatica Integral”, 30-11-2009
[http://www.informaticaintegral.net/sisexp.html]
26
Sistema Experto MAHIX

cual influye procedimientos que manipulan los datos. En la figura 2. se muestra la


arquitectura básica que deben poseer los Sistemas Expertos.

Fig.2. Arquitectura de un Sistema Experto

1.10. Componentes de un sistema experto

Los principales componentes de un sistema experto son los siguientes:

1.10.1. Base de conocimiento5

Un S.E. posee el conocimiento del experto humano convenientemente formalizado y


estructurado; esto es lo que se conoce como Base de conocimiento. Está constituido por
la descripción de los objetos y las relaciones entre ellos, así como de casos particulares
y excepciones. El conocimiento se puede representar mediante cálculo de predicados,
listas, objetos, redes semánticas y/o reglas de producción. De todas ellas, las dos formas
más usuales son las reglas de producción y los objetos. En cualquier caso, la elección de
las técnicas de representación a utilizar dependerá del tipo de problema a resolver.
5
CÁRDENAS ,José “Componentes del Sistema Experto”, 30-11-22009
[http://www.redcientifica.com/doc/doc199908210001.html]
27
Sistema Experto MAHIX

1.10.2. Shell del Sistema Experto

El motor de inferencia y las interfaces, que incluyen la interfaz de usuario, el módulo de


explicaciones, el módulo de adquisición del conocimiento, base de hechos forman el
esqueleto o sistema esencial, y que, separadas de las bases de conocimiento constituyen
una herramienta software para el desarrollo de los sistemas basados en el conocimiento
(shells). El Shell del sistema experto está compuesto por:

1.10.2.1. Motor de Inferencia

También llamado intérprete de reglas, es un módulo que se encarga de las operaciones


de búsqueda y selección de las reglas a utilizar en el proceso de razonamiento. Por
ejemplo, al tratar de probar una hipótesis dada, el motor de inferencia irá disparando
reglas que irán deduciendo nuevos hechos hasta la aprobación o rechazo de la hipótesis
objetivo.

1.10.2.2. Base de Hechos

Se trata de una memoria temporal auxiliar que almacena los datos del usuario, datos
iniciales del problema, y los resultados intermedios obtenidos a lo largo del proceso de
resolución. A través de ella se puede saber no sólo el estado actual del sistema sino
también cómo se llegó a él.

1.10.2.3. Interfaz de Usuario

Todo sistema dispone de una interfaz de usuario, que gobierna el diálogo entre el
sistema y el usuario. Para el desarrollo de estas interfaces algunas herramientas de
desarrollo incorporan generadores de interfaz de usuario o bien se utilizan herramientas
de desarrollo de interfaces gráficas existentes en el mercado.

1.10.2.4. Módulo de comunicaciones

En la actualidad la mayoría de los sistemas basados en el conocimiento no viven


aislados sino que interactúan con otros sistemas por lo que son capaces de interactuar no
solamente con el experto sino con estos sistemas, para poder recoger información o
consultar bases de datos.
28
Sistema Experto MAHIX

1.10.2.5. Módulo de explicaciones

Es una utilidad importante en la etapa de desarrollo ya que aporta una ayuda


considerable al ingeniero del conocimiento para refinar el funcionamiento del motor de
inferencia, y al experto a la hora de construir y verificar la coherencia de la base de
conocimiento. Sirve para explicar al usuario tanto las reglas usadas como el
conocimiento aplicado en la resolución de un determinado problema.

1.10.2.6. Módulo de adquisición de conocimiento

Este módulo permite al ingeniero del conocimiento, la construcción de la base de


conocimiento de una forma sencilla, así como disponer de una herramienta de ayuda
para actualizar la base de conocimiento cuando sea necesario.

1.11. Conocimiento y su relación con los datos

- Conocimiento: Es toda información del mundo que le sirve al experto para


juzgar y tomar decisiones.
- Dato: Símbolo, número, letra que por sí solo no me comunica nada.
- Información: Conjunto de datos procesados que comunican algo.
Los Sistemas suelen clasificarse según el nivel de abstracción de datos, tal como lo
muestra la figura 3. En donde a medida que se emplea más el conocimiento existe
también una mayor abstracción.

M
A
Y
O
R

A
B
S
T
R
A
C
C
I
Ó
N

Fig. 3. Clasificación de los Sistemas según el nivel de abstracción


29
Sistema Experto MAHIX

1.12. Componentes del conocimiento6

Los componentes del conocimiento son los siguientes:

1.12.1. Descripción

Es la capacidad de describir las propiedades principales que caracterizan el objeto. Las


propiedades que describen el objeto dependen de la aplicación que daremos al sistema.

1.12.2. Organización

Es la capacidad de organizar los objetos en categorías conceptuales o clases, por


ejemplo jerarquías. La organización permite realizar:
 Búsquedas más eficientes.

 Saber dónde vamos a buscar (orientar).

1.12.3. Denominación

Es la capacidad de diferenciar simbólicamente un objeto, el nombre debe ser unívoco


(único). Características:
 Añadir más detalles al nombre.
 Asociar un código único.
 Asociar otras propiedades.

1.12.4. Restricciones

Son la capacidad de conocer los límites en los rangos de valores, relaciones y


estructuras organizacionales de los objetos. Estás descripciones pueden ser absolutas o
depender de los valores de otros atributos. Se las puede utilizar a las restricciones para
determinar:
 La posible invalidez de un conocimiento.
 Inferir información que no está disponible directamente.
 Regularizar el acceso a la información

6
JARAMILLO, Fabricio “Componentes del Conocimiento”, 30-11-2009
[ http://www.psycologia.com/articulos/ar-jsamper01.htm]
30
Sistema Experto MAHIX

1.12.5. Otras relaciones

Es la capacidad de conocer las relaciones del objeto con otros. El número de identidades
involucradas en el sistema depende del nivel de análisis y de la profundidad del
conocimiento utilizado y se verificará la forma de relacionarlas entre sí.

1.13. Clasificación del conocimiento

 Accesibilidad: El conocimiento puede ser:


 Público: Todos podemos acceder: Bibliotecas, Internet, Revistas científicas,
Artículos.
 Privado: No todos tienen acceso. Es el conocimiento que tiene el experto.
 Con Relación a la Acción:
 Procedimental: Práctica
 Factual: Teoría
 Con Relación a la Profundidad de Compresión:
 Superficial
 Profundo
 Con Relación a la Profundidad de Compresión:
 Conocimiento Asertivo: Se encuentra en la base de los hechos.
 Conocimiento Operativo: Base de Reglas.
 Metaconocimiento: Estrategias de control (Inferencia y Metarreglas)

1.14. Técnicas de representación el conocimiento7

Representaciones básicas:
 Reglas de producción
 Redes semánticas
 Frames (prototipos o marcos)
 Lógica de predicados
Representaciones avanzadas:
 Modelos cualitativos, temporales, causales
 Sistemas híbridos.
7
ALTAMIRA, Ángel, “Sistemas Expertos”, 30-11-2009 [http://jc-info.blogspot.com/2008/11/sedfe-
un-sistema-experto-para-el.html]
31
Sistema Experto MAHIX

 Razonamiento basado en casos.


 Redes neuronales y algoritmos genéticos
 Sistemas multifuncionales
Representación de incertidumbre:
 Técnicas no-numéricas (TMS)
 Factores de certeza
 Lógica difusa
 Redes probabilísticas
32
Sistema Experto MAHIX

CAPÍTULO 2: WEKA Y REDES NEURONALES

2. Weka y redes neuronales

2.1. Introducción a WEKA

WEKA (Waikato Environment for Knowledge Analysis) es una herramienta que


permite la experimentación de análisis de datos mediante la aplicación, análisis y
evaluación de las técnicas de análisis de datos, principalmente las provenientes del
aprendizaje automático, sobre cualquier conjunto de datos del usuario. Permite una
comparación con los distintos métodos que se utilizan para el pre-procesamiento,
clasificación de información, clustering y meta-aprendizaje.

2.2. Datos de Entrenamiento

En WEKA estos datos son implementados mediante la clase weka.core.Instances. Los


datos de entrenamiento (dataset) son una colección de ejemplos. Cada Instancia consiste
de un número de atributos, los cuales pueden ser nominales (de una lista predefinida de
valores), numeric (un real o número entero) o un String. Todos los datos de
entrenamiento y la descripción de atributos y la instancia objetivo son escritos en un
archivo .arff el cual es usado por weka para el entrenamiento y aprendizaje del sistema.

2.3. Clasificadores

Cualquier algoritmo de aprendizaje en weka se deriva de la clase abstracta


weka.classifiers.Classifier. Es necesario la elección de un clasificador, para generar una
rutina para el entrenamiento y así generar un modelo; y otra rutina la cual evalúa el
modelo generado en base a los datos de entrenamiento mediante una función.

Los clasificadores que nos ofrece weka 3.6.2 son los siguientes:
 BayesianLogisticRegression
 BayesNet
 CitationKNN
 ClassificationViaClustering
 ComplementNaiveBayes
 ConjunctiveRule
33
Sistema Experto MAHIX

 GaussianProcesses
 J48
 JythonClassifier,
 LinearRegression
 MultilayerPerceptron
 MultipleClassifiersCombiner
 NaiveBayes
 NaiveBayesMultinomial
 NaiveBayesSimple
 NBTree
 OneR
 RandomForest
 RandomTree
 SimpleLinearRegression
 ZeroR, Etc.

2.4. MULTILAYER PERCEPTRON

Es una función de clasificación de la herramienta Weka, que consta de varias capas de


unidades computacionales interconectadas entre sí; cada neurona en una capa se
encuentra directamente conectada a las neuronas de la capa anterior. El modelo se
encuentra basado en funciones ya que cada unidad de las redes mencionadas aplica una
función de activación (habitualmente una sigmoide).

El mecanismo de aprendizaje habitual es la retropropagación. De esta forma los valores


de salida son comparados con la decisión correcta para computar el valor de una cierta
función de error, y este error es retroalimentado hacia atrás mediante varias técnicas. El
algoritmo hace uso de esta información para recalcular los pesos a aplicar en cada
conexión de forma que en iteraciones sucesivas se reduzca el valor de la función de
error. El ajuste de pesos se realiza derivando la función de error con respecto a los pesos
de la red, modificándose éstos para que el error disminuya; ésta es la razón por la que la
retropropagación sólo puede ser aplicada en redes con funciones de activación
diferenciables.
34
Sistema Experto MAHIX

2.5. Redes Neuronales

Las redes neuronales se crearon con el objetivo de reproducir de forma básica las
funciones del cerebro humano. Las arquitecturas en red con un gran número de
conexiones entre varias capas fueron introducidas para reproducir la estructura del
cerebro humano. La información contenida en una red neuronal se codifica en la
estructura de la red y en los pesos de las conexiones. “La cualidad más sobresaliente de
las redes neuronales es que ellas son capaces de “aprender”. En lugar de programar una
red, se le presenta una serie de ejemplos, a partir de los cuales ella aprende las
relaciones principales que están implícitas en la base de datos de entrenamiento.”8

2.6. Componentes de una Red Neuronal

En la figura 4. se encuentran las partes de una red neuronal multicapas:

Fig. 4. Red Neuronal Multicapa

La red consta de neuronas de procesamiento que se encuentra tanto en la capa escondida


como en la capa de salida; canales de flujo de información entre las neuronas o también
llamados interconexiones, y las neuronas de la capa de entrada que se encargan del
almacenamiento de la información de entrada a la red. Cada neurona tiene una función
de activación la cual consiste en un cálculo local que realiza la neurona para transformar

8
AGUADO BEHAR Alberto, Temas de Identificación y control Adaptable, Instituto de Cibernética,
Matemática y Física, La Habana 10200, Cuba, 2000, pág. 256
35
Sistema Experto MAHIX

las entradas en salidas, estas funciones de activación son ecuaciones algebraicas o


diferenciales.

2.6.1. La neurona

La neurona se conecta a otras unidades a través de arcos dirigidos (modelando la


conexión axón → dendritas de las neuronas humanas), es la que se encarga de enviar
señales hacia otra neurona, así misma o envía una señal de salida de la red.

En la figura 5. Se muestra el modelo gráfico de una neurona:

Fig. 5. Modelo Gráfico de una Neurona

La neurona está estructurada por: Un vector de señal de entrada x, Un vector de pesos


excitatorios o inhibitorios w, Una función de activación y, y una salida.
Dentro de la función de activación encontramos la función de integración y la función
de activación propiamente dicha.

2.6.1.1. Función de integración9:

Entre las principales características tenemos que esta función considera todas las señales
de entrada a la neurona receptora, asigna un peso a cada una de las señales recibidas y
devuelve un valor real.

Tenemos los siguientes ejemplos de funciones de integración:


La función de integración que promedia las señales de entrada
 
I ( x; w )  w1x1  w2 x2  . . .  wnxn
La función de integración que obtiene el máximo de las señales de entrada pesadas:
9
SUÁREZ CANSINO Joel, Dr. Instituto de Ciencias Básicas e Ingenierías, Área Académica de
Computación , Notas de curso 2006
36
Sistema Experto MAHIX

 
I ( x; w )  max{w i x i | w es un peso y x es una señal de entrada}
La función de integración que obtiene el mínimo de las señales de entrada pesadas:
 
I ( x; w )  min{w i x i | w es un peso y x es una señal de entrada}
La función de integración que obtiene el producto de las señales de entrada pesadas:

  n
I ( x; w )   wi xi
i 1

La función de integración que da el producto:

 
I ( x; w )  S P wj0 Si  x j
i
jSi

Donde w j0   c j0 , x  1 . P combinación índices de entradas

2.6.1.2. Función de transferencia o activación10:

Esta función se presenta en la mayoría de los casos acotada, monótona creciente,


continua.
Tenemos los siguientes ejemplos de funciones de activación:
La función de activación lineal: H(x) = ax + b, donde a, b son constantes, es una
función no acotada, diferenciable. En particular, interesa la función identidad H(x) = x.
La función de activación logística: tiene características binarias, en el sentido de que sus
valores se encuentran en el intervalo [0, 1]:

H ( x)  1e1x ,0  
La función de activación hardlimiter es binaria:

1 0 si x  0  x 
lim     max 0, 
   1  e  x   x 
1 si 0 x 
La función de activación tangente hiperbólica es bipolar, en el sentido de que sus
valores se encuentran en el intervalo [−1, 1]:

10
SUÁREZ CANSINO Joel, Dr. Instituto de Ciencias Básicas e Ingenierías, Área Académica de
Computación , Notas de curso 2006
37
Sistema Experto MAHIX

e x  e  x
H ( x)  x x ,0  
e e
La función de activación hardlimiter bipolar:

lime x  e  x 
 1 si x  0 x 

 x  x    
  e e  1 si 0  x x 
 

2.7. Red de Retro-propagación11

Las redes de retro-propagación son utilizadas en un amplio marco de trabajo entre estos
tenemos: reconocimiento de voz, reconocimiento de imágenes, diagnóstico médico,
control de procesos, etc. Estas redes se basan en un método que lleva su mismo nombre.

Esta red es capaz de desarrollar una aproximación casi exacta de cualquier función no
lineal, a partir de un conjunto de pares de ejemplos x,y.
La adición de capas escondidas permite al algoritmo de retro-propagación desarrollar
una representación interna del problema a solucionar, para de esta forma aprender de
manera más fácil la representación de una función arbitraria f(x).

Es posible recoger los datos históricos de entrada y de salida del proceso para utilizarlos
en el entrenamiento de la red, con estos datos se puede acopiar una muestra de datos que
después es procesada, reciclándola varias veces (épocas de entrenamiento) hasta que se
logra que los errores de predicción sean mínimos.

11
AGUADO BEHAR Alberto, Temas de Identificación y control Adaptable, Instituto de Cibernética,
Matemática y Física, La Habana 10200, Cuba, 2000, pág. 268-269
38
Sistema Experto MAHIX

CAPÍTULO 3: SISTEMA GEOGRÁFICO Y BATIK

3. Sistema Geográfico y Batik

3.1. Definición12

Un Sistema de Información Geográfica (SIG o GIS, en su acrónimo inglés) es una


integración organizada de hardware,
software y datos geográficos diseñado
para capturar, almacenar, manipular,
analizar y desplegar en todas sus
formas la información
geográficamente referenciada con el
fin de resolver problemas complejos de
planificación y gestión(Fig.6).
También puede definirse como un
Fig.6.-Representación de un Sistema Geográfico
modelo de una parte de la realidad (SIG)
referido a un sistema de coordenadas
terrestre y construido para satisfacer unas necesidades concretas de información.

3.2. Funcionamiento de un SIG13

El SIG funciona como una base de datos


con información geográfica (datos
alfanuméricos) que se encuentra
asociada por un identificador común a
los objetos gráficos de un mapa digital.
De esta forma, señalando un objeto se
conocen sus atributos e, inversamente,
preguntando por un registro de la base
Fig.7.Representación de Patrones en un Sistema
de datos se puede saber su localización Geográfico

12
WIKIPIDEA,”Sistema de Información Geográfica” ,15-12-2009
["http://es.wikipedia.org/wiki/Sistema_de_Informaci%C3%B3n_Geogr%C3%A1fica]
13
CÓRDOVA, Alexis, “Introducción Sistemas Geográficos”, 15-12-
2009[www.geografia.com.mx/sistgeog.htm]
39
Sistema Experto MAHIX

en la cartografía.

La razón fundamental para utilizar un SIG es la gestión de información espacial. El


sistema permite separar la información en diferentes capas temáticas y las almacena
independientemente (Fig.7.), permitiendo trabajar con ellas de manera rápida y sencilla,
y facilitando al profesional la posibilidad de relacionar la información existente a través
de la topología de los objetos, con el fin de generar otra nueva que no podríamos
obtener de otra forma.
Las principales cuestiones que puede resolver un Sistema de Información Geográfica,
ordenadas de menor a mayor complejidad, son:
1. Localización: preguntar por las características de un lugar concreto.
2. Condición: el cumplimiento o no de unas condiciones impuestas al sistema.
3. Tendencia: comparación entre situaciones temporales o espaciales distintas de
alguna característica.
4. Rutas: cálculo de rutas óptimas entre dos o más puntos.
5. Pautas: detección de pautas espaciales.
6. Modelos: generación de modelos a partir de fenómenos o actuaciones
simuladas.

3.3. Técnicas utilizadas en los Sistemas de Información Geográfica14

3.3.1. La creación de datos

Las modernas tecnologías SIG trabajan con información digital, para la cual existen
varios métodos utilizados en la creación de datos digitales. El método más utilizado es
la digitalización, donde a partir de un mapa impreso o con información tomada en
campo se transfiere a un medio digital por el empleo de un programa de Diseño Asistido
por Ordenador (DAO o CAD) con capacidades de georeferenciación.

14
WIKIPIDEA,”Sistema de Información Geográfica” ,15-12-2009
["http://es.wikipedia.org/wiki/Sistema_de_Informaci%C3%B3n_Geogr%C3%A1fica]
40
Sistema Experto MAHIX

3.3.2. La representación de los datos

Los datos SIG representan los objetos del


mundo real (carreteras, el uso del suelo,
altitudes). Los objetos del mundo real se pueden
Fig.8. Digitalización de una imagen
dividir en dos abstracciones: objetos discretos de un mapa
(una casa) y continuos (cantidad de lluvia caída,
una elevación). Existen dos formas de almacenar los datos en un SIG: raster y vectorial.

3.3.2.1. Raster

Un tipo de datos raster es, en esencia, cualquier tipo de imagen digital representada en
mallas. El modelo de SIG raster o de retícula se centra en las propiedades del espacio
más que en la precisión de la localización. Divide el espacio en celdas regulares donde
cada una de ellas representa un único valor.

Los datos raster se compone de filas y columnas de celdas, cada celda almacena un
valor único. Los datos raster pueden ser imágenes (imágenes raster), con un valor de
color en cada celda o píxel (Fig.8.). Otros valores registrados para cada celda puede ser
un valor discreto, como el uso del suelo, valores continuos, como temperaturas, o un
valor nulo si no se dispone de datos.

3.3.2.2. Vectorial

En los datos vectoriales, el interés de las


representaciones se centra en la precisión de
localización de los elementos geográficos sobre
el espacio (Fig.9.) y donde los fenómenos a
representar son discretos, es decir, de límites
definidos. Cada una de estas geometrías está
Fig. 9. Representación vectorial de
un mapa. vinculada a una fila en una base de datos que
describe sus atributos. Por ejemplo, una base de
datos que describe los lagos puede contener datos sobre la batimetría de estos, la calidad
del agua o el nivel de contaminación.
41
Sistema Experto MAHIX

Para modelar
digitalmente las
entidades del
mundo real se
utilizan tres Fig. 10 .Elementos Geométricos

elementos
geométricos: el punto, la línea y el polígono. (Fig.10.)
 Puntos: Los puntos se utilizan para las entidades geográficas que mejor
pueden ser expresadas por un único punto de referencia. En otras palabras: la
simple ubicación. Por ejemplo, las ubicaciones de los pozos, picos de
elevaciones o puntos de interés. Los puntos transmiten la menor cantidad de
información de estos tipos de archivo y no son posibles las mediciones.
También se pueden utilizar para representar zonas a una escala pequeña. Por
ejemplo, las ciudades en un mapa del mundo estarán representadas por
puntos en lugar de polígonos.
 Líneas o polilíneas: Las líneas unidimensionales o polilíneas son usadas
para rasgos lineales como ríos, caminos, ferrocarriles, rastros, líneas
topográficas o curvas de nivel. De igual forma que en las entidades
puntuales, en pequeñas escalas pueden ser utilizados para representar
polígonos. En los elementos lineales puede medirse la distancia.
 Polígonos: Los polígonos bidimensionales se utilizan para representar
elementos geográficos que cubren un área particular de la superficie de la
tierra. Estas entidades pueden representar lagos, límites de parques naturales,
edificios, provincias, o los usos del suelo, por ejemplo. Los polígonos
transmiten la mayor cantidad de información en archivos con datos
vectoriales y en ellos se pueden medir el perímetro y el área.
42
Sistema Experto MAHIX

3.4. Introducción a Batik15

Batik es un conjunto de herramientas basadas en Java para aplicaciones o applets que


desea utilizar imágenes en los gráficos vectoriales escalables (SVG) formato para
diversos fines, tales como exhibición, producción o manipulación.

La ambición del proyecto es dar a los desarrolladores un conjunto de módulos básicos


que se pueden utilizar juntas o por separado para apoyar SVG soluciones específicas.
Algunos ejemplos de módulos son los Analizador de SVG , el generador de SVG y
SVG DOM . Otra ambición del proyecto batik es que sea altamente extensible , por
ejemplo, Batik permite al desarrollador para manejar SVG elementos personalizados. A
pesar de que el objetivo del proyecto es proporcionar un conjunto de módulos básicos,
uno de los resultados es una de pleno derecho del navegador SVG aplicación que valida
los distintos módulos y sus-interoperabilidad.

3.5. Concepto de batik y aplicabilidad

Con Batik, puede manipular los documentos SVG en cualquier lugar de Java está
disponible. También puede utilizar los diferentes módulos de Batik a generar ,
manipular y codificar las imágenes SVG en sus aplicaciones o applets.
Batik hace que sea fácil para las aplicaciones basadas en Java o applets relación con los
contenidos SVG. Por ejemplo, el uso de batik módulo generador de SVG , una
aplicación Java o applet puede fácilmente exportar sus gráficos en el formato SVG. Uso
de batik de visualización componente SVG , una aplicación o applet puede fácilmente
integrar la visión SVG y capacidades de interacción. Otra posibilidad es utilizar los
módulos de Batik SVG para convertir a diversos formatos, tales como imágenes de
mapa de bits (JPEG, PNG o TIFF) o en otros formatos vectoriales (EPS o PDF, estos
dos últimos debido a la transcodificadores proporcionado por Apache FOP ).

15
THE APACHE SOFTWARE FOUNDATION, “Batik SVG Toolkit”, 12-12-2010
[http://xmlgraphics.apache.org/batik/]
43
Sistema Experto MAHIX

Fig. 11. Estructura de Funcionamiento de Batik

El conjunto de herramientas Batik incluye lo siguiente:


Módulos
 Un SVG DOM aplicación
 Un conjunto de analizadores microsyntax SVG
 Un módulo de secuencias de comandos
 Un generador que crea un documento SVG de Java2D llamadas
 Un componente Swing SVG
 Un módulo de transcodificador

Herramientas y aplicaciones
 Garabato, un navegador SVG
 Una trama SVG
 Un convertidor de SVG para TTF
 Una impresora bastante para archivos de código fuente SVG
44
Sistema Experto MAHIX

3.6. Especificación de SVG

Gráficos vectoriales escalables, SVG, es un W3C Recomendación. Se define una


gramática XML para ricos gráficos 2D que incluye características tales como la
transparencia, la geometría arbitraria, efectos de filtro (sombras, efectos de iluminación,
etc), escritura y la animación.
La especificación SVG:
Esta especificación define las características y la sintaxis para Scalable Vector Graphics
(SVG). SVG es un lenguaje para describir gráficos en dos dimensiones en XML [
XML10 ]. SVG permite tres tipos de objetos gráficos: formas de gráficos vectoriales
(por ejemplo, rutas de acceso consta de líneas rectas y curvas), imágenes y texto. Los
objetos gráficos se pueden agrupar, de estilo, transformado y compuesta en objetos
previamente renderizados. El conjunto de características incluye transformaciones
anidadas, los trazados de recorte, máscaras alfa, efectos de filtro y objetos de la
plantilla.
45
Sistema Experto MAHIX

CAPÍTULO 4: EL MAIZ

4. EL MAIZ

4.1. Cultivo de Maíz

El cultivo del maíz es uno de los más diversificados en el mundo y ocupado tanto para
la alimentación humana como en la alimentación de animales de todo tipo desde aves
hasta vacunos de carne o leche se encuentra a nivel mundial después del trigo y el arroz
que cobra gran importancia en la alimentación tanto humana como animal. Incluso se ha
cultivado desde antiguas culturas centroamericanas es conocido el uso que le dieron los
mayas a terrenos boscosos que transformaron en cultivables para sembrar maíz que era
su principal fuente de alimentación.16

4.2. Exigencias del maíz17

4.2.1. Climatológicas.

La capacidad del maíz para producir altos rendimientos requiere la concurrencia de


temperaturas elevadas, un alto grado de ilu-minación y una humedad adecuada. Es un
cultivo muy exigente en agua que no puede escasear en las fases críticas (germinación,
nascencia, desarrollo inicial, floración). La temperatura óptima de germinación y
nascencia es alrededor de 15ºC. Es muy sensible a las heladas tardías de primavera y a
las temperaturas de Otoño. Su crecimiento y desarrollo más favorables se producen
entre los 25 y 30°C.

4.2.2. Suelo.

Le favorecen suelos profundos, de textura franca y con alto contenido en nutrientes, así
como buen drenaje. El intervalo más favorable de pH es entre 6 y 7,5 y tiene una
tolerancia media a la salinidad. Es importante que los nutrientes del suelo sean
asimilables y estén disponibles para cubrir los requerimientos de la planta, que se
producen en un período de 50 a60 días.

16
MÁRQUEZ, Fabián, “Introducción del cultivo de maíz”, 17-12-2009,
[http://www.monografias.com/trabajos/elmaiz.html]
17
SUAREZ FIDELINO, Antonio, “Agro-sistemas”, 17-12-2009,
[http://www.agrosistemas.es/Servicios/Perfiles%20de%20cultivos/Maiz/maiz4.htm]
46
Sistema Experto MAHIX

Para que el maíz germine, nazca bien y tenga un crecimiento y desarrollo adecuados
necesita unas condiciones favorables del suelo en cuanto a humedad, temperatura,
aireación y estructura.

4.3. Ciclo de Desarrollo18

El ciclo del maíz es muy rápido y tiene las siguientes fases:

 Germinación: aparición de radícula y coleóplito.


 Nascencia: emergencia de coleóptilo, plúmula y aparición de las raíces
seminales.
 Crecimiento: desarrollo del tallo, hojas definitivas y sistema- radicular.
 Floración: desarrollo del penacho o panícula y de la mazorca hasta la aparición
de las sedas o barbas de la misma, hasta su
 Alargamiento (4 a 6 semanas). Termina con la libera-ción del polen del
penacho y la fecundación de la mazorca (5 a 8 días).
 Fructificación: las sedas de la mazorca se marchitan y se vuelven
castaño‑oscuro, a los pocos días.

 Maduración y secado: disminuye su nivel de humedad (35%), hasta tener la


adecuada para la recolección (20--25%).

4.4. Tipos de maíz19

 Maíz dulce (Zeamays L. subsp. maysSaccharata ) que se utiliza


fundamentalmente para comer como verdura cuando es joven.
 Maíz de harina = Maíz harinoso o amilácea (Zeamays L. subsp.
maysAmylacea) Es una variedad que posee el contenido de almidón muy blando
y que se utiliza para la elaboración de harina.
 Maíz de corteza dura: (Zeamays L. subsp. maysIndurata) Variedad americana
que se caracteriza porque el grano posee una corteza muy dura.

18
SUAREZ FIDELINO, Antonio, “Agro-sistemas”, 17-12-2009,
[http://www.agrosistemas.es/Servicios/Perfiles%20de%20cultivos/Maiz/maiz2.htm]
19
PÉREZ , Fausto, “Botánica del maíz”, 18-12-2009
http://www.botanical-online.com/maiz.htm
47
Sistema Experto MAHIX

 Pop corn = maíz reventador (Zeamays L. subsp. maysEverta) Caracterizado


por la capacidad explosiva de la cubierta al ser sometida al calor. Se utiliza para
la confección de palomitas.
 Maíz dentado( Zeamays L. subsp. maysIndentata) Cuando madura presenta una
gran muesca o depresión en el grano.
El primer país productor del mundo es Estados Unidos, que posee casi la mitad de la
producción mundial, al que le siguen la China, Brasil y México.

4.5. Enfermedades y plagas del maíz.20

4.5.1. Enfermedades.

4.5.1.1. Roya del maíz (Pucciniasorghi): las royas son parasitos muy específicos que
atacan únicamente a cierto tipo de plantas, los daños los produce principalmente
en las hojas y tallos y muy ocasionalmente a los frutos y las flores. Síntomas:
produce daños en las hojas que consisten en la aparición de unas pústulas de dos
a cuatro cm de diámetro, de color naranja o amarillo que van haciendo negruzcas
con el tiempo. Métodos de lucha: se controla con el empleo de híbridos
resistentes. La roya más importante es la provocada por Puccinia sorghi.

Fig. 12. Roya

4.5.1.2. Carbón negro: los carbones del maíz son producidos por los Basidiomycetes
del orden Ustilaginales, atacan principalmente las hojas, el tallo, la mazorca y la
inflorescencia masculina. Se manifiesta a través de masas de polvo negro y

20
SUAREZ FIDELINO, Antonio, “Agro-sistemas”, 17-12-2009
[http://www.agrosistemas.es/Servicios/Perfiles%20de%20cultivos/Maiz/maiz5.htm]
48
Sistema Experto MAHIX

también produciendo una hipertofia en los granos jóvenes de maíz, dando como
consecuencia una disminución importante en el rendimiento.
Los carbones viven en la naturaleza como parásitos del maíz entre otras plantas,
formando dos tipos de esporas: teliosporas y basidiosporas.
Finalmente se puede anotar que existen muchas razas fisiológicas de carbones,
aunque son de baja estabilidad debido a que para cada generación sobre la planta
existe una meiosis del hongo, lo que significa que la existencia depende de una
recombinación.

Fig. 13. Carbon

4.5.1.3. Botrytis cinerea: Sintomas: en el area foliar presenta lesiones necróticas


pequeñas con mohos gris azulado. Ramificaciones breves, ligeramente
ensanchadas en la extremidad, sobre los que se forman los conidios unidos a los
conidióforos por breves esterigmas y dispuestas en cabezuelas compactas. Los
conidios son ovales, raras veces algo irregulares. Microconidios hialinos
globosos, 2.5u. de diámetro. Esclerocios negros de tamaño variable.

Fig.14.Botrytis cinérea
49
Sistema Experto MAHIX

4.5.1.4. Helmintosporiosis (Helminthosporiumsp): Síntomas: que se manifiesta por


manchas pequeñas en las hojas, de color pardo o pardo negruzco, de formas
ovaladas. Los daños son variables, dependiendo de que haya un ambiente
favorable al desarrollo del hongo (alta humedad sobretodo).Métodos de lucha:
eliminación de restos de cosecha, empleando semillas de híbridos resistentes y
desinfección de semilla.

Fig. 15. Helmintosporiosis

4.5.1.5. Curvularia lunata: Sistomas: las manchas de la hoja son circulares


cloróticas y necróticas, con una corona color claro, las lesiones son pequeñas
formando manchas necróticas largas. Los conidióforos son marrones, septados,
rectos o flexuosos, con frecuencia curvos, simples o ramificados y contienen
conidios terminales o intercalares en los verticilos. Los conidios son curvados 3_
4 tabiques, con la célula central más grande que las otras.

Fig. 16. Curvularia lunata


50
Sistema Experto MAHIX

4.5.1.6. Macrophomina sp: Síntomas: apariencia carbonosa (podredumbre), en el


interior del tallo numerosos cuerpos fungales en reposo, duros, redondeados de
color oscuro. A nivel radicular lesiones de acuosas de color marrón a negro.
Los esclerocios son negros, numerosos en las partes enfermas de la planta y de
forma globular a irregular.

Fig. 17. Macrophomina sp

4.5.2. Plagas.

4.5.2.1. Agrotis. Son larvas de clase lepidópteros pertenecientes al género Agrotis.


Agrotis ipsilon. Las larvas son de diferentes colores negro, gris y pasando por los
colores verde grisáceo y son de forma cilíndrica. Los daños que originan son a
nivel de cuello de la planta produciéndoles graves heridas. Control de lucha
similar al del gusano de alambre.

Fig.18. Agrotis
51
Sistema Experto MAHIX

4.5.2.2. Pulgones. El pulgón más dañino del maíz es Rhopalosiphum padi, ya que se
alimenta de la savia provocando una disminución del rendimiento final del
cultivo y el pulgón verde del maíz Rhopalosiphum maidis es transmisor de virus
al extraer la savia de las plantas atacando principalmente al maíz dulce, esta
última especie tampoco ocasiona graves daños debido al rápido crecimiento del
maíz. El insecto mide unos 3 milímetros. Por las hojas enrolladas, pegajosas y
los brotes atacados. Les gusta más los brotes tiernos y es ahí donde se asientan
preferentemente. Por manchas amarillas o verde pálido en los puntos de picadura.

Fig. 19. Pulgón

4.5.2.3. Ácaros. Se trata de unos ácaros de entre 0,5 mm y 0,7 mm (Tetranychus


urticae y Tetranychus turkestany) que suelen colonizar ciertas especies de plantas
suculentas causándoles un daño superficial que puede terminar por impedir la
función clorofílica. Su ciclo de vida es de apenas 28 días aunque puede alargarse
o acortarse en función de la temperatura. Resulta fácil detectarlas por el aspecto
sucio y cubierto de una especie de telaraña que adquiere la planta. Las arañas en
si son muy difíciles de ver a simple vista por lo que se recomienda usar una lupa.
Son sensibles a la humedad por lo que frecuentes pulverizaciones con agua las
perjudica. Su forma de actuar es ir picando con su estilete y vaciando las células
superficiales de la planta una por una, dejando un inconfundible rastro de células
muertas. Su control se realiza mediante el empleo de fosforados: Dimetoato y
Disulfotón.
52
Sistema Experto MAHIX

Fig. 20. Acaro

4.5.2.4. Mosca Blanca. Son pequeñas moscas blancas de 3 milímetros que clavan un
pico en las hojas y chupan la savia. Tienen como mínimo 4 generaciones al año
según el clima y en invernadero pueden tener más de 10 (1 generación por mes)
de ahí su mayor peligrosidad bajo cubierto. Una generación es el tiempo que dura
todo el ciclo vital del insecto, es decir, desde que se pone un huevo hasta que
muere el adulto. Los adultos hacen la puesta de huevos en el envés de las hojas;
de ellos salen las larvas y se quedan a vivir allí, en el envés. Cuando se agitan las
plantas se puede ver volar una nubecilla de pequeñas mosquitas blancas. Les
favorece las temperaturas altas y el ambiente húmedo. Es plaga más de verano.
Los primeros síntomas consisten en el amarillamiento de las hojas, se decoloran
y más adelante, se secan y se caen. Así mismo tiempo, se recubren con una
sustancia pegajosa y brillante que es la melaza que excretan los propios insectos.

Fig.21. Mosca Blanca

4.5.2.5. Heliothis zea. Es un gusano choclero. El hecho que en las espigas de maíz
normalmente se encuentre un único individuo es debido al canibalismo que
53
Sistema Experto MAHIX

practican. En su última etapa la larva mide de 30 a 38 mm y presenta una


coloración muy variable. La cabeza es pardo amarillenta con un moteado que
varía de castaño a casi blanco. El color del cuerpo puede ir del amarillento a
verde claro, rosado, pardo claro u oscuro, con una serie de bandas generalmente
claras. En maíz muestran predilección por las espigas inmaduras. Las larvas
inicialmente destruyen algunos estigmas para penetrar por el extremo apical de la
espiga y alcanzar así los granos y el marlo tierno, de los que se nutre. El daño
normalmente se limita al extremo apical de la mazorca, si bien en ocasiones se
extiende más allá. Las mazorcas dañadas a veces son invadidas por patógenos
incrementando los perjuicios.

Fig.22.Heliothis zea

4.5.2.6. Diatraea sp. Los adultos son polillas de color gris y de 30 a 35 mm de


expansión alar. Los huevos son de color blanco amarillentos, esférico y achatado
en uno de sus polos. Las larvas son de color variable del verde claro al verde
castaño hasta el verde olivo. En su mayor desarrollo alcanzan hasta 35 mm de
longitud. Los adultos son de actividad nocturna y ovipositan las masas de huevos
sobre las hojas más tiernas del maíz. Tan pronto emergen se alimentan de la
epidermis de las hojas del cogollo, dejando un gran número de excrementos y
una serie de perforaciones irregulares en las hojas. Luego de pasar por 6 estadios
larvales empupan en el suelo a una profundidad variable.

Fig.23. Diatraea sp
54
Sistema Experto MAHIX

4.5.2.7. Spodoptera. Las hembras depositan los huevos corrientemente durante las
primeras horas de la noche, tanto en el haz como en el envés de las hojas, estos
son puestos en varios grupos o masas cubiertas por segregaciones del aparato
bucal y escamas de su cuerpo. Una hembra puede poner como promedio 1000
huevecillos en grupos de 10 a 350 en cada puesta, las larvas nacen a los tres días
o menos, cuando la temperatura es elevada (> 25_ C).
Las larvas al nacer se alimentan del coreon, más tarde se trasladan a diferentes
partes de la planta o a las vecinas, evitando así la competencia por el alimento y
el canibalismo, su color varía según el alimento pero en general son oscuras con
tres rayas pálidas estrechas y longitudinales; en el dorso se distingue una banda
negruzca más ancha hacia el costado y otra parecida pero amarillenta más abajo,
en la frente de la cabeza se distingue una "Y" blanca invertida.
Las larvas pasan por 6 ó 7 estadíos, siendo de mayor importancia para tomar las
medidas de lucha los dos primeros; en el primero estas miden hasta 2-3 mm y la
cabeza es negra completamente, el segundo mide de 4-10 mm y la cabeza es
carmelita claro; las larvas pueden alcanzar hasta 35 mm en su último estadío. A
partir del tercer estadío se introducen en el cogollo, haciendo perforaciones que
son apreciados cuando la hoja se desvaina.

Fig.24. Spodoptera

4.5.2.8. Gusano blanco. es una importante plaga de las raíces que puede debilitar
mucho a la planta o incluso llega a matarla. Las larvas de estos escarabajos son
gordas, blancas, arqueadas y de unos 4 centímetros. Escarbando en la tierra de
alrededor aparece la oruga enrollada. El daño lo hacen fundamentalmente las
larvas comiendo raíces; mucho más que como escarabajo adulto. Los síntomas
son como los Nematodos: hojas de color verde pálido, escaso vigor de la planta,
55
Sistema Experto MAHIX

producción menor de flores, es decir, todo consecuencia de un daño en raíces y


difícil saber si es por Gusano blanco o por otra causa.

Fig. 25. Gusano Blanco


56
Sistema Experto MAHIX

6. EVALUACIÓN DEL OBJETO DE INVESTIGACION

El inicio de ECUAQUÍMICA se remonta a 1865, en Guayaquil, cuando un empresario


suizo inició un proyecto que con el tiempo se convertiría en una de las más importantes
y prósperas empresas del País: MAX MÜLLER y Cía. pionera del gran comercio en
Ecuador. Con capital ecuatoriano-suizo, se dedicó a la importación y distribución de
productos agroquímicos, farmacéuticos, ferreteros, para la construcción, para el
mantenimiento automotriz, importación de solventes y representaciones de telas, relojes
y afines. Después de más de 100 años de actividad comercial, en 1970 MAX MÜLLER
liquidó para dividirse en nuevas compañías especializadas por campos que manejarían
por separado sus actividades con mayor profesionalismo.

La misión de Ecuaquimica es ofrecer las mejores soluciones al cuidado del agro de


nuestro país, contamos para eso con calidad en insumos, servicios y personal.
Asimismo deseamos contribuir a la productividad y éxito en el manejo de su cultivo,
brindándole atención técnica especializada, manteniendo así nuestra filosofía de ser
siempre LA MANO AMIGA DEL AGRICULTOR.

Mientras que en el pasado, ECUAQUIMICA tradicionalmente importaba y


comercializaba toda clase de semillas de hortalizas, pastos de clima templado y pastos
de clima tropical, hace algunos años consideramos que también deberíamos incursionar
en la comercialización de semillas de granos para los cultivos de Maíz, Arroz y Soya.
Para este fin adquirimos una planta de Procesamiento de Semillas en las afueras de la
ciudad de Quevedo, y empezamos a producir localmente semillas marca Suprema Pura
Pepa con el aval del INIAP.

Adicionalmente, hace dos años hemos completado nuestra oferta con la con la
importación y comercialización de semillas híbridas de alto rendimiento, en
colaboración con Monsanto.

En el área de atención especializada o técnica cuenta con algunos problemas en el


manejo Agro Técnico del cultivo de maíz hibrido como son: cantidad de semilla a
sembrar, monitoreo de plagas y enfermedades, fertilización, productos que detengan las
plagas y enfermedades identificadas en el cultivo, entre otras, ha ocasionado bajos
57
Sistema Experto MAHIX

rendimientos en la producción del mismo y por ende afecta en la economía de los


productores.

Sabiendo que la Universidad Nacional de Loja aplica El SAMOT (Sistema Académico


Modular por Objetos de Transformación) como modelo de aprendizaje, el cual tiene
como principal objetivo mejorar la pertinencia social y la calidad de la formación
profesional, impulsar la investigación científica y tecnológica, y potenciar la
vinculación con la colectividad, de manera de incidir más efectivamente en el desarrollo
de la Región Sur del Ecuador y del país. Ello implica que, lo más relevante de la
formación es que los estudiantes conozcan las problemáticas concretas del desarrollo
relacionados con la profesión o especialidad, en los niveles local, regional, nacional y
universal; y que, mejoren sus capacidades, tanto para explicar y comprender estos
problemas en sus múltiples dimensiones y contextos (es decir, en su complejidad),
como para construir alternativas de solución a las mismas.

Conociendo las dificultades que atraviesa el área de soporte técnico de la empresa


comercial Ecuaquimica y tomando como punto de partida el SAMOT, se ha creído
conveniente el desarrollo de un Sistema Experto para el control y seguimiento del
manejo Agro Técnico de maíz hibrido de la zona maicera de la provincia de Loja,
logrando a través del mismo que el agro técnico encargado cumpla con sus funciones de
manera más rápida, eficiente y confiable.
58
Sistema Experto MAHIX

7. DESARROLLO DE LA PROPUESTA ALTERNATIVA

En base a las dificultades que presenta el área de soporte técnico de la empresa


Ecuaquimica para dar una información más rápida para el manejo Agro Técnico del
cultivo de maíz hibrido como es la cantidad de maíz a sembrar, la identificación de
enfermedades y plagas, entre otras, se ha creído conveniente la creación de un sistema
experto para el control y seguimiento del cultivo de maíz hibrido que ayudara al Agro
Técnico a dar una información más rápida, efectiva del manejo el cultivo.

La metodología utilizada para el presente proyecto investigativo es la ICONIX que


consta de cinco fases:

Fase de requerimientos se tendrá una constante iteración con el área e soporte técnico
(Ing. Jorge Torres) en la que se obtenemos todos los problemas que afectan a la misma,
a través de las diferentes entrevistas realizadas determinamos los requerimientos
funcionales y no funcionales, también adquirimos la base de conocimiento que permite
al sistema experto conocer los principales síntomas de cada enfermedad, como se trata
cada una de las ellas con sus respectivos productos.
Para las fases de Análisis y Diseño, comprende el modelado estático y dinámico. El
modelado dinámico que incluye Diagramas de Caso de Uso, de Robustez y de
Secuencia en forma paralela, el modelado estático comprende el modelo de dominio y
Diagramas de Clase.

Fase de implementación se realiza la codificación en base a los diagramas previamente


creados y toma como punto principal la manera de hacerlo lo más simple posible, luego
se busca como innovarlo al programa más simple sin perder funcionalidad.

Fase de prueba Se realizan muestras del producto al ingeniero en cada avance, para
asegurar el cumplimiento de todos los requerimientos. En la fase final el sistema es
probado por el Ing. Jorge Torres y el área de soporte técnico, a través de las encuestas
que determina el correcto funcionamiento del sistema experto.

A continuación se detalla toda la información obtenida durante el transcurso del


proyecto tomando como base las cinco fases de la metodología ICONIX detalladas
anteriormente:
59
Sistema Experto MAHIX

7.1. REQUERIMIENTOS FUNCIONALES Y NO FUNCIONALES DEL


SISTEMA EXPERTO.

Requerimientos funcionales

CÓDIGO DESCRIPCIÓN CATEGORÍA


El sistema permitirá la creación de una cuenta y
RF001 Evidente
contraseña para el ingreso del mismo.
RF002 El sistema verificará los datos ingresados por el usuario. Oculto
RF003 El sistema permitirá la identificación del usuario Evidente
El usuario modificará sus datos personales previo a su
RF004 Evidente
identificación en el sistema.
El sistema visualizará los cultivos mediante un mapa de
RF005 Evidente
la provincia de Loja.
El sistema visualizará los cultivos en una tabla de forma
RF006 Evidente
ordenada y específica.
El sistema permitirá el ingreso de nuevas semillas
RF007 Evidente
hibridas.
El sistema permitirá al usuario realizar la actualización
RF008 Evidente
de información de las semillas ya existentes.
El sistema permitirá la eliminación de las semillas que
RF009 Evidente
no son necesarias por parte del usuario.
El sistema permitirá el ingreso de los datos personales de
RF010 Evidente
los propietarios de los cultivos.
El sistema permitirá la actualización de los datos
RF011 Evidente
personales del propietario del cultivo.
El sistema permitirá la eliminación de la información de
RF012 Evidente
los datos personales del propietario del cultivo.
El sistema dará señales de alerta para la revisión de los
RF013 Evidente
cultivos.
El sistema permitirá la identificación de las plagas en el
RF014 cultivo de maíz hibrido según la información ingresada Evidente
por el usuario.
60
Sistema Experto MAHIX

El sistema ofrecerá las respectivas recomendaciones para


Rf015 Evidente
combatir la plaga identificada.
El sistema permitirá la identificación de enfermedades en
RF016 el cultivo de maíz según la información ingresada por el Evidente
usuario.
El sistema ofrecerá las respectivas recomendaciones para
RF017 Evidente
combatir la enfermedad encontrada.
El sistema informará la forma de fertilización que se
RF018 Evidente
debe tomar para el cultivo de maíz hibrido.
El sistema imprimirá los reportes según la revisión que
RF019 Evidente
se haya dado al cultivo.
El sistema permitirá el ingreso de nuevos síntomas en las
RF020 Evidente
enfermedades.
El sistema permitirá la actualización de los nuevos
RF021 Evidente
síntomas de las enfermedades.
El sistema permitirá la eliminación de los nuevos
RF022 Evidente
síntomas.
El sistema permitirá el ingreso de nuevos productos
RF023 Evidente
agrícolas.
El sistema permitirá la modificación de los productos
RF024 Evidente
agrícolas.
El sistema brinda la visualización de las plagas y
RF025 Evidente
enfermedades con su respectiva información.

Requerimientos no funcionales

CÓDIGO DESCRIPCIÓN
RNF001 Sistema operativo propietario Windows Xp, Windows Vista y Windows 7
Sistema operativo GNU Linux (Fedora 8 compatibles y Ubuntu 8.10
compatibles).
RNF002 Lenguaje de Programación Java ( StandarEdition 1.6.0.11
SunMicroSystems)
MySql 5.1 server Comunitary Version Sun MicroSystems.
61
Sistema Experto MAHIX

RNF003 Front-End basado en Swing de Java


RNF004  Requerimientos mínimos de hardware:
 Procesador Intel Pentium 4 de 1.4 GHz o superior (Willmate,
Northwood, Presscott, Dual Core, Core 2 Duo, Core 2 Quard, Core i3,
Core i5, Core i7) / Amd (Seprom, Atlon, Amdx2)
 Memoria RAM 512 MB o superior
RNF0005 Hibérnate3.0.0
Framework look and field Synthetica Black Star por: Java Soft
Framework java help 2.0 por Sun MicroSystems.
FrameworkiZpack [crear instaladores multiplataforma código libre].

7.2. BASE DE CONOCIMIENTO PARA EL SISTEMA EXPERTO

Esta es la información reunida por parte del experto humano (técnico de Ecuaquimica
Ing. Jorge Luis Torres) y de nosotros los tesistas para el cultivo de maíz hibrido.

Ciclo vegetativo del maíz

Nacencia: comprende el período que transcurre desde la siembra hasta la aparición del
coleóptilo, cuya duración aproximada es de 6 a 8 días.

Crecimiento: una vez nacido el maíz, aparece una nueva hoja cada tres días si las
condiciones son normales. A los 15-20 días siguientes a la nascencia, la planta debe
tener ya cinco o seis hojas, y en las primeras 4-5 semanas la planta deberá tener
formadas todas sus hojas.

Floración: a los 25-30 días de efectuada la siembra se inicia la panoja en el interior del
tallo y en la base de éste. Transcurridas 4 a 6 semanas desde este momento se inicia la
liberación del polen y el alargamiento de los estilos.

Se considera como floración el momento en que la panoja se encuentra emitiendo polen


y se produce el alargamiento de los estilos. La emisión de polen dura de 5 a 8 días,
pudiendo surgir problemas si las temperaturas son altas o se provoca en la planta una
sequía por falta de riego o lluvias.
62
Sistema Experto MAHIX

Fructificación: con la fecundación de los óvulos por el polen se inicia la fructificación.


Una vez realizada la fecundación, los estilos de la mazorca, vulgarmente llamados
sedas, cambian de color, tomando un color castaño.
Transcurrida la tercera semana después de la polinización, la mazorca toma el tamaño
definitivo, se forman los granos y aparece en ellos el embrión. Los granos se llenan de
una sustancia leñosa, rica en azúcares, los cuales se transforman al final de la quinta
semana en almidón.

Maduración y secado: hacia el final de la octava semana después de la polinización, el


grano alcanza su máximo de materia seca, pudiendo entonces considerarse que ha
llegado a su madurez fisiológica. Entonces suele tener alrededor del 35% de humedad.

A medida que va perdiendo la humedad se va aproximando el grano a su madurez


comercial, influyendo en ello más las condiciones ambientales de temperatura, humedad
ambiente, etc., que las características varietales.

Condiciones de temperatura
 Temperatura 25 a 30oC
 Germinación de semilla entre 15 a 20oC
 Superación de 30oC problemas para la absorción de nutrientes y agua.
 Fructificación requiere de 20 a 30oC
 La siembra se realiza en periodos de lluvia
Fertilización
 Se requiere un abonado de fosforo (P) y potasio (K) en cantidades de 0,3 Kg de
fosforo en 100 Kg de abonado.
 Nitrógeno en mayor cantidad en época de crecimiento.
 Abonado muy flojo en la primera época de desarrollo hasta un número de hojas
de 6 a 8 en la planta.
 El abono debe de tener N: 82%; P2O5: 70% y K2O: 92%, a partir que la planta
tiene 6 a 8 hojas en adelante.
 Durante la formación del grano de la mazorca los abonos deben ser mínimos.
 Abonos de cobertura Nitrato amónico de calcio 500Kg/ha, UREA: 295 Kg/ha,
solución nitrogenada 525Kg/ha.
 Abonado a fondo para el cultivo maíz cantidades de 825 Kg/ha.
63
Sistema Experto MAHIX

Principales Nutrientes
 Nitrógeno:
o Depende de la textura del suelo.
o Cantidad 20 a 30 Kg/ha
o Déficit
 Afecta la calidad del cultivo.
 Los síntomas se ven reflejados en los órganos fotosintéticos
(hojas) con la aparición de coloraciones amarillentas sobre los
ápices y se extiende a lo largo de todo el nervio.
 Fosforo:
o Depende del tipo de suelo.
o Da vigor a las raíces.
o Fertilizar con fosforo en base a un análisis previo de laboratorio.
o Déficit
 Afecta a la fecundación
 El grano no se desarrolla bien.
 Potasio:
o Suelos arenosos requieren cantidades superiores a 80 / 100 ppm
o Suelos arcillosos dosis elevados 135 / 160 ppm.
o Déficit
 Sensible a ataques a hongos.
 Su porte débil y raíz muy afectada.
 Mazorcas no granan en las puntas.
 Otros elementos en el abono:
o Boro
o Magnesio
o Zinc
o Su existencia esta en forma deficiente o en exceso en la panta.
o Carencia de Boro provoca la inexistencia de granos en algunas partes
de la mazorca.
64
Sistema Experto MAHIX

Distancias de Siembra

Tipo semilla Distancia en hileras (cm) Semillas a sembrar


Tardíos 70 x 16,8 84 No/ha o 28 Kg/ha
75 x 15,8 84 No/ha o 28 Kg/ha
Semitardios 70 x 15,8 90 No/ha o 30 Kg/ha
75 x 14,9 90 No/ha o 30 Kg/ha
Semiprecoces 70 x 14,9 96 No/ha o 32 Kg/ha
75 x 13,9 96 No/ha o 32 Kg/ha
Precoces 70 x 14,2 101 No/ha o 34 Kg/ha
75x 13,1 101 No/ha o 34 Kg/ha

PLAGAS Y ENFERMEDADES
PLAGAS
 Gusanos Blancos (Melolonthasp y Anoxia sp)
o Síntomas:
 Muerte provocado por larvas
 Devoran las plantas cuando tienen 8 a 9 hojas.
o Método de lucha:
 Aplicar producto cuando el número de larvas supera el m2.
 Saneamiento de la zona del cultivo afectado.
 Gusanos Grises (Agrotis)
o Síntomas:
 Muerte de plantas jóvenes.
 Mordeduras en la altura del cuello del tallo de la plántula
provocando su muerte.
o Método de lucha:
 Aplicar producto.
 Quitar malas hierbas o maleza y desinfección de semilla.
 Ácaros
o Araña roja o arañuela (tetranychussp)
 Síntomas:
 Daños en las hojas
65
Sistema Experto MAHIX

 Ataca muchos a la mala hierba tomatitos.


 Métodos de lucha
 Mantenimiento preventivo limpiar malas hierbas
 Aplicar acaricidas específicos.
 Pulgones
o Síntomas
 Las hojas enrolladas, pegajosas y los brotes atacados
 Las hojas tienen manchas amarillas o verde pálido en los puntos
de picadura
o Método de lucha
 Aplicar producto
 Mosca Blanca
o Síntomas
 Amarillamiento de las hojas
 Se decoloran y más adelante, se secan y se caen las hojas
 Sustancia pegajosa y brillante que es la melaza que excretan los
propios insectos.
o Método de lucha
 Mantenimiento preventivo de limpieza de hierba
 Aplicar producto especifico
 Heliothis zea
o Síntomas
 Canibalismo en los granos tiernos
 Predilección por las espigas
o Método de lucha
 Aplicar producto
 Eliminando la maleza
 Diatraea sp
o Síntomas
 Serie de perforaciones irregulares en las hojas
 Dejando un gran número de excrementos en las hojas
o Método de lucha
 Aplicar producto determinado
66
Sistema Experto MAHIX

 Spodoptera
o Síntomas
 Perforaciones en los cogollos que son apreciados cuando la hoja
se desvaina
o Método de lucha
 Sistemas rápidos de preparación con una duración de 15-20 días

ENFERMEDADES CAUSADAS POR HONGOS Y BACTERIAS.

 Botrytis cinera.
o Síntomas:
 En el área foliar presenta lesiones necróticas pequeñas con
mohos gris azulado.
 La infección es en el tallo.
 Curvularia lunata.
o Síntomas:
 Manchas de hojas son circulares cloróticas y necróticas con
corona color claro.
 Las lesiones son pequeñas formando manchas necróticas
largas.
 La infección es en hojas.
 Helminthosporium (maydis o turcicum)
o Síntomas:
 Ambas especies ocasionan el tizón de la hoja del maíz
 En las hojas inferiores empiezan a formarse manchas
alargadas, eclípticas en el sentido de venación uniéndose
hasta quemar la hoja.
 Presenta manchas color verde pálido, luego se alargan y
tornan con un color café o amarillo paja.
 La infección es en hojas.
 Macrophomina sp.
o Síntomas:
 Aparición carbonosa en el interior del tallo.
67
Sistema Experto MAHIX

 A nivel radicular lesiones acuosas de color marrón a negro.


 La infección es en el tallo.
 Pucciniapolysora (roya)
o Síntomas:
 Desiminadas en ambas superficies foliares.
 Presenta pústulas pequeñas circulares
 Color que va de anaranjado claro a negro.
 La infección es en hojas.
 Pucciniasorghi (roya)
o Síntomas:
 Pústulas pequeñas pulvurentas.
 Color marrón dorado a marrón canela.
 La infección es en hojas.
 Sphacelothecareiliana
o Síntomas:
 Formación de tumor redondo en la inflorescencia y mazorca.
 La infección en flores y mazorca..
 Ustilagomaydis
o Síntomas:
 Carbón de la mazorca.
 Presenta tumores cubiertos por una membrana gruesa,
esponjosa y blanquecina.
 La infección es en hojas y mazorca.
 Carbon
o Síntomas
 Atacan principalmente las hojas, el tallo, la mazorca y la
inflorescencia masculina
 Masas de polvo negro
 También produciendo una hipertofia en los granos jóvenes
de maíz
 Disminución importante en el rendimiento
68
Sistema Experto MAHIX

7.3. GLOSARIO DE TÉRMINOS

 Semilla. Grano que en diversas formas produce las plantas y que al caer o
ser sembrado produce nuevas plantas de la misma especie.
 Cultivo. Acción y efecto de cultivar.
 Cultivar. Dar a la tierra y a las plantas las labores necesarias para que
fructifiquen.
 Usuario. Dicho de una persona: Que tiene derecho de usar de una cosa ajena
con cierta limitación.
 Propietario.Que tiene derecho de propiedad sobre algo, y especialmente
sobre bienes inmuebles.
 Hibrido. Los híbridos presentan con frecuencia lo que se denomina vigor
híbrido; tienden a ser más grandes, crecen con más rapidez, y están más
sanos que sus progenitores.
 SIG. Sistema de Información Geográfica. Son sistemas computarizados
compuestos de software y procedimientos que permiten capturar, almacenar,
manipular, gestionar, analizar, modelar y presentar datos referenciados
espacialmente.
 Mapa.Representación geográfica de la Tierra o parte de ella en una
superficie plana.
 Riego. Acción y efecto de regar.
 Regar. Esparcir agua sobre una superficie, como la de la tierra, para
beneficiarla, o la de una calle, una sala, etc., para limpiarla o refrescarla.
 Sembrar. Arrojar y esparcir las semillas en la tierra preparada para este fin.
 Cosecha. Temporada en que se recogen los frutos.
 Plaga. Aparición masiva y repentina de seres vivos de la misma especie que
causan graves daños a poblaciones animales o vegetales.
 Enfermedad.Alteración más o menos grave de la salud.
 Hongo. Planta talofita, sin clorofila, de tamaño muy variado y reproducción
preferentemente asexual, por esporas. Es parásita o vive sobre materias
orgánicas en descomposición.
 Insecticida. Que sirve para matar insectos
 Fungicida.Dicho de un agente: Que destruye los hongos.
class Modelo dominio

Persona
Sistema Experto MAHIX

Usuario Agricultor

tiene Direccion
1
1
7.4. MODELO DEL DOMINIO

tiene1..* 1
tiene
1 Sintoma

Cultiv o
1
Semilla tiene 1
tiene
1 Enfermedad
1..* 1..*
1..* 1..*

Plaga
tiene 1..*
tiene
elimina

1..*
1 1 elimina
1..*
Rev isionPlaga
Rev isionEnfermedad
ElemetoActiv o
1..*

tiene
1..* Producto

1
69
uc CasoUso

MAHIX

Administrar Cuenta

Administrar Semilla
Sistema Experto MAHIX

Administrar Producto
Agro Tecnico
7.5. DIAGRAMA DE CASO DE USO

Administrar
Agricultor

Administrar Cultiv o

Administrar Sintoma
70
71
Sistema Experto MAHIX

7.6. PROTOTIPADO DE PANTALLAS DEL CASO DE USO ADMINISTRAR


CUENTA

Casos de uso que cubre: Administrar Cuenta CU001

PANTALLA NUEVO USUARIO

PANTALLA DE NUEVO USUARIO


72
Sistema Experto MAHIX

PANTALLA MODIFICAR USUARIO

MENSAJES DE INFORMACIÓN
73
Sistema Experto MAHIX

MENSAJES DE ERROR
Realizado: El grupo de trabajo

7.6.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR CUENTA

NOMBRE CASO DE USO: Administrar CU001


ID DE CASO
Cuenta
DE USO:
El Agro Técnico ingresa sus datos personales
DESCRIPCIÓN:
y el nombre de su cuenta y contraseña.
ACTOR (ES): El Agro Técnico.
REFERENCIA DE REQUERIMIENTOS: RF001, RF002,RF003,RF004
PRECONDICIONES:  Que el Agro Técnico ingrese al sistema
POSTCONDICIONES:  La creación de su cuenta y contraseña.
TIPO DE CASO DE USO: Primario y del Sistema

CURSO NORMAL DE EVENTOS


1. El usuario corre la aplicación.
2. El sistema busca en la base de datos si existe un usuario.
3. Si no existe presenta la pantalla “Nuevo Usuario”
4. El Agro Técnico llena todos los campos obligatorios en la pantalla mostrada. Luego
selecciona el botón [Guardar]

5. El sistema valida campos de texto obligatorios.


6. Verifica si la cedula ingresada es correcta.
7. Verifica que la contraseñas concuerden.
8. El sistema muestra el mensaje “Se han guardado sus datos”
74
Sistema Experto MAHIX

9. Selecciona el botón [Aceptar] en el mensaje.

10. El sistema activa la pantalla principal.


11. El caso de uso finaliza
CURSO ALTERNO DE EVENTOS
A.TEXTO VACIO
A.6. El sistema muestra el mensaje de error “No se han llenado campos obligatorios”.
A.7.El caso de uso continua en el paso 6 del curso normal de eventos.
B. CEDULA INVALIDA
B.8. El sistema muestra el mensaje de información “Cedula invalida revise por favor”.
B.9. El caso de uso continua en el paso 6 del curso normal de eventos

C. CONTRASEÑA NO CONCUERDA
C.6. El sistema muestra el mensaje de error “la contraseña no concuerda”.
C.7. El caso de uso continua en el paso 7 del curso normal de eventos

D. MODIFICAR DATOS DE USUARIO


D.7. El Agro Técnico selecciona el menú “Archivo” de la pantalla principal “MAHIX”. Y
selecciona el menú ítem “Modificar Usuario”.
D.8. El sistema muestra la pantalla “Modificar Usuario”.
D.9. El Agro Técnico modifica sus datos personales, así como también puede cambiar la
cuenta y contraseña.
D.10. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Modificar Usuario”
D.11. El sistema valida campos de texto obligatorios no estén vacíos.
D.12. El sistema verifica la cedula ingresada.
D.13. El sistema verifica que las contraseñas modificadas concuerden.
D.13. El sistema actualiza la información ingresada.
D.14. El sistema muestra el mensaje de información “Se ha Guardado Correctamente”.
D.15. El caso de uso finaliza.
sd DSAdministrarCuenta

CURSO NORMAL DE EVENTOS


7.6.2.

1. El usuario corre la aplicación. Agro Tecnico


2. El sistema busca en la base de datos si Corre la
existe un usuario. Aplicacion()
3. Si no existe presenta la pantalla PintaSplash
CUENTA

“Nuevo Usuario” Splash


4. El Agro Técnico llena todos los
Sistema Experto MAHIX

campos obligatorios en la pantalla


mostrada. Luego selecciona el botón Hilo
[Guardar] start()
5. El sistema valida campos de texto
obligatorios. verificaUsuario()
6. Verifica si la cedula ingresada es :boolean
correcta. UCUsuario UsuarioDAO
7. Verifica que la contraseñas buscarTodos()
concuerden. :List
8. El sistema muestra el mensaje “Se han
guardado sus datos”
9. Selecciona el botón [Aceptar] en el
mensaje. Usuario
10. El sistema activa la pantalla principal.
11. El caso de uso finaliza
:false
CURSO ALTERNO DE DatosUsuario
EVENTOS
A.TEXTO VACIO
A.6. El sistema muestra el mensaje de error
“No se han llenado campos obligatorios”. Llena los campos de texto()
A.7.El caso de uso continua en el paso 6
del curso normal de eventos. Presiona el boton[Guardar]()

B. CEDULA INVALIDA
B.8. El sistema muestra el mensaje de
mostrarMensajeError()
información “Cedula invalida revise por ValidaTextoVacio()
favor”. MensajeErrorTextoVacio :boolean
B.9. El caso de uso continua en el paso 6
del curso normal de eventos mostrarMensajeContrasena()
ValidaContraseña() :boolean
MensajeError Utilitarios
DIAGRAMA DE SECUENCIA CASO DE USO ADMINISTRAR
75

C. CONTRASEÑA NO CONCUERDA
probrarCedula(String cedula) :boolean
C.6. El sistema muestra el mensaje de error
mostrarMensajeErrorCedula()
“la contraseña no concuerda”.
C.7. El caso de uso continua en el paso 6 MensajeError
del curso normal de eventos
A.6. El sistema muestra el mensaje de error
“No se han llenado campos obligatorios”. Llena los campos de texto()
A.7.El caso de uso continua en el paso 6
del curso normal de eventos. Presiona el boton[Guardar]()

B. CEDULA INVALIDA
B.8. El sistema muestra el mensaje de
mostrarMensajeError()
información “Cedula invalida revise por ValidaTextoVacio()
favor”. MensajeErrorTextoVacio :boolean
B.9. El caso de uso continua en el paso 6
del curso normal de eventos mostrarMensajeContrasena()
ValidaContraseña() :boolean
MensajeError Utilitarios
C. CONTRASEÑA NO CONCUERDA
probrarCedula(String cedula) :boolean
C.6. El sistema muestra el mensaje de error
mostrarMensajeErrorCedula()
“la contraseña no concuerda”.
C.7. El caso de uso continua en el paso 6 MensajeError
del curso normal de eventos

crearPersona() :Persona

crearUsuario() :Usuario
Seguridad
getStringMessageDigest(String contraseña, String seguridad) :String
Sistema Experto MAHIX

guardarPersona(Persona persona) :boolean


PersonaDAO
UCPersona
guardar(Persona persona)

Persona

guardarUsuario(Usuario usuario) :boolean


guardar(Usuario usuario)

mostrarMensajeGuardar()

MensajeInfromacion

Presiona boton [Aceptar]()

actriva Pantalla Principal()

PantallaPrincipal

(from DSIdentificarUsuario)
76
sd DSCAModificarCuenta

D. MODIFICAR DATOS DE
USUARIO
Agro T ecnico
D.7. El Agro T écnico
Selecciona menu "Archivo" y
selecciona el menú “Archivo”
selecciona menu "Administrar
de la pantalla principal
Usuario" y menu item "Modificar Pantalla Principal obtenerUsuario() :List
“MAHIX”. Y selecciona el menú
Usuario"()
UsusrioDAO
ítem “Modificar Usuario”. UCUsuario buscarT odos() :List
D.8. El sistema muestra la
pantalla “Modificar Usuario”.
D.9. El Agro T écnico modifica
sus datos personales, así como
Usuario
también puede cambiar la
cuenta y contraseña.
D.10. El Agro T écnico
selecciona el botón [Guardar]
Sistema Experto MAHIX

de la pantalla “Modificar
Modificar Usuario
Usuario”
llenarCampos(Usuario usuario)
D.11. El sistema valida campos
Modifica los datos
de texto obligatorios no estén
personales y datos de
vacíos.
cuenta()
D.12. El sistema verifica la Selecciona el boton [Guardar]()
cedula ingresada. mostrarMensajeError()
D.13. El sistema verifica que validaCamposVacios()
las contraseñas modificadas MensajeError :boolean Utilitarios
concuerden. probrarCedula(String cedula) :boolean
D.13. El sistema actualiza la
mostrarMensajeErrorCedula()
información ingresada.
D.14. El sistema muestra el MensajeError
mensaje de información “Se mostrarMensajeCuentaContrasenaIncorrestos()
ha Guardado Correctamente”. validaDatosCuenta()
MensajeError :boolean
D.15. El caso de uso finaliza.
mostrarMensajeContrasena()
validaContreñasNuevas()
MensajeError :boolean

crearPersona() :Persona

crearUsuario() :Usuario
Seguridad
getStringMessageDiges(String clave, String
seguridad) :String

guardarPersona(Persona persona) :boolean

UCPersona PersonaDAO
guardar(Persona persona)

Persona

guardarUsuario(Usuario usuario) :boolean

guardar(Usuario usuario) :boolean

mostrarMensajeGuardar()
77

Mensaje
Infromacion
78
Sistema Experto MAHIX

7.7. PROTOTIPADO DE PANTALLAS DEL CASO DE USO ADMINISTRAR


SEMILLA

Casos de uso que cubre: Administrar Semilla CU002

PANTALLA NUEVA SEMILLA

PANTALLA BUSCAR SEMILLAS


79
Sistema Experto MAHIX

PANTALLA MODIFICAR SEMILLA

MENSAJES DE INFORMACIÓN

MENSAJES DE ERROR
Realizado: El grupo de trabajo
80
Sistema Experto MAHIX

7.7.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR SEMILLA

NOMBRE CASO DE USO: Administrar CU002


ID DE CASO DE
Semilla
USO:

El Agro Técnico ingresa nuevas semillas con


DESCRIPCIÓN: sus respectivas características, también puede
modificar y eliminar.
ACTOR (ES): El Agro Técnico.
REFERENCIA DE REQUERIMIENTOS: RF007, RF008,RF009
PRECONDICIONES:  Que el Agro Técnico ingresa al sistema
 El Agro Técnico ingrese nuevas semillas
con sus respectivas características.
POSTCONDICIONES:  Eliminación de semillas.
 El registro de cambios efectuados en cada
semilla.
TIPO DE CASO DE USO: Primario y del Sistema
CURSO NORMAL DE EVENTOS
1. El Agro Técnico selecciona el menú “Administrar Semilla” de la pantalla principal, luego
selecciona el menú ítem “Buscar Semilla” de la pantalla “MAHIX”.

2. El sistema presenta la pantalla “Buscar Semilla”.


3. El Agro Técnico selecciona una de las opciones (Todas, nombre, tipo de semilla) del
campo [Tipo de Búsqueda] de la pantalla “Buscar Semilla”.

4. El Agro Técnico llena el campo de texto para la búsqueda.

5. El Agro Técnico selecciona el botón [Buscar].

6. El sistema valido que el texto ingresado no esté vacío.


7. El sistema busca a (las) semillas de acuerdo al tipo de búsqueda seleccionado.
8. El sistema muestra las semillas encontradas en la zona [Resultado Búsqueda] de la
pantalla “Buscar Semilla”.
9. El Agro Técnico selecciona de la lista presentada a una de las semillas para modificarla de
la pantalla “Buscar Semilla”.
81
Sistema Experto MAHIX

10. El Agro Técnico selecciona el botón [Modificar] de la pantalla “Buscar Semilla”.

11. El sistema muestra la pantalla “Modificar Semilla” con la información de la semilla


seleccionada.
12. El Agro Técnico modifica a información de la semilla seleccionada.
13. El Agro Técnico selecciona la botón [Guardar] de la pantalla “Modificar Semilla”.

14. El sistema valido que los datos obligatorios de la semilla estén llenos.
15. El sistema actualiza la información de la semilla de los campos modificados.
16. El sistema presenta el mensaje de información “La semilla ha sido modificada” y cierra la
pantalla “Modificar Semilla”.
17. El caso de uso finaliza.
CURSO ALTERNO DE EVENTOS
A. TEXTO VACÍO
A.7. El sistema muestra el mensaje de error “No se han llenado campos obligatorios”.
A.7.El caso de uso continua en el paso 4 del curso normal de eventos.

B. SEMILLA NO ENCONTRADA
B.8. El sistema muestra un mensaje de error “La semilla no existe con ese tipo de búsqueda”.
B.9. El caso de uso continua en el paso 4 del curso normal de eventos

C. INFORMACIÓN INCORRECTA
C. 5. El sistema muestra un mensaje de error “La información que ingreso no es correcta”.
C.6. El caso de uso continua en el paso 4 del curso alterno de eventos
D. ELIMINAR SEMILLA
D.11. El Agro Técnico selecciona la opción [Eliminar] de la pantalla “Buscar Semilla”.
D.12. El sistema muestra un mensaje de aviso está seguro de eliminar la semilla
D.13. El Agro Técnico elige el botón [SI] del mensaje de aviso.
D.14. El sistema actualiza la información y cierra la pantalla “Buscar Semilla”
D.15. El caso de uso finaliza.
E. NUEVA SEMILLA
E.2. El Agro Técnico selecciona el menú “Administrar Semilla” de la pantalla principal, luego
selecciona el menú ítem “Nueva Semilla”.
E.3. El sistema crea una nueva semilla y muestra la pantalla “Nueva Semilla”.
E.4. El Agro Técnico ingresa los datos de la semilla en todos los campos de la pantalla “Nueva
82
Sistema Experto MAHIX

Semilla”.
E.5. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Nueva Semilla”.
E.6. El sistema valida que los datos obligatorios de la semilla estén llenos.
E.7. El sistema almacena a la semilla creada.
E.8. El sistema presenta un mensaje de información “Se ha creado una nueva semilla” y cierra la
pantalla “Nueva Semilla”.
E.9. El caso de uso finaliza.
sd DSAdministrarSemilla

CURSO NORMAL DE EVENTOS

1. El Agro Técnico selecciona el menú Agro Tecnico


“Administrar Semilla” de la pantalla Seleciona el menu
principal, luego selecciona el menú ítem "Administrar Semilla" y el
7.7.2.

“Buscar Semilla” de la pantalla “MAHIX”. menu item "Buscar Semilla"() Pantalla Principal
2. El sistema presenta la pantalla “Buscar
Semilla”. Buscar Semilla
3. El Agro Técnico selecciona una de las setBuscarSemillas(BuscarSemillas buscarSemillas)
opciones (Todas, nombre, tipo de semilla) Selecciona criterio de
busqueda y llena campos UCSemilla
del campo [Tipo de Búsqueda] de la
pantalla “Buscar Semilla”. de texto() Selecciona el boton [Buscar]()
4. El Agro Técnico llena el campo de texto
para la búsqueda. VerficaCriterioBusqueda() :boolean
5. El Agro Técnico selecciona el botón
[Buscar]. mostrarMensajeErrorCampos()
Sistema Experto MAHIX

validaTextoVacio() :boolean
6. El sistema valido que el texto ingresado no MensajeError
esté vacío.
DIAGRAMA

7. El sistema busca a (las) semillas de


acuerdo al tipo de búsqueda seleccionado. buscarSemilla(String criterio,Object valor) :boolean
8. El sistema muestra las semillas
mostrarMensajeNoSeEncontraron()
encontradas en la zona [Resultado criterio Todos()
Búsqueda] de la pantalla “Buscar Semilla”. MensajeInformacion
9. El Agro Técnico selecciona de la lista SemillaDAO
DE

buscarTodas() :List
presentada a una de las semillas para
modificarla de la pantalla “Buscar
Semilla”.
10. El Agro Técnico selecciona el botón
ADMINISTRAR SEMILLA

Semilla
[Modificar] de la pantalla “Buscar Semilla”.
11. El sistema muestra la pantalla “Modificar criterioDiferente()
Semilla” con la información de la semilla
seleccionada. buscarPorPropiedad(String
12. El Agro Técnico modifica a información de criterio, Object valor) :List
la semilla seleccionada.
mostrarSemillas(LinkedList<Semilla> lista)
13. El Agro Técnico selecciona la botón
[Guardar] de la pantalla “Modificar
Seleciona una Semilla de tabla()
Semilla”.
14. El sistema valido que los datos obligatorios Selecciona
SECUENCIA

de la semilla estén llenos. una semilla


15. El sistema actualiza la información de la de la lista()
semilla de los campos modificados. Selecciona el boton [Modificar]()
16. El sistema presenta el mensaje de
información “La semilla ha sido
modificada” y cierra la pantalla “Modificar mostrarMensajeErrorSeleccion()
verificaSeleccion()
DEL

Semilla”.
17. El caso de uso finaliza. MensajeError

CURSO ALTERNO DE EVENTOS


A.TEXTO VACIO Modificar Semilla
A.7. El sistema muestra el mensaje de error “No modificarSemilla(Semilla semilla)
se han llenado campos obligatorios”.
cargarDatos(Semilla semilla)
A.7.El caso de uso continua en el paso 4 del
Modifica los datos de la semilla()
curso normal de eventos.
CASO

Selecciona el boton [Guardar]()


B. SEMILLA NO ENCONTRADA
B.8. El sistema muestra un mensaje de aviso validaTexto()
que la semilla no existe con ese tipo de
guardarSemilla(Semilla semilla) :boolean
búsqueda. guardar(Semilla semilla)
DE

B.9. El caso de uso continua en el paso 4 del


curso normal de eventos

C. SELECCIÓN INCORRECTA mostrarMensajeActualizar()


C. 5. El sistema muestra un mensaje de aviso
que la información que no se ha seleccionado MensajeInformacion
una semilla.
USO
83

C.6. El caso de uso continua en el paso 10 del


curso alterno de eventos
sd DSCAEliminarSemilla

CURSO ALTERNO DE EVENTOS


Agro Tecnico
D. ELIMINAR SEMILLA
D.11. El agro técnico selecciona la opción
[Eliminar] de la pantalla “Buscar Semilla”. Selecciona una semilla de la lista()
D.8. El sistema muestra un mensaje de
Buscar Semilla
aviso está seguro de eliminar la semilla
Selecciona el boton [Eliminar]()
D.9. El agro técnico elige la opción [SI]
del mensaje de aviso.
D.10. El sistema actualiza la información y
Sistema Experto MAHIX

cierra la pantalla “Buscar Semilla” mostrarMensajeErrorSeleccion()


verificaSeleccion() :boolean
D.11. el caso de uso finaliza.
MensajeError

mostrarMensajeEliminar() :boolean

MensajeInformacion

Selecciona si del mensaje()

eliminarSemilla(Semilla semilla) :boolean

UCSemilla SemillaDAO
eliminar(Semilla
semilla)

Semilla

actualizaLista()
mostrarMensajeEliminarExito()

Mensaje de
Informacion
84
sd DSCANuev aSemilla

CURSO ALTERNO DE
EVENTOS Agro Tecnico

E. NUEVA SEMILLA Selecciona el


E.2. El agro técnico selecciona el menú menu Administrar
“Administrar Semilla” de la pantalla Semilla y el menu
principal, luego selecciona el menú ítem Pantalla Principal
item Nueva
“Nueva Semilla”. Semilla()
E.3. El sistema crea una nueva semilla y Nueva Semilla
muestra la pantalla “Nueva Semilla”. llena los campos obligatorios()
E.4. El agro técnico ingresa los datos de
Sistema Experto MAHIX

la semilla en todos los campos de la


pantalla “Nueva Semilla”. mostrarMensajeError()
E.5. el agro técnico selecciona [Guardar] validaDatos()
de la pantalla “Nueva Semilla”. MensajeError
E.6. El sistema válida que los datos
obligatorios de la semilla estén llenos. existeSemilla(String nombreSemilla) :boolean
E.7. El sistema almacena a la semilla
creada. mostrarMesajeExiste()
UCSemilla
E.8. El sistema presenta un mensaje Mensaje SemillaDAO
indicando que se ha creado una nueva Informacion buscarSemilla(String nombre) :List
semilla y cierra la pantalla “Nueva
Semilla”.
E.9. el caso de uso finaliza.

Semilla

guardarSemilla(Semilla semilla) :
boolean

guardar(Semilla semilla)

mostrarMensajeGuardar()

Mensaje
Informacion
85
86
Sistema Experto MAHIX

7.8. PROTOTIPADO DE PANTALLA DE PANTALLAS DEL CASO DE USO


ADMINISTRAR AGRICULTOR

Casos de uso que cubre: Administrar Agricultor CU003

PANTALLA NUEVO AGRICULTOR

PANTALLA BUSCAR AGRICULTOR


87
Sistema Experto MAHIX

PANTALLA MODIFICAR AGRICULTOR

MENSAJES DE INFORMACIÓN
88
Sistema Experto MAHIX

MENSAJES ERROR
Realizado: El grupo de trabajo

7.8.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR AGRICULTOR

NOMBRE CASO DE USO: Administrar CU003


ID DE CASO DE
Agricultor
USO:
El Agro Técnico ingresa los datos de los
dueños de los terrenos que van ser sembrados.
DESCRIPCIÓN: También puede modificar o actualizar datos
de los mismos, como también puede
eliminarlos.
ACTOR (ES): El Agro Técnico.
REFERENCIA DE REQUERIMIENTOS: RF010, RF011, RF012
 Que el Agro Técnico haya ingresado a la
PRECONDICIONES:
aplicación.
 El Agro Técnico ingresa los datos
personales del Dueño del cultivo.
POSTCONDICIONES:
 Que se hayan guardado los datos del
dueño del cultivo.
TIPO DE CASO DE USO: Primario y del Sistema

CURSO NORMAL DE EVENTOS


1. El Agro Técnico selecciona el menú “Administrar Cultivo” de la pantalla principal, luego
selecciona el menú “Administrar Agricultor” y finalmente elige el menú ítem “Buscar
Agricultor” de la pantalla principal “MAHIX”.
89
Sistema Experto MAHIX

2. El sistema muestra la pantalla “Buscar Agricultor”.


3. El Agro Técnico selecciona el tipo de Búsqueda (todos, por cedula, nombre y apellido),
luego llena el campo de texto.

4. El Agro Técnico selecciona el botón [Buscar] de la pantalla.

5. El sistema valida el texto ingresado que no este vacío.


6. El sistema busca al agricultor(es) de acuerdo al criterio de búsqueda de la pantalla
“Buscar Agricultor”.
7. El sistema muestra los agricultores encontrados en una tabla o zona “Resultado de
Búsqueda” de la pantalla “Buscar Agricultor”.
8. El Agro Técnico selecciona de la lista presentada a uno de los agricultores que desea
modificar de la tabla “Resultado de Búsqueda”.

9. El Agro Técnico selecciona el botón [Modificar] del panel “Resultado de Búsqueda” de la


pantalla “Buscar Agricultor”.

10. El sistema muestra la pantalla “Modificar Agricultor” con todos los datos del agricultor
seleccionado.
11. El Agro Técnico modifica la información del agricultor seleccionando cualquiera de sus
pestañas de la pantalla “Modificar Agricultor”.

12. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Modificar Agricultor”

13. El sistema válida que los campos obligatorios del agricultor estén llenos.
14. El sistema actualiza la información del agricultor de los campos modificados.
15. El sistema muestra un mensaje informado que se han actualizado los datos exitosamente.
16. El Agro Técnico selecciona el botón [Aceptar] del mensaje mostrado.

17. El sistema cierra el mensaje y la pantalla “Modificar Agricultor”.


18. El caso de uso finaliza.
CURSO ALTERNO DE EVENTOS
A. TEXTO VACÍO
A.5. El sistema muestra el mensaje de Aviso “Texto Vacío”.
A.6.El caso de uso continua en el paso 3 del curso normal de eventos.

B. CEDULA INVALIDA
90
Sistema Experto MAHIX

B.5. El sistema muestra el mensaje de información “Cedula invalida verifique por favor”.
B.6. El caso de uso continua en el paso 3 del curso normal de eventos

C. AGRICULTOR NO ENCONTRADO
C.4. El sistema muestra el mensaje de aviso “No existe dicho agricultor”
C.4. El caso de uso continúa en el paso D.3 del curso alterno de eventos.

D. ELIMINAR AGRICULTOR
D.10. El Agro Técnico selecciona el botón [Eliminar] de la zona “Resultado de Búsqueda” de la
pantalla “Buscar Agricultor”
D.11. El sistema muestra un mensaje de confirmación “Si realmente desea eliminar este
agricultor”.
D.12. El Agro Técnico selecciona el botón [SI] del mensaje.
D.13. El sistema procede con la eliminación de la información del agricultor y del mismo en la
base de satos.
D.14. El sistema muestra un mensaje de información “Se ha eliminado el Agricultor”.
D.15. El Agro Técnico selecciona el botón [Aceptar] del mensaje mostrado.
D.16. El sistema cierra el mensaje de aviso.
D.17. E caso de uso finaliza.
E. NUEVO AGRICULTOR
E.1. El Agro Técnico selecciona el menú “Administrar Cultivo”, luego selecciona el menú
“Administrar Agricultor” y selecciona el menú ítem “Nuevo Agricultor”.
E.2. El sistema muestra la pantalla “Nuevo Agricultor”.
E.3. El Agro Técnico ingresa los datos del Agricultor en los campos obligatorios.
E.4. El Agro Técnico selecciona el botón [Guardar] de la pantalla.
E.5. El sistema valida los campos obligatorios y los datos ingresados.
E.6. El sistema almacena al nuevo agricultor creado.
E.7. El sistema muestra un mensaje de información “Se han Guardado los datos”.
E.8. El Agro Técnico selecciona el botón [Aceptar]
E.9. El sistema cierra el mensaje y la pantalla Nuevo Agricultor.
E.10. El caso de uso finaliza.
E.A. EXISTE AGRICULTOR
E.A.6. El sistema muestra el mensaje de información “El agricultor ya existe”.
E.A.7.El caso de uso continua en el paso 3 del curso normal de eventos.
7.8.2.
sd DSAdministrarAgricultor

CURSO NORMAL DE EVENTOS

1. El Agro Técnico selecciona el menú “Administrar Cultivo”


Agro Tecnico
de la pantalla principal, luego selecciona el menú
AGRICULTO

“Administrar Agricultor” y finalmente elige el menú ítem


“Buscar Agricultor” de la pantalla principal “MAHIX”. Selecciona el menu Administrar Cultivo()
2. El sistema muestra la pantalla “Buscar Agricultor”.
3. El Agro Técnico selecciona el tipo de Búsqueda (todos, por Pantalla Principal
cedula, nombre y apellido), luego llena el campo de texto. Seleeciona el menu
4. El Agro Técnico selecciona el botón [Buscar] de la Administrar Agricultor y el
Sistema Experto MAHIX

pantalla. menu item Buscar Agricultor()


5. El sistema valida el texto ingresado que no este vacío. Buscar Agricultor
6. El sistema busca al agricultor(es) de acuerdo al criterio de Selecciona el tipos de Busqueda()
búsqueda de la pantalla “Buscar Agricultor”.
7. El sistema muestra los agricultores encontrados en una Llena campos de Busqueda()
tabla o zona “Resultado de Búsqueda” de la pantalla Selecciona el boton [Buscar]()
“Buscar Agricultor”.
8. El Agro Técnico selecciona de la lista presentada a uno de
verificaCampos()
los agricultores que desea modificar de la tabla “Resultado
de Búsqueda”. Mensaje demostrarMensajeCamposVaciosObligatorios()
Error
9. El Agro Técnico selecciona el botón [Modificar] del panel
buscarbuscarSemilla(String criterio, Object valor) :
“Resultado de Búsqueda” de la pantalla “Buscar Agricultor”.
boolean UCAgricultor
10. El sistema muestra la pantalla “Modificar Agricultor” con
todos los datos del agricultor seleccionado.
11. El Agro Técnico modifica la información del agricultor criterioTodos()
seleccionando cualquiera de sus pestañas de la pantalla :boolean AgricultorDAO
“Modificar Agricultor”. buscarTodas()
12. El Agro Técnico selecciona el botón [Guardar] de la :List
pantalla “Modificar Agricultor”
13. El sistema válida que los campos obligatorios del agricultor Agricultor
criterioDiferente()
estén llenos.
buscarPorPropiedad(String criterio, Object valor) :List
14. El sistema actualiza la información del agricultor de los
campos modificados.
15. El sistema muestra un mensaje informado que se han mostrarAgricultor(LinkedList
Seleciona un Agricultor de la lista() lista)
actualizado los datos exitosamente.
16. El Agro Técnico selecciona el botón [Aceptar] del mensaje Selecciona el boton [Modificar]()
mostrado.
mostrarMensajeErrorSeleccion()
17. El sistema cierra el mensaje y la pantalla “Modificar verificaSelecion()
Agricultor”. Mensaje de Error
18. El caso de uso finaliza. modificarAgricultor(Agricultor agri)

CURSO ALTERNO DE EVENTOS DatosAgricultor


DIAGRAMA DE SECUENCIA DEL CASO DE USO ADMINISTRAR
91

cargarDatos(Agricultor agri)
A.TEXTO VACIO
A.5. El sistema muestra el mensaje de Aviso “Texto Vacio”. Modifica Datos de Semilla()
A.6.El caso de uso continua en el paso 3 del curso normal de
eventos.
Selecciona el Boton
B. CEDULA INVALIDA [Guardar]()
mostrarMensajeCamposVaciosObligatorios()
13. El sistema válida que los campos obligatorios del agricultor criterioDiferente() Agricultor
estén llenos.
buscarPorPropiedad(String criterio, Object valor) :List
14. El sistema actualiza la información del agricultor de los
campos modificados.
15. El sistema muestra un mensaje informado que se han mostrarAgricultor(LinkedList
Seleciona un Agricultor de la lista() lista)
actualizado los datos exitosamente.
16. El Agro Técnico selecciona el botón [Aceptar] del mensaje Selecciona el boton [Modificar]()
mostrado.
mostrarMensajeErrorSeleccion()
17. El sistema cierra el mensaje y la pantalla “Modificar verificaSelecion()
Agricultor”. Mensaje de Error
18. El caso de uso finaliza. modificarAgricultor(Agricultor agri)

CURSO ALTERNO DE EVENTOS DatosAgricultor

cargarDatos(Agricultor agri)
A.TEXTO VACIO
A.5. El sistema muestra el mensaje de Aviso “Texto Vacio”. Modifica Datos de Semilla()
A.6.El caso de uso continua en el paso 3 del curso normal de
eventos.
Selecciona el Boton
B. CEDULA INVALIDA [Guardar]()
mostrarMensajeCamposVaciosObligatorios()
B.5. El sistema muestra el mensaje de información “Cedula validaCampos()
invalida revise por favor”. Mensaje de Error :boolean
B.6. El caso de uso continua en el paso 3 del curso normal de
eventos crearPersona2() :Persona

E.A. EXISTE AGRICULTOR


E.A.6. El sistema muestra el mensaje de información “El
crearDireccion2() :Direccion
agricultor ya existe”.
E.A.7.El caso de uso continua en el paso 3 del curso normal de
eventos. crearAgricultor2() :Agricultor
Sistema Experto MAHIX

existeAgricultor(Agricultor
agri) :boolean

guardarAgricultor(Agricultor agri) :boolean


guadarPersona(Persona perosna) :
boolean PersonaDAO
UCPersona guardar(Persona persona)

Persona

guardarDireccion(Direccion direc) :boolean


DireccionDAO
UCDireccion guardar(Direccion direc)

Direccion

guardar(Agricultor agri)

mostrarMensajeActulizar()

Mensaje de
Informacion
92
sd DSCAEliminarAgricultor

CURSO ALTERNO DE EVENTOS AgroT ecnico BuscarAgricultor


D. ELIMINAR AGRICULTOR
D.10. El agro técnico selecciona el botón
Seleciona un Agricultor dela Lista()
[Eliminar] de la zona “Resultado de
Búsqueda” de la pantalla “Buscar
Agricultor” mostrarMensajeErrorSeleccion() validarSeleccion()
D.11. El sistema muestra un mensaje de
confirmación “Si realmente desea Mensaje Error
eliminar este agricultor”.
D.12. El agro técnico selecciona el botón mostrarMensajeEliminar()
[Si] del mensaje. :boolean
D.13. El sistema procede con la
eliminación de la información del MensajeConfirmacion
agricultor y del mismo en la base de
satos.
Sistema Experto MAHIX

D.14. El sistema muestra un mensaje de


información “Se ha eliminado el
Agricultor”. Selecciona [Si]()
D.15. El agro técnico selecciona el botón
[Aceptar] del mensaje mostrado.
D.16. El sistema cierra el mensaje de
eliminarAgricultor(Agricultor
aviso.
agricultor) :boolean
D.17. E caso de uso finaliza. UCAgricultor AgricultorDAO
eliminar(Agrivultor agricultor)

Agricultor

eliminarPersona(Persona persona) :boolean

eliminarDireccion(Direccion Direccion) :boolean


UCPersona
UCDireccion PersonaDAO
eliminar(Persona persona)

Persona

DireccionDAO
eliminar(Direccion sireccion)

Direccion

mostrarMensajeEliminarExito()

Mensaje de
Infromacion
93
sd DSCANuev oAgricultor

CURSO NORMAL DE EVENTOS

E.1. El Agro Técnico selecciona el menú Agro tecnico


“Administrar Cultivo”, luego selecciona el menú
“Administrar Agricultor” y selecciona el menú ítem Selecciona Menu Administrar Cultivo()
“Nuevo Agricultor”.
E.2. El sistema muestra la pantalla “Nuevo Pantalla Principal
Agricultor”. Seleeciona el Menu Administrar Agricultor()
E.3. El Agro Técnico ingresa los datos del Selecciona el Menu Item Nuevo Agricultor()
Sistema Experto MAHIX

Agricultor en los campos obligatorios.


E.4. El Agro Técnico selecciona el botón
Nuevo Agricultor
[Guardar] de la pantalla.
E.5. El sistema valida los campos obligatorios y
Ingresa Datos del Agricultor()
los datos ingresados.
E.6. El sistema almacena al nuevo agricultor selecciona el boton [Guardar]()
creado.
E.7. El sistema muestra un mensaje de mostrarMensajeCamposVaciosObligatorios()
información “Se han Guardado los datos”. validaDatos()
E.8. El Agro Técnico selecciona el botón MensajeError
[Aceptar]
probarCedula(String cedula) :boolean
E.9. El sistema cierra el mensaje y la pantalla
Nuevo Agricultor. mostrarMensajeErrorCedula() Utilitarios
E.10. El caso de uso finaliza. existeAgricultor(Integer cedula) :boolean
MensajeError
CURSO ALTERNO DE EVENTOS UCCAgricultor
A.TEXTO VACIO
A.5. El sistema muestra el mensaje de Aviso guardarPersona(Persona persona) :
“Texto Vacio”. UCPersona
boolean
A.6.El caso de uso continua en el paso 3 del curso
guardarAgricultor(Agricultor agricultor) : Persona
normal de eventos.
boolean
guardarDireccion(Direccion direccion) :boolean
B. CEDULA INVALIDA
B.5. El sistema muestra el mensaje de UCCDireccion
información “Cedula invalida revise por favor”.
B.6. El caso de uso continua en el paso 3 del
curso normal de eventos Agricultor

E.A. EXISTE AGRICULTOR


E.A.6. El sistema muestra el mensaje de Direccion
Información “El agricultor ya existe”.
mostrarMensajeGuardar()
E.A.7.El caso de uso continua en el paso 3 del
curso normal de eventos. Mensaje
Informacion
94
95
Sistema Experto MAHIX

7.9. PROTOTIPADO DE PANTALLA DE PANTALLAS DEL CASO DE USO


ADMINISTRAR CULTIVO

Casos de uso que cubre: Administrar Cultivo CU004

PANTALLA BUSCAR CULTIVO

PANTALLA NUEVO CULTIVO


96
Sistema Experto MAHIX

PANTALLA VISUALIZAR MAPA

PANTALLA MODIFICAR CULTIVO


97
Sistema Experto MAHIX

PANTALLA BUSCAR AGRICULTOR PARA CAMBIAR

PANTALLA REVISAR CULTIVO


98
Sistema Experto MAHIX

PANTALLA REVISAR CULTIVO

PANTALLA REVISAR CULTIVO (PLAGAS)


99
Sistema Experto MAHIX

PANTALLA REVISAR CULTIVO (SOLUCIÓN DE PLAGAS)

PANTALLA REVISAR CULTIVO (ENFERMEDAD)


100
Sistema Experto MAHIX

PANTALLA REVISAR CULTIVO (SOLUCIÓN ENFERMEDAD)

PANTALLA REPORTES MAHIX


101
Sistema Experto MAHIX

MENSAJES DE INFORMACIÓN

MENSAJES DE ERROR
Realizado: El grupo de trabajo

7.9.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR CULTIVO

NOMBRE CASO DE USO: Administrar CU004


ID DE CASO
Cultivo
DE USO:

El Agro Técnico puede buscar, modificar y


DESCRIPCIÓN: eliminar los cultivos existentes, también puede
crear nuevos cultivos.
ACTOR (ES): El Agro Técnico.
102
Sistema Experto MAHIX

REFERENCIA DE REQUERIMIENTOS: RF005, RF006, RF014, RF015, RF016, RF017,


RF018, RF019
PRECONDICIONES:  Que el Agro Técnico ingrese al sistema.
 Permitir crear nuevos cultivos de cada uno
de los agricultores.
 Eliminar los cultivos con toda la
información que se ha encontrado en el
mismo.
POSTCONDICIONES:
 Modificar la información del cultivo en caso
de una equivocación.
 Actualización de la información del cultivo
en caso del descubrimiento de alguna plaga
o enfermedad.
TIPO DE CASO DE USO: Primario y del Sistema
CURSO NORMAL DE EVENTOS
1. El Agro Técnico selecciona el menú “Administrar Cultivo”, luego selecciona el menú
“Administrar Cultivos” y selecciona el menú ítem “Buscar Cultivo” de la pantalla
principal “MAHIX”.

2. El sistema muestra la pantalla “Buscar Cultivo”.

3. El sistema muestra en la tabla o zona llamada “Listado de Cultivos”, con todos los
cultivos que estén sin revisar por parte del agro técnico.

4. El Agro Técnico selecciona una de las opciones de búsqueda ( Por revisión, Todos,
Nombre Cedula, Tipo de Semilla)

5. El Agro Técnico llena el campo de texto para la búsqueda.

6. El Agro Técnico selecciona el botón [Buscar].

7. El sistema valida el texto ingresado no esté vacío.


8. El sistema busca al cultivo (s) de acuerdo al criterio de búsqueda seleccionada.
9. El sistema muestra el resultado de la búsqueda en una tabla o zona “Listado de Cultivos”
de la pantalla “Buscar Cultivo”.
103
Sistema Experto MAHIX

10. El Agro Técnico selecciona en la lista presentada a uno de los cultivos que desea
modificar los datos, de la tabla “Listado de Cultivos”

11. El Agro Técnico selecciona el botón [Modificar] de la pantalla “Buscar Cultivo”

12. El sistema verifica si se selecciona un solo ítem de la tabla con los resultados de la
búsqueda.
13. El sistema muestra la pantalla “Modificar Cultivo” con la información del cultivo
seleccionado.
14. El Agro Técnico selecciona el botón [Cambiar Agricultor] de la pantalla “Modificar
Cultivo”.

15. El sistema muestra la pantalla “Buscar Agricultor”.

16. El Agro Técnico selecciona uno de los criterios de la zona “Tipo de Búsqueda” de la
pantalla “Buscar Agricultor”.

17. El Agro Técnico selecciona el botón [Buscar] de la pantalla “Buscar Agricultor”.

18. El sistema valida los campos obligatorios que no estén vacíos.


19. El sistema muestra la lista de agricultores según el criterio de búsqueda ingresado en la
zona “Resultado de Búsqueda” de la pantalla “Buscar Agricultor”.
20. El Agro Técnico selecciona uno de los agricultores presentados en la zona “Resultado de
Búsqueda”.
21. El Agro Técnico selecciona el botón [Agregar Agricultor] de la pantalla “Buscar
Agricultor”.
22. El sistema actualiza la información y muestra la pantalla “Modificar Cultivo”.
23. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Modificar Cultivo”.
24. El sistema actualiza la información del cultivo de los campos modificados.
25. El sistema muestra un mensaje de aviso “El Cultivo ha sido modificado”
26. El Agro Técnico selecciona el botón [Aceptar] del mensaje de Aviso.

27. El sistema cierra el mensaje de aviso y la pantalla “Modificar Cultivo”.


28. El caso de uso finaliza.
CURSO ALTERNO DE EVENTOS
A. NUEVO CULTIVO
104
Sistema Experto MAHIX

A.1.El Agro Técnico selecciona el menú “Administrar Cultivo” de la pantalla principal, luego
selecciona el menú “Administrar Agricultor” y finalmente elige el menú ítem “Buscar
Agricultor” de la pantalla principal “MAHIX”.
A.2.El sistema muestra la pantalla “Buscar Agricultor”.
A.3.El Agro Técnico selecciona el tipo de Búsqueda (todos, por cedula, nombre y apellido), luego
llena el campo de texto.
A.4.El Agro Técnico selecciona el botón [Buscar] de la pantalla.
A.5.El sistema valida el texto ingresado que no este vacío.
A.6.El sistema busca al agricultor(es) de acuerdo al criterio de búsqueda de la pantalla “Buscar
Agricultor”.
A.7.El sistema muestra los agricultores encontrados en una tabla o zona “Resultado de Búsqueda”
de la pantalla “Buscar Agricultor”.
A.8.El Agro Técnico selecciona de la lista presentada a uno de los agricultores, de la tabla
“Resultado de Búsqueda”.
A.9.El Agro Técnico selecciona el botón [Nuevo Cultivo] de la zona “Resultado de Búsqueda” de
la pantalla “Buscar Agricultor”.
A.10.El sistema muestra la pantalla “Nuevo Cultivo” y carga la información del agricultor
seleccionado.
A.11.El Agro Técnico llena los campos obligatorios en la pantalla “Nuevo Cultivo”.
A.12. El Agro Técnico selecciona el botón [Calcular] de la pantalla “Nuevo Cultivo”.
A.13. El sistema calcula la cantidad de semilla para el cultivo y fecha de cosecha del mismo.
A.14.El Agro Técnico selecciona el botón [Guardar] de la pantalla “Nuevo Cultivo”.
A.15. El sistema valida texto de los campos obligatorios del cultivo estén llenos.
A.16. El sistema almacena al cultivo creado.
A.17.El sistema presenta un mensaje indicando que se ha creado un nuevo cultivo.
A.18.El sistema cierra la ventana “Nuevo Cultivo”
A.19.El caso de uso finaliza.
A.A. CAMPOS VACÍOS
A.A.6. El sistema muestra el mensaje de error “No se han llenado campos obligatorios”.
A.A.7. El caso de uso continúa en el paso 6 del curso alterno de eventos.

B. ELIMINAR CULTIVO
B.12. El Agro Técnico selecciona el botón [Eliminar] de la pantalla “Buscar Cultivo”.
105
Sistema Experto MAHIX

B.13. El sistema muestra un mensaje de confirmación de la acción que va tomar.


B.14. El Agro Técnico selecciona el botón [SI] del mensaje de confirmación.
B.14. El sistema verifica la selección del cultivo y verifica la selección en el mensaje de
validación.
B.15. El sistema elimina el cultivo seleccionado.
B.16. El sistema muestra un mensaje de que se ha eliminado correctamente el cultivo.
B.15. El Agro Técnico selecciona el botón [Aceptar] del mensaje mostrado.
B.16. El sistema cierra el mensaje y regresa a la pantalla “Buscar Cultivo”.
B.17. El caso de uso finaliza.
C. VISUALIZAR CULTIVOS EN MAPA
C.2.El Agro Técnico selecciona el menú “Administrar Cultivo”, luego selecciona el menú
“Administrar Cultivos” y selecciona el menú ítem “Visualizar Mapa” de la pantalla principal
“MAHIX”.
C.3. El sistema muestra la pantalla “Visualizar Mapa”.
C.4. El Agro Técnico selecciona uno de los cantones del mapa.
C.5. El sistema busca todos los cultivos ubicados en dicho cantón.
C.6. El sistema muestra la lista de cultivos en la zona “Listado de Cultivos” de la pantalla
“Buscar Cultivo”.
C.6. El caso de uso continua en el paso 4 del curso normal de eventos.
D. REVISAR PLAGA
D.12. El Agro Técnico selección el botón [Revisar] de la pantalla “Buscar Cultivo”
D.13. El sistema verifica si se escogió un solo ítem de los cultivos presentados.
D.14. El sistema busca la información del cultivo seleccionado y muestra la pantalla “Revisar
Cultivo”.
D.15. El sistema muestra la información del cultivo en la zona “Información del Cultivo” de la
pantalla “Revisar Cultivo”.
D.16. El Agro Técnico selecciona el botón [Revisar] de la pantalla “Revisar Cultivo”.
D.17.El sistema muestra el panel “Identificar Plagas” de la pantalla “Revisar Cultivo”.
D.18.El Agro Técnico selecciona los síntomas presentados para la identificación de la plaga y
selecciona el botón [Solución].
D.18. El sistema verifica si selecciono al menos una plaga para la identificación de plagas.
D.19. El sistema identifica la plaga y muestra la solución de la misma en la zona “Soluciones para
106
Sistema Experto MAHIX

la Plaga y Enfermedad encontrada” de la pantalla “Revisar Cultivo”.


D.21. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Revisar Cultivo”.
D.22. El sistema guarda la información obtenida el cultivo.
D.23. El sistema muestra un mensaje de aviso de que se guardó correctamente el cultivo.
D.24. El Agro Técnico selecciona el botón [Aceptar] del mensaje de aviso.
D. 25. El sistema cierra el mensaje de aviso y la pantalla “Revisar Cultivo”.
D.26. El caso de uso continua el paso 12 del curso normal de eventos.
D.A. REVISAR ENFERMEDAD
D.A.16. El Agro Técnico selecciona “Identificar Enfermedades” de la zona “Control de Cultivo”
de la pantalla “Revisar Cultivo”.
D.A.17. El Agro Técnico selecciona los síntomas presentados para la identificación de la
enfermedad.
D.A.18. El sistema verifica si se ha seleccionado de dos o más síntomas para la identificación de
la enfermedad.
D.A.19. El sistema identifica la posible enfermedad que afecta el cultivo con las características
seleccionadas.
D.A.20. El sistema muestra el nombre de la enfermedad y la solución de la misma en la zona
“Soluciones para la Plaga y Enfermedad encontrada” de la pantalla “Revisar Cultivo”.
D.A.21. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Revisar Cultivo”.
D.A.22. El sistema guarda la información obtenida el cultivo.
D.A.23. El sistema muestra un mensaje de aviso de que se guardó correctamente el cultivo.
D.A.24. El Agro Técnico selecciona el botón [Aceptar] del mensaje de aviso.
D.A.25. El sistema cierra el mensaje de aviso y la pantalla “Revisar Cultivo”.
D.A.26. El caso de uso continua el paso 12 del curso normal de eventos.
D.B. FERTILIZACIÓN
D.B.16. El Agro Técnico selecciona el área de Fertilización de la pantalla “Revisar Cultivo”.
D.B.17. El sistema verifica en qué tipo de terreno se ha sembrado y etapa se encuentra el cultivo.
D.B.18. El sistema muestra la información necesaria para la correcta fertilización del cultivo.
D.B.19. El caso de uso continúa en el paso D.16 del curso alterno de eventos.

D.C. IMPRIMIR

D.C.23. El Agro Técnico selecciona el botón [Imprimir] de la pantalla “Revisar Cultivo”.


D.C.24.El sistema muestra la pantalla “Reportes Mahix”.
107
Sistema Experto MAHIX

D.C.25. El Agro Técnico selecciona la opción guardar o imprimir de la pantalla “Reportes


Mahix”.
D.C.26. El caso de uso finaliza.
sd DRSAdministrarCultivo

CURSO NORMAL DE EVENTOS


1. El Agro Técnico selecciona el menú Agro Tecnico
“Administrar Cultivo”, luego selecciona el
menú “Administrar Cultivos” y selecciona el Selecciona el Menu Administrar Cultivo()
menú ítem “Buscar Cultivo” de la pantalla
principal “MAHIX”. Selecciona el Menu Item Buscar Cultivo()Pantalla Principal
2. El sistema muestra la pantalla “Buscar Selecciona un criterio de Busqueda()
Sistema Experto MAHIX

Cultivo”.
3. El sistema muestra en la tabla o zona Llena campos de busqueda() Buscar Cultivo
llamada “Listado de Cultivos”, con todos los
Selecciona [Buscar]()
cultivos que estén sin revisar por parte del
agro técnico.
mostrarMensajeCampoVacio()
4. El Agro Técnico selecciona una de las verificaCamposVacios()
opciones de búsqueda ( Por revisión, Todos, Mensaje de Error
Nombre Cedula, Tipo de Semilla)
ADMINISTRAR CULTIVO

5. El Agro Técnico llena el campo de texto buscarCultivo(String UCCultivo CultivoDAO


para la búsqueda. criterio,Object valor) :boolean buscarPorPropiedad(String
6. El Agro Técnico selecciona el botón propertyName, Object
[Buscar]. value) :List
7. El sistema valida el texto ingresado no esté
vacío. Cultivo
8. El sistema busca al cultivo (s) de acuerdo al mostrarCultivos(LinkedList lista)
criterio de búsqueda seleccionada.
9. El sistema muestra el resultado de la Selecciona un Cultivo de la lista ()
búsqueda en una tabla o zona “Listado de
Cultivos” de la pantalla “Buscar Cultivo”. Selecciona [Modificar]()
10. El Agro Técnico selecciona en la lista mostrarMensajeErrorSeleccion()
presentada a uno de los cultivos que desea verificaSeleccion()
modificar los datos, de la tabla “Listado de Mensaje de Error
Cultivos”
7.9.2. DIAGRAMA DE SECUENCIA DEL CASO DE USO

11. El Agro Técnico selecciona el botón


cargarCultivo(Cultivo cultivo)
[Modificar] de la pantalla “Buscar Cultivo”
12. El sistema verifica si se selecciona un solo Modificar Cultivo
ítem de la tabla con los resultados de la Selecciona [Cambiar Agricultor]()
búsqueda.
13. El sistema muestra la pantalla “Modificar Buscar Agricultor
Seleciona un criterio de Busqueda()
Cultivo” con la información del cultivo
seleccionado. Selecciona [Buscar]()
108

14. El Agro Técnico selecciona el botón


[Cambiar Agricultor] de la pantalla mostrarMensajeErrorCamposObligatorios()
ValidaCamposBusqueda()
“Modificar Cultivo”. Mensaje de Error
15. El sistema muestra la pantalla “Buscar buscarAgricultorActualizar(String
Agricultor”. criterio, Object valor) :boolean
16. El Agro Técnico selecciona uno de los
búsqueda en una tabla o zona “Listado de
Cultivos” de la pantalla “Buscar Cultivo”.
Selecciona [Modificar]()
10. El Agro Técnico selecciona en la lista mostrarMensajeErrorSeleccion()
presentada a uno de los cultivos que desea verificaSeleccion()
modificar los datos, de la tabla “Listado de Mensaje de Error
Cultivos”
11. El Agro Técnico selecciona el botón
cargarCultivo(Cultivo cultivo)
[Modificar] de la pantalla “Buscar Cultivo”
12. El sistema verifica si se selecciona un solo Modificar Cultivo
ítem de la tabla con los resultados de la Selecciona [Cambiar Agricultor]()
búsqueda.
13. El sistema muestra la pantalla “Modificar Buscar Agricultor
Seleciona un criterio de Busqueda()
Cultivo” con la información del cultivo
seleccionado. Selecciona [Buscar]()
14. El Agro Técnico selecciona el botón
[Cambiar Agricultor] de la pantalla mostrarMensajeErrorCamposObligatorios()
ValidaCamposBusqueda()
“Modificar Cultivo”. Mensaje de Error
15. El sistema muestra la pantalla “Buscar buscarAgricultorActualizar(String
Agricultor”. criterio, Object valor) :boolean
16. El Agro Técnico selecciona uno de los UCAgricultor
criterios de la zona “Tipo de Búsqueda” de la AgricultorDAO
buscarPorPropiedad(String
pantalla “Buscar Agricultor”. criterio, Object valor) :List
17. El Agro Técnico selecciona el botón [Buscar]
de la pantalla “Buscar Agricultor”.
18. El sistema valida los campos obligatorios
que no estén vacíos. Agricultor
Sistema Experto MAHIX

19. El sistema muestra la lista de agricultores mostrarAgricultor(LinkedList lista)


Seleciona un agricultor de la lista presentada y seleciona [Agregar Agricultor]()
según el criterio de búsqueda ingresado en
la zona “Resultado de Búsqueda” de la
pantalla “Buscar Agricultor”. mostrarMensajeErrorSeleccion()
verificaSeleccion()
20. El Agro Técnico selecciona uno de los :boolean
Mensaje de Error
agricultores presentados en la zona
“Resultado de Búsqueda”. agregarAgricultor(Agricultor agricultor)
21. El Agro Técnico selecciona el botón
[Agregar Agricultor] de la pantalla “Buscar
Agricultor”. Modifica los demas datos del cultivo y cargarDatosAgricultor(Agricultor
22. El sistema actualiza la información y seleciona [Guardar]() a)
muestra la pantalla “Modificar Cultivo”.
23. El Agro Técnico selecciona el botón validaCamposVacios()
[Guardar] de la pantalla “Modificar Cultivo”. :boolean
guardarCultivo(Cultivo cultivo) :boolean
24. El sistema actualiza la información del guardarCultivo()
cultivo de los campos modificados.
25. El sistema muestra un mensaje de aviso “El
Cultivo ha sido modificado” mensajeGaurdarActualizar()
26. El Agro Técnico selecciona el botón
Mensaje de
[Aceptar] del mensaje de Aviso.
Informacion
27. El sistema cierra el mensaje de aviso y la
pantalla “Modificar Cultivo”.
28. El caso de uso finaliza.
109
sd DSCANuev oCultiv o

CURSO ALTERNO DE EVENTOS


A. NUEVO CULTIVO
A.1.El Agro Técnico selecciona el menú Agro Tecnico
“Administrar Cultivo” de la pantalla
principal, luego selecciona el menú Selecciona el Menu "Administrar
“Administrar Agricultor” y finalmente elige Cultivo" y Selecciona el Menu
el menú ítem “Buscar Agricultor” de la Item "Administrar Agricultor"() Pantalla Principal
pantalla principal “MAHIX”.
A.2.El sistema muestra la pantalla “Buscar Seleciona el Menu Item "Buscar Agricultor"()
Agricultor”. realiza hasta el new()
A.3.El Agro Técnico selecciona el tipo de paso 8() Administrar
Buscar Agricultor
Búsqueda (todos, por cedula, nombre y Agricultor
apellido), luego llena el campo de texto.
A.4.El Agro Técnico selecciona el botón
Sistema Experto MAHIX

[Buscar] de la pantalla. Seleciona Un Agricultor de la lista()


A.5.El sistema valida el texto ingresado
que no este vacío. Seleciona [Nuevo Cultivo]()
A.6.El sistema busca al agricultor(es) de
acuerdo al criterio de búsqueda de la mostrarMensajeErrorSeleccion()
verificaSeleccion() :boolean
pantalla “Buscar Agricultor”.
Mensaje de Error
A.7.El sistema muestra los agricultores
encontrados en una tabla o zona agregarAgricultor(Agricultor
“Resultado de Búsqueda” de la pantalla agri)
“Buscar Agricultor”. Llena datos del cultivo() Nuevo Cultivo
A.8.El Agro Técnico selecciona de la lista
Seleciona [Calcular]()
presentada a uno de los agricultores, de la
tabla “Resultado de Búsqueda”. mensajeErrorVacioCampo()
verificaCamposTexto()
A.9.El Agro Técnico selecciona el botón
Mensaje de Error :boolean
[Nuevo Cultivo] de la zona “Resultado de
Búsqueda” de la pantalla “Buscar calcularCantidadSemilla(Float tamaño)
Agricultor”.
A.10.El sistema muestra la pantalla “Nuevo calcularFecha(String fecha) UCCultivo
Cultivo” y carga la información del
agricultor seleccionado. Seleciona [Guardar]()
A.11.El Agro Técnico llena los campos
obligatorios en la pantalla “Nuevo Cultivo”. mostrarMensajeCamposObligatoriosVacios()
validaCampos() :boolean
A.12. El Agro Técnico selecciona el botón Mensaje de Error guardarDireccion(Direccion direccion) :boolean
[Calcular] de la pantalla “Nuevo Cultivo”.
A.13. El sistema calcula la cantidad de guardarCultivo(Cultivo cultivo) :boolean UCDireccion
DireccionDAO
semilla para el cultivo y fecha de cosecha guardar(Direccion direccion)
del mismo.
A.14.El Agro Técnico selecciona el botón
[Guardar] de la pantalla “Nuevo Cultivo”. Direccion
A.15. El sistema valida texto de los campos
obligatorios del cultivo estén llenos. CultivoDAO
A.16. El sistema almacena al cultivo guardar(Cultivo)
creado.
A.17.El sistema presenta un mensaje
indicando que se ha creado un nuevo
cultivo. Cultivo
A.18.El sistema cierra la ventana “Nuevo
mensajeGaurdarCultivo()
Cultivo”
A.19.El caso de uso finaliza. Mensaje de
Informacion
110
sd DSCAEliminarCultiv o

CURSO ALTERNO DE EVENTOS


B. ELIMINAR CULTIVO Agro Tecnico
B.12. El Agro técnico selecciona el botón
[Eliminar] de la pantalla “Buscar Cultivo”.
B.13. El sistema muestra un mensaje de Selecciona [Eliminar]()
validación de la acción que va tomar. Buscar Cultivo
B.14. El Agro técnico selecciona el botón [SI]
mostrarMensajeConfirmacionEliminar() :
del mensaje de confirmación.
boolean
B.14. El sistema verifica la selección del cultivo
Mensaje de
y verifica la selección en el mensaje de
Confirmacion
validación. Seleciona [si]()
Sistema Experto MAHIX

B.15. El sistema elimina el cultivo


seleccionado. elimnarCultivo(Cultivo cultivo) :boolean
B.16. El sistema muestra un mensaje de que se
ha eliminado correctamente el cultivo. UCCultivo
B.15. El Agro técnico selecciona el botón eliminarRevisonPlaga(RevisonPlaga revplaga) :boolean
[Aceptar] del mensaje mostrado.
UCRevisionPlaga RevisionPlagaDAO
B.16. El sistema cierra el mensaje y regresa a la
pantalla “Buscar Cultivo”. eliminar(RevisionPlaga reviplaga)
B.17. El caso de uso finaliza.

RevisionPlaga

eliminarRevisionEnfermedad(RevisionEnfermedad
revenfermedad) :boolean
UCRevisionEnfermedad RevisionEnfermedadDAO
eliminar(RevisionEnfermedad revenfermedad)

RevisionEnfermedad

CultivoDAO
eliminar(Cultivo cultivo)

Cultivo

mostrarMensajeEliminar()

Mensaje de
Informacion
111
sd DSCAVisualizarMapa

CURSO ALTERNO DE EVENTOS


C. VISUALIZAR CULTIVOS EN
MAPA Agro Tecnico
C.2.El agro técnico selecciona el
menú “Administrar Cultivo”, luego
selecciona el menú “Administrar Seleciona el Menu Administrar Cultivo
Cultivos” y selecciona el menú ítem y selecciona el Menu Administrar
Pantalla Principal
“Visualizar Mapa”. Cultivos ()
Sistema Experto MAHIX

C.3. El sistema muestra la pantalla Selecciona el Menu Item Visualizar Mapa()


“Visualizar Mapa”.
C.4. El agro técnico selecciona uno
de los cantones del mapa. new()
C.5. El sistema busca todos los
Visualizar Mapa
cultivos ubicados en dicho cantón.
C.6. El sistema muestra la lista de Selecciona un canton del Mapa()
cultivos en la zona “Listado de
Cultivos” de la pantalla “Buscar
mostrarBusqueda(JFrame frame, String canton)
Cultivo”.
C.6. El caso de uso continúa en el
buscarCultivosCanton(String canton)
paso 4 del curso normal de
eventos. Buscar Cultivo
buscarCultivo(String criterio, Object valor) :boolean

UCCultivo CultivoDAO
buscarPorPropiedad(String
criterio, Object valor)

Cultivo

mostrarCultivos(LinkedList lista)
112
sd DRSCARev isarPlaga

CURSO ALTERNO DE EVENTOS


D. REVISAR PLAGA Agro Tecnico
D.12. El Agro técnico selección el botón [Revisar]
de la pantalla “Buscar Cultivo”
D.13. El sistema verifica si se escogió un solo Selecciona un cultivo()
ítem de los cultivos presentados.
Buscar Cultivo
D.14. El sistema busca la información del cultivo Seleciona [Revisar]()
seleccionado y muestra la pantalla “Revisar
Cultivo”.
mostrarMensajeErrorSeleccion()
D.15. El sistema muestra la información del
cultivo en la zona “Información del Cultivo” de la Mensaje de Error
pantalla “Revisar Cultivo”.
D.16. El Agro técnico selecciona el botón revisarSeleccion()
Sistema Experto MAHIX

[Revisar] de la pantalla “Revisar Cultivo”. :boolean


D.17.El sistema muestra el panel “Identificar cargarCultivo(Cultivo
Plagas” de la pantalla “Revisar Cultivo”. cultivo) Revisar Cultivo
D.18.El Agro técnico selecciona los síntomas Seleciona [Revisar]()
presentados para la identificación de la plaga y
selecciona el botón [Solución]. muestraPanelIdentificarPlagas()
D.18. El sistema verifica si selecciono al menos Seleciona [Revisar]()
una plaga para la identificación de plagas. Selecciona uno o varias sintomas y
D.19. El sistema identifica la plaga y muestra la seleciona [Solucion]()
solución de la misma en la zona “Soluciones mostrarMensajeErrorSeleccion()
validaSeleccion() :boolean
para la Plaga y Enfermedad encontrada” de la Mensaje de Error
pantalla “Revisar Cultivo”.
new()
D.21. El Agro técnico selecciona el botón
[Guardar] de la pantalla “Revisar Cultivo”. Resolviendo
D.22. El sistema guarda la información obtenida
el cultivo. Seleciona [Guadar]() muestraPanel "Solucion Plagas"()
D.23. El sistema muestra un mensaje de aviso de
que se guardó correctamente el cultivo.
D.24. El Agro técnico selecciona el botón guardarRevisionPlaga(RevisionPlaga UCRevisionPlaga
revisionPlaga) :boolean RevisionPlagaDAO
[Aceptar] del mensaje de aviso.
D. 25. El sistema cierra el mensaje de aviso y la
pantalla “Revisar Cultivo”. guardar(RevisionPlaga
D.26. El caso de uso continua el paso 12 del revisionPlaga) RevisionPlaga
curso normal de eventos.

guardarCultivo(Cultivo cultivo) :boolean

UCCultivo CultivoDAO
guardar(Cultivo cultivo)

Cultivo

Mensaje de
Informacion
113
sd DRSCARev isarEnfermedad

CURSO ALTERNO DE EVENTOS


D.A. REVISAR ENFERMEDAD
Agro Tecnico
D.A.16. El Agro técnico selecciona
“Identificar Enfermedades” de la Seleciona un
zona “Control de Cultivo” de la cultivo y
pantalla “Revisar Cultivo”. Seleciona[Revisar]() Buscar Cultivo
D.A.17. El Agro técnico selecciona
los síntomas presentados para la mostrarMensajeErrorSeleccion()
identificación de la enfermedad. verificaSeleccion()
D.A.18. El sistema verifica si se ha Mensaje de Error
seleccionado por al menos tres
síntomas para la identificación de la cargarCultivo(Cultivo
enfermedad. cultivo)
Revisar Cultivo
Sistema Experto MAHIX

D.A.19. El sistema identifica la Selecciona [Revisar]()


posible enfermedad que afecta el
muestraPanelIdentificarPlagas()
cultivo con las características
seleccionadas. Seleciona [Siguiente]()
D.A.20. El sistema muestra el muestraPanelIdentificarEnfermedad()
nombre de la enfermedad y la Selecciona sintomas y Selecciona
solución de la misma en la zona [Solucion]()
“Soluciones para la Plaga y mostrarMensajeErrorSeleccion()
Enfermedad encontrada” de la validaSelecion() :boolean
pantalla “Revisar Cultivo”. Mensaje de Error
D.A.21. El Agro técnico selecciona new()
el botón [Guardar] de la pantalla
“Revisar Cultivo”. Resolviendo DeterminacionTratamiento
D.A.22. El sistema guarda la enfermedadesDiagnostico(Vector<Integer>, RevisarCultivo)
información obtenida el cultivo.
D.A.23. El sistema muestra un diagnosticoEnfermedad()
mensaje de aviso de que se guardó
muestraPanel"Solucion Enfermedad"()
correctamente el cultivo.
D.A.24. El Agro técnico selecciona Seleciona [Guardar]()
el botón [Aceptar] del mensaje de
aviso. guardarRevisionEnfermedad(RevisionEnfermedad) :
D.A.25. El sistema cierra el mensaje boolean
de aviso y la pantalla “Revisar UCRevisionEnfermedad RevisionEnfermedadDAO
Cultivo”. guardar(RevisionEnfermedad)
D.A.26. El caso de uso continua el
paso 12 del curso normal de
eventos.
RevisionEnfermedad

guardarCultivo(Cultivo) :boolean
CultivoDAO
UCCultivo
guardar(Cultivo cultivo)

Cultivo

mostrarMensajeGuardarRevision()

Mensaje de
Infromacion
114
115
Sistema Experto MAHIX

sd DSCAFertilizacion

CURSO ALTERNO DE EVENTOS


D.B. FERTILIZACIÓN Agro Tecnico

D.B.16. El agro técnico selecciona


el área de Fertilización de la Seleciona Fertilizacion()
pantalla “Revisar Cultivo”.
Revision Cultivo
D.B.17. El sistema verifica en qué
tipo de terreno se ha sembrado y
etapa se encuentra el cultivo. determinarFertilizacion(Cultivo c)
D.B.18. El sistema muestra la
información necesaria para la
correcta fertilización del cultivo.
D.B.19. El caso de uso continúa en Panel Fertilizacion
el paso D.16 del curso alterno de
eventos.

sd DSCAImprimir

CURSO ALTERNO DE EVENTOS


D.C. IMPRIMIR Agro Tecnico
D.C.23. El agro técnico selecciona
el botón [Imprimir] de la pantalla
“Revisar Cultivo”. Selecciona [Imprimir]()
D.C.24.El sistema muestra la Revisar Cultivo Imprimir
pantalla “Reportes Mahix”. imprimirRecetaPlaga(RevisionPlaga)
D.C.25. El agro técnico selecciona
la opción guardar o imprimir de la
pantalla “Reportes Mahix”.
D.C.26. El caso de uso finaliza.
new()

REPORTES
MAHIX
116
Sistema Experto MAHIX

7.10. PROROTIPADO DE PANTALLAS DEL CASO DE USO ADMINISTRAR


SÍNTOMA

Casos de uso que cubre: Administrar Síntoma CU005

PANTALLA VISUALIZAR PLAGA

PANTALLA DETALLE

PANTALLA VISUALIZAR ENFERMEDAD


117
Sistema Experto MAHIX

PANTALLA DETALLE

PANTALLA NUEVO SÍNTOMA

PANTALLA BUSCAR SÍNTOMA


118
Sistema Experto MAHIX

PANTALLA MODIFICAR SÍNTOMA

MENSAJES DE INFORMACIÓN

MENSAJES DE ERROR
Realizado: El grupo de trabajo
119
Sistema Experto MAHIX

7.10.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR SÍNTOMA

NOMBRE CASO DE USO: Administrar CU005


ID DE CASO
Síntoma
DE USO:

El Agro Técnico crea, busca, modifica y


elimina los síntomas de las enfermedades
DESCRIPCIÓN: existentes.
El Agro Técnico visualiza y se informa de las
plagas y enfermedades.
ACTOR (ES): El Agro Técnico.
REFERENCIA DE REQUERIMIENTOS: RF020, RF021, RF022, RF025
PRECONDICIONES:  Que el Agro Técnico ingresa al sistema.
 Se crearon nuevos síntomas de una de las
enfermedades.
 Eliminar los síntomas de las enfermedades
con su respectiva información.
POSTCONDICIONES:
 Modificar los síntomas en caso de una
equivocación.
 Tener un conocimiento amplio de la
enfermedad
TIPO DE CASO DE USO: Primario y del Sistema
CURSO NORMAL DE EVENTOS
1. El Agro Técnico selecciona el menú “Administrar Enfermedades y Plagas”, luego
selecciona el menú ítem “Visualizar Enfermedad” de la pantalla Principal “MAHIX”.

2. El sistema muestra la pantalla “Visualizar Enfermedad”.

3. El sistema muestra una lista de enfermedades en el panel “Lista de Enfermedades” de la


pantalla “Visualizar Enfermedad”.

4. El Agro Técnico selecciona de la lista presentada a uno de las enfermedades en el panel


“Lista de Enfermedades” de la pantalla “Visualizar Enfermedad”

5. El Agro Técnico selecciona el botón [Ver Enfermedad] de la pantalla “Visualizar


120
Sistema Experto MAHIX

Enfermedad”.

6. El sistema verifica si se selecciona un solo ítem de la tabla.

7. El sistema muestra la pantalla “Detalle” con la información de la enfermedad


seleccionada.

8. El Agro Técnico selecciona el botón [Cancelar] de la pantalla “Detalle”.

9. El sistema regresa a la pantalla “Visualizar Enfermedad”.

10. El caso de uso finaliza

CURSO ALTERNO DE EVENTOS


A. SELECCIONAR ENFERMEDAD
A.7. El sistema muestra un mensaje de error “No se ha seleccionado una enfermedad de la lista”.
A.8. El Agro Técnico selecciona el botón [Aceptar] del mensaje de error.
A.7. El curso alterno continuo en el paso 6 del curso normal de Eventos.
B. NUEVO SÍNTOMA
B.3. El Agro Técnico selecciona el botón [Nuevo Síntoma] de la pantalla “Visualizar
Enfermedad”.
B.4. El sistema muestra la pantalla “Nuevo Síntoma”.
B.5. El Agro Técnico ingresa los datos del nuevo síntoma.
B.6. El Agro Técnico selecciona a una de la enfermedades
B.7. El sistema verifica si selecciono a una de las enfermedades.
B.8. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Nuevo Síntoma”.
B.9. El sistema crea un nuevo síntoma en la base de conocimiento.
B.10. El sistema muestra un mensaje de confirmación “Realmente desea agregar un nuevo
síntoma, esto modificara la base de conocimiento del sistema experto”.
B.11. El Agro Técnico selecciona el botón [SI] del mensaje mostrado.
B.12. El sistema muestra un mensaje de información “Se ha guardado el nuevo síntoma”.
B.13. El Agro Técnico selecciona el botón [Aceptar] del mensaje.
B.14. El sistema cierra el mensaje de información y regresa a la pantalla “Visualizar
enfermedad”.
B.15. El caso de uso finaliza.
121
Sistema Experto MAHIX

C. MODIFICAR SÍNTOMA
C.2. El Agro Técnico selecciona el menú “Administrar Enfermedades y Plagas”, luego
selecciona el menú “Visualizar Síntomas”
C.3. El sistema muestra la pantalla “Buscar Síntoma”.
C.5. El Agro Técnico selecciona una de las opciones de búsqueda ( Todos, Enfermedad)
C.6. El Agro Técnico llena el campo de texto para la búsqueda.
C.7. El Agro Técnico selecciona el botón [Buscar] de la pantalla “Buscar Síntoma”.
C.8. El sistema válida el texto ingresado no esté vacío.
C.9. El sistema busca al síntoma (s) de acuerdo al criterio de búsqueda seleccionada.
C.10.El sistema muestra el resultado de la búsqueda en una tabla o zona “Resultado de
Búsqueda” de la pantalla “Buscar Síntoma”.
C.11.El Agro Técnico selecciona en la lista presentada a uno de los síntomas que desea modificar
los datos, de la tabla “Resultado de Búsqueda”
C.12. El Agro Técnico selecciona el botón [Modificar] de la pantalla “Buscar Síntoma”
C.13. El sistema verifica si se selecciona un solo ítem de la tabla con los resultados de la
búsqueda.
C.14.El sistema muestra la pantalla “Modificar Síntoma” con la información del síntoma
seleccionado.
C.15. El Agro Técnico modifica el síntoma.
C.16. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Modificar Síntoma”.
C.17.El sistema actualiza la información del síntoma.
C.18.El sistema muestra un mensaje de confirmación “Esta seguro de Modificar el Síntoma esto
afectara a la base de Conocimiento del Sistema Experto”.
C.19. El Agro Técnico selecciona el botón [SI] del mensaje de confirmación.
C.20. El sistema muestra un mensaje de información “Se ha modificado con éxito el síntoma”.
C.21. El Agro Técnico selecciona el botón [Aceptar].
C.22.El sistema cierra el mensaje de información y regresa a la pantalla “Buscar Síntoma”.
C.23.El caso de uso finaliza.
C.A. ELIMINAR SÍNTOMA
C.A.12. El Agro Técnico selecciona la opción [Eliminar] de la pantalla “Buscar Síntoma”.
C.A.13. El sistema muestra un mensaje de confirmación “Realmente está seguro de eliminar,
esto afectara a la Base de Conocimiento del Sistema Experto”
C.A.14. El Agro Técnico selecciona el botón [SI] del mensaje de confirmación.
122
Sistema Experto MAHIX

C.A.15. El sistema elimina el síntoma seleccionado.


C.16. El sistema muestra un mensaje de información” Se ha eliminado con éxito el síntoma “.
C.15. El Agro Técnico selecciona el botón [Aceptar] del mensaje información.
C.16. El sistema cierra el mensaje y regresa a la pantalla “Buscar Síntoma”.
C.17. El caso de uso finaliza.
D. VISUALIZAR PLAGA
D.1. El Agro Técnico selecciona el menú “Administrar Enfermedades y Plagas”, luego
selecciona el menú “Visualizar Plaga” de la pantalla Principal “MAHIX”.
D.2.El sistema muestra la pantalla “Visualizar Plaga”.
D.3.El sistema muestra una lista de plagas en la zona “Lista de Plagas” de la pantalla “Visualizar
Plaga”.
D.4.El Agro Técnico selecciona en la lista presentada a uno de las plagas que desea visualizar de
la tabla “Lista de Plagas”.
D.5.El Agro Técnico selecciona el botón [Ver Plaga] de la pantalla “Visualizar Plaga”
D.6.El sistema verifica si se selecciona un solo ítem de la tabla.
D.7.El sistema muestra la pantalla “Detalle” con la información de la plaga seleccionada.
D.8.El Agro Técnico selecciona el botón [Cancelar] de la pantalla “Detalle”.
D.9.El sistema regresa a la pantalla “Visualizar Plaga”.
D.10.El caso de uso finaliza.
D.A. SELECCIONAR PLAGA
D.A.7. El sistema muestra un mensaje de error “No se ha seleccionado una plaga de la lista”.
D.A.8. El Agro Técnico selecciona el botón [Aceptar] del mensaje de error.
D.A.7. El curso alterno continua en el paso 6 del curso normal de Eventos.
sd DRSAdministrarSíntoma

CURSO NORMAL DE EVENTOS


Sistema Experto MAHIX

1. El Agro Técnico selecciona el menú Agro Tecnico


7.10.2. DIAGRAMA

“Administrar Enfermedades y Plagas”, Selecciona el Menu "Administrar


luego selecciona el menú ítem “Visualizar Enfermedades y Plagas" y
Enfermedad” de la pantalla Principal selecciona el Menu Item
“MAHIX”. "Visualizar Enfermedad"() Pantalla Principal
DE

2. El sistema muestra la pantalla “Visualizar


mostrarMensajeErrorSeleccion()
Enfermedad”.
verificaSeleccion()
3. El sistema muestra una lista de
Mensaje de Error :boolean
enfermedades en el panel “Lista de
ADMINISTRAR SÍNTOMA

Enfermedades” de la pantalla “Visualizar


Enfermedad”.
4. El Agro Técnico selecciona de la lista
presentada a uno de las enfermedades en Visualizar
el panel “Lista de Enfermedades” de la Seleciona una Enfermedad
pantalla “Visualizar Enfermedad” Enfermedad()
5. El Agro Técnico selecciona el botón [Ver
cargarDatosEnfermedad(Enfermedad
Enfermedad] de la pantalla “Visualizar
SECUENCIA

enfermedad)
Enfermedad”. Detalle
6. El sistema verifica si se selecciona un solo Selecciona [Ver Enfermedad]()
ítem de la tabla.
7. El sistema muestra la pantalla “Detalle”
con la información de la enfermedad
DEL

seleccionada.
8. El Agro Técnico selecciona el botón
[Cancelar] de la pantalla “Detalle”.
9. El sistema regresa a la pantalla “Visualizar
Enfermedad”.
10. El caso de uso finaliza
CASO
DE
USO
123
sd DRSCANuev oSintoma

B. NUEVO SINTOMA
B.3. El Agro técnico selecciona el botón
[Nuevo Síntoma] de la pantalla “Visualizar Agro Tecnico
Enfermedad”.
Selecciona [Nuevo Visualizar
B.4. El sistema muestra la pantalla “Nuevo
Sintoma]() Enfermedad
Síntoma”.
B.5. El Agro técnico ingresa los datos del
Nuevo Síntoma
nuevo síntoma.
B.6. El agro técnico selecciona a una de la Ingresa el Sintoma y Seleciona la Enfermedad()
enfermedades Seleciona[Guardar]()
Sistema Experto MAHIX

B.7. El sistema verifica si selecciono a una


de las enfermedades. mostrarMensajeTextoVacio()
validaCamposVacios()
B.8. El agro técnico selecciona el botón Mensaje de Error :boolean
[Guardar] de la pantalla “Nuevo Síntoma”.
B.9. El sistema crea un nuevo síntoma en la
base de conocimiento.
B.10. El sistema muestra un mensaje de
mostrarMensajeConfirmacion() :boolean
confirmación “Realmente desea agregar un
nuevo síntoma, esto modificara la base de Mensaje de
existeSintoma(String sintoma) :boolean
conocimiento del sistema experto”. Seleciona [Si]()Confirmacion
B.11. El Agro técnico selecciona el botón UCSintoma
mostrarMensajeExiste()
[SI] del mensaje mostrado.
B.12. El sistema muestra un mensaje de Mensaje de Error
información “Se ha guardado el nuevo SintomaDAO
síntoma”. buscarPorPropiedad(String criterio, Object valor) :List
B.13. El agro técnico selecciona el botón
[Aceptar] del mensaje.
B.14. El sistema cierra el mensaje de
información y regresa a la pantalla Sintoma
“Visualizar enfermedad”.
B.15. El caso de uso finaliza.
Aprendizaje
agregarSintomaArff(Sintoma sintoma) :boolean

guardarSintoma(Sintoma sintoma) :boolean

nuevoSintomaArff(Sintoma sintoma, String


direccion, int nindica, String combinacion)
mostrarMensajeGuardarSintoma()

Mensaje de
Informacion
124
sd DRSCAModificarSintoma

CURSO ALTERNO DE EVENTOS


C. MODIFICAR SINTOMA
C.2. El agro técnico selecciona el menú Agro T ecnico
“Administrar Enfermedades y Plagas”, luego
selecciona el menú “Visualizar Síntomas”
C.3. El sistema muestra la pantalla “Buscar Selecciona Menu Administrar
Síntoma”. Enfermedades y Plagas ()
C.5. El agro técnico selecciona una de las Pantalla Principal
opciones de búsqueda ( T odos, Enfermedad) y Seleciona el Menu item
C.6. El agro técnico llena el campo de texto Visualizar Síntomas() new()
para la búsqueda.
C.7. El agro técnico selecciona el botón Buscar Síntoma
Selecciona Criterio de Busqueda()
[Buscar] de la pantalla “Buscar Síntoma”.
C.8. El sistema valida el texto ingresado no Seleciona [Buscar]()
esté vacío.
C.9. El sistema busca al síntoma (s) de verificaCriterioBusqueda()
acuerdo al criterio de búsqueda seleccionada. :boolean
Sistema Experto MAHIX

setBuscarSintoma(BuscarSintoma)
C.10.El sistema muestra el resultado de la
búsqueda en una tabla o zona “Resultado de
buscarSintoma() UCSintoma
Búsqueda” de la pantalla “Buscar Síntoma”.
:boolean
C.11.El agro técnico selecciona en la lista criterioT odos()
SintomaDAO
presentada a uno de los síntomas que desea buscarT odos()
modificar los datos, de la tabla “Resultado de
Búsqueda”
C.12. El agro técnico selecciona el botón
[Modificar] de la pantalla “Buscar Síntoma”
C.13. El sistema verifica si se selecciona un Sintoma
solo ítem de la tabla con los resultados de la
búsqueda.
C.14.El sistema muestra la pantalla “Modificar
criterioDiferente()
Síntoma” con la información del síntoma buscarPorPropiedad(String criterio, Object valor)
seleccionado.
C.15. El agro técnico modifica el síntoma.
C.16. El agro técnico selecciona el botón cargarSintoma(LinkedList
[Guardar] de la pantalla “Modificar Síntoma”. Selecciona un Sintoma de la lista() lista)
C.17.El sistema actualiza la información del Selecciona [Modificar]()
síntoma.
C.18.El sistema muestra un mensaje de mostrarMensajeErrorSelccion() verificaSeleccion()
confirmación “Esta seguro de Modificar el :boolean
Mensaje de Error
Síntoma esto afectara a la base de
Conocimiento del Sistema Experto”. cargarSintoma(Sintoma
C.19. El Agro T écnico selecciona el botón sintoma)
[SI] del mensaje de confirmación. Modificar Sintoma
Modifica Sintoma()
C.20. El sistema muestra un mensaje de
información “Se ha modificado con éxito el Seleciona [Guardar]()
síntoma”. existeSintoma(String sintoma) :boolean
C.21. El agro técnico selecciona el botón mostrarMensajeErrorExiste()
[Aceptar].
Mensaje de Error
C.22.El sistema cierra el mensaje de
información y regresa a la pantalla “Buscar buscarPorPropiedad(String criterio, Object valor)
Síntoma”.
C.23.El caso de uso finaliza.

Aprendizaje
modificarSintomaArff(Sintoma
sintoma) :
boolean

guadarSintoma(Sintoma sintoma) :
boolean
guardar(Sintoma sintoma)

mostrarMensajeModificar()

Mensaje de
Informacion
125
sd DRSCAEliminarSintoma

CURSO ALTERNO DE EVENTOS


C.A. ELIMINAR SINTOMA Agro Tecnico
C.A.12. El agro técnico selecciona la opción
[Eliminar] de la pantalla “Buscar Síntoma”.
C.A.13. El sistema muestra un mensaje de Seleciona un sintoma de la lista()
confirmación “Realmente está seguro de Buscar Sintoma
eliminar, esto afectara a la Base de
mostrarMensajeErrorSelccion()
Conocimiento del Sistema Experto”
C.A.14. El Agro técnico selecciona el botón verificaSeleccion()
[SI] del mensaje de confirmación. Mensaje de Error :boolean
Sistema Experto MAHIX

C.A.15. El sistema elimina el síntoma


seleccionado.
C.16. El sistema muestra un mensaje de Seleciona [Eliminar]()
información” Se ha eliminado con éxito el mostrarMensajeConfirmacion()
síntoma “. :boolean
C.15. El Agro técnico selecciona el botón
[Aceptar] del mensaje información. Mensaje de
C.16. El sistema cierra el mensaje y regresa a Confirmacion
Selecciona [SI]()
la pantalla “Buscar Síntoma”.
C.17. El caso de uso finaliza.

eliminarSintomaArff(Sintoma sintoma) :boolean Aprendizaje

eliminarSintoma(Sintoma sintoma) :boolean

UCSintoma SintomaDAO
eliminar(Sintoma sintoma)

Sintoma

mostrarMensajeEliminar()

Mensaje de
Informacion
126
sd DSVisualizarPlaga

CURSO ALTERNO DE EVENTOS

D. VISUALIZAR PLAGA Agro Tecnico


D.1. El Agro Técnico selecciona el menú
“Administrar Enfermedades y Plagas”,
luego selecciona el menú “Visualizar Seleciona Menu Administrar Enfermedades y Plagas()
Sistema Experto MAHIX

Plaga” de la pantalla Principal “MAHIX”. Pantalla Principal


D.2.El sistema muestra la pantalla
Seleciona el Menu Item Visualizar Plaga()
“Visualizar Plaga”.
D.3.El sistema muestra una lista de
plagas en la zona “Lista de Plagas” de la new()
pantalla “Visualizar Plaga”.
D.4.El Agro Técnico selecciona en la Visualizar Plaga
lista presentada a uno de las plagas que cargarPlaga() :boolean
desea visualizar de la tabla “Lista de
UCPlaga PlagaDAO
Plagas”.
buscarTodos() :List
D.5.El Agro Técnico selecciona el botón
[Ver Plaga] de la pantalla “Visualizar
Plaga”
D.6.El sistema verifica si se selecciona un
solo ítem de la tabla. Plaga
D.7.El sistema muestra la pantalla
mostrarPlaga(LinkedList lista)
“Detalle” con la información de la plaga
Selecciona [Ver Plaga]()
seleccionada.
D.8.El Agro Técnico selecciona el botón mostrarMensajeErrorSeleccion()
[Cancelar] de la pantalla “Detalle”. verificaSeleccion() :boolean
D.9.El sistema regresa a la pantalla Mensaje de Error
“Visualizar Plaga”.
D.10.El caso de uso finaliza. cargarPlaga(Plaga plaga)

Detalle InformacionPlaEnfer
D.A. SELECCIONAR PLAGA
cargarInformacion(Plaga plaga) :
D.A.7. El sistema muestra un mensaje de
String
error “No se ha seleccionado una plaga
de la lista”. urlImagenPlaga(Plaga plaga) :String
D.A.8. El Agro Técnico selecciona el
botón [Aceptar] del mensaje de error.
D.A.7. El curso alterno continua en el Selecciona [Cancelar]()
paso 6 del curso normal de Eventos.
127
128
Sistema Experto MAHIX

7.11. PROTOTIPADO DE PANTALLAS DEL CASO DE USO ADMINISTRAR


PRODUCTO

Casos de uso que cubre: Administrar Producto CU006

PANTALLA VISUALIZAR ELEMENTO ACTIVO

PANTALLA NUEVO PRODUCTO

PANTALLA LISTA DE PRODUCTOS

PANTALLA MODIFICAR PRODUCTO


129
Sistema Experto MAHIX

MENSAJES DE INFORMACIÓN

MENSAJES DE ERROR
Realizado: El grupo de trabajo

7.11.1. DESCRIPCIÓN DEL CASO DE USO ADMINISTRAR PRODUCTO

NOMBRE CASO DE USO: Administrar CU006


ID DE CASO
Producto
DE USO:
El Agro Técnico crea, busca, modifica y
DESCRIPCIÓN: elimina los productos de las enfermedades y
plagas existentes.
ACTOR (ES): El Agro Técnico.
REFERENCIA DE REQUERIMIENTOS: RF022, RF023, RF024
PRECONDICIONES:  Que el Agro Técnico ingrese al sistema
 Permitir crear nuevos productos de acuerdo
al elemento activo predominante
POSTCONDICIONES:
 Eliminar los productos
 Modificar los productos
TIPO DE CASO DE USO: Primario y del Sistema
CURSO NORMAL DE EVENTOS
1. El Agro Técnico selecciona el menú “Administrar Producto”, luego selecciona el menú
130
Sistema Experto MAHIX

“Visualizar Elemento Activo” de la pantalla Principal “MAHIX”.

2. El sistema muestra la pantalla “Visualizar Elemento Activo”.

3. El sistema muestra una lista de elementos activos en la zona “Lista de Elementos Activos”
de la pantalla “Visualizar Elemento Activo”.

4. El Agro Técnico selecciona de la lista presentada a uno de las elementos activos en la


zona “Lista de Elementos Activos” de la pantalla.

5. El Agro Técnico selecciona el botón [Nuevo Producto] de la pantalla “Visualizar


Elemento Activo”.

6. El sistema verifica si se selecciona un solo ítem de la tabla.

7. El sistema muestra la pantalla “Nuevo Producto”.

8. El Agro Técnico ingresa la información del nuevo producto.

9. El sistema actualiza la información ingresada del producto.

10. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Nuevo Producto”.

11. El sistema muestra un mensaje de información “Se ha guardado correctamente el


producto”.

12. El Agro Técnico selecciona el botón [Aceptar] del mensaje de información.

13. El sistema cierra el mensaje de información y regresa a la pantalla “Visualizar Elemento


Activo”.

14. El caso de uso finaliza.

CURSO ALTERNO DE EVENTOS


A. SELECCIONAR PRODUCTO
A.7. El sistema muestra un mensaje de error “No se ha seleccionado un producto de la lista”.
A.8. El Agro Técnico selecciona el botón [Aceptar] del mensaje de error.
A.7. El curso alterno continua en el paso 6 del curso normal de Eventos.
B. MODIFICAR PRODUCTO
B.3. El Agro Técnico selecciona el botón [Ver Productos] de la pantalla “Visualizar Elemento
131
Sistema Experto MAHIX

Activo”.
B.4. El sistema muestra la pantalla “Lista de Productos”.
B.5. El sistema muestra una lista de productos en la zona “Lista de Productos”.
B.6. El Agro Técnico selecciona a uno de los productos de la lista.
B.7. El sistema verifica si selecciono a uno de los productos.
B.8. El Agro Técnico selecciona el botón [Modificar] de la pantalla “Lista de Productos”.
B.9. El sistema muestra la pantalla “Modificar Producto”.
B.10. El Agro Técnico modifica los datos del producto.
B.11. El Agro Técnico selecciona el botón [Guardar] de la pantalla “Modificar Producto”.
B.12. El sistema actualiza la información.
B.14. El sistema muestra un mensaje de información “Se ha actualizado exitosamente”.
B.15. El Agro Técnico selecciona el botón [Aceptar] del mensaje de información.
B.16. El sistema cierra el mensaje y regresa la pantalla “Lista de Productos”.
B.17. El caso e uso finaliza.
B.A. ELIMINAR PRODUCTO
B.A.8. El Agro Técnico selecciona la opción [Eliminar] de la pantalla “Lista de Productos”.
B.A.9. El sistema muestra un mensaje de confirmación “Está seguro de eliminar este producto”
B.A.10. El Agro Técnico selecciona el botón [SI] del mensaje de confirmación.
B.A.11. El sistema elimina el producto seleccionado.
B.12. El sistema muestra un mensaje de información” Se ha eliminado exitosamente “.
B.13. El Agro Técnico selecciona el botón [Aceptar] del mensaje información.
B.14. El sistema cierra el mensaje y regresa a la pantalla “Lista de Productos”.
B.15. El caso de uso finaliza.
sd DSAdministrarProducto

CURSO NORMAL DE EVENTOS


1. El Agro Técnico selecciona el menú Agro Tecnico
“Administrar Producto”, luego
selecciona el menú “Visualizar
Elemento Activo” de la pantalla Seleciona el Menu "Administrar
Principal “MAHIX”. Producto"()
Pantalla Principal
2. El sistema muestra la pantalla Seleciona el Menu Item
“Visualizar Elemento Activo”. "Visualizar Elemento
3. El sistema muestra una lista de new()
Activo"()
elementos activos en la zona “Lista
Visualizar
de Elementos Activos” de la pantalla
Elementos Activos
“Visualizar Elemento Activo”.
cargarElementoActivo() :boolean
4. El Agro Técnico selecciona de la
lista presentada a uno de las UCElementoActivo
Sistema Experto MAHIX

ElementoActivoDAO
elementos activos en la zona “Lista buscarTodos() :List
de Elementos Activos” de la
pantalla.
5. El Agro Técnico selecciona el botón
[Nuevo Producto] de la pantalla
ElementoActivo
“Visualizar Elemento Activo”.
6. El sistema verifica si se selecciona mostrarElementoActivo(LinkedList lista)
un solo ítem de la tabla.
7. El sistema muestra la pantalla Seleciona un Elemento Activo de la lista()
“Nuevo Producto”. Selecciona [Nuevo Producto]()
8. El Agro Técnico ingresa la
mostrarMensajeErrorSeleccion()
información del nuevo producto. verificaSeleccion() :boolean
9. El sistema actualiza la información Mensaje de Error
ADMINISTRAR PRODUCTO

ingresada del producto.


10. El Agro Técnico selecciona el botón
[Guardar] de la pantalla “Nuevo setElemtActivo(ElementoActivo)
Producto”.
11. El sistema muestra un mensaje de Nuevo Producto
información “Se ha guardado Ingresa la informacion del Producto()
correctamente el producto”.
Selecciona [Guardar]()
12. El Agro Técnico selecciona el botón
[Aceptar] del mensaje de mostrarMensajeTextoVacio()
verificaTextoVacio() :boolean
información.
Mnesaje de Error
13. El sistema cierra el mensaje de
información y regresa a la pantalla
“Visualizar Elemento Activo”. crearProducto() :Producto
14. El caso de uso finaliza. guardarProducto(Producto
producto) :boolean guadar(Prodcuto producto)ProductoDAO
UCProducto

Producto
7.11.2. DIAGRAMA DE SECUENCIA DEL CASO DE USO

mostrarMensajeGuardar()

Mensaje de
Informacion
132
sd DSCAModificarProducto

CURSO ALTERNO DE EVENTOS Agro T ecnico


B. MODIFICAR PRODUCTO
B.3. El Agro técnico selecciona el botón
Selecciona [Ver Productos]()
[Ver Productos] de la pantalla “Visualizar
Elemento Activo”. Visualizar
B.4. El sistema muestra la pantalla “Lista Elementos Activos
de Productos”. Seleciona [Ver Productos]()
B.5. El sistema muestra una lista de
productos en la zona “Lista de Productos”.
B.6. El agro técnico selecciona a uno de cargarListaProducto()
los productos de la lista. Lista de Productos
Sistema Experto MAHIX

B.7. El sistema verifica si selecciono a buscarProducto() :LinkedList


uno de los productos.
B.8. El agro técnico selecciona el botón UCProducto ProductoDAO
[Modificar] de la pantalla “Lista de buscarT odos() :List
Productos”.
B.9. El sistema muestra la pantalla
“Modificar Producto”.
B.10. El agro técnico modifica los datos
Producto
del producto.
B.11. El agro técnico selecciona el botón
[Guardar] de la pantalla “Modificar
Producto”.
B.12. El sistema actualiza la información. Selecciona un Producto de la lista()
B.14. El sistema muestra un mensaje de
información “Se ha actualizado Selecciona [Modificar]()
exitosamente”.
B.15. El agro técnico selecciona el botón
mostrarMesajeErrorSeleccion()
[Aceptar] del mensaje de información.
verificarSeleccion()
B.16. El sistema cierra el mensaje y
Mensaje de Error :boolean
regresa la pantalla “Lista de Productos”.
B.17. El caso e uso finaliza.
cargarDatosProducto(Producto producto)

Modificar Producto
Modifica datos del Producto()

Selecciona [Guardar]()

mostrarMensajeT extoVacio()
validaT extoVacio() :boolean
Mensaje de Error

guardarProducto(Producto producto) :boolean

guardar(Producto producto)

mostrarMensajeActualizar()

Mensaje de
Informacion
133
sd DSCAEliminarProdcuto

CURSO ALTERNO DE EVENTOS


B.A. ELIMINAR PRODUCTO
B.A.8. El agro técnico selecciona la Agro Tecnico
opción [Eliminar] de la pantalla “Lista
de Productos”.
Selecciona [Eliminar]()
Sistema Experto MAHIX

B.A.9. El sistema muestra un mensaje


de confirmación “Esta seguro de Lista de Productos
eliminar este producto” mostrarMesajeErrorSeleccion()
B.A.10. El Agro técnico selecciona el
verificaSeleccion()
botón [SI] del mensaje de
Mensaje de Error :boolean
confirmación.
B.A.11. El sistema elimina el producto
seleccionado. mostrarMensajeEliminar()
B.12. El sistema muestra un mensaje
de información” Se ha eliminado Mensaje de
exitosamente “. Confirmacion
B.13. El Agro técnico selecciona el Selecciona [Si]()
botón [Aceptar] del mensaje
información.
B.14. El sistema cierra el mensaje y eliminarProducto(Producto producto) :boolean
regresa a la pantalla “Lista de
Productos”. UCProducto ProductoDAO
B.15. El caso de uso finaliza. eliminar(Producto producto)

Producto

mostrarMensajeEliminado()

Mensaje de
Informacion
134
135
Sistema Experto MAHIX

7.12. BATIK EN LA APLICACIÓN

La aplicación de batik nos permitió realizar el módulo Visualizar Mapa donde se


muestra el mapa de la Provincia de Loja lo cual brinda al usuario seleccionar un cantón
del mismo y así buscar los cultivos del sector seleccionado en el mapa y mostrarlos en
la pantalla Buscar Cultivo permitiéndole realizar sus tareas de manera más rápida.

7.13. IDENTIFICACIÓN DE LAS ENFERMEDADES POR MEDIO DE WEKA

Esta aplicación realiza la identificación de las siguientes enfermedades: Botrytis


cinérea, Helminthosporium (maydis o turcicum, Curvularia lutana, Macrophomina sp,
Carbon Negro y Roya, las cuales son las que más se suscitan en los cultivos de maíz
hibrido.

La librería que utilizamos como herramienta es weka, la cual nos ofrece una gran
variedad de algoritmos que podemos aplicar a los datos de entrada, al evaluar su
rendimiento se selecciona el que proporcione mejor resultado.
En todos ellos que se presenta en esta herramienta utilizaremos el Multilayer Perceptron
que está basada en redes neuronales, el mismo que consta de varias capas de unidades
computacionales interconectadas entre sí; cada neurona en una capa se encuentra
directamente conectada a las neuronas de la capa anterior.
El mecanismo de aprendizaje habitual es la retropropagación. De esta forma los valores
de salida son comparados con la decisión correcta para computar el valor de una cierta
función de error, y este error es retroalimentado mediante varias técnicas. El algoritmo
hace uso de esta información para recalcular los pesos a aplicar en cada conexión, de
forma que en iteraciones sucesivas se reduzca el valor de la función de error. El ajuste
de pesos se realiza derivando la función de error con respecto a los pesos de la red,
modificándose éstos para que el error disminuya; esta es la razón por la que la
retropropagación sólo puede ser aplicada en redes con funciones de activación
diferenciables. Por otro lado, el perceptrón multicapa es capaz de aproximar cualquier
función de clasificación si consta del suficiente número de capas, por lo que bien
diseñado puede ofrecer resultados muy satisfactorios.
El conjunto de datos: Los datos se los recolectó por medio del experto humano (Agro
Técnico), conociendo por medio de él los síntomas asociados a cada una de las
136
Sistema Experto MAHIX

enfermedades, recogiendo algunos datos de aprendizaje para nuestra red, esto se realiza
en base a las combinaciones más comunes de los síntomas que presentan en los cultivos,
conociendo de cada una de estas si se determina la presencia de una enfermedad o no.
Una vez identificado el conjunto de datos, la siguiente tarea es realizar un preprocesado
de los mismos, que generará el conjunto de datos final que se introducirá en el programa
Weka para su análisis. Para esto introducimos en un archivo con extensión .arff
(formato aceptado por la herramienta Weka) los datos recolectados, este archivo posee
la siguiente estructura:
Encabezado: En esta parte enunciamos la relación a la que nos referimos en el archivo
en nuestro caso: Botrytis cinérea, Helminthosporium (maydis o turcicum), Curvularia
lutana, Macrophomina sp, Carbon Negro y Roya, luego los síntomas de esta
enfermedad (atributos) en los cuales se especifica que tipos de datos son, y la
conclusión (se identifica o no la enfermedad) a la que se llega en donde se decide que
valores puede tomar.

@relation roya
@attribute pustulas_hojas NUMERIC
@attribute pustulas_circulares NUMERIC
@attribute pustulas_color_anaranjado NUMERIC
@attribute pustulas_pulvorientas NUMERIC
@attribute pustulas_color_marron NUMERIC
@attribute roya {0, 1} → CONCLUSION
@data

Y los síntomas y la conclusión, se les asigna dos posibles valores 1 en caso de que el
cultivo posea uno de los síntomas y 0 en caso de que no lo posea, de igual manera para
la conclusión 1 en caso de que se identifique a la enfermedad o 0 en caso de que no
posea la enfermedad en el cultivo, los datos presentados a continuación representan
cada fila de los datos recolectados del experto humano, ubicándose todos los síntomas
con su respectivo valor y el último dato de cada fila representa a la conclusión.
0,0,0,0,0,0
0,0,0,0,1,0
0,0,0,1,0,0
0,0,0,1,1,1
0,0,1,0,0,0
0,0,1,0,1,1
0,0,1,1,0,1
0,0,1,1,1,1
0,1,0,0,0,0
0,1,0,0,1,0
0,1,0,1,0,1
137
Sistema Experto MAHIX

Por medio de estos datos, la herramienta Weka con su algoritmo MultilayerPeceptron


crea una red neuronal multicapa en donde enlaza todos os nodos de la capa de entrada
con la capa de procesamiento.

Luego se asigna un valor de activación a cada uno de los nodos mediante una
retropropagación. A partir de estos datos, se realiza un entrenamiento de la red, en el
cual se presenta principalmente dos opciones: la primera es asignándole los mismos
datos del archivo arff y la segunda tomando datos cruzados del archivo arff; luego del
entrenamiento se termina concluyendo cuántos de esos datos ha diagnosticado
correctamente y en cuántos ha fallado. A continuación se indica todos los datos
descritos anteriormente:
Scheme: weka.classifiers.functions.MultilayerPerceptron -L
0.3 -M 0.2 -N 500 -V 0 -S 0 -E 20 -H a
Relation: roya
Instances: 32
Attributes: 6
pustulas_hojas
pustulas_circulares
pustulas_color_anaranjado
pustulas_pulvorientas
pustulas_color_marron
roya
Test mode: user supplied test set: size unknown (reading
incrementally)
=== Classifier model (full training set) ===
Sigmoid Node 0
Inputs Weights
Threshold 2.9625653135030166
Node 2 -3.226631984849525
Node 3 -3.940676988530685
Node 4 -6.074346520815549
Sigmoid Node 1
Inputs Weights
Threshold -2.962609540129284
Node 2 3.2261024746674183
Node 3 3.9413273921662704
Node 4 6.074507234580132
Sigmoid Node 2
138
Sistema Experto MAHIX

Inputs Weights
Threshold -2.5321721211704418
Attrib pustulas_hojas 1.9169963136352681
Attrib pustulas_circulares 1.912374829819835
Attrib pustulas_color_anaranjado -1.721911927838245
Attrib pustulas_pulvorientas 3.8115201418936713
Attrib pustulas_color_marron 1.866302739755252
Sigmoid Node 3
Inputs Weights
Threshold -2.8250899388602213
Attrib pustulas_hojas 2.1507217631779403
Attrib pustulas_circulares 2.1378599971807173
Attrib pustulas_color_anaranjado -2.038944268811521
Attrib pustulas_pulvorientas 4.194882746574926
Attrib pustulas_color_marron 2.092509119000024
Sigmoid Node 4
Inputs Weights
Threshold -3.1454957716249603
Attrib pustulas_hojas 0.5291096374351799
Attrib pustulas_circulares 0.5826816064092433
Attrib pustulas_color_anaranjado 2.9481810210216524
Attrib pustulas_pulvorientas 5.229278931436605
Attrib pustulas_color_marron 0.8036226751611402
Class 0
Input
Node 0
Class 1
Input
Node 1
Time taken to build model: 0.08 seconds
=== Evaluation on test set ===
=== Summary ===
Correctly Classified Instances 31 96.875 %
Incorrectly Classified Instances 1 3.125 %
Kappa statistic 0.9375
Mean absolute error 0.0672
Root mean squared error 0.1745
Relative absolute error 13.496 %
Root relative squared error 34.9651 %
Total Number of Instances 32
139
Sistema Experto MAHIX

=== Detailed Accuracy By Class ===


TP Rate FP Rate Precision Recall F-Measure
ROC Area Class
1 0.059 0.938 1 0.968
0.969 0
0.941 0 1 0.941 0.97
0.969 1
Weighted Avg. 0.969 0.028 0.971 0.969 0.969
0.969
=== Confusion Matrix ===
a b <-- classified as
15 0 | a = 0
1 16 | b = 1
Con estos resultados obtenidos se puede observar que se obtuvo un 96.9% , con el
algoritmo multilayer perceptron lo que demuestra una efectividad para la identificación
de la enfermedad roya en este caso.
Por lo tanto weka es una herramienta de mucha utilidad en el ámbito de aprendizaje en
el sistema experto, ya que se podría incorporar nuevos síntomas y nuevas
combinaciones de síntomas de manera que el sistema experto aprenda por si solo en
basa a acontecimientos que se vayan suscitando.
Persona
idpersona <pi> Integer <M>
nombre Variable characters (30) (D)
apellido Variable characters (30) <M>
cedula Integer <M> tiene_2
Identifier_1 <pi> Agricultor
idagricultor <pi> Integer <M>
(D) Identifier_1 <pi>

tiene_1
tiene_3
Direccion
(D)
iddireccion <pi> Integer <M>
Usuario
provincia Variable characters (30) <M>
idusuario <pi> Integer <M> tiene_4 canton Variable characters (30) <M>
cuenta Variable characters (30) <M>
EXPERTO.

localidad Variable characters (30)


contrasena T ext (30) <M> direccion T ext (200)
(D)
Identifier_1 <pi> Identifier_1 <pi>
tiene_8
Sistema Experto MAHIX

Semilla Cultivo

idsemilla <pi> Integer <M> idcultivo <pi> Integer <M>


nombreSemilla Variable characters (60) <M> areaterreno Float <M>
tiposemilla Variable characters (20) <M> tiene_7 tiposuelo Variable characters (20) <M>
color Variable characters (20) <M> cantidadsemilla Integer <M>
tamaño Variable characters (20) <M> fechaSiembra Date <M>
ciclovege Integer <M> fechaCosecha Date <M>
estadociclovege Variable characters (30)
Identifier_1 <pi>
estadorevision Variable characters (10)
Identifier_1 <pi>

tiene_12
tiene_9

RevisionEnfermedad
RevisionPlaga iderevisionenfermedad <pi> Integer <M>
idrevisionplaga <pi> Integer <M> fecharevision Date <M>
fecharevision Date <M> enfermedad T ext (500) <M>
plaga T ext (500) sintomas T ext (500) <M>
producto T ext (500) producto T ext (500) <M>
dosis T ext (500) dosis T ext (500) <M>
Identifier_1 <pi> Identifier_1 <pi>

Enfermedad Sintoma
Plaga
idenfermedad <pi> Integer <M> idsintoma <Undefined>
idplaga <pi> Integer <M>
nombreEnfermedad Variable characters (60) <M> sintoma <Undefined>
nombreplaga Variable characters (60) <M> posee_13
Identifier_1 <pi> Identifier_1 <pi>

elimina_ elimina

ElementoActivo
7.14. MODELO ENTIDAD-RELACIÓN CONCEPTUAL DEL SISTEMA

Producto
idactivo <pi> Integer <M>
nombreActivo Variable characters (60) <M> idproducto <pi> Integer <M>
tiene_14
nombreProducto Variable characters (60) <M>
Identifier_1 <pi>
140

dosis T ext (500) <M>


unidad Variable characters (5) <M>
Identifier_1 <pi>
141
Sistema Experto MAHIX

7.15. MODELO ENTIDAD-RELACION FISICO DEL SISTEMA EXPERTO.


class control

UCSemilla

- buscarSemilla: BuscarSemillas
- maizdao: SemillaDAO = null UCPlaga

- plaga: PlagaDAO
+ buscarSemilla(String, Object) : boolean - visualizaPlaga: VisualizarPlaga
PAQUETES

UCSintoma + eliminarSemilla(Semilla) : boolean


+ existeSemilla(String) : boolean + buscarPlaga() : List<Plaga>
- buscarSintoma: BuscarSintoma + getSemillaDAO() : SemillaDAO
- enfermedad: EnfermedadDAO + cargarPlaga() : boolean
+ guardarSemilla(Semilla) : boolean
Sistema Experto MAHIX

- sintoma: SintomaDAO + getPlagaDAO() : PlagaDAO


+ setBuscarSemillas(BuscarSemillas) : void + guardarPlaga(Plaga) : boolean UCProducto
+ buscarSintoma(String, Object) : boolean + setVisualizaPlaga(VisualizarPlaga) : void
-ucs - producto: ProductoDAO
+ buscarSintomas() : List<Sintoma>
-ucp
+ cargarEnfermedad() : Vector<String>
+ buscarProducto() : LinkedList<Producto>
+ cargarEnfermedad(String) : Enfermedad -product
+ eliminarProducto(Producto) : boolean
+ eliminarSintoma(Sintoma) : boolean
+ getProductoDAO() : ProductoDAO
+ existeSintoma(String) : boolean
-ucsn + guardarProducto(Producto) : boolean
+ getBuscarSintoma() : BuscarSintoma
+ obtenerElementoActivo(int) : ElementoActivo
7.16.1. Paquete MAHIX.Control

+ getEnfermedadDAO() : EnfermedadDAO
+ getSintomaDAO() : SintomaDAO
+ guadarSintoma(Sintoma) : boolean Automatico
+ listarSintomas(int) : Vector<Sintoma> UCElementoActiv o
- elem: ElementoActivoDAO
+ setBuscarSintoma(BuscarSintoma) : void
- enfer: EnfermedadDAO
- elemtoactivo: ElementoActivoDAO
+sin - plag: PlagaDAO
- visualizaElementoActivo: VisualizarElementoActivo
- produc: ProductoDAO
- product: UCProducto
+ buscarTodos() : List<ElementoActivo>
- semi: SemillaDAO
+ cargarElementoActivo() : boolean
- sin: SintomaDAO -ucelem + cargarElementosActivos() : Vector<String>
- uce: UCEnfermedad
+ getElementoActivoDAO() : ElementoActivoDAO
- ucelem: UCElementoActivo
+ guardarElementoActivo(ElementoActivo) : boolean
- ucp: UCPlaga
+ setVisualizaElementoActivo(VisualizarElementoActivo) : void
Aprendizaj e - ucs: UCSemilla
- ucsn: UCSintoma
+ sin: UCSintoma = new UCSintoma()
+ Automatico() UCEnfermedad
+ agregarSintomaArff(Sintoma) : boolean - crearElementoActivo() : void -uce
+ combinacion(int) : String - crearEnfermedades() : void - enfer: EnfermedadDAO
+ eliminarSintomaArff(Sintoma) : boolean - crearPlagas() : void - visualizaEnfermedad: VisualizarEnfermedad
+ main(String[]) : void + crearProductos() : void
+ modificarSintomaArff(Sintoma) : boolean - crearSemillas() : void + buscarEnfermedad() : List<Enfermedad>
+ nuevoSintomaArff(Sintoma, String, int, String) : void - crearSintomas() : void + cargarEnfermedad() : boolean
+ llenarElementoActivo() : void + getEnfermedadDAO() : EnfermedadDAO
+ llenarEnfermedad() : void + guadarEnfermedad(Enfermedad) : boolean
+ llenarPlaga() : void + setVisualizarEnfermedad(VisualizarEnfermedad) : void
+ llenarProductos() : void
+ llenarSemillas() : void
+ llenarSintoma() : void
7.16. DIAGRAMA DE CLASES FINAL DEL SISTEMA EXPERTO POR
142
class control

InformacionPlaEnfer
EscribirArchiv o
CrearBaseDatos - visualizarInformacion: VisualizarInformacion
- fw: FileWriter = null
+ CrearBaseDatos() + cargarInformacion(Plaga) : String
+ crearBaseDatos() : void
Sistema Experto MAHIX

+ escribirArchivo(String, Vector<String>) : void + cargarInformacion(Enfermedad) : String


+ main(String[]) : void + scribirArchivo(String, Vector) : void + InformacionPlaEnfer()
+ setVisualizarInformacion(VisualizarInformacion) : void
+ urlImagenEnfermedad(Enfermedad) : String
+ urlImagenPlaga(Plaga) : String
DeterminacionTratamiento

+ diagnosticoEnfermedad(String[], String[], String[], String[], String[], String[]) : Vector<Integer>


+ diagnosticoPlaga(Vector<String>) : Vector<Integer> LecturaDeArchiv os
+ enfermedadesDiagnostico(Vector<Integer>, RevisarCultivo) : String
+ plagasDiagnostico(Vector<Integer>, RevisarCultivo) : String - aux: String = null
+ poseeSintomas(String[]) : boolean - bd: boolean
- dis: DataInputStream = null
- sax: String = ""

+ dirExiste(String) : boolean
Imprimir Seguridad + leerArchivo(String, boolean) : Vector<String>
+ leerArchivo(String) : Vector<String>
- connecion: Connection + MD2: String = "MD2"
- login: String = "root" {readOnly} + MD5: String = "MD5"
- paswword: String = "root" {readOnly} + SHA1: String = "SHA-1"
- url: String = "jdbc:mysql://l... {readOnly} + SHA256: String = "SHA-256" UCBackup
+ SHA384: String = "SHA-384"
+ Imprimir() + SHA512: String = "SHA-512" - backupDAO: BackupDAO
+ imprimirRecetaEnfermedad(Integer) : void
+ imprimirRecetaPlaga(Integer) : void + getStringMessageDigest(String, String) : String + getBackupDAO() : BackupDAO
+ main(String[]) : void + main(String[]) : void + guardarBackup(Backup) : boolean
- mensajeErrorReporte() : void - toHexadecimal(byte[]) : String + UCBackup()
143
class control

UCAgricultor
UCRegistro
UCUsuario
- actualizaAgricultor: ActualizaAgricultor
- usuariodao: UsuarioDAO = null - registroDAO: RegistroDAO
- agricultorDAO: AgricultorDAO = null
- visualizarRegistro: VisualizarRegistro
- buscarAgricultor: BuscarAgricultor
+ actualizarUsuario(Usuario) : boolean
+ buscarRegistro() : boolean
+ buscarAgricultor(String, Object) : boolean + getUsuarioDAO() : UsuarioDAO
+ getRegistroDAO() : RegistroDAO
+ buscarAgricultorActualizar(String, Object) : boolean + guardarUsuario(Usuario) : boolean
+ getVisualizarRegistro() : VisualizarRegistro
+ eliminarAgricultor(Agricultor) : boolean + obtenerUsuario() : List
+ guardarRegistro(Registro) : boolean
+ existeAgricultor(Integer) : boolean + verificarUsuario() : boolean
+ setVisualizarRegistro(VisualizarRegistro) : void
+ existeAgricultor(Agricultor) : boolean
Sistema Experto MAHIX

+ UCRegistro()
+ getAgricultorDAO() : AgricultorDAO
+ guardarAgricultor(Agricultor) : boolean
UCDireccion
+ setActualizaAgricultor(ActualizaAgricultor) : void
+ setBuscarAgricultor(BuscarAgricultor) : void - direccionDAO: DireccionDAO = null
+ UCAgricultor() UCRev isionEnfermedad
+ eliminarDireccion(Direccion) : boolean
+ getDireccionDAO() : DireccionDAO - revisarEnfermedad: RevisionEnfermedadDAO
+ guardarDireccion(Direccion) : boolean
+ eliminarRevisionEnfermedad(RevisionEnfermedad) : boolean
+ getRevisionEnfermedadDAO() : RevisionEnfermedadDAO
UCCultiv o + guardarRevisionEnfermedad(RevisionEnfermedad) : boolean
UCPersona
- buscarCultivo: BuscarCultivo
- cultivodao: CultivoDAO - personadao: PersonaDAO = null

+ actualizarDatosCultivo() : void + actualzarPersona(Persona) : boolean


+ actualizarRevisionesEnfermedad() : void + buscarPersona(String, Object) : List UCRev isionPlaga
+ actualizarRevisionesPlaga() : void + eliminarPersona(Persona) : boolean
+ actulizarCultivo(Cultivo) : boolean + getPersonaDAO() : PersonaDAO - revisionPlaga: RevisionPlagaDAO
+ buscarCultivo(String, Object) : boolean + guardarPersona(Persona) : boolean
+ buscarCultivoMapa(String, Object) : LinkedList<Cultivo> + UCPersona() + eliminarRevisonPlaga(RevisionPlaga) : boolean
+ calcularCantidadSemilla(Float) : Integer + getRevisionPlagaDAO() : RevisionPlagaDAO
+ calcularFecha(String) : Date + guardarRevisionPlaga(RevisionPlaga) : boolean
+ calcularNumeroDias(Date, Date) : long
+ cargarSemilla() : Vector<String> Utilitarios
+ determinarCicloVegetativo(long) : String
- WORKING_DIRECT ORY: File
+ determinarFertlizacion(long) : String
+ elimnarCultivo(Cultivo) : boolean
+ conversionFecha(Date) : String
+ getCultivoDao() : CultivoDAO
+ dirPath() : File
+ guardarCultivo(Cultivo) : boolean
+ existeFile(String) : boolean
+ obtenerSemilla(String) : Semilla
+ generarBackup(String) : boolean
+ setBuscarCultivo(BuscarCultivo) : void
+ obtenerHora(Date) : String
+ UCCultivo()
+ probrarCedula(String) : boolean
+ soloBaseDatos(String) : boolean
+ tranformarAHectarias(Float) : Float
144
class dao

ElementoActiv oDAO

- log: Log = LogFactory.getL... {readOnly} SintomaDAO


UsuarioDAO
+ buscarTodos() : List - log: Log = LogFactory.getL... {readOnly}
DireccionDAO - log: Log = LogFactory.getL... {readOnly}
+ guardar(ElementoActivo) : void
+ buscarPorEnfermedad(int) : List
- log: Log = LogFactory.getL... {readOnly} + buscarPorPropiedad(String, Object) : List
+ buscarPorPropiedad(String, Object) : List
+ buscarTodos() : List
+ buscarTodos() : List
+ buscarPorPropiedad(String, Object) : List + guardar(Usuario) : void
+ eliminar(Sintoma) : void
+ buscarTodos() : List
+ guardar(Sintoma) : void
+ eliminar(Direccion) : void
+ guardar(Direccion) : void

«interface» Rev isionEnfermedadDAO


Sistema Experto MAHIX

Cultiv oDAO IBaseHibernateDAO


- log: Log = LogFactory.getL... {readOnly}
- log: Log = LogFactory.getL... {readOnly} + getSession() : Session
+ buscarTodos() : List
+ actualizar(Cultivo) : void + eliminar(RevisionEnfermedad) : void
+ buscarPorPropiedad(String, Object) : List + guardar(RevisionEnfermedad) : void
+ buscarTodos() : List
+ eliminar(Cultivo) : void
+ guardar(Cultivo) : void
Rev isionPlagaDAO

- log: Log = LogFactory.getL... {readOnly}


7.16.2. Paquete MAHIX.negocio.dao

BackupDAO
+ buscarTodos() : List
BaseHibernateDAO
- log: Log = LogFactory.getL... {readOnly} + eliminar(RevisionPlaga) : void
+ guardar(RevisionPlaga) : void
+ getSession() : Session
+ guardar(Backup) : void

SemillaDAO
AgricultorDAO
- log: Log = LogFactory.getL... {readOnly}
- log: Log = LogFactory.getL... {readOnly}
+ buscarPorPropiedad(String, Object) : List
+ buscarPorPropiedad(String, Object) : List + buscarSemilla(Object) : List
+ buscarTodos() : List + buscarTodas() : List
+ eliminar(Agricultor) : void + eliminar(Semilla) : void
+ guardar(Agricultor) : void + guardar(Semilla) : void

EnfermedadDAO

- log: Log = LogFactory.getL... {readOnly} RegistroDAO

+ buscarPorPropiedad(String, Object) : List - log: Log = LogFactory.getL... {readOnly}


+ buscarTodos() : List ProductoDAO
+ guardar(Enfermedad) : void PersonaDAO + buscarTodos() : List
PlagaDAO
- log: Log = LogFactory.getL... {readOnly} + guardar(Registro) : void
- log: Log = LogFactory.getL... {readOnly}
- log: Log = LogFactory.getL... {readOnly}
+ buscarTodos() : List
+ buscarPorPropiedad(String, Object) : List
+ buscarTodos() : List + eliminar(Producto) : void
+ buscarTodos() : List
+ guardar(Plaga) : void + guardar(Producto) : void
+ eliminar(Persona) : void
+ guardar(Persona) : void
145
146
Sistema Experto MAHIX

7.16.3. Paquete.MAHIX.vistas

class v istas

javax.swing.JDialog
Rev isarCultiv o

~ contenedorSintomas: JPanel
- cultivo: Cultivo
- enfBotrytisCinerea: boolean
- enfCarbonNegro: boolean
- enfCurvulariaLutana: boolean
- enferme: String = ""
- enfHelminthosporium: boolean
- enfMacrophominasp: boolean
- enfRoya: boolean
- jBAceptar: JButton
- jBAtras: JButton
- jBAtras2: JButton
- jBCancelar: JButton
- jBGuardarRE: JButton
- jBGuardarRP: JButton
- jBIdentificar: JButton
- jBImprimir: JButton
- jBImprimir2: JButton
- jBRevisar: JButton
- jBSiguiente: JButton
- jBSolucion: JButton
- jButton1: JButton
- jButton2: JButton
~ jcb: JCheckBox
- jCPlaga1: JCheckBox
- jCPlaga2: JCheckBox
- jCPlaga3: JCheckBox
- jCPlaga4: JCheckBox
- jCPlaga5: JCheckBox
- jCPlaga6: JCheckBox
- jCPlaga7: JCheckBox
- jCPlaga8: JCheckBox
- jLCanSemilla: JLabel
- jLCanton: JLabel
- jLCedula: JLabel
- JLCiclo: JLabel
- jLDiasCultivo: JLabel
- jLEstado: JLabel
- jLFFechaCosecha: JLabel
- jLFFechaSiembra: JLabel
- jLIcon: JLabel
javax.swing.JPanel - jLIconoFlecha: JLabel
- jLIconoFlecha2: JLabel
PintaSplash
- jLLocalidad: JLabel
- serialVersionUID: long = 1L {readOnly} - jLNombreDueno: JLabel
- jLNumeroDias: JLabel
- initGUI() : void javax.swing.JDialog - jLPLaga1: JLabel
+ paintComponent(Graphics) : void - jLPlaga2: JLabel
ModificarCultiv o
+ PintaSplash() - jLPlaga3: JLabel
- agricultor: Agricultor - jLPlaga4: JLabel
-logo - cultivo: Cultivo - jLPlaga5: JLabel
- direccion: Direccion - jLPlaga6: JLabel
- jBAtras: JButton - jLPlaga7: JLabel
- jBCalcular: JButton - jLPlaga8: JLabel
- jBCancelar: JButton - jLProvincia: JLabel
- jBGuardar: JButton - jLT amanoT erreno: JLabel
- jBModificarAgricultor: JButton - jLT ipoSemilla: JLabel
javax.swing.JWindow - jBSiguiente: JButton - jLT ipoSuelo: JLabel
- jCBT ipoSemilla: JComboBox - jLUnidad: JLabel
Splash
- jCT ipoSuelo: JComboBox - JPCiclo: JPanel
- barra: JProgressBar - jCUnidad: JComboBox - jPContCicloVege: JPanel
- jPanel1: JPanel - jFT FCedula: JFormattedT extField - jPContControlCultivo: JPanel
- logo: PintaSplash - jFtFT amanoT erreno: JFormattedT extField - jPContededor1: JPanel
- serialVersionUID: long = 1L {readOnly} - jLApellido: JLabel - jPContenInformacionCultivo: JPanel
- textoCargas: JLabel - jLCantidadSemilla: JLabel - JPContenSintomas: JPanel
- jLCanton: JLabel - jPContInformCultivo: JPanel
+ getBarra() : javax.swing.JProgressBar - jLCedula: JLabel - jPidentifiEnfermedad: JPanel
+ getLogo() : PintaSplash - jLCiudad: JLabel - jPIdentifiPlagas: JPanel
+ getT extoCargas() : JLabel - jLDireccion: JLabel - jPPlagas: JPanel
- initGUI() : void - jLFechaCosecha: JLabel - jPSolucion: JPanel
+ setLogo(PintaSplash) : void - jLFechaSiembra: JLabel - jPSolucionEnfermedad: JPanel
+ setT extoCargas(JLabel) : void - jLNombre: JLabel - jPSolucionPagas: JPanel
+ Splash(JFrame) - jLProvincia: JLabel - jSPContenedor2: JScrollPane
- jLT amanoT erreno: JLabel - jSPSolucionEnfermedad: JScrollPane
-sp - jSPSolucionSintoma: JScrollPane
- jLT ipoSemilla: JLabel
- jLT ipoSuelo: JLabel - jT Cultivo: JT abbedPane
- jPDatosAgricultor: JPanel - jT FCanSemilla: JT extField
- jPDatosCultivo: JPanel - jT FCanton: JT extField
- jPDCultivo: JPanel - jT FCedula: JT extField
- jPUbicacion: JPanel - jT FFechaCosecha: JDateChooser
- jSpContededor: JScrollPane - jT FFechaSiembra: JDateChooser
- jT ADireccion: JT extArea - jT FLocalidad: JT extField
Thread - jT Apellido: JT extField - jT FNombrDueno: JT extField javax.swing.JPanel
Hilo - jT CantidadSemilla: JT extField - jT FProvincia: JT extField PanelConFondo
- jT Contededor: JT abbedPane - jT FT amanT erreno: JT extField
- barra: JProgressBar - jT FCanton: JT extField - jT FT ipoSemilla: JT extField - serialVersionUID: long = 1L {readOnly}
- librerias: Object ([]) - jT fCiudad: JT extField - jT FT ipoSuelo: JT extField - url: String
- p: Principal - jT FFechaCosecha: JDateChooser - jT P1: JT abbedPane
- sp: Splash - jT FFechaSiembra: JDateChooser - jT PContenedor: JT abbedPane + getUrl() : String
- T extoCargas: JLabel - jT Nombre: JT extField - jT PControl: JT abbedPane - initGUI() : void
- jT provincia: JT extField - jT PEnfermedad: JT extPane + paintComponent(Graphics) : void
+ getLibrerias() : Object[] - registro: Registro - jT PFertilizacion: JT extPane ~ PanelConFondo()
+ Hilo(Splash) - uc: UCCultivo - jT PPlagas: JT extPane + PanelConFondo(String)
+ run() : void - jT PSolucionEnfermedad: JT extPane + setUrl(String) : void
+ setLibrerias(Object[]) : void + agregarAgricultor(Agricultor) : void - jT PsolucionPlagas: JT extPane -jPImagen
+ cargarCultivo(Cultivo) : void - plagaAcaro: boolean
- cargarDatos(Cultivo) : void - plagaAgrotis: boolean
- cargarDatosAgricultor(Agricultor) : void - plagaCutso: boolean
# crearCultivo() : Cultivo - plagaDiatrea: boolean
# crearDireccion() : Direccion - plagaHellotys: boolean
# crearRegistro() : Registro - plagaMoscaBlanca: boolean
- getJBModificarAgricultor() : JButton - plagaPulgon: boolean
-p
- initGUI() : void - plagas: Vector<String>
javax.swing.JFrame # mensajeErrorActualizar() : void - plagaSpodoptera: boolean
Principal - mensajeErrorT amanoT erreno() : void - plags: String = ""
- mensajeErrorVacioCampo() : void ~ revienfer: RevisionEnfermedad
javax.swing.JDialog
- jMAdministarCultivo: JMenu - mensajeGaurdarActualizar() : void ~ revipla: RevisionPlaga
VisualizarInformacion
- jMAdministrarAgricultor: JMenu + ModificarCultivo(JFrame) - sintomas: List<Sintoma>
- jMArchi1: JMenu + ModificarCultivo(JDialog) ~ sintomasIngresados: Vector<String> = new Vector<String>() - jBCerrar: JButton
- jMAyuda2: JMenuItem # mostrarMensajeErrorCamposObligatoriosVacios() : void - sintomBotrytisCinerea: String ([]) - jLT itulo: JLabel
- jMenu1: JMenu - sintomCarbonNegro: String ([]) - jPContenedor1: JPanel
-modificarCultivo
- jMenu2: JMenu - sintomCurvulariaLutana: String ([]) - jPImagen: PanelConFondo
- jMenu3: JMenu - sintomHelminthosporium: String ([]) - jSPContenedor2: JScrollPane
- jMenu4: JMenu - sintomMacrophominasp: String ([]) - jT PInformacion: JT extPane
- jMenu5: JMenu - sintomRoya: String ([])
- jMenu6: JMenu - uc: UCCultivo = new UCCultivo() + cargarDatosEnfermedad(Enfermedad) : void
- jMenu7: JMenu - ucenf: UCEnfermedad + cargarDatosPlaga(Plaga) : void
- jMenuBar1: JMenuBar - ucpl: UCPlaga - initGUI() : void
- jMIAdminUsu2: JMenuItem javax.swing.JDialog - ucsintoma: UCSintoma + VisualizarInformacion(JFrame)
- jMIArchi3: JMenuItem ActualizaAgricultor ~ vjc: Vector<JCheckBox> = new Vector<JChe...
- jMIAyuda1: JMenuItem
- jbBuscar: JButton
- jMIBuscarAgricultor: JMenuItem + cargarCultivo(Cultivo) : void
- jBCancelar: JButton
- jMICargarBD: JMenuItem - cargarDatos(Cultivo) : void
- jMIListaCultivos: JMenuItem - jBNuevoCultivo: JButton + combinacionSeleccion(int) : String
- jMIMapa: JMenuItem - jCbBusqueda: JComboBox - crearRevision() : RevisionPlaga
- jFT FCedula: JFormattedT extField
- jMINuevoAgricultor: JMenuItem # crearRevisionEnfermedad() : RevisionEnfermedad
- jLApellido: JLabel
- jMINuevoSemilla: JMenuItem - determinarFertilizacion(Cultivo) : void javax.swing.JDialog
- jLCedula: JLabel
- jMIRegistroAcciones: JMenuItem + getEnfermed() : String Runnable
- jMIRespaldoBD: JMenuItem - jLNombre: JLabel + getPlagas() : Vector<String> Resolv iendo
- jMIVisualizaEnfermedad: JMenuItem - jLT ipoBusqueda: JLabel + getPlags() : String
- jPBusqueda: JPanel - eti1: javax.swing.JLabel
- jMIVisualizaProducto: JMenuItem + getSintomas() : List<Sintoma>
- jPResultado: JPanel - eti2: javax.swing.JLabel
- jMIVisualizarSemilla: JMenuItem + getSintomBotrytisCinerea() : String[]
- jSPContededor: JScrollPane - hilo: T hread
- jMIVizualizaPlaga: JMenuItem + getSintomCarbonNegro() : String[]
- jMRegistro: JMenu - jT Apellido: JT extField + getSintomCurvulariaLutana() : String[] ~ indefinido: boolean = false
- jT FNombre: JT extField - jPanel1: javax.swing.JPanel
- jMVisualizarSintomas: JMenuItem + getSintomHelminthosporium() : String[]
- jT ResultadoBusqueda: JT able ~revCulti
- jPMapa: JPanel + getSintomMacrophominasp() : String[] ~ millis: int
- listaAgricultor: ModeloT ablaAgricultor - progreso: javax.swing.JProgressBar
+ getSintomRoya() : String[]
- modificarCultivo: ModificarCultivo ~ revCulti: RevisarCultivo
- cerrarCesion() : void + getVjc() : Vector<JCheckBox>
- ucAgricultor: UCAgricultor
- getJMAdministarCultivo() : JMenu - initGUI() : void
- getJMAdministrarAgricultor() : JMenu + isEnfBotrytisCinerea() : boolean + getEti1() : javax.swing.JLabel
- getJMenu5() : JMenu + ActualizaAgricultor(JFrame) + isEnfCarbonNegro() : boolean + getEti2() : javax.swing.JLabel
- getJMenu6() : JMenu + ActualizaAgricultor(JDialog) + isEnfCurvulariaLutana() : boolean + getHilo() : T hread
- initGUI() : void - initComponents() : void
- getJMenu7() : JMenu + isEnfHelminthosporium() : boolean
+ mostrarAgricultor(LinkedList<Agricultor>) : void + Resolviendo(java.awt.Frame, boolean, int, RevisarCultivo)
- getJMICargarBD() : JMenuItem + isEnfMacrophominasp() : boolean
# mostrarMensajeEliminar() : boolean + Resolviendo(java.awt.Frame, boolean, int)
- getJMIListaAgricultores() : JMenuItem + isEnfRoya() : boolean
- mostrarMensajeErrorCamposObligatorios() : void + Resolviendo(java.awt.Frame, boolean, int, boolean, RevisarCultivo)
- getJMIListaCultivos() : JMenuItem + isPlagaAcaro() : boolean
- mostrarMensajeErrorSeleccion() : void + run() : void
- getJMIMapa() : JMenuItem + isPlagaAgrotis() : boolean
- mostrarMensajeNoSeEncontraron() : void + setEti1(javax.swing.JLabel) : void
- getJMINuevoAgricultor() : JMenuItem + isPlagaCutso() : boolean
+ setModificarCultivo(ModificarCultivo) : void + setEti2(javax.swing.JLabel) : void
- getJMINuevoSemilla() : JMenuItem + isPlagaDiatrea() : boolean
- getJMIRegistroAcciones() : JMenuItem + isPlagaHellotys() : boolean + setHilo(T hread) : void
- getJMIRespaldoBD() : JMenuItem + isPlagaMoscaBlanca() : boolean
- getJMIVisualizaEnfermedad() : JMenuItem + isPlagaPulgon() : boolean
- getJMIVisualizaProducto() : JMenuItem + isPlagaSpodoptera() : boolean
- getJMIVisualizarSemilla() : JMenuItem MainPrincipal + llenarSintomasEnPanel() : void
~p
- getJMIVizualizaPlaga() : JMenuItem ~ p: Principal - mostrarMensajeErrorSeleccion() : void
- getJMRegistro() : JMenu # mostrarMensajeGuardarRevision() : void
- getJMVisualizarSintomas() : JMenuItem + main(String[]) : void + ordenarSelecionSintomasEnfermedad() : void
- initGUI() : void - mostrarMensajeErrorBaseDatos() : void + ponerEstadoCultivo(Cultivo) : void
+ Principal() + RevisarCultivo(JFrame)
+ RevisarCultivo(JDialog)
+ setEnfBotrytisCinerea(boolean) : void
+ setEnfCarbonNegro(boolean) : void
+ setEnfCurvulariaLutana(boolean) : void
+ setEnfermed(String) : void
+ setEnfHelminthosporium(boolean) : void
+ setEnfMacrophominasp(boolean) : void
+ setEnfRoya(boolean) : void
+ setPlagaAcaro(boolean) : void
+ setPlagaAgrotis(boolean) : void
+ setPlagaCutso(boolean) : void
+ setPlagaDiatrea(boolean) : void
+ setPlagaHellotys(boolean) : void
+ setPlagaMoscaBlanca(boolean) : void
+ setPlagaPulgon(boolean) : void
+ setPlagas(Vector<String>) : void
+ setPlagaSpodoptera(boolean) : void
+ setPlags(String) : void
+ setSintomas(List<Sintoma>) : void
+ setSintomBotrytisCinerea(String[]) : void
+ setSintomCarbonNegro(String[]) : void
+ setSintomCurvulariaLutana(String[]) : void
+ setSintomHelminthosporium(String[]) : void
+ setSintomMacrophominasp(String[]) : void
+ setSintomRoya(String[]) : void
+ setVjc(Vector<JCheckBox>) : void
class v istas

javax.sw i ng.JDi al og
javax.sw i ng.JDi al og javax.sw i ng.JDi al og
BuscarCultiv o javax.sw i ng.JDi al og
BuscarSemillas CrearBackup
DatosAgricultor
- canton: Stri ng
- j BBuscar: JButton - backup: Backup
- cul ti v: Cul ti vo - agri cul tor: Agri cul tor = nul l
- j BCancel ar: JButton - BGcontenedor: ButtonGroup
- j BBuscar: JButton - di recci on: Di recci on = nul l
- j BEl i mi nar: JButton - BGContenedor2: ButtonGroup
- j BCancel ar: JButton - j BAtras: JButton
- j BModi fi car: JButton - j BCancel ar: JButton
- j BEl i mi nar: JButton - j BCancel ar: JButton
- j CBT i poBusueda: JComboBox - j BDi recci on: JButton
- j BModi fi car: JButton - j BGuardar: JButton
- j CBT i poSemi : JComboBox - j BGuardar: JButton
- j BRevi sar: JButton - j BSi gui ente: JButton
- j LNombre: JLabel - j CBT i empo: JComboBox
- j CBT i poBusqueda: JComboBox - j FT FCeduAgri : JFormattedT extFi el d
- j LT i po: JLabel - j LT i empo: JLabel
- j CBT i poSemi l l a: JComboBox - j LApel Agri cul tor: JLabel
- j LT i poBusqeda: JLabel - j Panel 1: JPanel
- j FT FCedul a: JFormattedT extFi el d - j LCanton: JLabel
- j PResul tadoBusqueda: JPanel - JPContenedor: JPanel
- j LIcon1: JLabel - j LCedAgri cul tor: JLabel
- j PT i poBusqueda: JPanel - j PContenedor2: JPanel
- j LIcon2: JLabel - j LCi udad: JLabel
- j SPContenedor: JScrol l Pane - j PContenedor3: JPanel
- j LNombreDueno: JLabel - j LDi recci on: JLabel
- j T Busqueda: JT abl e - j RBAutomati co: JRadi oButton
- j Lyi poBusqueda: JLabel - j LNombAgri cul tor: JLabel
- j T FNombre: JT extFi el d - j RBD: JRadi oButton
- j Presul tadoBusqueda: JPanel - j LProvi nci a: JLabel
- l i staMai z: Model oT abl aSemi l l a - j RBdyConci mi ento: JRadi oButton
Sistema Experto MAHIX

- j PT i poBusqueda: JPanel - j PContenedor: JPanel


- regi stro: Regi stro - j RBManual : JRadi oButton
- j SContenedor: JScrol l Pane - j PDatosPersonal esAgri cul tor: JPanel
- semi l l a: Semi l l a - j T fDi recci on: JT extFi el d
- j T FApel l i do: JT extFi el d - j PDi recci onAgri cul tor: JPanel
- ucSemi l l a: UCSemi l l a - j T PInformaci on: JT extPane
- j T FNombreDueno: JT extFi el d - j Scrol l Pane1: JScrol l Pane
- ucb: UCBackup
- j T Resul tadoCul ti vo: JT abl e - j T ADi recci on: JT extArea
- l i staCul ti vo: Model oT abl aCul ti vo + BuscarSemi l l as(JFrame)
+ CrearBackup(JFrame) - j T FApel l Agri : JT extFi el d
- regi stro: Regi stro # crearRegi stro() : Regi stro
- j T FCanton: JT extFi el d
- i ni tGUI() : voi d - crearBackup() : voi d
- uc: UCCul ti vo - j T FCi udad: JT extFi el d
# mostrarMensaj eEl i mi nar() : bool ean - i ni tGUI() : voi d
- mostrarMensaj eErrorDi recci on() : voi d - j T FNombAgri : JT extFi el d
# mostrarMensaj eEl i mi narExi to() : voi d
+ BuscarCul ti vo(JFrame) - j T FProvi nvi a: JT extFi el d
+ BuscarCul ti vo(JFrame, Stri ng) # mostrarMensaj eErrorCampos() : voi d «property get» - j T pContenedorDatos: JT abbedPane
+ buscarCul ti vosCanton(Stri ng) : voi d - mostrarMensaj eErrorSel ecci on() : voi d - getBGcontenedor() : ButtonGroup - persona: Persona = nul l
# crearRegi stro() : Regi stro # mostrarMensaj eNoSeEncontraron() : voi d - getBGContenedor2() : ButtonGroup - regi stro: Regi stro = nul l
- i ni tGUI() : voi d + mostrarSemi l l as(Li nkedLi st<Semi l l a>) : voi d
+ mostrarCul ti vos(Li nkedLi st<Cul ti vo>) : voi d - cargarDatosAgri cul tor(Agri cul tor) : voi d
- mostrarMensaj eCampoVaci o() : voi d # crearAgri cul tor() : Agri cul tor
# mostrarMensaj eConfi rmaci onEl i mi nar() : bool ean javax.sw i ng.JDi al og javax.sw i ng.JDi al og - crearAgri cul tor2() : Agri cul tor
- mostrarMensaj eErrorBusqueda() : voi d BuscarAgricultor DatosUsuario - crearDi recci on() : Di recci on
- mostrarMensaj eErrorSel ecci on() : voi d - crearDi recci on2() : Di recci on
- agri cul tor: Agri cul tor - j BAtras: JButton - crearPersona() : Persona
- j bBuscar: JButton - j BCancel ar: JButton - crearPersona2() : Persona
- j BCancel ar: JButton - j BGuardar: JButton - crearRegi stro() : Regi stro
javax.sw i ng.JDi al og
- j BEl i mi nar: JButton - j BSi gui ente: JButton # crearRegi stro2() : Regi stro
BuscarSintoma - j BModi fi car: JButton - j FT FCedul a: JFormattedT extFi el d + DatosAgri cul tor(JFrame)
- j BBuscar: JButton - j BNuevoCul ti vo: JButton - j LApel l i do: JLabel + DatosAgri cul tor(JDi al og)
- j BCerrar: JButton - j CbBusqueda: JComboBox - j LCedul a: JLabel - i ni tGUI() : voi d
- j FT FCedul a: JFormattedT extFi el d - j LContrasena1: JLabel
- j BEl i mi nar: JButton + modi fi carAgri cul tor(Agri cul tor) : voi d
- j BModi fi car: JButton - j LApel l i do: JLabel - j LContrasena2: JLabel # mostrarMensaj eActul i zar() : voi d
- j CBEnfermedad: JComboBox - j LCedul a: JLabel - j LNombCuenta: JLabel - mostrarMensaj eCamposVaci osObl i gatori os() : voi d
- j CBT i poBusqueda: JComboBox - j LNombre: JLabel - j LNombre: JLabel - mostrarMensaj eErrorCedul a() : voi d
- j LEnfermedad: JLabel - j LT i poBusqueda: JLabel - j PContenedor: JPanel - mostrarMensaj eExi steAgri cul tor() : voi d
- j PBusqueda: JPanel - j PDatosPersonal es: JPanel
- j LT i poBusqueda: JLabel - mostrarMensaj eGuardar() : voi d
- j PContenedor: JPanel - j PResul tado: JPanel - j PDatosUsuari o: JPanel
- j PContenedor1: JPanel - j SPContededor: JScrol l Pane - j PFContrasena1: JPasswordFi el d
- j PContenedor2: JPanel - j T Apel l i do: JT extFi el d - j PFContrasena2: JPasswordFi el d
- j SPContenedor: JScrol l Pane - j T FNombre: JT extFi el d - j T FApel l i do: JT extFi el d
- j T Resul tadoBusqueda: JT abl e - j T FNombCuenta: JT extFi el d
- j T Si ntoma: JT abl e
- l i staSi ntoma: Model oT abl aSi ntoma - l i staAgri cul tor: Model oT abl aAgri cul tor - j T FNombre: JT extFi el d
javax.sw i ng.JDi al og
- regi stro: Regi stro - regi stro: Regi stro - j T PContenedorDatos: JT abbedPane
- ucAgri cul tor: UCAgri cul tor ~ persona: Persona = nul l CargarBackup
- si ntoma: Si ntoma
- ucs: UCSi ntoma ~ regi stro: Regi stro = nul l
+ BuscarAgri cul tor(JFrame) ~ usuari o: Usuari o = nul l + CargarBackup(JFrame)
# crearRegi stro() : Regi stro - i ni tGUI() : voi d
+ BuscarSi ntoma(JFrame) + mai n(Stri ng[]) : voi d
+ cargarSi ntoma(Li nkedLi st<Si ntoma>) : voi d - i ni tGUI() : voi d # crearRegi stro() : Regi stro
# crearRegi stro() : Regi stro + mostrarAgri cul tor(Li nkedLi st<Agri cul tor>) : voi d + DatosUsuari o(JFrame, Stri ng)
- i ni tGUI() : voi d # mostrarMensaj eEl i mi nar() : bool ean - i ni tGUI() : voi d
# mostrarMensaj eConfi rmaci on() : bool ean # mostrarMensaj eEl i mi narExi to() : voi d + l l enarCampos(Usuari o) : voi d
# mostrarMensaj eEl i mi nar() : voi d - mostrarMensaj eErrorCamposObl i gatori os() : voi d - mostrarMensaj eContrasena() : voi d
- mostrarMensaj eErrorSel ecci on() : voi d - mostrarMensaj eError() : voi d
+ mostrarMensaj eErrorBusqueda() : voi d
+ mostrarMensaj eErrorSel cci on() : voi d - mostrarMensaj eNoSeEncontraron() : voi d - mostrarMensaj eErrorCedul a() : voi d
- mostrarMensaj eGuardar() : voi d
# mostrarMensaj eModi fi car() : voi d
147
class v istas

javax.swing.JDialog javax.swing.JDialog javax.swing.JDialog


javax.swing.JDialog
ModificarSintoma ModificarUsuario Nuev oCultiv o
LogeaUsuario
- jBCerrar: JButton - jBCancelar: JButton - agricultor: Agricultor
- jBModificar: JButton - jBAceptar: JButton
- jBGuardar: JButton - cultivo: Cultivo
- jLSintoma: JLabel - jBCancelar: JButton - jFT FCedula: JFormattedT extField - direccion: Direccion
- jPContenedor: JPanel - jLContrasena: JLabel - jLApellido: JLabel - jBAtras: JButton
- jT FSintoma: JT extField - jLIcon: JLabel
- jLCedula: JLabel - jBCalcular: JButton
- registro: Registro - jLNombre: JLabel
- jLContrasena1: JLabel - jBCancelar: JButton
- sintoma: Sintoma - jPConetedor: JPanel - jLContrasena2: JLabel - jBGuardar: JButton
- jPFContrasena: JPasswordField - jLNombCuenta: JLabel - jBSiguiente: JButton
- cargarDatos(Sintoma) : void - jT FUsuario: JT extField - jLNombre: JLabel - jCBT ipoSemilla: JComboBox
+ cargarSintoma(Sintoma) : void - registro: Registro - jLNuevaContresena: JLabel - jCT ipoSuelo: JComboBox
# crearRegistro() : Registro - jLNuevaCuenta: JLabel - jCUnidad: JComboBox
# crearSintoma() : Sintoma # crearRegistro() : Registro
- jPContenedor: JPanel - jFT FCedula: JFormattedT extField
- initGUI() : void - initGUI() : void
- jPFContrasena1: JPasswordField - jFtFT amanoT erreno: JFormattedT extField
Sistema Experto MAHIX

+ ModificarSintoma(JFrame) + LogeaUsuario(JFrame) - jPFNuevaContrasena: JPasswordField - jLApellido: JLabel


# mostrarMensajeCamposVacios() : void - mostrarMensajeBienvenida() : void
- jPFNuevaContrasena2: JPasswordField - jLCantidadSemilla: JLabel
# mostrarMensajeConfirmacion() : boolean - mostrarMensajeError() : void - jT FApellido: JT extField - jLCanton: JLabel
# mostrarMensajeErrorModificar() : void - mostrarMensajeErrorCuenta() : void - jT FNombCuenta: JT extField - jLCedula: JLabel
# mostrarMensajeModificar() : void - jT FNombre: JT extField - jLCiudad: JLabel
- jT FNuevaCuenta: JT extField - jLDireccion: JLabel
~ persona: Persona = null - jLFechaCosecha: JLabel
javax.swing.JDialog - registro: Registro
javax.swing.JDialog - jLFechaSiembra: JLabel
Nuev aSemilla - ucusuario: UCUsuario - jLNombre: JLabel
ModificarProducto
~ usuario: Usuario = null - jLProvincia: JLabel
- jBCancelar: JButton
- jBActualizar: JButton - jLT amanoT erreno: JLabel
- jBGuardar: JButton
- jBCerrar: JButton - crearPersona() : Persona - jLT ipoSemilla: JLabel
- jCBColor: JComboBox
- jCBElementoActivo: JComboBox # crearRegistro() : Registro - jLT ipoSuelo: JLabel
- jCBT amano: JComboBox
- jLElementoActivo: JLabel - crearUsuario() : Usuario - jPDatosAgricultor: JPanel
- jCT ipoSemilla: JComboBox
- jLNombreProducto: JLabel - initGUI() : void - jPDatosCultivo: JPanel
- jLColorSemilla: JLabel
- jPContenedor1: JPanel + llenarCampos(Usuario) : void - jPDCultivo: JPanel
- jLNombreSemilla: JLabel
- jT FNombreProducto: JT extField + ModificarUsuario(JFrame) - jPUbicacion: JPanel
- JLNombreSemilla: JLabel
- producto: Producto - mostrarMensajeContrasena() : void - jSpContededor: JScrollPane
- jLT amano: JLabel
- registro: Registro - mostrarMensajeCuentaContrasenaIncorrestos() : void - jT ADireccion: JT extArea
- jLT ipoSemilla: JLabel
- ucelem: UCElementoActivo - mostrarMensajeError() : void - jT Apellido: JT extField
- jPContenedor: JPanel
- ucpro: UCProducto - mostrarMensajeErrorCedula() : void - jT CantidadSemilla: JT extField
- jT NombSemilla: JT extField
- mostrarMensajeGuardar() : void - jT Contededor: JT abbedPane
- registro: Registro
+ cargarDatosProducto(Producto) : void - jT FCanton: JT extField
- semilla: Semilla = null
# crearProducto() : Producto - jT fCiudad: JT extField
# crearRegistro() : Registro - jT FFechaCosecha: JDateChooser
- cargarDatos(Semilla) : void
- initGUI() : void - jT FFechaSiembra: JDateChooser
# crearRegistro() : Registro
+ ModificarProducto(JFrame) - jT Nombre: JT extField
# crearRegistro2() : Registro
# mostrarEmsajeErrorActualizar() : void - jT provincia: JT extField
- initGUI() : void
# mostrarMensajeActualizar() : void - registro: Registro
+ modificarSemilla(Semilla) : void
# mostrarMensajeT extoVacio() : void - uc: UCCultivo
- mostrarMensajeActualizar() : void
- mostrarMensajeError() : void
+ agregarAgricultor(Agricultor) : void
- mostrarMensajeErrorGuardar() : void
- cargarDatos(Agricultor) : void
- mostrarMensajeGuardar() : void
# crearCultivo() : Cultivo
- mostrarMesajeExiste() : void
# crearDireccion() : Direccion
+ NuevaSemilla(JFrame)
# crearRegistro() : Registro
+ NuevaSemilla(JDialog)
- initGUI() : void
# mensajeErrorGuardar() : void
- mensajeErrorT amanoT erreno() : void
- mensajeErrorVacioCampo() : void
- mensajeGaurdarCultivo() : void
# mostrarMensajeCamposObligatoriosVacios() : void
+ NuevoCultivo(JFrame)
+ NuevoCultivo(JDialog)
148
class v istas

javax.swing.JDialog
Nuev oProducto
javax.swing.JDialog
- elemtActivo: ElementoActivo javax.swing.JDialog
VisualizarElementoActiv o
- jBCancelar: JButton VisualizarProducto javax.swing.JDialog
- jBGuardar: JButton - jBCerrar: JButton VisualizarEnfermedad
- jLNombrePro: JLabel - jBNuevoProducto: JButton - jBCerrar: JButton
- jPContenedor1: JPanel - jBVerProductos: JButton - jBEleminarProducto: JButton - jBCerrar: JButton
- jTFNombreProducto: JTextField - jPContenedor1: JPanel - jBModiProducto: JButton - jBNuevoSin: JButton
- registro: Registro - jPContenedor2: JPanel - jPcontenedor1: JPanel - JBVerEnfermedad: JButton
- ucpro: UCProducto - jSPContenedorTabla: JScrollPane - jPContenedor2: JPanel - JPContenedor1: JPanel
- jTElementoActivo: JTable - jSPContenedor1: JScrollPane - JPContenedor2: JPanel
Sistema Experto MAHIX

# crearProducto() : Producto - modeloTablaElemAct: ModeloTablaElementoActivo - jTProducto: JTable - jSPContenedorTabla: JScrollPane


# crearRegistro() : Registro - ucelem: UCElementoActivo - modeloTabalProducto: ModeloTablaProducto - jTEnfermedades: JTable
+ getElemtActivo() : ElementoActivo - producto: Producto - modeloTablaEnfermedad: ModeloTablaEnfermedad
- initGUI() : void - initGUI() : void - registro: Registro - ucenf: UCEnfermedad
# mostrarErrorGuardar() : void + mostrarElementoActivo(LinkedList<ElementoActivo>) : void - ucp: UCProducto
# mostrarMensajeGuardar() : void # mostrarMensajeErrorSeleccion() : void - initGUI() : void
# mostrarMensajeTextoVacio() : void + VisualizarElementoActivo(JFrame) + cargarListaProducto() : void + mostrarEnfermedad(LinkedList<Enfermedad>) : void
+ NuevoProducto(JFrame) # crearRegistro() : Registro # mostrarMensajeErrorSeleccion() : void
+ setElemtActivo(ElementoActivo) : void - initGUI() : void + VisualizarEnfermedad(JFrame)
# mostrarErrorAlEliminar() : void
# mostrarMensajeEliminado() : void
javax.swing.JDialog # mostrarMensajeEliminar() : int
JDialog
Nuev oSintoma # mostrarMesajeErrorSeleccion() : void
VisualizarMapa + mostrarProduto(LinkedList<Producto>) : void
- jBCerrar: JButton + VisualizarProducto(JFrame)
- canvas: JSVGCanvas = new JSVGCanvas()
- jBGuardar: JButton javax.swing.JDialog
- document: Document
- jCBEnfermedad: JComboBox VisualizarRegistro
- serialVersionUID: long = 1L {readOnly}
- jLEnfermedad: JLabel
# svgNS: String = SVGDOMImplement... {readOnly}
- jLSintoma: JLabel javax.swing.JDialog - jBCerrar: JButton
- window: Window
- jPContenedor: JPanel VisualizarPlaga - jBMostrar: JButton
- jTFSintoma: JTextField - jPContenedor: JPanel
+ encontrarCanton(String) : String - jBCerrar: JButton
- registro: Registro - jPContenedor2: JPanel
+ main(String[]) : void - jBVerPlaga: JButton
- sintoma: Sintoma - jSPContenedor: JScrollPane
+ mostrarBusqueda(String) : void - jPContenedor1: JPanel
- ucs: UCSintoma - jTRegistro: JTable
+ VisualizarMapa() - jPContenedor2: JPanel - modeloRegistro: ModeloTablaRegistro
# crearRegistro() : Registro - jSPContenedor1: JScrollPane - ucr: UCRegistro
+ crearSintoma() : Sintoma - jTPlagas: JTable
- initGUI() : void - modeloTablaPlaga: ModeloTablaPlaga - initGUI() : void
# mostrarMensajeConfirmacion() : boolean - ucpl: UCPlaga + mostrarSemillas(LinkedList<Registro>) : void
+ mostrarMensajeExiste() : void + VisualizarRegistro(JFrame)
+ mostrarMensajeGuardarSintoma() : void - initGUI() : void
+ mostrarMensajeTextoVacio() : void # mostrarMensajeErrorSeleccion() : void
+ NuevoSintoma(JFrame) + mostrarPlaga(LinkedList<Plaga>) : void
+ VisualizarPlaga(JFrame)
149
class modeloTabla

TableModel TableModel
TableModel
ModeloTablaAgricultor ModeloTablaCultiv o
ModeloTablaProducto
~ column: String ([]) = {"Nombres","Ape... ~ column: String ([]) = {"Nombres","Ape...
~ column: String ([]) = {"Nº","Nombre d...
- datos: LinkedList <Agricultor> = new LinkedList<... - datos: LinkedList<Cultivo> = new LinkedList<...
- datos: LinkedList<Producto> = new LinkedList<...
- suscriptores: LinkedList = new LinkedList() - suscriptores: LinkedList = new LinkedList()
- suscriptores: LinkedList = new LinkedList()
+ addTableModelListener(TableModelListener) : void + addTableModelListener(TableModelListener) : void
+ addTableModelListener(TableModelListener) : void
+ agregarAgricultor(LinkedList<Agricultor>) : void + agregarCultivo(LinkedList<Cultivo>) : void
+ agregarProducto(LinkedList<Producto>) : void
Sistema Experto MAHIX

+ aobtenerAgricultor(int) : Agricultor + aobtenerCultivo(int) : Cultivo


+ aobtenerProducto(int) : Producto
+ eliminarAgricultor(int) : void + eliminarCultivo(int) : void
+ eliminarProducto(int) : void
+ getColumnClass(int) : Class + getColumnClass(int) : Class
+ getColumnClass(int) : Class
+ getColumnCount() : int + getColumnCount() : int
+ getColumnCount() : int
+ getColumnName(int) : String + getColumnName(int) : String
+ getColumnName(int) : String
+ getRowCount() : int + getRowCount() : int
+ getRowCount() : int
+ getValueAt(int, int) : Object + getValueAt(int, int) : Object
+ getValueAt(int, int) : Object
+ isCellEditable(int, int) : boolean + isCellEditable(int, int) : boolean
+ isCellEditable(int, int) : boolean
+ ModeloTablaAgricultor() + ModeloTablaCultivo()
+ ModeloTablaProducto()
+ removeTableModelListener(TableModelListener) : void + removeTableModelListener(TableModelListener) : void
+ removeTableModelListener(TableModelListener) : void
+ setValueAt(Object, int, int) : void + setValueAt(Object, int, int) : void
+ setValueAt(Object, int, int) : void

TableModel TableModel TableModel


ModeloTablaElementoActiv o ModeloTablaEnfermedad ModeloTablaPlaga
7.16.4. Paquete MAHIX.vistas.modeloTabla

~ column: String ([]) = {"Nº","Nombre d... ~ column: String ([]) = {"Nº","Nombre d... ~ column: String ([]) = {"Nº","Nombre d...
- datos: LinkedList<ElementoActivo> = new LinkedList<... - datos: LinkedList<Enfermedad> = new LinkedList<... - datos: LinkedList<Plaga> = new LinkedList<...
- suscriptores: LinkedList = new LinkedList() - suscriptores: LinkedList = new LinkedList() - suscriptores: LinkedList = new LinkedList()

+ addTableModelListener(TableModelListener) : void + addTableModelListener(TableModelListener) : void + addTableModelListener(TableModelListener) : void


+ agregarElementoActivo(LinkedList<ElementoActivo>) : void + agregarEnfermedad(LinkedList<Enfermedad>) : void + agregarPlaga(LinkedList<Plaga>) : void
+ aobtenerElementoActivo(int) : ElementoActivo + aobtenerEnfermedad(int) : Enfermedad + aobtenerPlaga(int) : Plaga
+ eliminarElementoActivo(int) : void + eliminarEnfermedad(int) : void + eliminarPlaga(int) : void
+ getColumnClass(int) : Class + getColumnClass(int) : Class + getColumnClass(int) : Class
+ getColumnCount() : int + getColumnCount() : int + getColumnCount() : int
+ getColumnName(int) : String + getColumnName(int) : String + getColumnName(int) : String
+ getRowCount() : int + getRowCount() : int + getRowCount() : int
+ getValueAt(int, int) : Object + getValueAt(int, int) : Object + getValueAt(int, int) : Object
+ isCellEditable(int, int) : boolean + isCellEditable(int, int) : boolean + isCellEditable(int, int) : boolean
+ ModeloTablaElementoActivo() + ModeloTablaEnfermedad() + ModeloTablaPlaga()
+ removeTableModelListener(TableModelListener) : void + removeTableModelListener(TableModelListener) : void + removeTableModelListener(TableModelListener) : void
+ setValueAt(Object, int, int) : void + setValueAt(Object, int, int) : void + setValueAt(Object, int, int) : void
150
class modeloTabla

TableModel TableModel

ModeloTablaRegistro ModeloTablaSemilla

~ column: String ([]) = {"No","Fecha","... ~ column: String ([]) = {"Nombre","T ipo...


- datos: LinkedList<Registro> = new LinkedList<... - datos: LinkedList<Semilla> = new LinkedList<...
- suscriptores: LinkedList = new LinkedList() - suscriptores: LinkedList = new LinkedList()

+ addT ableModelListener(T ableModelListener) : void + addT ableModelListener(T ableModelListener) : void


+ agregarRegistro(LinkedList<Registro>) : void + agregarMaiz(LinkedList<Semilla>) : void
+ aobtenerRegistro(int) : Registro + aobtenerMaiz(int) : Semilla
+ eliminarRegistro(int) : void + eliminarMaiz(int) : void
+ getColumnClass(int) : Class + getColumnClass(int) : Class
Sistema Experto MAHIX

+ getColumnCount() : int + getColumnCount() : int


+ getColumnName(int) : String + getColumnName(int) : String
+ getRowCount() : int + getRowCount() : int
+ getValueAt(int, int) : Object + getValueAt(int, int) : Object
+ isCellEditable(int, int) : boolean + isCellEditable(int, int) : boolean
+ ModeloT ablaRegistro() + ModeloT ablaSemilla()
+ removeT ableModelListener(T ableModelListener) : void + removeT ableModelListener(T ableModelListener) : void
+ setValueAt(Object, int, int) : void + setValueAt(Object, int, int) : void

TableCellRenderer
RenderTablaCultiv o

+ getT ableCellRendererComponent(JT able, Object, boolean, boolean, int, int) : Component

TableModel
ModeloTablaSintoma

~ column: String ([]) = {"Nº","Sintoma"}


- datos: LinkedList<Sintoma> = new LinkedList<...
- suscriptores: LinkedList = new LinkedList()

+ addT ableModelListener(T ableModelListener) : void


+ agregarSintoma(LinkedList<Sintoma>) : void
+ aobtenerSintoma(int) : Sintoma
+ eliminarSintoma(int) : void
+ getColumnClass(int) : Class
+ getColumnCount() : int
+ getColumnName(int) : String
+ getRowCount() : int
+ getValueAt(int, int) : Object
+ isCellEditable(int, int) : boolean
+ ModeloT ablaSintoma()
+ removeT ableModelListener(T ableModelListener) : void
+ setValueAt(Object, int, int) : void
151
class dominio

java.io.Serializable
java.io.Serializable
AbstractDireccion
AbstractPersona java.io.Serializable
- agricultors: Set = new HashSet(0) AbstractEnfermedad
- agricultors: Set = new HashSet(0)
- canton: String
- apellido: String
- cultivos: Set = new HashSet(0) - elementoActivos: Set = new HashSet(0)
- cedula: Integer
- direccion: String - idenfermedad: int
- idpersona: Integer
- iddireccion: Integer - nombreenfermedad: String
- nombre: String
- localidad: String - sintomas: Set = new HashSet(0)
- usuarios: Set = new HashSet(0)
- provincia: String
7.16.5.

java.io.Serializable
java.io.Serializable Enfermedad
java.io.Serializable java.io.Serializable
Persona
AbstractUsuario AbstractElementoActivo + Enfermedad()
- contrasena: String + Persona() java.io.Serializable 1..* + Enfermedad(String)
- dosis: Integer
- cuenta: String + Persona(String, Integer) Direccion - enfermedads: Set = new HashSet(0) 1..* + Enfermedad(String, Set, Set)
- idusuario: Integer + Persona(String, String, Integer, Set, Set) - idactivo: int
1..*
- persona: Persona + Direccion() - nombreactivo: String
+ Direccion(String, String) - plagas: Set = new HashSet(0)
+ Direccion(String, String, String, String, Set, Set) - productos: Set = new HashSet(0)
java.io.Serializable - unidad: String 1..*
1 java.io.Serializable
java.io.Serializable AbstractAgricultor 1 1
1 Plaga
Sistema Experto MAHIX

1..*
Usuario - cultivos: Set = new HashSet(0) java.io.Serializable
- direccion: Direccion + Plaga() AbstractSintoma
+ Usuario() - idagricultor: Integer + Plaga(String)
+ Usuario(String, String) - persona: Persona + Plaga(String, Set) - enfermedad: Enfermedad
+ Usuario(Persona, String, String) - idsintoma: Integer
- sintoma: String

java.io.Serializable
java.io.Serializable ElementoActiv o
AbstractSemilla java.io.Serializable
Agricultor + ElementoActivo() java.io.Serializable
- color: String + ElementoActivo(String, Integer, String) java.io.Serializable
AbstractPlaga
- cultivos: Set = new HashSet(0) + Agricultor() + ElementoActivo(String, Integer, String, Set, Set, Set) Sintoma
- idsemilla: Integer + Agricultor(Integer, Persona, Direccion, Set) - elementoActivos: Set = new HashSet(0)
- nombresemilla: String 1..* + Sintoma()
1 - idplaga: Integer
- tamano: String
Paquete MAHIX.negocio.dominio

- nombreplaga: String + Sintoma(String)


- tiposemilla: String 1 java.io.Serializable + Sintoma(Enfermedad, String)
0..* AbstractProducto

java.io.Serializable - elementoActivo: ElementoActivo java.io.Serializable


AbstractCultivo - idproducto: Integer
Rev isionPlaga
- nombreproducto: String
java.io.Serializable - agricultor: Agricultor
Semilla - areaterreno: Float 1 + RevisionPlaga()
- cantidadsemilla: Integer + RevisionPlaga(Date, String, String)
+ Semilla() - direccion: Direccion + RevisionPlaga(Cultivo, Date, String, String)
+ Semilla(String, String, String, String) - estadociclovege: String
1 java.io.Serializable
+ Semilla(String, String, String, String, Set) 0..* - fechacosecha: Date
- fechasiembra: Date Producto
java.io.Serializable
- idcultivo: Integer
- revisionenfermedad: String + Producto() java.io.Serializable Rev isionEnfermedad
- revisionplaga: String + Producto(String) AbstractRevisionPlaga
- revisionsenfer: Set = new HashSet(0) + Producto(ElementoActivo, String) + RevisionEnfermedad()
- cultivo: Cultivo + RevisionEnfermedad(Date, String, String, String)
- revisionsplaga: Set = new HashSet(0)
- fecharevision: Date + RevisionEnfermedad(Cultivo, Date, String, String, String)
- semilla: Semilla
- idrevisionplaga: Integer
- tiposuelo: String
0..* - plagas: String
- unidadterreno: String
- receta: String

1
java.io.Serializable
java.io.Serializable
AbstractRevisionEnfermedad
Cultiv o
- cultivo: Cultivo
+ Cultivo() 1 - enfermedades: String
+ Cultivo(Float, String, String, Integer, Date, Date) 0..*
- fecharevision: Date
+ Cultivo(Semilla, Agricultor, Direccion, Float, String, String, Integer, Date, Date, String, String, String, Set, Set) - idrevisionenfermedad: Integer
- receta: String
152

- sintomas: String
153
Sistema Experto MAHIX

7.17. DIAGRAMA DE DESPLIEGUE


deployment Diagrama de Despliegue

USUARIO

- S.O.: Windows XP/Vista/Seven/Linux

<<component>>

- MAHIX
- Base de Datos

7.18. DIAGRAMA DE PAQUETES


uc Paquetes

com

com.MAHIX

com.MAHIX.control com.MAHIX.negocio

com.MAHIX.negocio.dao

com.MAHIX.negocio.dominio

com.MAHIX.v istas

com.MAHIX.v istas.modeloTabla com.MAHIX.v istas.reporte


154
Sistema Experto MAHIX

7.19. PRUEBAS DE VALIDACIÓN

Dentro del desarrollo de software una de las principales etapas es la de pruebas de


validación, por medio de la cual verificamos el rendimiento de la aplicación,
descubriendo errores y realizando la corrección inmediata de los mismos, además,
comprobamos si el software cubre todas las necesidades del usuario, es decir si cumple
con todos los requerimientos. Las inspecciones son parte fundamental en un plan de
pruebas, pueden estar aplicadas a cualquier representación del sistema (requerimientos,
diseño, datos, código, pruebas de datos, etc.), estás inspecciones se realizaron en la
etapa final del desarrollo del proyecto, trabajando de manera conjunta con el usuario
final de la aplicación para solventar deficiencias en requerimientos o en el diseño de la
aplicación.

Prueba de usabilidad: Estas pruebas fueron realizadas por Ing. Agrónomo Jorge Luis
Torres Torres que es el encargado del Área de Soporte Técnico de la empresa
Ecuaquimica, también de la Ing. Agrónoma María Beatriz Abad Tillaguango que
pertenece a la empresa Dorliaagro, así como se pidió la colaboración de algunos de los
docentes del Área Agropecuaria de Recursos Naturales no Renovables de la
Universidad Nacional de Loja, el esquema de pruebas se detalla en la tabla:

Fecha 18 de Abril del 2011


Módulo de Administración de sus Datos y el Sistema
Alcance
Experto

- Ingreso al Sistema
- Modificar Cuenta
- Crear Semilla
Ítems a probar - Buscar Semilla
- Modificar Semilla
- Eliminar Semilla
- Crear Agricultor
- Buscar Agricultor
155
Sistema Experto MAHIX

- Modificar Agricultor
- Eliminar Agricultor
- Crear Cultivo
- Buscar Cultivo
- Modificar Cultivo
- Revisar Cultivo
- Visualizar Mapa
- Visualizar Cultivo mediante el Mapa
- Eliminar Cultivo
- Guardar Revisión de Plagas y Enfermedades
- Visualizar Plagas
- Visualizar Enfermedades
- Crear Síntoma de Enfermedad
- Modificar Síntoma
- Eliminar Síntoma
- Visualizar Elementos Activos
- Visualizar Producto
- Crear Producto
- Modificar Producto
- Eliminar Producto

Manipulación de las aplicación es por parte del Ing. Jorge


Luis Torres Torres, Ing. María Beatriz Abad Tillaguango y
Estrategia
de los docentes del Área Agropecuaria de Recursos
Naturales no Renovables.

2 Computadores
Recursos Mahix
Sistema Experto

Calendario Del 18 de Abril del 2011 al 22 de Abril del 2011


156
Sistema Experto MAHIX

Responsables Galo L. Abad T. y Cecilia E. Abad T.

Al haber cumplido con el periodo de pruebas se procedió a la tabulación de los datos


obtenidos de las encuestas realizadas al Ing. Jorge Luis Torres Torres, Ing. María
Beatriz Abad Tillaguango y a los docentes del Área Agropecuaria de Recursos
Naturales Renovables, los resultados son los siguientes:

1. ACCESIBILIDAD

1.1. ¿Se presentó algún problema al ingresar al sistema con su nombre de usuario
y contraseña?

SI ( ) NO ( )
CUADRO # 1
PROBLEMA AL INGRESAR AL SISTEMA
INDICADORES FRECUENCIA PORCENTAJE
Sí 0 0%
No 4 100%
TOTAL 4 100%
Fuente: Agrónomos del A.A.R.N.R. y Agro Técnico de la Empresa ECUAQUIMICA
Elaboración: Grupo de investigación
157
Sistema Experto MAHIX

Interpretación de Resultados:
El 100% de los encuestados considera que no existe ningún problema al ingresar a la
Aplicación con su respectiva cuenta de Usuario y su contraseña.
2. FUNCIONALIDAD

2.1. ¿Tuvo algún problema al realizar alguna de las siguientes actividades?

- Ingreso al Sistema SI ( ) NO ( )
- Modificar Cuenta SI ( ) NO ( )
- Crear Semilla SI ( ) NO ( )
- Buscar Semilla SI ( ) NO ( )
- Modificar Semilla SI ( ) NO ( )
- Eliminar Semilla SI ( ) NO ( )
- Crear Agricultor SI ( ) NO ( )
- Buscar Agricultor SI ( ) NO ( )
- Modificar Agricultor SI ( ) NO ( )
- Eliminar Agricultor SI ( ) NO ( )
- Crear Cultivo SI ( ) NO ( )
- Buscar Cultivo SI ( ) NO ( )
- Modificar Cultivo SI ( ) NO ( )
- Revisar Cultivo SI ( ) NO ( )

CUADRO # 2
PROBLEMA AL REALIZAR LAS ACTIVIDADES
SIGUIENTES
FRECUENCIA PORCENTAJE
INDICADORES
SI NO SI NO
Ingreso al Sistema 0 4 0% 100%
Modificar Cuenta 0 4 0% 100%
Crear Semilla 0 4 0% 100%
Buscar Semilla 0 4 0% 100%
Modificar Semilla 0 4 0% 100%
Eliminar Semilla 0 4 0% 100%
Crear Agricultor 0 4 0% 100%
Buscar Agricultor 0 4 0% 100%
Modificar Agricultor 0 4 0% 100%
Eliminar Agricultor 0 4 0% 100%
Crear Cultivo 0 4 0% 100%
158
Sistema Experto MAHIX

Buscar Cultivo 0 4 0% 100%


Modificar Cultivo 0 4 0% 100%
Revisar Cultivo 0 4 0% 100%
Fuente: Agrónomos del A.A.R.N.R. y Agro Técnico de la Empresa ECUAQUIMICA
Elaboración: Grupo de investigación

Interpretación de Resultados:
El 100% de los encuestados considera que no se presentó ningún inconveniente al
utilizar los diferentes módulos de la aplicación.

2.2. ¿Tuvo algún problema al realizar estas actividades?

- Visualizar Mapa SI ( ) NO ( )
- Visualizar Cultivos mediante un Mapa SI ( ) NO ( )
- Eliminar Cultivo SI ( ) NO ( )
- Guardar Revisión de Plagas y Enfermedades SI ( ) NO ( )
- Visualizar Plagas SI ( ) NO ( )
- Visualizar Enfermedades SI ( ) NO ( )
- Crear Síntoma de Enfermedad SI ( ) NO ( )
- Modificar Síntoma SI ( ) NO ( )
- Eliminar Síntoma SI ( ) NO ( )
- Visualizar Elementos Activos SI ( ) NO ( )
- Visualizar Producto SI ( ) NO ( )
- Crear Producto SI ( ) NO ( )
159
Sistema Experto MAHIX

- Modificar Producto SI ( ) NO ( )
- Eliminar Producto SI ( ) NO ( )
CUADRO # 3
PROBLEMA AL REALIZAR LAS ACTIVIDADES SIGUIENTES
FRECUENCIA PORCENTAJE
INDICADORES
SI NO SI NO
Visualizar Mapa 0 4 0% 100%
Visualizar Cultivo mediante el Mapa 0 4 0% 100%
Eliminar Cultivo 0 4 0% 100%
Guardar Revisión de Plagas y
0 4 0% 100%
Enfermedades
Visualizar Plagas 0 4 0% 100%
Visualizar Enfermedades 0 4 0% 100%
Crear Síntoma de Enfermedad 0 4 0% 100%
Modificar Síntoma 0 4 0% 100%
Eliminar Síntoma 0 4 0% 100%
Visualizar Elementos Activos 0 4 0% 100%
Visualizar Producto 0 4 0% 100%
Crear Producto 0 4 0% 100%
Modificar Producto 0 4 0% 100%
Eliminar Producto 0 4 0% 100%
Fuente: Agrónomos del A.A.R.N.R. y Agro Técnico de la Empresa ECUAQUIMICA
Elaboración: Grupo de investigación

Interpretación de Resultados:
El 100% de los encuestados considera que no se presentó ningún inconveniente al
utilizar los diferentes módulos de la aplicación.
160
Sistema Experto MAHIX

2.3. ¿Considera que la aplicación le permite realizar sus actividades de manera


más rápida, eficiente y confiable?

SI ( ) NO ( )

CUADRO # 4
REALIZAR SUS ACTIVIDADES DE MANERA MAS
RÁPIDA, EFICIENTE Y CONFIABLE
INDICADORES FRECUENCIA PORCENTAJE
Sí 4 100%
No 0 0%
TOTAL 4 100%
Fuente: Agrónomos del A.A.R.N.R. y Agro Técnico de la Empresa ECUAQUIMICA
Elaboración: Grupo de investigación

Interpretación de Resultados:
El 100% de los encuestados considera que la aplicación le permite realizar sus
actividades de manera más rápida, eficiente y confiable.
161
Sistema Experto MAHIX

3. DISEÑO Y PRESENTACIÓN
3.1. ¿Considera que la interfaz de la aplicación es intuitiva (fácil de utilizar)?
SI ( ) NO ( )
CUADRO # 5
APLICACIÓN ES INTUITIVA
INDICADORES FRECUENCIA PORCENTAJE
Sí 4 100%
No 0 0%
TOTAL 4 100%
Fuente: Agrónomos del A.A.R.N.R. y Agro Técnico de la Empresa ECUAQUIMICA
Elaboración: Grupo de investigación

Interpretación de Resultados:
El 100% de los encuestados considera que la aplicación es fácil de utilizar porque la
interfaz es intuitiva.

Conclusión de Resultados:

Con las pruebas de validación hemos obtenido los resultados que demuestran que el
software a entregar al usuario es de total aprobación ya que se tomó como
características del programa como son la accesibilidad, funcionalidad, diseño y
presentación, cumplido así con todos los requerimientos y objetivos planteados en el
presente proyecto de Tesis.
162
Sistema Experto MAHIX

8. VALORACIÓN TÉCNICO-ECONÓMICA-AMBIENTAL

El sistema ha sido desarrollado e implementado de manera satisfactoria debido a que los


recursos hardware y software utilizados para la puesta en ejecución de la aplicación son
los indispensables. La adquisición de materiales ha sido posible gracias a la inversión de
los desarrolladores y de la Institución.

Las herramientas utilizadas para el desarrollo del software son de libre distribución, por
lo que la obtención de los mismos no tuvo mayores complicaciones, ya que se
encuentran disponibles en internet para cualquier persona. Las herramientas utilizadas
son java 1.6, y MySQL 5.0.

La utilización de librerías como: Weka, hibernate, jasperReport, itext, jhall, entre otras,
permiten utilizar su código fuente y adaptarlo a nuestras necesidades y todas ellas son
libres.

Los costos reales asumidos por los desarrolladores y el área de soporte técnico de la
empresa comercial Ecuaquimica, se detallan a continuación:

Tabla 3. Recursos Humanos

DESCRIPCIÓN CANTIDAD # DE HORAS V/u $ V/t $


RECURSOS HUMANOS

Desarrolladores 2 800 3.00 2400.00


Director de tesis 1 0 0 0.00
TOTAL 2400.00
163
Sistema Experto MAHIX

Tabla 4. Recursos Técnicos

RECURSOS TÉCNICOS
HARDWARE CANTIDAD # DE HORAS V/u $ V/t $

Computador para
2 1000 0.80 1600.00
Desarrollo

Computador para
2 -- 500 1000
implementación

Impresora 1 -- 50.00 50.00


Dispositivo de
2 -- 15.00 30.00
almacenamiento 4GB
SOFTWARE
Microsoft office 1 -- 220 220
Java SE 1 -- -- --
Base de Datos Mysql 1 -- -- --
Hibernate 1 -- -- --
Eclipse Helios 1 -- -- --
TOTAL 2900.00

Tabla 5. Recursos Materiales


RECURSOS MATERIALES
Descripción Cantidad Valor Unitario Valor Total
Copias - $30.00 $30.00
Resma de papel 4 $3.00 $12.00
Anillados 8 $1.00 $8.00
Empastado 6 $5.00 $30.00
Recarga de tinta negra 3 $2.50 $7.50
Recarga de tinta a color 3 $3.00 $9.00
Transporte -- $50.00 $50.00
Internet 50 $0.80 $40.00
TOTAL $186.50
164
Sistema Experto MAHIX

Tabla 6. Presupuesto Final

Presupuesto Final Subtotal


Humanos 2400.00
Técnicos 2900.00
Materiales 186.50
Subtotal del Proyecto 5486.50
Imprevistos 10 % 548.65
Total del Proyecto 6035.15
165
Sistema Experto MAHIX

9. CONCLUSIONES

 La base de conocimiento se basa en la información obtenida del Agro Técnico de la


empresa Ecuaquimica, la cual es la parte fundamental que se sustenta nuestro
sistema experto, ya que depende de esta para dar deducciones y resultados
acertados.

 La herramienta MAHIX le permite al Agro Técnico almacenar su información de


manera ordenada, rápida y confiable, la misma que está constituida por los
siguientes módulos: administración de cultivo, agricultor y semilla, facilitando sus
actividades de manera más rápida y fácil dentro de la empresa.

 El Shell de MAHIX permite la identificación de las enfermedades: Botrytis cinérea,


Helminthosporium (maydis o turcicum), Curvularia lutana, Macrophomina sp,
Carbon Negro y Roya obteniendo así una solución aproximada.

 La herramienta MAHIX muestra mensajes de aviso de los cultivos que necesitan


una revisión por parte del Agro Técnico.

 MAHIX utilizando la librería batik permite la visualización de un SVG de la


Provincia de Loja, facilitando de esta manera la búsqueda de los cultivos existentes
en zona maicera.

 Las pruebas de validación que se realizó a MAHIX permitió a los desarrolladores y


al Agro Técnico comprobar que la aplicación está funcionando de manera eficaz,
eficiente, confiable y que está cubriendo con todos los requerimientos del usuario.

 El aprendizaje de Sistema Experto MAHIX se basa en el ingreso de nuevos


síntomas por parte del agro técnico y así el sistema adquiere nuevas combinaciones
para la identificación de las enfermedades.
166
Sistema Experto MAHIX

10. RECOMENDACIONES

 Detallar de manera clara la base de conocimiento para no tener problemas en el


desarrollo de la aplicación.

 Para el desarrollo de sistemas expertos se recomienda utilizar redes neuronales


para estructurar su Shell, el cual permite simular el comportamiento de un
humano para tomar decisiones, dar respuestas en base a datos insuficientes y
permiten el aprendizaje de la aplicación en base a datos ingresados por los
usuarios.

 Utilizar la librería Weka como una herramienta en el desarrollo de nuevos


Sistemas Expertos en los diferentes ámbitos de la ciencia como Medicina,
Agricultura, etc. para así obtener conclusiones aproximadas y recomendaciones
que sean útiles para el experto humano de cada rama.

 Realizar las pruebas de validación para tener la seguridad de entregar un


software de calidad, que optimice los procesos, brinde información confiable y
que cubra con todas las necesidades del usuario.

 Leer el manual de usuario y del programador para que se pueda aprovechar en


un 100% todas las funcionalidades del sistema.

 Dar a conocer a los usuarios que los Sistemas Expertos no tratan de reemplazar
al experto humano sino más bien colaborar en sus actividades para permitir de
esta manera que él dedique más tiempo a otras actividades para su beneficio o el
de la institución en la que trabaja.

 Utilizar la librería batik como una herramienta de visualización de mapas o


diferentes tipos de gráficos estadísticos.

 Se recomienda de manera especial la utilización de la herramienta MAHIX a la


empresa comercial Ecuaquimica para mejorar las actividades realizadas por los
Agro Técnicos.
167
Sistema Experto MAHIX

11. BIBLIOGRAFÍA Y REFERENCIAS

a. Fuentes primarias (Libros)

 NEBENDAHL, Dieter. “Sistemas Expertos”, Centro de Desarrollo de SW


Cornellá, 1991, Barcelona, España.
 NILSSON, Nills J.. “Inteligencia Artificial Una Nueva Síntesis”, Editorial
McGraw Hill, 2001, España.
 MORALES Rafael, “Manual Patológico del Maíz”, Editorial Universitaria.
1994, Loja.
 MORALES Rafael, “Manual Entomologico”, Editorial Universitaria. 1994,
Loja.

b. Fuentes terciarias (Páginas Web)

 ALEGRE LOPEZ, Anita del C. “Simulación de redes neuronales


artificiales”, Licenciatura en Sistemas Corrientes – Argentina, 15-12-2009
[http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/
SimulacionRNA.PDF]

 ALONSO GONZALEZ, Carlos J. “C.WEKA: Waitako Environment for


Knowledge Analysis”. Introducción básica. Departamento de Informática
Universidad de Valladolid, 17-212-2009

[http://www.infor.uva.es/~calonso/IAII/Aprendizaje/weka/IntroduccionWek
a.pdf]

 ABCAGRO, “El Cultivo del Maíz”, 30-11-2009


[http://www.abcagro.com/herbaceos/cereales/maiz.asp]

 ARREDONDO VIDAL, Tomas. “Introducción a las Redes Neuronales”, 17-


12-2009, [http://profesores.elo.utfsm.cl/~tarredondo/info/soft-
comp/Introduccion%20 a%20las%20redes%20neuronales.pdf]

 Documentación Weka. Universidad de Waikato, 17-12-2009


[http://www.cs.waikato.ac.nz/ml/weka/]
168
Sistema Experto MAHIX

 FUNDACIÓN PRODUCE SINALOA, A.C., “Recomendaciones preventivas


para control de plagas en maíz”, 30-11-2009,
[http://www.fps.org.mx/divulgacion/index.php?option=com_content&view=
article&catid=37:sinaloa-produce&id=297:recomendaciones-preventivas-
para-control-de-plagas-en-maiz&Itemid=373]

 FERRI C. “Mi página de Weka”, 17-12-2009,


[http://www.dsic.upv.es/~cferri/weka/]

 FERNÁNDEZ LORENZANA, Ramon. ASENJO CHACÓN, Manuel.


“Inteligencia en redes de Comunicaciones: Práctica Final: Predicción
Metereológica en Weka”,17-12-2009,
[http://www.it.uc3m.es/jvillena/irc/practicas/04-05/10mem.pdf]

 GARCIA MORATE, Diego. “Manual de WEKA” ,15-12-


2009,[http://metaemotion.com/diego.garcia.morate/]

 SAMPER MÁRQUEZ, Juan José. “Sistemas Expertos. El conocimiento al


poder”, 15-12-2009, [http://www.psycologia.com/articulos/ar-
jsamper01.htm.].

 SAN LUIS HILLS FARM, “Plagas y Enfermedades en el Maiz”,30-11-


2009, [http://www.slhfarm.com/plaga.html]

 THE APACHE SOFTWARE FOUNDATION, “Batik SVG Toolkit”, 12-12-


2010, [http://xmlgraphics.apache.org/batik/]

 WIKIPEDIA, “Sistema de Información Geográfica”, 18-12-2009


[http://es.wikipedia.org/wiki/Sistema_de_Informaci%C3%B3n_Geogr%C3
%A1fica]
169
Sistema Experto MAHIX

ANEXOS
170
Sistema Experto MAHIX

Anexo 1:
Encuesta
171
Sistema Experto MAHIX

Anexo 2:
Certificación
172
Sistema Experto MAHIX

Anexo 3:
Anteproyecto

También podría gustarte