Professional Documents
Culture Documents
Director
PH.D. HENRY ALBERTO DIOSA
Codirectora
PH.D. LAUREN RAZ
LISTA DE FIGURAS...................................................................................................6
LISTA DE TABLAS.....................................................................................................8
AGRADECIMIENTOS................................................................................................9
INTRODUCCIÓN.....................................................................................................10
1. FORMULACIÓN DEL PROBLEMA......................................................................11
2. OBJETIVOS.........................................................................................................14
2.1 OBJETIVO GENERAL...................................................................................14
2.2 OBJETIVOS ESPECíFICOS.........................................................................14
3. JUSTIFICACIÓN..................................................................................................15
3.1 JUSTIFICACIÓN ACADÉMICA.....................................................................15
3.2 JUSTIFICACIÓN TÉCNICA...........................................................................15
3.3 JUSTIFICACIÓN PRÁCTICA........................................................................15
4. MARCO CONTEXTUAL DEL PROBLEMA.........................................................17
4.1 ACERCA DEL PROCESO DE RECOLECCIÓN DE UN ESPÉCIMEN E
INCLUSIÓN EN LA BASE DE DATOS DEL ICN. ..............................................17
4.1.1 Recolección............................................................................................17
4.1.2 Secado...................................................................................................17
4.1.3 Elaboración de etiquetas........................................................................17
4.1.4 Montaje...................................................................................................17
4.1.5 Sellado....................................................................................................18
4.1.6 Cuarentena.............................................................................................18
4.1.7 Toma de fotografía y código de barras...................................................18
4.1.8 Incluir espécimen en el herbario............................................................18
4.1.9 Digitalización..........................................................................................18
5. MARCO REFERENCIAL TECNOLÓGICO..........................................................22
5.1 PATRÓN ARQUITECTÓNICO.......................................................................22
5.1.1 Patrón de arquitectura modelo vista controlador (MVC)........................22
5.1.2 Patrón de arquitectura modelo-vista-vista modelo (MVVM)..................22
5.2 ZK .................................................................................................................23
5.2.1 Arquitectura de ZK..................................................................................23
5.2.2 ZK con MVC...........................................................................................24
5.2.3 ZK con MVVM........................................................................................25
5.3 JAVA..............................................................................................................25
5.4 JPA ................................................................................................................25
5.5 MySQL ..........................................................................................................26
5.6 SOBRE LA MIGRACIÓN DE DATOS............................................................26
5.6.1 CSV........................................................................................................26
5.6.2 XML........................................................................................................27
5.6.3 XLS.........................................................................................................27
5.6.4 HTML......................................................................................................27
5.7 SPECIFY.......................................................................................................27
5.8 GENERACIÓN DE ETIQUETAS...................................................................28
3
5.8.1 Apache POI............................................................................................28
5.8.2 Itext.........................................................................................................28
5.9 PRUEBAS UNITARIAS..................................................................................28
5.9.1 Junit........................................................................................................28
6. MARCO METODOLÓGICO.................................................................................29
6.1 MODELO DE PROCESO UNIFICADO (UP).................................................29
6.1.1 El ciclo de vida del Proceso Unificado...................................................29
6.1.1.1 Fase de Inicio..................................................................................30
6.1.1.2 Fase de Elaboración.......................................................................30
6.1.1.3 Fase de Construcción.....................................................................30
6.1.1.4 Fase de Transición..........................................................................30
6.1.2 Flujos de trabajo de proceso..................................................................30
6.2 LENGUAJE DE MODELADO UNIFICADO (UML)........................................31
6.2.1 Unidades lingüisticas de UML................................................................31
6.2.1.1 Unidades lingüisticas para el modelo funcional..............................31
6.2.1.2 Unidades lingüisticas para el modelo estructural...........................32
6.2.1.3 Unidades lingüisticas para el modelo dinámico..............................32
7. BREVE EXPLICACIÓN DE LA METODOLOGÍA DE DESARROLLO APLICADA
Y ENTREGABLES...................................................................................................34
7.1 FASE DE INICIO............................................................................................34
7.2 FASE DE ELABORACIÓN............................................................................34
7.3 FASE DE CONSTRUCCIÓN.........................................................................35
7.4 FASE DE TRANSICIÓN................................................................................36
8. MODELO FUNCIONAL........................................................................................37
8.1 DEFINICIÓN DE POSIBLES ACTORES Y RESPONSABILIDADES ..........37
8.1.1 Rol recolector.........................................................................................37
8.1.2 Rol validador..........................................................................................38
8.1.3 Rol administrador...................................................................................38
8.2 DEFINICIÓN DE REQUERIMIENTOS..........................................................39
8.2.1 Requerimientos funcionales...................................................................39
8.3 REQUERIMIENTOS ESPECÍFICOS DE INTERFACES...............................41
8.3.1 Interfaces de usuario..............................................................................41
8.3.2 Interfaces de software............................................................................41
8.4 PROTOCOLOS DE COMUNICACIÓN.........................................................41
8.5 REQUERIMIENTOS DE PERSISTENCIA....................................................41
8.6 MODELO FUNCIONAL BASADO EN CASOS DE USO..............................42
8.6.1 Módulo de control de acceso.................................................................44
8.6.2 Módulo de selección y cargue de archivos............................................50
8.6.3 Módulo de gestión de especímenes......................................................57
8.6.4 Módulo de selección y envío de especímenes......................................67
8.6.5 Módulo de consulta y aprobación de solicitudes de inclusión para
aprobación.......................................................................................................71
8.6.6 Módulo de gestión de usuarios..............................................................79
9. MODELO ESTRUCTURAL..................................................................................85
9.1 DIAGRAMA DE CLASES..............................................................................85
4
9.2 MODELO DE PERSISTENCIA......................................................................87
9.2.1 Estructuras de árbol...............................................................................89
9.2.2 Patrón de fuente de datos......................................................................90
9.2.3 Estrategia de mapeo..............................................................................90
9.2.3.1 Mapeador de datos.........................................................................90
9.2.3.2 Clase a tabla en jerarquías de herencia.........................................91
9.2.3.3 Clase concreta a tabla en jerarquías de herencia..........................93
9.2.3.4. Mapa de identidad.........................................................................95
9.2.4 Aspectos tecnológicos de mapeo...........................................................95
9.3 PLANTAE Y LA EXPORTACIÓN DE LOS DATOS.......................................96
9.4 ESTRATEGIA DE MIGRACIÓN DE DATOS A SPECIFY..............................97
9.4.1 Datos sensibles detectados en el proceso de migración.......................99
9.4.1.1 Árbol de la Taxonomía..................................................................100
9.4.1.2 Árbol de Geografía........................................................................101
9.4.1.3 Agente...........................................................................................103
9.4.1.4 Otros datos....................................................................................104
10. MODELO DE INTERFAZ GRÁFICA DE USUARIO........................................105
10.1 MAPA DE NAVEGACIÓN..........................................................................105
10.2 GENERALIDADES DE LA INTERFÁZ GRÁFICA.....................................107
10.2.1 Página de control de acceso..............................................................107
10.2.2 Página principal..................................................................................107
10.2.3 Menú de opciones de usuario............................................................109
10.2.4 Cambiar contraseña...........................................................................109
10.2.5 Cerrar sesión......................................................................................110
10.2.6 Mensajes............................................................................................110
10.3 OPCIONES DE MENÚ..........................................................................111
10.4 ASPECTOS DE IMPLEMENTACIÓN....................................................114
11. MODELO DINÁMICO.......................................................................................115
11.1 DIAGRAMAS DE SECUENCIA.................................................................115
11.2 MÁQUINAS DE ESTADO..........................................................................119
11.2.1 Máquina de estados del espécimen...................................................119
11.2.2 Máquina de estados de la solicitud de inclusión ..............................119
12. TECNOLOGÍAS USADAS EN LA CONSTRUCCIÓN.....................................121
13. PRUEBAS........................................................................................................123
13.1 Pruebas unitarias y de integración............................................................123
14. CONCLUSIONES............................................................................................125
15. TRABAJO FUTURO........................................................................................126
16. GLOSARIO......................................................................................................127
17. GUÍA DE CONTENIDO DE ANEXOS..............................................................128
17.1 DOCUMENTOS.........................................................................................128
17.2 PROTOTIPO..............................................................................................128
17.3 MODELAMIENTO......................................................................................129
17.4 DICCIONARIOS........................................................................................130
17.5 MANUALES...............................................................................................130
BIBLIOGRAFÍA......................................................................................................131
5
LISTA DE FIGURAS
6
Figura 35. Opciones del usuario............................................................................109
Figura 36. Opción de cambio de contraseña.........................................................109
Figura 37. Mensajes de confirmación....................................................................110
Figura 38. Mensajes de resultado..........................................................................110
Figura 39. Opción de menú Importar datos de especímenes................................111
Figura 40. Opción de menú Gestión de especímenes...........................................111
Figura 41. Opción de menú Envío de solicitudes de inclusión..............................112
Figura 42. Opción de menú Solicitudes de inclusión.............................................112
Figura 43. Opción de menú Administración de usuarios.......................................113
Figura 44. DS007 Gestionar archivos de especímenes........................................116
Figura 45. DS008 Listar histórico de archivos cargados.......................................117
Figura 46. DS024 Consultar solicitudes de inclusión............................................118
Figura 47. Máquina de estados del espécimen.....................................................119
Figura 48. Máquina de estados de la solicitud de inclusión..................................120
Figura 49. Arquitectura tecnológica del prototipo PlantaeToSpecify.....................121
Figura 50. Diagrama de despliegue.......................................................................122
Figura 51. Diagrama de clases de la implementación de JUnit............................123
Figura 52. Resultados de las pruebas unitarias....................................................124
Figura 53. Cargue de un archivo...........................................................................125
Figura 54. Cargue de archivo exitoso....................................................................125
Figura 55. Cargue de archivo incorrecto campo invalido......................................126
Figura 56. Cargue de archivo vacío. Fuente.........................................................126
Figura 57. Solicitud de inclusión de especímenes................................................127
Figura 58. Solicitud de inclusión de especímenes enviada...................................127
Figura 59. Agregar información.............................................................................128
Figura 60. Confirmación de inclusión de especímen en Specify...........................128
Figura 61. Espécimen desde Specify....................................................................129
Figura 62. Contenido inicial del CD.......................................................................133
Figura 63. Estructura del proyecto abierto desde Eclipse.....................................134
7
LISTA DE TABLAS
8
AGRADECIMIENTOS
A Dios y a nuestras familias, porque sin su apoyo todo este camino hubiera sido
más difícil.
A nuestro director Henry Alberto Diosa y nuestra codirectora Lauren Raz, además
del Grupo de Investigación Arquisoft de la Universidad Distrital y de los miembros
del Programa de Informática de la Biodiversidad del Instituto de Ciencias Naturales
de la Universidad Nacional, por su tiempo y colaboración.
9
INTRODUCCIÓN
10
1. FORMULACIÓN DEL PROBLEMA
Teniendo en cuenta que uno de los objetivos del ICN es el de poner a disposición
de la comunidad en general la colección de especímenes biológicos, se evidenció
la necesidad de desarrollar una serie de soluciones basadas en software que
permitan ayudar a cumplirlo.
Una vez los datos han sido capturados, el biólogo recolector deberá elaborar las
etiquetas por cada espécimen recolectado de acuerdo a los datos mínimos
requeridos por el ICN, luego imprime las etiquetas y las adjunta al espécimen para
que pase por el proceso de montaje, durante este proceso se pone un sello con un
código (código de colección) al espécimen para su identificación, después es
revisado para su inclusión en la base de datos del instituto, donde surgen tres
escenarios:
11
almacena en la base de datos del ICN.
2. Sí dicho espécimen es aprobado pero su familia no ha sido digitalizada,
entonces es almacenado en el herbario sin pasar por el proceso de
fotografía y no se registra en la base de datos del ICN, a la espera de que
la familia completa sea digitalizada.
3. Si dicho espécimen no es aprobado, es descartado para su inclusión tanto
física como digital en la base de datos del ICN.
Por todo lo anterior, surge la pregunta: ¿Se puede, mediante una solución basada
en software gestionar la información recolectada en campo a través de un
dispositivo móvil para:
12
espécimen, asegurando que los datos sean consistentes con los
registrados en el momento de su captura?
• Permitir la actualización de la información que requieren los especímenes
para ser incluidos en la base de datos del ICN?
• Permitir la migración a la base de datos del ICN de los registros de los
especímenes que cuenten con la información completa requerida por el
mismo?
13
2. OBJETIVOS
14
3. JUSTIFICACIÓN
El núcleo de UML son sus unidades lingüísticas que permiten elaborar modelos
para soluciones basadas en software (y por lo tanto una de las características
principales de UP) “lo que en el contexto del proceso de desarrollo de software es
una simplificación de la realidad que ayuda al equipo del proyecto a entender
ciertos aspectos de la complejidad inherente del software, organizar el esfuerzo de
desarrollo y facilitar la posibilidad de re-utilización y evolución del sistema” [3].
A partir de un recorrido guiado a través de las instalaciones del ICN para conocer
el procedimiento que se lleva a cabo luego de la recolección de especímenes en
campo, reuniones con la doctora Lauren, el curador general y el líder del programa
2 http://www.biovirtual.unal.edu.co/ICN/
3 http://arquisoft.udistrital.edu.co/portal
15
de Informática de la Biodiversidad del Instituto de Ciencias Naturales de la
Universidad Nacional, se evidenció que la aplicación Plantae permitirá registrar y
almacenar los datos recolectados mejorando el proceso de captura de datos de
especímenes en campo, pero no contempla una solución que permita la validación
de la información capturada, generación de las etiquetas de cada espécimen y
finalmente su inclusión en la base de datos del ICN.
Para dar solución a este nuevo problema surge la idea de desarrollar una solución
basada en software que permitirá migrar los datos que fueron recolectados a
través del aplicativo móvil Plantae, además de brindar al biólogo recolector la
posibilidad de seleccionar, modificar y validar la información recolectada de cada
espécimen, y enviar los registros que él desee que sean incluidos en la base de
datos del ICN, evitando la manipulación reiterada de los mismos y disminuyendo
los fallos al momento de digitalización de un espécimen.
16
4. MARCO CONTEXTUAL DEL PROBLEMA
4.1.1 Recolección
4.1.2 Secado
4.1.4 Montaje
17
4.1.5 Sellado
4.1.6 Cuarentena
4.1.9 Digitalización
18
El proceso descrito anteriormente se representa en el siguiente diagrama de flujo (Figura 2).
Figura 2. Diagrama de flujo del proceso de inclusión de un espécimen recolectado en la base de datos del ICN. Fuente. Este
trabajo4
4 Este diagrama de flujo fue realizado a partir de la información recolectada en la visita al ICN por parte de los autores del proyecto.
Para mostrar con mayor claridad el flujo del proceso que se muestra en la Figura 2, la Figura 3 representa la interacción entre
las aplicaciones que intervienen sin el prototipo propuesto y en la Figura 4 cómo sería la interacción con el mismo a través de
la notación de BPMN.
Figura 3. Proceso actual de recolección y manejo de información de especímenes de flora del ICN en notación BPMN. Fuente.
Este trabajo5
5 Este diagrama en la notación BPMN fue realizado por parte de los autores del proyecto.
Figura 4. Proceso propuesto de recolección y manejo de información de especímenes de flora del ICN en notación BPMN.
Fuente. Este trabajo6
6 Este diagrama en la notación BPMN fue realizado por parte de los autores del proyecto.
5. MARCO REFERENCIAL TECNOLÓGICO
22
5.2 ZK
5.2.1 Arquitectura de ZK
23
La Figura 5 corresponde a la arquitectura simplificada de ZK. Cuando un
navegador visita una página de una aplicación en ZK, ZK crea los componentes
escritos en ZUL y los renderiza en el navegador. Se pueden manipular los
componentes a través del controlador de la aplicación para implementar lógica de
presentación de interfaz gráfica. Todos los cambios que se realizan en los
componentes se verán reflejados automáticamente en el navegador del usuario y
ZK maneja la comunicación subyacente.
Para crear una aplicación de arquitectura MVC con ZK las tres capas (modelo-
vista-controlador) se debe tener en cuenta lo siguientes términos:
• Vista: Es una capa creada con los widgets de ZK, ya sea a través de
notación XML en un archivo .ZUL o a través de Java directamente.
• Controlador: Es una capa de clases en la que se listan los componentes
de la vista para su manipulación, adicionalmente, en estas clases se crean
los objetos del modelo que se comunicarán con la vista.
• Modelo: Son las clases que contienen la lógica de negocio del aplicativo.
24
5.2.3 ZK con MVVM
5.3 JPA
5.4 MySQL
MySQL ofrece un muy rápido, multi-hilo, multi usuario, y robusto servidor de base
de datos SQL. Está diseñado para sistemas de producción con alta carga de
misión crítica, así como para integrarse en software de despliegue masivo [15].
25
5.5 SOBRE LA MIGRACIÓN DE DATOS
Aunque una migración puede tener todo un proceso con complejidad alta, si dicho
proceso es bien definido, la migración permite hacer una manipulación clara de los
datos, brindando a las partes involucradas la certeza de obtener información
consistente después del proceso.
Una de las formas para migrar datos de una base de datos es mediante archivos
con un formato específico, algunos de estos son:
5.5.1 CSV
CSV traducido como “valores separados por coma” por sus siglas en inglés
(Comma-Separated Value) es un formato de archivo usado para intercambiar
datos entre diferentes aplicaciones. A pesar de ser un formato muy común de
intercambio de datos, no ha sido formalmente documentado, sin embargo se
puede considerar un pseudo-estándar [18].
5.5.2 XML
5.5.3 XLS
26
El contenido del libro de trabajo está típicamente organizado en un diseño basado
en malla y frecuentemente incluye datos numéricos, datos estructurados y
fórmulas [20].
5.5.4 HTML
5.6 SPECIFY
La misión del proyecto Apache POI es crear y mantener API's de Java para
manipular varios formatos de archivo basados en el estándar de Open Office XML
OOXML (por sus siglas en inglés Office Open XML standards) y el formato de
Microsoft de documentos compuestos OLE2. En resumen, Apache POI permite
leer y escribir archivos de MS Excel, MS Word y MS Power Point usando java [23].
5.7.2 Itext
Es una biblioteca de código abierto para crear y manipular archivos PDF en JAVA,
27
le da a los desarrolladores máxima flexibilidad para programar PDFs avanzados y
construir cualquier escenario de generación de documentos personalizado [24].
5.8.1 Junit
Junit fue iniciado por Kent Beck y Erich Gamma a finales de 1995 y es hoy en día
un estándar para pruebas unitarias en aplicaciones Java [27].
28
6. MARCO METODOLÓGICO
29
6.1.1.1 Fase de Inicio
En esta fase se desarrolla una descripción del producto final acompañado del
modelado de casos de uso, además se realiza una definición preliminar de la
arquitectura y una estimación de plazos y costos.
El proceso unificado consiste en una serie de flujos de trabajo que van desde los
requisitos hasta las pruebas. Los flujos de trabajo desarrollan modelos, desde el
modelo de casos de uso hasta el modelo de prueba. Los flujos interactúan de la
siguiente forma:
30
Figura 9. Flujos de trabajo en UP. Fuente. [28].
31
• Diagrama de casos de uso: Un caso de uso es un fragmento de
funcionalidad del sistema que proporciona al usuario un resultado
importante. Los casos de uso representan los requisitos funcionales. Todos
los casos de uso juntos constituyen el modelo de casos de uso, el cual
describe la funcionalidad total del sistema. Además los casos de uso guían
el proceso de desarrollo [28].
32
programación de funcionalidades.
33
7. BREVE EXPLICACIÓN DE LA METODOLOGÍA DE DESARROLLO
APLICADA Y ENTREGABLES
• El diagrama de clases.
• El diagrama relacional.
• Los diagramas de máquinas de estado.
• Los diagramas de secuencia.
34
• El mapa de navegación.
• Diagrama de despliegue.
Figura 10. Organización del modelamiento del prototipo. Fuente. Este trabajo.
35
que son archivos con la extensión zul.
De igual manera se adjunta el script de creación de la base de datos y el script
para insertar los datos iniciales necesarios para el funcionamiento del prototipo.
36
8. MODELO FUNCIONAL
• Realizar el cargue del archivo generado por Plantae que contiene los datos
de los especímenes recolectados en campo para iniciar la migración de los
datos a la base de datos intermedia.
37
Si la migración de los datos no es exitosa:
• Se notificará inmediatamente al usuario por medio de un mensaje en el
aplicativo el fallo en el cargue del archivo y el motivo de dicho fallo.
• Consultar los especímenes que le han sido enviados por los recolectores
para su validación.
• Agregar la información como el código de colección y código de barras, si
determina que sí debe ser incluido en la base de datos del ICN.
• Rechazar una solicitud de inclusión si determina que el espécimen no debe
ser incluido en la base de datos del ICN.
• Migrar los datos de los especímenes que son aprobados a la base de datos
del ICN.
• Ver un histórico de los especímenes que han sido migrados a través del
aplicativo a la base de datos del ICN.
38
8.2 DEFINICIÓN DE REQUERIMIENTOS
39
CÓDIGO REQUERIMIENTO DESCRIPCIÓN
enviada la solicitud de migración a
la base de datos del ICN.
RFU007 Seleccionar y enviar los Los registros seleccionados se
especímenes que el recolector almacenan con un estado definido,
requiere que sean a la espera de la validación y
almacenados en la base de confrontación de la información con
datos del ICN. el ejemplar físico.
RFU008 Generar las etiquetas con una Permite generar e imprimir
plantilla establecida por el ICN. etiquetas de los especímenes cuya
información haya sido obtenida
mediante la aplicación móvil
Plantae y esté cargada en el
aplicativo.
RFU009 Editar los especímenes Permite al rol validador validar o
enviados por el recolector al agregar el código de barras y
usuario validador. código de colección a los registros
antes de ser migrados a la base de
datos del ICN.
RFU010 Migrar los especímenes de la Permite al validador migrar a la
base de datos intermedia a la base de datos del ICN, los
base de datos del ICN. especímenes que cumplen con los
requisitos establecidos por el ICN y
se encuentren almacenados en la
base de datos intermedia.
RFU011 Consultar el estado de los Permite consultar el estado del
especímenes. espécimen durante todo el proceso
de migración a la base de datos del
ICN.
RFU012 Visualizar el histórico de los Permite visualizar los registros que
registros que fueron migrados a fueron migrados desde la base de
la base de datos del ICN. datos intermedia a la base de
datos del ICN.
RFU013 Visualizar el histórico de los Permite ver el histórico de los
archivos que han sido cargados archivos que han sido cargados en
en el prototipo. el prototipo. Indicando la cantidad
de registros y la fecha del cargue
del archivo.
40
8.3 REQUERIMIENTOS ESPECÍFICOS DE INTERFACES
41
8.6 MODELO FUNCIONAL BASADO EN CASOS DE USO
42
uc Casos de uso
CU014 Ver
CU013 Listar detalles CU016 Cancelar
especímenes espécimen edición espécimen
Estos extend son
CU027 Mostrar CU025 Listar excluyentes: si se
detalles de solicitud solicitudes de selecciona la
Usuario «extend»
de inclusión inclusión «extend» opción guardar no
«i ncl ude» «extend»
CU015 Editar se podrá cancelar
espécimen la edición, y si se
«extend»
«in clude»
CU012 Gestionar selecciona la
CU028 Mostrar
especímenes opción cancelar no
información a
se podrá guardar
migrar CU024 Consultar «extend»
«extend » CU018 Filtrar «extend» la edición
solicitudes de
especímenes
inclusión
«extend» « extend» CU017 Guardar
Estos extend son «e xtend» edición
CU029 Aprobar Validador Recolector
excluyentes: si el solicitud CU019 Eliminar espécimen
registro se «extend»
CU020 Exportar
«e xtend» espécimen
aprueba NO podrá etiqueta
ser rechazado, y
CU026 Filtrar
si ya fue
CU030 Rechazar solicitudes de Administrador
rechazado no Módulo de selección y envío de especímenes
solicitud inclusión
podrán ser
aprobado
Módulo de gestión de usuarios CU021 CU022 Listar
Seleccionar especímenes para
« include»
espécimen envío
CU031 Listar
usuarios
« extend»
«extend» «extend»
CU035 Filtrar CU023 Enviar
usuarios especímenes para
«extend»
CU032 Crear
«extend» inclusión
usuario
CU034 Modificar
CU033 Consultar
usuario
usuario
uc Casos de uso
M ó d u lo d e co n tro l d e a cce so
CU003 Validar
existencia de usuario
« i n cl u d e »
« e xte n d »
« e xte n d »
Usuario
Figura 12. Diagrama de casos de uso del módulo de control de acceso. Fuente.
Este trabajo.
44
Tabla 2. Iniciar aplicación
CASO DE USO
Código CU001 Nombre Iniciar aplicación
Actores Usuario
Tipo Primario X Secundario Opcional
Descripción El usuario ingresa la URL en el navegador WEB posteriormente
el sistema le mostrará la ventana donde el usuario se
autenticará.
Pre-condición Tener instalado en el computador un navegador WEB y tener
conexión a Internet.
Post-condición Mostrar ventana de control de acceso si hay respuesta del
servidor.
ESCENARIO
act CU001 Iniciar Aplicación
Usuario Sistema
Ini ci o
Ingresar la URL de la
aplicación en el Establecer conexión con
nav egador Web y dar el serv idor
Enter
NO
Mostrar mensaj e de ¿Conexión
error de conexión exi tosa?
SI
Fin
45
Tabla 3. Iniciar sesión
CASO DE USO
Código CU002 Nombre Iniciar sesión
Actores Usuario
Tipo Primario X Secundario Opcional
Descripción El usuario ingresa usuario y contraseña en la ventana de control
de acceso y selecciona la opción aceptar.
Pre-condición Cargar el aplicativo a través del navegador WEB.
Post-condición Cargar la página principal donde se despliegan las opciones de
menú de acuerdo al rol o los roles o mostrar un mensaje de
“Usuario y/o contraseña no validos” si el usuario ingresó el
usuario o la contraseña incorrecta.
ESCENARIO
act CU002 Iniciar sesión
Usuario Sistema
In ici o
[NO]
u su arioCo nAcceso
!= nul l
[SI]
usuari oConAcce so
contraseña
Cifrar contraseña de
entrada [NO]
Comparar contraseña de
entrada cifrada con
contraseña de BD
¿Contraseña es
váli da?
[SI]
usuario
Habilitar menú
según rol
Fin al
46
Tabla 4. Validar existencia de usuario
CASO DE USO
Código CU003 Nombre Validar existencia de usuario
Actores Sistema
Tipo Primario X Secundario Opcional
Descripción El sistema valida contra la base de datos si el usuario y
contraseña ingresados se encuentran en la base de datos y
retorna el usuario con acceso que corresponde al usuario
ingresado y que se encuentra almacenado en la base de datos.
Pre-condición El usuario ingresa su usuario, contraseña y selecciona la opción
aceptar.
Post-condición Desplegar opciones de menú según el rol o los roles.
Mostrar mensaje si el usuario y contraseña son incorrectos.
Mostrar mensaje si el usuario no se encuentra activo.
ESCENARIO
act CU003 Validar existencia de usuario
retornar retornar
usuarioConAcceso usuarioConAcceso
null
usuarioConAcce so
u suario ConAcceso
usuarioCon Acceso
47
Tabla 5. Habilitar menú según rol
CASO DE USO
Código CU004 Nombre Habilitar menú según rol
Actores Sistema
Tipo Primario X Secundario Opcional
Descripción El sistema verifica los roles del usuario y habilita las opciones
de menú dependiendo de dichos roles.
Pre-condición El usuario ingreso unas credenciales válidas y dio clic en
iniciar sesión
Post-condición Desplegar opciones de menú según el rol o los roles del
usuario.
ESCENARIO
act CU004 Habilitar menú según rol
l ista Ro les
¿h ay m ás
ro les?
[SI]
¿rol =
adm i nistrad or?
[SI]
¿ro l =
recol ector?
[SI] [NO]
¿ro l =
valid ador?
[SI]
Fi n
48
Tabla 6. Cerrar sesión
CASO DE USO
Código CU005 Nombre Cerrar sesión
Actores Usuario
Tipo Primario X Secundario Opcional
Descripción El usuario elige la opción de menú cerrar sesión. El sistema
borra los datos de la sesión, retornando al usuario a la ventana
de control de acceso.
Pre-condición El usuario debe haber iniciado sesión.
Post-condición Mostrar ventana de control de acceso.
ESCENARIO
act CU005 Cerrar Sesión
Usuario Sistema
Inicio
Fi n
49
8.6.2 Módulo de selección y cargue de archivos
uc Casos de uso
50
Tabla 7. Gestionar archivos de especímenes
CASO DE USO
Código CU006 Nombre Gestionar archivos de especímenes
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector elige la opción importar datos de especímenes, el
sistema carga el formulario de importar datos de especímenes
y lista el histórico de archivos cargados.
Pre-condición Tener una sesión activa y el rol del usuario sea recolector.
Post-condición Habilitar la opción de cargar archivo y listar el histórico de
archivos cargados.
ESCENARIO
act CU006 Gestionar archiv os de especímenes
Recolector Sistema
Ini cio
u suario Co nA cce so
Listado de registro s
Mostrar listado de
archiv os
Fi n
51
Tabla 8. Listar histórico de archivos guardados
CASO DE USO
Código CU007 Nombre Listar histórico de archivos guardados
Actores Sistema
Tipo Primario X Secundario Opcional
Descripción El sistema consulta en la base de datos todos los archivos que
hayan sido subidos al prototipo por el usuario conectado.
Pre-condición Haber dado clic en la opción de menú importar datos de
especímenes.
Post-condición Mostrar el histórico de archivos cargados por el usuario.
ESCENARIO
act CU007 Listar histórico de archiv os cargados
Listar registros
Listado de Listado de
registros registros
52
Tabla 9. Cargar archivo
CASO DE USO
Código CU008 Nombre Cargar archivo
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector elige la opción cargar archivo y el sistema
desplegará la ventana que permitirá la búsqueda y selección del
archivo, una vez el usuario seleccione el archivo el sistema
valida el tipo de archivo, si es válido el sistema habilita la opción
guardar.
Pre-condición Tener la opción de menú importar datos de especímenes
abierta.
Post-condición Habilitar la opción de guardar archivo o cancelar cargue archivo
o generar mensaje de error y listar el histórico de archivos
cargados.
ESCENARIO
act CU008 Cargar archiv o
Recolector Sistema
In i cio
Buscar y seleccionar
archiv o almacenado en el
dispositiv o móv il
archi vo
archi vo
Seleccionar opción
a rch ivo
[Acep ta r]
archivo
[SI]
Mostrar mensaj e
Selecciona aceptar
"Archivo incorrecto"
53
Tabla 10. Guardar archivo
CASO DE USO
Código CU009 Nombre Guardar archivo
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector elige la opción guardar y el sistema almacena las
características del archivo y procesa los registros
(especímenes) que contiene, limpia y carga nuevamente el
listado del histórico de archivos cargados.
Pre-condición Realizar la búsqueda, selección y cargue del archivo.
Post-condición Actualizar el listado del histórico de archivos cargados,
procesar los registros (especímenes) que almacenaba el
archivo cargado.
ESCENARIO
act CU009 Guardar archiv o
Recolector Sistema
Inicio
l ista do d e registro s
Actualizar listado de
registros en v entana
Fina l
54
Tabla 11. Refrescar listado de histórico de archivos cargados
CASO DE USO
Código CU010 Nombre Refrescar listado de histórico de archivos
cargados
Actores Sistema
Tipo Primario X Secundario Opcional
Descripción El sistema refrescará el listado del histórico de los archivos
cargados.
Pre-condición Almacenar un nuevo archivo.
Post-condición El sistema se mantiene con los datos consistentes después de
la consulta a la base de datos intermedia.
ESCENARIO
act CU010 Refrescar listado de histórico de archiv os cargados
Actualizar listado de
registros
l i sta do d e
regi stros
l istado de
regi stro s
55
Tabla 12. Cancelar cargue de archivos
CASO DE USO
Código CU011 Nombre Cancelar cargue de archivos
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El sistema cancela la carga de un archivo.
Pre-condición Tener seleccionado un archivo para ser cargado.
Post-condición El sistema deja el prototipo en el menú importar datos de
especímenes abierta
ESCENARIO
act CU011 Cancelar cargue de archiv o
Recolector Sistema
Ini cio
Elige la opción de
cancelar cargue de Limpiar ruta de archiv o
archiv o
Deshabilitar botones de
Guardar archiv o y
Cancelar archiv o
Fin
56
8.6.3 Módulo de gestión de especímenes
uc Casos de uso
CU013 Listar
especímenes CU014 Ver detalles CU015 Crear opciones CU016 Eliminar
espécimen «i nclude » desplegadas «inclu de» opciones desplegadas
«exte nd»
«in cl ude» «extend»
CU017 Editar CU018 Cancelar E stos extend so n
espécimen «extend» edición espécimen excluyentes: si se
se lecci ona la opció n
CU012 Gestionar gu ardar no se podrá
especímenes «extend» cancela r la edi ci ón, y
si se sel ecciona la
«exte nd» CU020 Filtrar CU019 Guardar op ci ón cancela r no se
espécimen edición espécimen po drá guardar l a
Recolector « extend»
ed ición
«exten d»
CU021 Eliminar
CU022 Exportar espécimen
etiqueta
57
Tabla 13. Gestionar espécimen
CASO DE USO
Código CU012 Nombre Gestionar espécimen
Actores Usuario
Tipo Primario X Secundario Opcional
Descripción El usuario elige la opción de menú gestión de especímenes, el
sistema desplegará la ventana y listará los especímenes.
Pre-condición El usuario selecciona la opción de menú gestión de
especímenes.
Post-condición Mostrar el listado de los especímenes.
ESCENARIO
act CU012 Gestionar especímenes
Recolector Sistema
Ini ci o
usua ri oConAcceso
u suari oConAcceso
Listar Especímenes
Mostrar listado de
especímenes
Fin
58
Tabla 14. Listar especímenes
CASO DE USO
Código CU013 Nombre Listar especímenes
Actores Sistema
Tipo Primario X Secundario Opcional
Descripción El sistema listará los especímenes que pertenecen al usuario.
Pre-condición Seleccionar la opción de menú especímenes.
Post-condición Se listarán los especímenes que pertenecen al usuario.
ESCENARIO
Listar especímenes
Realizar búsqueda de « BD In te rm e d ia »
especímenes Especímenes
usu ari o Con Acce so
l ista d e re gi stro s
So l o l ista rá l o s
l ista d e
e spe cím e n es q u e
re gi stro s
p e rte n ece n a l u sua ri o.
Cargar lista con registros
l i sta d e
e spe cím e n es
l i sta de
e sp e cím e ne s
59
Tabla 15. Ver detalles espécimen
CASO DE USO
Código CU014 Nombre Ver detalles espécimen
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector selecciona la opción ver detalles de uno de los
especímenes listados por el sistema, el sistema despliega la
información asociada al espécimen seleccionado.
Pre-condición Dar clic en la opción ver detalles de un espécimen.
Post-condición Mostrar detalles del espécimen, si el estado del espécimen es
diferente de enviado y aprobado se habilitará la opción de editar
espécimen.
ESCENARIO
act CU014 Ver detalles espécimen
Recolector Sistema
In i cio
e sp écim e n
[S I]
e sp é ci m en
60
Tabla 16. Editar espécimen
CASO DE USO
Código CU015 Nombre Editar espécimen
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector selecciona la opción editar, el sistema habilita los
campos que se podrán editar y las opciones guardar y cancelar
y deshabilita la opción editar.
Pre-condición Haber seleccionado la opción ver detalles de un espécimen
Post-condición Los campos editables quedan habilitados para edición.
ESCENARIO
act CU015 Editar espécimen
Recolector Sistema
Ini cio
La inform ación editabl e es la rel acionada con :
Evento de colecci ón
Habilitar campos editables Ubicaci ón
Elige la opción editar T axonom ía
del registro
Determ i nación
Atributos d el espéci m e n
Planta
Hoja
Fl or
Fruto
Infl orescencia
Habilita las opciones
T all o
guardar y cancelar
Raíz
Fi n
61
Tabla 17. Cancelar edición espécimen
CASO DE USO
Código CU016 Nombre Cancelar edición espécimen
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector selecciona la opción cancelar, el sistema deshace
los cambios realizados por el usuario, deshabilita los campos
editables, así mismo deshabilita las opciones de cancelar y
guardar y habilita nuevamente la opción de editar.
Pre-condición Haber seleccionado la opción editar
Post-condición Deshacer los cambios y deshabilitar los campos editables.
ESCENARIO
act CU016 Cancelar edición espécimen
Recolector Sistema
In icio
Deshabilitar campos
editables
Deshabilitar opciones
guardar y cancelar
Fin
62
Tabla 18. Guardar edición espécimen
CASO DE USO
Código CU017 Nombre Guardar edición espécimen
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector selecciona la opción guardar, el sistema verifica si
hay cambios en los formularios y procede a ejecutar la
actualización del registro (espécimen), finalmente notifica al
usuario si la actualización fue o no correcta.
Pre-condición Haber seleccionado la opción editar
Post-condición Actualizar el registro con los nuevos cambios.
ESCENARIO
act CU017 Guardar edición espécimen
Recolector Sistema
Ini ci o
¿Ha y ca m bi o s e n
l a i n form a ci ó n ?
[SI]
[SI]
Mostrar mensaj e de
actualización correcta
Elige opción ok
Recuperar v alores
originales
Deshabilitar campos
editables
Deshabilitar opción
cancelar y guardar
Fi n
63
Tabla 19. Filtrar espécimen
CASO DE USO
Código CU018 Nombre Filtrar espécimen
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector ingresa un valor en los campos de filtro. El sistema
mostrará los resultados de la búsqueda de acuerdo a los filtros
ingresados.
Pre-condición El recolector selecciona la opción de menú Especímenes.
Post-condición Listar los especímenes que cumplan con los filtros ingresados
por el recolector
ESCENARIO
act CU018 Filtrar especímenes
Recolector Sistema
Inici o
Actualizar listado en la
v entana.
Fin
64
Tabla 20. Eliminar espécimen
CASO DE USO
Código CU019 Nombre Eliminar espécimen
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector selecciona los especímenes que desea eliminar y
elige la opción eliminar, el sistema desplegará una ventana
donde el recolector confirmará la acción de eliminación. Sí el
recolector confirma la acción el sistema elimina el o los
registros seleccionados si y solo si el estado del espécimen es
diferente a enviado, aprobado o pendiente, en cuyo caso no
podrán ser eliminados.
Pre-condición Seleccionar los especímenes a eliminar.
Post-condición Actualizar los listados de los especímenes en donde se refleja
el cambio realizado.
ESCENARIO
act CU019 Eliminar espécimen
Recolector Sistema
Ini ci o
Selecciona los
especímenes que quiere
eliminar
l i sta E sp eci m e ne s
Mostrar v entana de
Elige la opción Eliminar
confirmación de
eliminación
Seleccionar opción
[A cep tar]
l i sta E sp e ci m e ne s
tamaño = Número de
especímenes
seleccionados
li staE sp e ci m e n es
li staE sp e ci m e n es
i=0, correctos=0,
incorrectos=0
li staE sp e ci m e n es
¿i <ta m a ño ?
[S I]
li staE sp e ci m e n es
[NO ]
Tomar registro i de la lista
«B D Inte rm e di a »
Borrar registro de la base
espécimen
de datos
[NO ]
incorrectos++ correctos++
i++
Fin
65
Tabla 21. Exportar etiqueta
CASO DE USO
Código CU020 Nombre Exportar etiqueta
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector selecciona uno o varios especímenes y
posteriormente elige la opción generar etiqueta, el sistema
genera un archivo pdf con el total de etiquetas correspondiente
y es enviado al navegador Web para que el archivo sea
descargado
Pre-condición Seleccionar especímenes.
Post-condición Descargar etiqueta a través del navegador web.
ESCENARIO
act CU020 Exportar etiqueta
Recolector Sistema
In icio
Selecciona los
especímenes
li sta do de
Elige la opción generar Crear lista de etiquetas e spe cím ene s tamanio = tamaño del
etiqueta listad o d e l istado de listado de especímenes
li sta do d e
espe cím e ne s e sp ecím en es
e spe cím ene s
l istado de
l istado de e sp ecím en es
e sp ecím en es
i=0
listado de
esp ecím en e s
66
8.6.4 Módulo de selección y envío de especímenes
uc Casos de uso
CU022 Listar
CU021 Seleccionar
especímenes para
espécimen « inclu de» env ío
Recolector
«e xten d»
67
Tabla 22. Seleccionar espécimen
CASO DE USO
Código CU021 Nombre Seleccionar espécimen
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector selecciona la opción de menú solicitar inclusión de
especímenes y selecciona los especímenes que serán incluidos
en la base de datos del ICN, el sistema habilita la opción enviar
solicitud.
Pre-condición Seleccionar especímenes para solicitar su inclusión
Post-condición Habilitar la opción de enviar solicitud.
ESCENARIO
act CU021 Seleccionar espécimen
Recolector Sistema
In i ci o
Fin
68
Tabla 23. Listar especímenes para envío
CASO DE USO
Código CU022 Nombre Listar especímenes para envío
Actores Sistema
Tipo Primario X Secundario Opcional
Descripción El sistema listará todos los especímenes que pueden ser
enviados para su inclusión en la base de datos del ICN que le
pertenezcan al usuario.
Pre-condición El recolector seleccione la opción de menú solicitar inclusión de
especímenes.
Post-condición Cargar el listado de especímenes que pueden ser enviados
para su inclusión en la base de datos del ICN.
ESCENARIO
act CU022 Listar especímenes para env ío
listado de
esp ecím en es lista do d e
esp ecím en es
69
Tabla 24. Enviar especímenes para inclusión
CASO DE USO
Código CU023 Nombre Enviar especímenes para inclusión
Actores Recolector
Tipo Primario X Secundario Opcional
Descripción El recolector envía los especímenes que requiere sean
incluidos a la base de datos del ICN.
Pre-condición El recolector selecciona uno o más de los especímenes listados
y selecciona la opción enviar especímenes.
Post-condición El espécimen queda en estado enviado y a la espera de
aprobación.
ESCENARIO
act CU023 Env iar especímenes para inclusión
Recolector Sistema
Ini cio
Mostrar v entana de
Elige la opción de solicitar confirmación de solicitud
inclusión de especímenes de inclusión de
especímenes
Seleccionar opción
[Aceptar]
li stado de especím enes
[SI]
espéci m en
espécim en
Generar solicitud de [cancelar]
inclusión
espéci m en
correctos++
i++ incorrectos++
Elige la opción
aceptar
Cerrar v entana de
confirmación de solicitud
de inclusión de
especímenes
Fin
70
8.6.5 Módulo de consulta y aprobación de solicitudes de inclusión para
aprobación
Módulo que le permite gestionar las solicitudes de inclusión, esto es: Consultarlas,
aprobarlas o rechazarlas. A este módulo solo tienen acceso los usuarios con el rol
de “Validador”.
uc Casos de uso
CU028 Mostrar
información a migrar «extend»
«include»
«extend»
71
Tabla 25. Consultar solicitudes de inclusión
CASO DE USO
Código CU024 Nombre Consultar solicitudes de inclusión
Actores Validador
Tipo Primario X Secundario Opcional
Descripción El validador selecciona la opción de menú solicitudes de
inclusión y el sistema lista todas las solicitudes de inclusión de
especímenes.
Pre-condición Elegir la opción de menú “Solicitudes de inclusión”.
Post-condición El sistema lista las solicitudes de inclusión que hayan con
estado “Enviado”
ESCENARIO
act CU024 Consultar solicitudes de inclusión
Validador Sistema
In ici o
Desplegar listado de
Selecciona una solicitud especímenes para ser
del listado aprobados
72
Tabla 26. Listar solicitudes de inclusión
CASO DE USO
Código CU025 Nombre Listar solicitudes de inclusión
Actores Sistema
Tipo Primario X Secundario Opcional
Descripción El sistema consulta en la base de datos intermedia las
solicitudes de inclusión que hayan con estado Enviado
Pre-condición Seleccionar la opción Solicitudes de inclusión
Post-condición Listar las solicitudes de inclusión
ESCENARIO
act CU025 Listar solicitudes de inclusión
Listar solicitudes
de inclusión
li stado d e
sol i ci tud es li stado de
so li ci tudes
73
Tabla 27. Filtrar solicitudes de inclusión
CASO DE USO
Código CU026 Nombre Filtrar solicitudes de inclusión
Actores Validador
Tipo Primario X Secundario Opcional
Descripción El validador ingresa un valor en los campos de filtro. El sistema
mostrará los resultados de la búsqueda de acuerdo a los filtros
ingresados.
Pre-condición El validador selecciona la opción de menú solicitudes de
inclusión.
Post-condición Listar las solicitudes de inclusión que cumplan con los filtros
ingresados por el validador
ESCENARIO
act CU026 Filtrar solicitudes de inclusión
Validador Sistema
Ini ci o
Actualizar listado en la
v entana
Fin
74
Tabla 28. Mostrar detalles de solicitud de inclusión
CASO DE USO
Código CU027 Nombre Mostrar detalles de solicitud de inclusión
Actores Validador
Tipo Primario X Secundario Opcional
Descripción El validador elige la opción “Ver más” sobre cualquier solicitud
de inclusión listada por el sistema. El sistema despliega una
ventana con la información completa del espécimen asociado a
la solicitud de inclusión.
Pre-condición Seleccionar la opción Ver más de un espécimen.
Post-condición Mostrar formulario del espécimen.
ESCENARIO
Validador Sistema
Inicio
especim en
Desplegar información
adicional del espécimen
Fin
75
Tabla 29. Mostrar información a migrar
CASO DE USO
Código CU028 Nombre Mostrar información a migrar
Actores Validador
Tipo Primario X Secundario Opcional
Descripción El validador elige la opción “Ver más” sobre cualquier solicitud
de inclusión listada por el sistema.
Pre-condición Seleccionar la opción Ver más de un espécimen.
Post-condición Mostrar formulario del espécimen.
ESCENARIO
act CU028 Mostrar información a migrar
Validador Sistema
Inicio
Desplegar información
adicional del espécimen
Fin
76
Tabla 30. Aprobar solicitud
CASO DE USO
Código CU029 Nombre Aprobar solicitud
Actores Validador
Tipo Primario X Secundario Opcional
Descripción El validador selecciona la solicitud que va a aprobar y el
sistema le despliega la ventana para agregar los códigos para
inclusión, después de ingresarlos el validador da clic en aceptar
y el espécimen es migrado a Specify, además el registro es
actualizado.
Pre-condición Seleccionar la solicitud de inclusión del espécimen.
Post-condición El espécimen es ingresado en la base de datos oficial del ICN.
ESCENARIO
act CU029 Aprobar solicitud
Validador Sistema
In ici o
codi go Barra s,
codi go Col eccio n
Selecciona opción
[A ce ptar]
Desplegar cuadro de
Selecciona opción confirmación de
aprobación
[A ce ptar]
« BD ICN»
[Can ce la r]
Base de datos Insertar registros
oficial del ICN
[Can ce la r]
«B D In te rm e ...
Cambiar estado del
Especimen
espécimen a Aprobado
[S I]
Mostrar mensaje
Elige la opción aceptar "Espécimen ingresado en
la base de datos
correctamente"
Fi n
77
Tabla 31. Rechazar solicitud
CASO DE USO
Código CU030 Nombre Rechazar solicitud
Actores Validador
Tipo Primario X Secundario Opcional
Descripción Una vez el validador selecciona una solicitud de inclusión y
elige la opción “Rechazar solicitud”, el sistema desplegará una
ventana donde le solicita al validador el motivo de rechazo de la
solicitud. Después de rechazar la solicitud el sistema actualizará
el estado de la solicitud de inclusión y del espécimen.
Pre-condición Seleccionar una solicitud de inclusión de espécimen.
Post-condición La solicitud de inclusión cambia a Rechazada y del espécimen
también se cambiará su estado.
ESCENARIO
act CU030 Rechazar solicitud
Validador Sistema
In ici o
Desplegar v enta de
motiv o de rechazo
A ce p ta r
Mostrar cuadro de
Seleccionar opción
confirmación de rechazo
[Ca nce l a r]
[A ce p ta r]
« BD In te rm e d i ...
Actualizar registro en la
Espécimen,
base de datos
SolicitudInclusion
[S I]
Mostrar mensaj e de
actualización correcta
Fi n
78
8.6.6 Módulo de gestión de usuarios
Módulo que permite la administración de los usuarios del prototipo. A este módulo
solo tienen acceso los usuarios con el rol de “Administrador”.
uc Casos de uso
«exten d»
Administrador
«exten d»
«exten d»
CU034 Modificar
usuario
CU035 Filtrar
usuarios
Figura 17. Diagrama de casos de uso del módulo de gestión de usuarios. Fuente:
Este trabajo.
79
Tabla 32. Listar usuarios
CASO DE USO
Código CU031 Nombre Listar usuarios
Actores Administrador
Tipo Primario X Secundario Opcional
Descripción El administrador ingresa a la opción de menú administración de
usuarios, el sistema consulta y le muestra los usuarios con
acceso almacenados en el mismo.
Pre-condición Seleccionar opción administración de usuarios.
Post-condición Mostrar lista de usuarios con acceso almacenados.
ESCENARIO
act CU031 Listar usuarios
Administrador Sistema
Inicio
listaUsuarios
Mostrar listado de
usuarios
Fin
80
Tabla 33. Crear usuario
CASO DE USO
Código CU032 Nombre Crear usuario
Actores Administrador
Tipo Primario X Secundario Opcional
Descripción El administrador selecciona la opción agregar usuario, el
sistema despliega la ventana con el formulario de creación de
usuario, el administrador ingresa los datos del usuario.
Pre-condición Seleccionar la opción de agregar usuario.
Post-condición El nuevo usuario es creado.
ESCENARIO
Administrador Sistema
L o s ca m p o s d el form u la ri o so n :
In icio - Id e n ti fica ci ó n*
- No m b re *
- P ri m e r a p e ll id o *
- S e gu n d o a p el li do
- Co rre o e l ectró ni co
Desplegar v entana con - In stitu ci ón
Selecciona opción
agregar usuario formulario de creación de - Usu a ri o *
usuario - S e le ccio n a r esta d o * (A ctivo ,
i na cti vo )
- Co ntra señ a *
- S e le ccio n a r ro le s (reco le cto r,
Ingresar datos de usuario
va lid a d o r y a d m i ni stra d or)
_ _ _ __ _ _ _ __ _ _ _ __ _ _
d a to s d e re g istro * Ca m p o s o b li g ato rio s
Seleccionar opción
[A ce p ta r]
d a to s d e re g istro
Verificar campos
obligatorios
d a to s d e re g istro
¿ca m p o s
Resaltar campos o b lig a to rio
obligatorios [NO ] com pl e to s?
[SI]
d a to s d e re g istro
« B D In te rm e d ia »
usuarioConAcceso Registrar usuario [Can ce la r]
¿crea ció n
corre cta ?
[NO ] [S I]
Seleccionar aceptar
Fi n
81
Tabla 34. Consultar usuario
CASO DE USO
Código CU033 Nombre Consultar usuario
Actores Administrador
Tipo Primario X Secundario Opcional
Descripción El administrador selecciona un usuario del sistema y selecciona
la opción “visualizar”. El sistema despliega una ventana con la
información del usuario.
Pre-condición Seleccionar un usuario del prototipo.
Post-condición Ventana desplegada con la información del usuario
seleccionado.
ESCENARIO
act CU033 Consultar usuario
Administrador Sistema
In i cio
Selecciona opción
consultar
Mostrar v entana con la
información del usuario
Fi n
82
Tabla 35. Modificar usuario
CASO DE USO
Código CU034 Nombre Modificar usuario
Actores Administrador
Tipo Primario X Secundario Opcional
Descripción El administrador selecciona un usuario del sistema y selecciona
la opción “Editar”. El sistema despliega una ventana con la
información del usuario permitiendo que la misma sea editada.
Pre-condición Seleccionar un usuario del prototipo.
Post-condición Ventana desplegada con la información del usuario
seleccionado.
ESCENARIO
act CU034 Modificar usuario
Administrador Sistema
In ici o
da to s d el reg istro
Seleccionar opción
[A ce p tar]
d ato s d el re g istro
« B D In te rm ed ia»
usuarioConAcceso Actualizar registro
[S I]
Fin
83
Tabla 36. Filtrar usuarios
CASO DE USO
Código CU035 Nombre Filtrar usuarios
Actores Administrador
Tipo Primario X Secundario Opcional
Descripción El administrador ingresa un valor en los campos de filtro. El
sistema mostrará los resultados de la búsqueda de acuerdo a
los filtros ingresados.
Pre-condición El administrador selecciona la opción de menú gestión de
usuarios.
Post-condición Listar los usuarios que cumplan con los filtros ingresados por el
administrador.
ESCENARIO
act CU035 Filtrar usuarios
Administrador Sistema
Inicio
Actualizar listado en la
v entana
Fi n
84
9. MODELO ESTRUCTURAL
Se define el modelo estático del aplicativo haciendo uso del diagrama de clases,
permitiendo evidenciar la realización de los casos de uso planteados
anteriormente.
Este diagrama fue elaborado a partir del modelo funcional basado en casos de
uso. Además del diagrama de clases se anexa el diccionario de clases para detalle
del modelo en el CD anexo en la ruta: 4. Diccionarios/4. Diccionario de clases.pdf.
85
Figura 18. Diagrama de clases. Fuente. Este trabajo
9.2 MODELO DE PERSISTENCIA
Este modelo está representado a través del modelo relacional, el cual organiza y
representa los datos en forma de tablas y relaciones.
87
Figura 19. Diagrama relacional. Fuente. Este trabajo.
9.2.1 Estructuras recursivas
Dado los beneficios que otorgan estas estructuras, en el modelo relacional de este
prototipo se hace uso de ellas para el manejo de esa misma información, el
funcionamiento es el siguiente:
(SE C_P ad re =
SE C_Si tio _Geo grafi co )
«FK»
0 ..1 0..*
INT_Sitio_Geografico
«co lum n»
*PK S E C_ Siti o_ Ge og ra fico: INT E GER
* S itio _G e og rafico: VARCHA R(30 )
* Nom bre: VARCHAR(13 0)
* Nivel: INT EG ER
FK S E C_ Pad re : INT EG ER
«PK »
+ INT _ Siti o_G eog ra fico_ PK(INT E GER)
«u niq ue »
+ INT _ Siti o_G eog ra fico_ U1(VARCHAR)
+ INT _ Siti o_G eog ra fico_ U2(VARCHAR)
«FK»
+ INT _ Siti o_G eog ra fico_ F1 (INT EG ER)
89
Por su parte, la tabla INT_Taxonomia tiene la misma estructura recursiva, en la
tabla se almacena la información relacionada a la familia, el género y la especie.
El nivel indica la jerarquía del registro de la tabla donde 1 equivale a familia, 2 a
género y 3 a especie.
Como patrón de fuente de datos se utilizó Row Data Gateway, ya que para cada
registro de cada tabla de la fuente de datos se creará una ejemplificación del
objeto equivalente que puede ser accedido desde el prototipo ocultando los
detalles de acceso a la fuente de datos [8].
GeneralSessionBean
90
9.2.3.2 Clase a tabla en jerarquías de herencia
Representa una herencia jerárquica de clases con una tabla por cada clase. Se
usa esta estrategia de mapeo en las tablas INT_Especimen y INT_Planta lo cual
permite que la información relacionada al espécimen este separada de la
información relacionada a la planta.
91
class Modelo de clases
Planta
- secPlanta: int
- altura: String
- dap: String
- abundancia: String
- descripcionPlanta: String
- descMuestrasAsociadas: String
- meTraMueAsociadas: String
- color: Color
- flor: Flor
- fruto: Fruto
- tallo: Tallo
- hoja: Hoja
Especimen - inflorescencia: Inflorescencia
- atributoEspecimen: AtributoEspecimen - raiz: Raiz
- codigoBarras: int
- codigoColeccion: int «property get»
- codigoRecoleccion: String + getAbundancia() : String
- colectorPrincipal: UsuarioConAcceso + getAltura() : String
- descripcion: String + getAtributoEspecimen() : AtributoEspecimen
- determinacion: Determinacion + getCodigoBarras() : int
- estadoEspecimen: EstadoEspecimen + getCodigoColeccion() : int
- eventoColeccion: EventoColeccion + getCodigoRecoleccion() : String
- localidad: Localidad + getColectoresSecundarios() : List<UsuarioSinAcceso>
- secEspecimen: int + getColor() : Color
- taxonomia: Taxonomia + getDap() : String
- archivo: Archivo + getDescMuestrasAsociadas() : String
- colectoresSecundarios: List<UsuarioSinAcceso> + getDescripcion() : String
+ getDescripcionPlanta() : String
«property get» + getDeterminacion() : Determinacion
+ getAtributoEspecimen() : AtributoEspecimen + getEstadoEspecimen() : EstadoEspecimen
+ getCodigoBarras() : int + getEventoColeccion() : EventoColeccion
+ getCodigoColeccion() : int + getFlor() : Flor
+ getCodigoRecoleccion() : String + getFruto() : Fruto
+ getDescripcion() : String + getHoja() : Hoja
+ getDeterminacion() : Determinacion + getInflorescencia() : Inflorescencia
+ getEstadoEspecimen() : EstadoEspecimen + getLocalidad() : Localidad
+ getEventoColeccion() : EventoColeccion + getMeTraMueAsociadas() : String
+ getLocalidad() : Localidad + getRaiz() : Raiz
+ getSecEspecimen() : int + getSecEspecimen() : int
+ getTaxonomia() : Taxonomia + getSecPlanta() : int
+ getcolectorPrincipal() : UsuarioConAcceso + getTallo() : Tallo
+ getArchivo() : Archivo + getTaxonomia() : Taxonomia
+ getColectoresSecundarios() : List<UsuarioSinAcceso> + getUsuarioConAcceso() : UsuarioConAcceso
«property set» «property set»
+ setAtributoEspecimen(AtributoEspecimen) : void + setAbundancia(String) : void
+ setCodigoBarras(int) : void + setAltura(String) : void
+ setCodigoColeccion(int) : void + setAtributoEspecimen(AtributoEspecimen) : void
+ setCodigoRecoleccion(String) : void + setCodigoBarras(int) : void
+ setDescripcion(String) : void + setCodigoColeccion(int) : void
+ setDeterminacion(Determinacion) : void + setCodigoRecoleccion(String) : void
+ setEstadoEspecimen(EstadoEspecimen) : void + setColectoresSecundarios(List<UsuarioSinAcceso>) : void
+ setEventoColeccion(EventoColeccion) : void + setColor(Color) : void
+ setLocalidad(Localidad) : void + setDap(String) : void
+ setcolectorPrincipal(UsuarioConAcceso) : void + setDescMuestrasAsociadas(String) : void
+ setSecEspecimen(int) : void + setDescripcion(String) : void
+ setTaxonomia(Taxonomia) : void + setDescripcionPlanta(String) : void
+ setArchivo(Archivo) : void + setDeterminacion(Determinacion) : void
+ setColectoresSecundarios(List<UsuarioSinAcceso>) : void + setEstadoEspecimen(EstadoEspecimen) : void
+ setEventoColeccion(EventoColeccion) : void
+ setFlor(Flor) : void
+ setFruto(Fruto) : void
+ setHoja(Hoja) : void
+ setInflorescencia(Inflorescencia) : void
+ setLocalidad(Localidad) : void
+ setMeTraMueAsociadas(String) : void
+ setRaiz(Raiz) : void
+ setSecEspecimen(int) : void
+ setSecPlanta(int) : void
+ setTallo(Tallo) : void
+ setTaxonomia(Taxonomia) : void
+ setUsuarioConAcceso(UsuarioConAcceso) : void
92
class Modelo de datos
INT_Planta
INT_Especimen
«column»
«column»
*PK SEC_Planta: INTEGER
*PK SEC_Especimen: INTEGER
FK SEC_Color_Planta: INTEGER
*FK SEC_Archivo: INTEGER
FK SEC_Flor: INTEGER
* Cod_Recoleccion: VARCHAR(50)
FK SEC_Fruto: INTEGER
Codigo_Coleccion: VARCHAR(32)
FK SEC_Hoja: INTEGER
Codigo_Barras: VARCHAR(32) = NULL +INT _Especim en _PK +INT _Planta _F8
FK SEC_Tallo: INTEGER
*FK SEC_Usuario_Recolector: INTEGER (SEC_Espe cim en = S EC_ Espe cim en)
1 « FK» 1 FK SEC_Raiz: INTEGER
Descripcion: TEXT
FK SEC_Inflorescencia: INTEGER
*FK SEC_Estado_Especimen: INTEGER
FK SEC_Especimen: INTEGER
FK SEC_Taxonomia: INTEGER
Altura: VARCHAR(130)
FK SEC_Determinacion: INTEGER
DAP: VARCHAR(130)
FK SEC_Localidad: INTEGER
Abundancia: VARCHAR(130)
FK SEC_Atributo_Especimen: INTEGER
Descripcion_Planta: TEXT
FK SEC_Evento_Coleccion: INTEGER
Desc_Muestras_Asociadas: TEXT
Tipo: VARCHAR(45) = Planta
Me_Tra_Mue_Asociadas: TEXT
93
class DC01 Diagrama de clases
Usuario
«p ro pe rty ge t»
+ g etCorreo El ectron ico () : S trin g
UsuarioConAcceso + g etIde nti fica cio n() : int
+ g etInstitu cio n() : S tri ng
- con trasen a: S trin g + g etNom b re() : String
UsuarioSinAcceso
- e sta do : String + g etP rim e rAp el lid o() : S tri ng
- role s: Li st<Ro l> + g etS ecUsua rio () : int - de scripcion : String
- u su ari o: Strin g + g etS eg un do Ap el lid o() : S tri ng - tip oUsu ario : String
«p ro pe rty set»
« pro p erty g et» + se tCorre o El e ctron ico (S trin g) : void « prop erty g et»
+ g etCo rre oE lectro nico() : Stri ng + se tId en tifica cio n(i nt) : vo i d + ge tCo rre oE le ctroni co () : Strin g
+ g etIdentificaci on () : in t + se tIn sti tucio n(S trin g) : vo i d + ge tDe scrip cio n() : S tri ng
+ g etInstitu cio n () : String + se tNom bre(S tri ng ) : voi d + ge tId en tifi cacio n() : in t
+ g etNo m b re () : Strin g + se tP rim erAp ell ido (S trin g ) : void + ge tIn stitucion () : Strin g
+ g etPri m e rA pe llid o() : String + se tS ecUsu a rio(int) : voi d + ge tNo m bre () : S trin g
+ g etSe cUsua rio () : in t + se tS eg u n do Ap ell ido (Stri n g) : void + ge tPrim erA pe l li do () : Strin g
+ g etSe gu nd oA pe llid o() : String + ge tSe cUsu ari o () : i nt
+ g etRo les() : Li st<Ro l> + ge tSe gu nd oAp e lli do () : Stri n g
+ g etEstad o () : S tri ng + ge tT i po Usua rio() : String
« pro p erty se t» « prop erty set»
+ setCorreo El ectron ico (S trin g) : void + se tCo rre oE le ctro ni co(String ) : vo id
+ setIde nti fica cio n(int) : voi d + se tDe scripcion (S trin g) : void
+ setInstitu cio n(S tri ng ) : voi d + se tIde ntificacio n (in t) : vo id
+ setNom b re(String ) : vo id + se tInstituci o n (Strin g) : vo id
+ setP rim e rAp e l lid o(S tri ng ) : voi d + se tNo m bre (S trin g) : void
+ setS ecUsuario (int) : voi d + se tPrim erA pe llid o(String ) : vo id
+ setS eg un do Ap el lid o(S tri ng ) : voi d + se tSe cUsua rio (in t) : vo id
+ setRol es(List<Rol >) : vo id + se tSe gu nd oA pe llid o(String ) : vo id
+ setE sta do (S trin g) : void + se tT i po Usu ario(String ) : vo id
94
class Modelo de datos
INT_Usuario_Con_Acceso
«column»
INT_Usuario_Sin_Acceso
*PK SEC_Usuario: INTEGER
«column» * Usuario: VARCHAR(30)
*PK SEC_Usuario: INTEGER * Contrasena: VARCHAR(130)
Tipo_Usuario: CHAR(1) * Estado: CHAR(1)
Identificacion: VARCHAR(20) Identificacion: VARCHAR(20)
Nombre: VARCHAR(150) Nombre: VARCHAR(150)
Primer_Apellido: VARCHAR(150) Primer_Apellido: VARCHAR(150)
Segundo_Apellido: VARCHAR(150) Segundo_Apellido: VARCHAR(150)
Correo_Electronico: VARCHAR(250) Correo_Electronico: VARCHAR(250)
Institucion: VARCHAR(250) Institucion: VARCHAR(250)
Descripcion: TEXT
«PK»
«PK» + INT_Usuario_Con_Acceso_PK(INTEGER)
+ INT_Usuario_Sin_Acceso(INTEGER) «unique»
+ INT_Usuario_Con_Acceso_U1(VARCHAR)
Para el lenguaje de programación JAVA existe una solución que maneja datos
relacionales en aplicaciones bajo este lenguaje, dicha solución es conocida como
Java Persistence API (de ahora en adelante JPA), la cual permite administrar en
conjunto la base de datos y los objetos en tiempo de ejecución.
95
9.3 PLANTAE Y LA EXPORTACIÓN DE LOS DATOS
El archivo CSV resultante es el insumo que usa este prototipo para cargar en la
base de datos la información de los especímenes, en donde cada columna del
archivo se almacena en un campo específico de la base de datos y no es
concatenada con otros datos, esto significa que la segmentación de la información
que se logra en Plantae es preservada en el prototipo.
96
9.4 ESTRATEGIA DE MIGRACIÓN DE DATOS A SPECIFY
2. Algunas tablas de Specify cuentan con campos que pueden ser definidos
por el usuario, estos campos se identifican de la siguiente manera: text1,
text2, number1, number2, YesNo1, YesNo2, por lo que carecen de
significado semántico y además tienen su propio tipo de dato.
Solo se migrarán los campos de los cuales existe una correspondencia entre la
base de datos del prototipo y Specify, de esta manera se evita realizar
modificaciones estructurales sobre la base de datos de Specify que podrían tener
repercusiones en el uso cotidiano de esta herramienta.
En total son 20 campos del prototipo que son migrados a Specifiy. Cabe aclarar
que tanto la información que sea migrada como la que no sea migrada
permanecerá en la base de datos del prototipo.
El listado completo de los campos de la base de datos del prototipo con la relación
97
de las tablas de Specify se podrá ver como anexo dentro del CD en la ruta 1.
Documentos/2 Relacion campos prototipo y Specify.pdf.
Estos campos son datos sensibles en la migración que se podrán ver en detalle en
la sección 9.4.1
98
Tabla 38. Datos sensibles en la migración
Base de datos del prototipo Base de datos Specify
TABLA CAMPO CAMPO TABLA
INT_Sitio_Geografico nombre (pais) name geography
INT_Sitio_Geografico nombre name geography
(departamento)
INT_Sitio_Geografico nombre (municipio) name geography
INT_Taxonomia nombre (familia) name taxon
INT_Taxonomia nombre (género) name taxon
INT_Taxonomia nombre (especie) name taxon
INT_Usuario_Con_Acceso nombre firstname agent
INT_Usuario_Con_Acceso primer_apellido lastname agent
El usuario encargado de aprobar la migración (usuario con rol validador) podrá ver
la información que será migrada en la opción de menú Solicitudes de inclusión en
el botón Datos a Specify que aparece en cada solicitud de inclusión, como se
muestra en la Figura 27.
En Specify existen tres estructuras (tablas) las cuales solo serán consultadas,
99
estas tablas son taxon, geography y agent que son las encargadas de almacenar
la información taxonómica de un espécimen, el sitio geográfico en donde fue
recolectado y el recolector respectivamente. Las razones para que estas
estructuras solo sean consultadas son:
A pesar de que los especímenes que se desean migrar deben tener una
taxonomía, sitio geográfico y recolector asociados, esta información puede no ser
correcta debido a que dicha información es ingresada por el usuario recolector,
dando cabida a errores de sintaxis o de conocimiento en esas áreas, lo cual puede
llevar a una inconsistencia de los datos asociados.
Por lo tanto el procedimiento que se aplicará para cada una de estas estructuras
es el siguiente:
100
Figura 29. Sección árbol taxonomía a nivel de base de datos. Fuente: Captura de
pantalla de una sección de la consulta al árbol de taxonomía de Specify.
Teniendo en cuenta que ésta es una estructura jerárquica igual a las mencionadas
en la sección 9.2.1, se busca la asociación de la siguiente manera:
101
Figura 30. Sección árbol geografía de Specify. Fuente: Captura de pantalla de una
sección del árbol de geografía desde Specify.
Figura 31. Sección árbol geografía a nivel de base de datos. Fuente: Captura de
pantalla de una sección de la consulta al árbol de geografía de Specify.
102
nueva geografía y de acuerdo a lo que informen los expertos del ICN:
1. Se crea esa nueva rama geográfica en Specify y se informa al validador
para que intente realizar nuevamente la migración del registro.
2. No se crea la nueva rama, lo cual se puede deber a errores de sintaxis o
en la geografía que el usuario validador no vio y por lo tanto debe
cancelar la aprobación del registro, es decir, se debe rechazar la
solicitud y especificar esto en el motivo de rechazo.
9.4.1.3 Agente
Dado que para la digitalización de los especímenes se toma la información
consignada en la etiqueta que acompaña al espécimen físico, y cada recolector
elabora su etiqueta, la manera de escribir sus nombres y apellidos tienen
variaciones tales como ponerlos de forma completa, solo iniciales, una mezcla
entre iniciales y apellidos completos, los nombres acompañados de puntos, entre
otras.
103
1. Se crea el Agent en Specify y se informa al validador para que intente
realizar nuevamente la migración del registro.
2. Se detecta que el Agent ya existe en Specify, así que se modifican los
nombres y apellidos del Agent o del usuario del prototipo, dependiendo
de cuál de los dos tiene información más completa y se informa al
validador para que intente realizar nuevamente la migración del registro.
104
10. MODELO DE INTERFAZ GRÁFICA DE USUARIO
105
Figura 32. Mapa de navegación del prototipo. Fuente: Este trabajo.
10.2 GENERALIDADES DE LA INTERFAZ GRÁFICA
El prototipo está compuesto por cinco (5) opciones de menú, de las cuales tres:
Importar datos especímenes, Gestión de especímenes y Envío de solicitudes de
inclusión podrán ser vistas por un usuario con rol de Recolector, un usuario con rol
de Validador podrá ver la opción de menú Solicitud de inclusión, por su parte un
usuario con rol de Administrador podrá acceder a la opción de menú
Administración de usuarios.
107
que es visible en todo momento y cuenta con las opciones de menú del usuario
(sección 10.2.3), en la parte izquierda de la pantalla los usuarios encontrarán las
opciones de menú que tendrán disponibles de acuerdo a su rol, a la derecha de
las opciones de menú se encuentra el área principal en la cual se desplegarán las
páginas correspondientes a cada opción de menú. Finalmente, en la parte inferior
se muestran los créditos del prototipo.
Figura 34. Página principal con todas las opciones de menú. Fuente: Este trabajo.
108
10.2.3 Menú de opciones de usuario
Al hacer clic sobre esta opción el prototipo desplegará una ventana en la que el
usuario podrá cambiar su contraseña de acceso a este (Figura 36).
109
10.2.5 Cerrar sesión
Al hacer clic sobre esta opción, el sistema borrará los datos de sesión del usuario
y devolverá al usuario a la página de control de acceso (Figura 33) para iniciar
sesión nuevamente.
10.2.6 Mensajes
110
10.3 OPCIONES DE MENÚ
De acuerdo al rol o roles con los que cuenta un usuario el prototipo le mostrará las
opciones de menú a las cuales podrá acceder.
Figura 39. Opción de menú Importar datos de especímenes. Fuente. Este trabajo.
111
Figura 41. Opción de menú Envío de solicitudes de inclusión. Fuente. Este trabajo.
112
10.3.3 Rol administrador
Puede acceder a una opción de menú llamada Administración de usuarios.
113
10.4 ASPECTOS DE IMPLEMENTACIÓN
Con el fin de que este prototipo quedara bien documentado y de esta manera
poder seguir ampliando sus funcionalidades, se realizó un segundo diagrama de
clases, en donde se muestran las clases del modelo estructural y las clases que
ayudan a soportar la lógica del framework con los elementos de interfaz gráfica.
Por facilidad de lectura este diagrama de clases podrá ser visto en el CD en la ruta
2. Modelamiento/3. ModeladoPlantaeToSpecify2016.eap.
114
11. MODELO DINÁMICO
Este modelo muestra las interacciones entre los objetos del prototipo en tiempo de
ejecución. Las interacciones que se documentaron incluyen la secuencia de
peticiones de servicio realizadas por los objetos (diagramas de secuencia) así
como los cambios de estado que activan las interacciones de dichos objetos
(máquinas de estado) [38].
115
sd DS007 Gestionar archivos de especímenes
«o n Cli c»
in i t()
i ni t(usu ario )
in fo ("in i t")
u su a ri o
:Usu a ri o Co n Acceso
usuario =
se tUsu ari o(Usua ri o Co nA cce so )
wi re Com p on en ts(vie w,
th is, fa lse )
te xtb oxRuta A rch i vo
« Li stb ox»
li sta A rch i vo s
« L in ked L ist<Arch ivo>»
l i sta A rch ivo sCa rg a do s
(fro m A cto re s)
Re gi ón in te rru m p ibl e
try
Fil eM a na g er
gb
:G en e ral Sessio nBe an
« Ha sh M ap »
p aram s
try
« L ist<A rchi vo >»
a rch ivo s
find A ll Entitie s(Arch ivo.cl ass, "Archivo.fin dAl lByUser", tru e , p aram s) :<T > L ist<T >
a rch ivo s= fin dAl lEntiti es(Archivo.cla ss, "A rchi vo.fin dAl lB yUser", true , p aram s)
alt catch
[Excep ti on e ] error(" Erro r", e )
Figura 45. DS008 Listar histórico de archivos cargados. Fuente. Este trabajo.
Figura 46. DS024 Consultar solicitudes de inclusión. Fuente. Este trabajo.
11.2 MÁQUINAS DE ESTADO
119
Figura 48. Máquina de estados de la solicitud de inclusión. Fuente. Este trabajo.
120
12. TECNOLOGÍAS USADAS EN LA CONSTRUCCIÓN
121
Prototipo/Base de datos/2. DDL Procedures.sql y deberán ser instalados en la
base de datos del prototipo.
deployment PlantaeToSpecify
Specify
«DISP OSIT IVO M ÓVIL» « Se rvid or de ap lica ciones T om cat Versió n 7 .0»
Plantae.apk PlantaeToSpecify.war
« datastore »
« use» «use »
Base de datos
«u se»
« datastore »
plantaetospecify
122
13. PRUEBAS
Las pruebas unitarias se realizaron sobre las clases que concentran la lógica de
negocio más relevante del prototipo, estas clases son las relacionadas con la
carga de archivos CSV al prototipo, la edición de especímenes y la migración de
especímenes a Specify. Para la realización de las mismas se crearon tres (3)
clases de prueba (una para cada clase que iba a ser probada) y una clase suite
que hizo los llamados a las clases de prueba. Dichas clases se pueden ver en el
diagrama de la Figura 51.
Los resultados obtenidos en las pruebas fueron los esperados, como se puede
observar en la Figura 52.
123
Figura 52. Resultados de las pruebas unitarias. Fuente. Este trabajo.
Las pruebas funcionales fueron realizadas sobre todas las funcionalidades del
prototipo, sin embargo a continuación solo se presentan los resultados de estas
pruebas en las funcionalidades de cargue de archivos, solicitudes de inclusión y
aprobación de migración.
124
Figura 53. Cargue de un archivo. Fuente. Este trabajo.
125
Figura 55. Cargue de archivo incorrecto campo invalido. Fuente. Este trabajo.
126
Figura 57. Solicitud de inclusión de especímenes. Fuente. Este trabajo.
127
Figura 59. Agregar información. Fuente. Este trabajo.
128
Figura 61. Espécimen desde Specify. Fuente. Este trabajo.
129
14. CONCLUSIONES
130
15. TRABAJO FUTURO
131
16. GLOSARIO
ARCHIVO CSV: Archivo generado por la aplicación móvil Plantae con formato
CSV.
CSV: Traducido como “Valores separados por coma” por sus siglas en inglés
(Comma-Separated Value) es un formato de archivo para intercambiar datos entre
diferentes aplicaciones.
132
17. GUÍA DE CONTENIDO DE ANEXOS
17.1 DOCUMENTOS
17.2 PROTOTIPO
133
Figura 63. Estructura del proyecto abierto desde Eclipse. Fuente. Este trabajo.
17.3 MODELAMIENTO
134
4. Módulo de selección y envío de especímenes
5. Módulo de consulta y aprobación de solicitudes
6. Módulo de gestión de usuarios
• Modelo estructural
DC01 Diagrama de clases
DC02 Diagrama de clases con framework
• Modelo de datos
MR01 Modelo Relacional
• Modelo de interfaz de usuario
Modelo de interfaz gráfica
• Modelo dinámico
Diagrama de despliegue
Diagramas de secuencia
1. Módulo de control de acceso
2. Módulo de selección y cargue de archivo
3. Módulo de gestión de especímenes
4. Módulo de selección y envío de especímenes
5. Módulo de consulta y aprobación de solicitudes
6. Módulo de gestión de usuarios
Máquinas de estados
ME01 Máquina de estados espécimen
ME02 Máquina de estados solicitudes de inclusión
17.4 DICCIONARIOS
17.5 MANUALES
135
BIBLIOGRAFÍA
136
17: Blázquez M,. (2012) "La Migración de datos. Exportación e Importación" [En
línea], recuperado el 15 de Enero de 2014
http://ccdocautomatizacion.blogspot.com/2008/03/10-la-migracin-de-datos-
exportacin-e.html.
18: "The Comma Separated Value (CSV) File Format" [En línea], recuperado el 20
de enero de 2014 de http://creativyst.com/Doc/Articles/CSV/CSV01.htm.
19: W3. (2013) "Extensible Markup Language (XML)" [En línea], recuperado el 20
de enero de 2014 de https://www.w3.org/XML/.
20: Microsoft. (2014) "Excel Binary File Format (.xls) Structure - Introduction" [En
línea], recuperado el 20 de enero de 2014 de https://msdn.microsoft.com/en-
us/library/dd906173(v=office.12).aspx.
21: Mozilla. (2014) "HTML" [En línea], recuperado el 20 de enero de 2014 de
https://developer.mozilla.org/es/docs/Web/HTML.
22: . Specify (2014) "Specify 6 Desktop Application" [En línea], recuperado el 20 de
Enero de 2014 de http://specifyx.specifysoftware.org/welcome-to-specify-6-
desktop-application/.
23: Apache. (2016) "Apache POI - the Java API for Microsoft Documents" [En
línea], recuperado el 10 de agosto de 2016 de https://poi.apache.org/.
24: Itext. (2013) "Itext" [En línea], recuperado el 12 de julio de 2014 de
http://itextpdf.com/.
25: Tuya, Javier, Ramos Román Isabel, Dolado Cosín, Javier. “Técnicas
cuantitativas para la gestión en la ingeniería del software”. : Netbiblo, S.L., 2007.
54 p.
26: JUnit. (2016) "JUnit" [En línea], recuperado el 25 de agosto de 2016 de
http://junit.org/junit4/.
27: Tahchiev, Petar, Leme, Felipe, Massol, Vincent, Gregory, Gary. “JUnit in
Action.” : Manning Publications, 2011. 1 p.
28: Jacobson I, Booch G, Rumbaugh J. “El proceso Unificado de Desarrollo de
software.” Madrid: Addison Wesley, 2000. 4-5 p.
29: Rumbaugh J, Jacobson I, Booch G,. “Lenguaje unificado de modelado manual
de referencia.” Madrid: Addison Wesley, 2000. 1 p.
30: Sparx. (2007) "Diagrama de clase UML2" [En línea], recuperado el 15 de enero
de 2014 de
http://www.sparxsystems.com.ar/resources/tutorial/uml2_classdiagram.html.
31: Sparx. (2007) "Diagrama de componentes UML2" [En línea], recuperado el 15
de enero de 2014 de
http://www.sparxsystems.com.ar/resources/tutorial/uml2_componentdiagram.html.
32: Diosa H, “Ingeniería de software I” [Apuntes]. Bogotá, Colombia, Universidad
Distrital Francisco José de Caldas, Ingeniería de sistemas, 2012
33: Sparx. (2007) "Diagrama de secuencia UML2" [En línea], recuperado el 15 de
enero de 2014 de
http://www.sparxsystems.com.ar/resources/tutorial/uml2_sequencediagram.html.
34: Sparx. (2007) "Diagrama de Actividades UML2" [En línea], recuperado el 15 de
enero de 2014 de
http://www.sparxsystems.com.ar/resources/tutorial/uml2_activitydiagram.html.
137
35: Sparx. (2016) "Enterprise Architect" [En línea], recuperado el 20 de agosto de
2016 de http://www.sparxsystems.com/products/ea/.
36: Oracle. (2010) "Java Persistence API" [En línea], recuperado el 18 de Marzo
del 2015 de http://docs.oracle.com/javaee/5/tutorial/doc/bnacj.html#bnadb.
37: Eclipse. (2009) “Introduction to EclipseLink JPA”, 2009, recuperado el 18 de
Marzo del 2015 de
http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Print_Version#Introduction_to_Eclips
eLink_JPA
38: Sommerville, Ian. “Ingeniería del software.” : Pearson education, 2011. 185-
187 p.
138