TOMO II: MANUAL TÉCNICO D. Ángel Dacal Nieto Sistema de

UNIVERSIDADE
DE VIGO
ESCOLA SUPERIOR DE ENXEÑERÍA INFORMÁTICA
Memoria do Proxecto Fin de Carreira que presenta
D. Ángel Dacal Nieto
para a obtención do Título de Enxeñeiro en Informática
Sistema de calibración automática de termohigrómetros
TOMO II: MANUAL TÉCNICO
Xullo, 2007
Proxecto Fin de Carreira Nº: ENI-181
Director/a: Arno Formella
Codirector/a: Higinio González Jorge
Área de coñecemento: Linguaxes e Sistemas Informáticos
Departamento: Informática
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
Índice
1. Datos ........................................................................................................................... 3
2. Conocimientos previos ............................................................................................ 4
3. Análisis ....................................................................................................................... 5
3.1 Análisis de requisitos .......................................................................................... 5
3.1.1 Datos preliminares.................................................................................................................5
3.1.2 Captación de requerimientos...............................................................................................5
3.1.3 Funcionalidades del sistema ................................................................................................6
3.1.4 Otras ampliaciones ................................................................................................................7
3.1.5 Usuarios del sistema..............................................................................................................8
3.2 Enumeración de los Casos de Uso .................................................................. 10
3.3 Diagramas de Casos de Uso............................................................................. 11
3.3.1 Diagramas de paquetes .......................................................................................................11
3.3.2 Diagramas de Casos de Uso por paquetes.......................................................................12
3.4 Descripción de los Diagramas de Casos de Uso ........................................... 15
3.4.1 Alta de Técnico .....................................................................................................................15
3.4.2 Baja de Técnico.....................................................................................................................16
3.4.3 Modificación de Técnico.....................................................................................................17
3.4.4 Consulta de Técnico ............................................................................................................18
3.4.5 Listado de Técnicos..............................................................................................................19
3.4.6 Alta de Protocolo ..................................................................................................................20
3.4.7 Baja de Protocolo..................................................................................................................21
3.4.8 Modificación de Protocolo .................................................................................................22
3.4.9 Consulta de Protocolo .........................................................................................................23
3.4.10 Listado de Protocolos.........................................................................................................24
3.4.11 Alta de Tipo de Protocolo .................................................................................................25
3.4.12 Baja de Tipo de Protocolo.................................................................................................26
3.4.13 Modificación de Tipo de Protocolo ...............................................................................27
3.4.14 Consulta de Tipo de Protocolo ........................................................................................28
3.4.15 Listado de Tipos de Protocolo..........................................................................................29
3.4.16 Alta de Calibración ............................................................................................................30
3.4.17 Baja de Calibración............................................................................................................32
3.4.18 Consulta de Calibración ...................................................................................................33
3.4.19 Listado de Calibraciones...................................................................................................34
3.4.20 Validar Usuario ..................................................................................................................35
3.4.21 Finalizar Sesión Usuario...................................................................................................36
3.5 Diagrama de Clases Preliminar ....................................................................... 37
4. Diseño ....................................................................................................................... 38
4.1 Diseño de las clases del dominio del problema ............................................ 38
4.1.1 Dispositivo ............................................................................................................................38
4.1.2 Dispositivo - Medicion .......................................................................................................40
4.1.3 Camara_Fotografica - Fotografia .......................................................................................41
4.1.4 Calibracion ............................................................................................................................41
4.2 Diseño de las clases de acceso a base de datos.............................................. 42
4.3 Diseño de las clases de la interfaz de usuario ............................................... 43
4.3.1 Formularios sencillos ..........................................................................................................43
4.3.2 Formularios de alta de calibración....................................................................................44
4.3.3 Formulario de calibración en curso ..................................................................................44
4.4 Algoritmos .......................................................................................................... 45
Manual Técnico
0
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.4.1 Algoritmo de Calibración ...................................................................................................45
4.4.2 Algoritmo de Estabilización...............................................................................................46
4.4.3 Algoritmo para Correcciones .............................................................................................47
4.4.4 Algoritmo para recoger mediciones del Sistema Redundante ....................................48
4.4.5 Algoritmo para recortado de fotografías..........................................................................49
4.5 Diagramas de Diseño ........................................................................................ 50
4.5.1 Escenario Alta de Técnico...................................................................................................51
4.5.2 Escenario Baja de Técnico ..................................................................................................52
4.5.3 Escenario Modificación de Técnico ..................................................................................53
4.5.4 Escenario Consulta de Técnico ..........................................................................................54
4.5.5 Escenario Listado de Técnicos ...........................................................................................55
4.5.6 Escenario Alta de Protocolo................................................................................................56
4.5.7 Escenario Baja de Protocolo ...............................................................................................57
4.5.8 Escenario Modificación de Protocolo ...............................................................................58
4.5.9 Escenario Consulta de Protocolo .......................................................................................59
4.5.10 Escenario Listado de Protocolos ......................................................................................60
4.5.11 Escenario Alta de Tipo de Protocolo...............................................................................61
4.5.12 Escenario Baja de Tipo de Protocolo ..............................................................................62
4.5.13 Escenario Modificación de Tipo de Protocolo ..............................................................63
4.5.14 Escenario Consulta de Tipo de Protocolo ......................................................................64
4.5.15 Escenario Listado de Tipos de Protocolo .......................................................................65
4.5.16 Escenario Alta de Calibración..........................................................................................66
4.5.17 Escenario Baja de Calibración .........................................................................................81
4.5.18 Escenario Consulta de Calibración .................................................................................83
4.5.19 Escenario Listado de Calibraciones ................................................................................85
4.5.20 Escenario Validar Usuario ................................................................................................87
4.5.21 Escenario Finalizar Sesión de Usuario ...........................................................................88
4.6 Diagrama de Clases........................................................................................... 89
4.7 Descripción detallada de las clases ................................................................. 92
4.7.1 Clase Archivo........................................................................................................................92
4.7.2 Clase Archivo_xls.................................................................................................................92
4.7.3 Clase Archivo_txt .................................................................................................................93
4.7.4 Clase BD ................................................................................................................................93
4.7.5 Clase BD_Archivo................................................................................................................94
4.7.6 Clase BD_Calibracion .........................................................................................................94
4.7.7 Clase BD_Dispositivo .........................................................................................................95
4.7.8 Clase BD_Fotografia ............................................................................................................95
4.7.9 Clase BD_Medicion .............................................................................................................96
4.7.10 Clase BD_Protocolo ...........................................................................................................97
4.7.11 Clase BD_Tecnico ..............................................................................................................97
4.7.12 Clase BD_Tipo_Protocolo.................................................................................................97
4.7.13 Clase Calibracion ...............................................................................................................98
4.7.14 Clase Camara_Climatica ...................................................................................................99
4.7.15 Clase Camara_Fotografica ..............................................................................................100
4.7.16 Clase ConexionGPIB .......................................................................................................101
4.7.17 Clase ConexionSerie........................................................................................................101
4.7.18 Clase Conversiones..........................................................................................................102
4.7.19 Clase DatosCalibracion...................................................................................................102
4.7.20 Clase Dispositivo .............................................................................................................103
4.7.21 Clase Dispositivo_Patron ...............................................................................................104
4.7.22 Clase EstadoInterfaz ........................................................................................................105
4.7.23 Clase Excepcion ................................................................................................................105
4.7.24 Clase Fotografia ................................................................................................................106
4.7.25 Clase Intepretacion ..........................................................................................................106
4.7.26 Clase Medicion .................................................................................................................106
Manual Técnico
1
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.27 Clase Proceso.....................................................................................................................108
4.7.28 Clase Protocolo .................................................................................................................108
4.7.29 Clase Tecnico ....................................................................................................................109
4.7.30 Clase Tiempo ....................................................................................................................109
4.7.31 Clase Tipo_Protocolo.......................................................................................................109
5. Diseño de la Base de Datos................................................................................. 110
5.1 Diagrama Entidad-Relación........................................................................... 110
5.2 Tablas de la Base de Datos ............................................................................. 111
5.2.1 Tabla Archivo .....................................................................................................................111
5.2.2 Tabla Fotografía .................................................................................................................111
5.2.3 Tabla Medicion...................................................................................................................112
5.2.4 Tabla Protocolo...................................................................................................................113
5.2.5 Tabla Tipo_Protocolo ........................................................................................................113
5.2.6 Tabla Técnico......................................................................................................................114
5.2.7 Tabla Dispositivo...............................................................................................................114
5.2.8 Tabla Calibracion...............................................................................................................115
5.2.9 Tabla Cal_Dispositivo.......................................................................................................116
5.2.10 Tabla Cal_Protocolo.........................................................................................................116
6. Implementación .................................................................................................... 117
6.1 Clases administradas y no administradas ................................................... 117
6.1.1 Diferencias ..........................................................................................................................117
6.1.2 Decisiones adoptadas........................................................................................................117
6.2 Diagrama de Despliegue ................................................................................ 118
6.3 Estructura del código ...................................................................................... 118
6.4 Compilación ..................................................................................................... 120
6.5 Ejecución ........................................................................................................... 121
7. Pruebas ................................................................................................................... 122
7.1 Seguridad.......................................................................................................... 122
7.2 Integración ........................................................................................................ 122
7.3 Formularios ...................................................................................................... 122
8. Apéndices............................................................................................................... 129
8.1 Librerías ............................................................................................................ 129
8.2 Drivers............................................................................................................... 129
Manual Técnico
2
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
1. Datos
Proyecto:
Identificación:
“Sistema de Calibración Automática de Termohigrómetros”
ENI-181
Director:
Codirector:
Autor:
Dr. Arno Formella
Dr. Higinio González Jorge
Ángel Dacal Nieto
Convocatoria:
Departamento:
Área:
Julio 2007
Departamento de informática
Lenguajes y sistemas informáticos
Este segundo tomo del proyecto fin de carrera “Sistema de Calibración Automática de
Termohigrómetros” se dedica a explicar con mayor detalle la construcción del sistema.
Mientras que el objetivo de la Memoria es introducir al lector en la materia, contextualizar y
justificar el nacimiento del proyecto, el Manual Técnico debería servir para que el lector
comprenda las fases por las que ha pasado el desarrollo del proyecto, centrándose en el qué y el
cómo se ha desarrollado.
Por ello será objeto de este tomo relatar el ciclo de vida utilizado, las decisiones adoptadas en
cada una de sus fases y los resultados obtenidos.
Podemos avanzar que el ciclo de vida utilizado se ha centrado en cuatro fases principales:
análisis, diseño, implementación y pruebas. Sin embargo estas cuatro fases no se han realizado
secuencialmente. En su lugar se ha seguido un ciclo de vida iterativo e incremental, que ha
buscado una construcción paulatina en sucesivas iteraciones, las cuales fueron refinando el
comportamiento del sistema. Así, se han ido construyendo poco a poco distintas partes de la
aplicación de forma completa.
A pesar de este ciclo de vida, la presente documentación muestra un desarrollo secuencial con
la intención de que el lector pueda comprender mejor las distintas fases, además de presentar
una documentación mejor estructurada.
Manual Técnico
3
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
2. Conocimientos previos
Partiendo de la contextualización hecha en el tomo Memoria de esta misma documentación,
podemos resumir los antecedentes del proyecto en los siguientes puntos:
-
El LOMG es un laboratorio dedicado al mundo de calibración y la metrología. Su
Departamento de Temperatura y Humedad Relativa calibra dispositivos como
Termómetros y Termohigrómetros.
-
Para el proceso de calibración es necesario generar unas determinadas condiciones de
temperatura y humedad relativa. Esto se consigue mediante diversos dispositivos
(como cámaras climáticas). Durante una calibración se generan varios puntos de
consigna, cada uno con una determinada temperatura y humedad relativa. La
configuración de estos equipos se puede realizar de manera manual, aunque algunos ya
disponen de su propio software.
-
En el proceso de calibración, además del propio dispositivo que se esté calibrando,
intervienen otro tipo de dispositivos llamados dispositivos patrón, de los cuales se sabe
que están bien calibrados. Esto se sabe porque se han calibrado a partir de patrones
superiores, y así consecutivamente, en una cadena que llega a los estándares
internacionales. Esta trazabilidad permite conocer el error de cada patrón. El error, o
corrección, se conoce para ciertas temperaturas, y se halla mediante una sencilla
interpolación lineal.
-
Cuando se genera un determinado punto de consigna, es necesario esperar un cierto
tiempo hasta que se consiga la estabilidad en el medio. La estabilidad es muy
importante, ya que si el medio no está estable, la calibración es errónea. La estabilidad
tarda horas en conseguirse.
-
Para cada punto de consigna, una vez estable el medio, se realizan habitualmente 10
mediciones separadas por un minuto al dispositivo que se está calibrando. Al mismo
tiempo se anotan las mediciones de los dispositivos patrón. Estas mediciones se
realizan a mano, aunque existen ciertas aplicaciones que automatizan las mediciones de
algunos patrones.
-
Al finalizar, y dadas las mediciones de calibrandos y patrones, se emite un certificado al
cliente con el error de su dispositivo.
Partimos, por lo tanto, de un proceso largo, tedioso, y que precisa de la atención continuada de
técnico. A pesar de que ciertas tareas comienzan a ser automatizadas, y algunos dispositivos
traen sus propias aplicaciones, no existe un software que realice todo el proceso de manera
integral. Cada dispositivo patrón es distinto al resto, con una evidente heterogeneidad, por lo
que las soluciones en materia de metrología y calibración suelen ser ad hoc.
Manual Técnico
4
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3. Análisis
3.1 Análisis de requisitos
Se recomienda la lectura previa del tomo de esta documentación llamado Memoria, en el que se
contextualiza este proyecto. En este punto de Análisis se pretende comunicar qué se ha hecho,
mientras que en la Memoria se explica el por qué surge la idea.
3.1.1 Datos preliminares
La intención de este proyecto es automatizar la tarea de calibración de termohigrómetros que se
realiza actualmente en el Departamento de Temperatura y Humedad Relativa del Laboratorio
Oficial de Metroloxía de Galicia (en adelante LOMG).
Para ello se ha solicitado un sistema que haga automáticas las tareas que hasta ahora se realizan
de manera manual. Concretamente:
-
La tarea de generación de un medio se conseguirá estableciendo una comunicación
entre el sistema y la cámara climática mediante puerto serie. Para ello será necesario el
estudio de los manuales de la cámara climática. Una calibración consta de la generación
de varios puntos consecutivos.
-
La tarea de registro de las mediciones de los patrones se conseguirá estableciendo una
comunicación entre el sistema y los dispositivos patrón mediante puerto serie o GPIB.
Para ello será necesario el estudio de los manuales de dichos dispositivos.
-
La tarea de registro de las mediciones de los calibrandos, al no poder efectuarse
mediante comunicación directa, se efectuará mediante fotografías. De este modo no se
tendrá información numérica del dato registrado por el dispositivo, pero sí una imagen
que refleje dicho dato. Será necesaria una cámara de fotografías, y el estudio de su
manual.
Así pues, el primer esbozo de este proyecto es desarrollar un sistema que sea capaz de llevar a
cabo la calibración de un dispositivo, habiendo generado unas determinadas condiciones en
una cámara climática, habiendo registrado las mediciones de un patrón, y habiendo realizado
fotografías mediante una cámara fotográfica. Como nos interesa almacenar únicamente la zona
de la fotografía en la que sale el display, se recortarán las fotografías para que únicamente se
almacene esa zona.
Esta primera idea del sistema se fue ampliando y refinando en función de las necesidades
captadas de los técnicos del LOMG.
3.1.2 Captación de requerimientos
En primer lugar se comprobó que existe una enorme variedad de dispositivos patrón. Cada
uno tiene un funcionamiento distinto, una interfaz distinta, mide unas magnitudes distintas…
Por ello se le debería ofrecer al usuario la posibilidad de escoger un determinado dispositivo
patrón. Esta variedad de dispositivos se extendió a las cámaras climáticas y a las cámaras
fotográficas. A pesar de que en estos dos tipos de dispositivos sólo se dispone de un modelo, se
habilitará el sistema para que esté preparado a la llegada de nuevos modelos.
Manual Técnico
5
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
Tras hacer esta constatación, se descubrió otra realidad que aumentaba la complejidad del
proyecto. En una misma calibración podían participar más de un dispositivo patrón. Esto se
hacía para que cada dispositivo tomase nota de una determinada magnitud (por ejemplo que
uno se dedique a medir punto de rocío y otro temperatura), o bien para reforzar las mediciones
de un dispositivo con las de otro (por ejemplo usar un medidor de punto de rocío a la vez que
un multímetro).
No sólo eso. En una misma calibración era usual que participase más de un calibrando. O lo
que es lo mismo: se realizan dos calibraciones a la vez, compartiendo el medio generado y los
dispositivos patrón. Esto se hace para ahorrar tiempo, ya que la generación del medio es un
proceso bastante largo y difícil de conseguir.
Es decir, tras una breve investigación, se llegó a la conclusión de que el sistema necesario era
uno que permitiese:
- la intervención de más de un calibrando por calibración (es decir, más de una
calibración a la vez)
- la intervención de más de un patrón por calibración
- la intervención de una cámara climática
- la intervención de una cámara fotográfica
Sin embargo, tras proseguir con la captación de requerimientos, se observó que esta última
descripción es un caso genérico de calibración. Es decir, el sistema necesita que se puedan
realizar tareas mucho más sencillas, y no necesariamente una calibración completa como la que
acabamos de describir. Concretamente:
- se debe permitir una calibración sin cámara climática. El técnico será el encargado de
generar las condiciones necesarias por su cuenta, ajeno al sistema.
- se debe permitir una calibración sin cámara fotográfica. Esto puede ser útil por ejemplo
cuando se pretende simplemente tomar nota de las mediciones de un determinado
patrón.
Por lo tanto, y antes de proseguir, se toma nota de que se necesita un sistema muy potente y
muy versátil que permita desde calibraciones completas con varios calibrandos, varios
patrones, generación de un medio mediante una cámara climática y realización de fotografías,
hasta procesos más sencillos como registro de datos de patrones, calibraciones sin cámara
climática, etc.
Esta versatilidad provoca la existencia de varios tipos de calibraciones. La principal división es:
- calibración automática: cuando el sistema efectúa sus tareas de manera secuencial, sin
ninguna intervención externa.
- calibración manual: requiere de la presencia de un técnico para determinados aspectos,
como indicar cuándo está estable el medio.
3.1.3 Funcionalidades del sistema
La principal funcionalidad requerida para el sistema es el alta de una nueva calibración. Dicha
funcionalidad es, en esencia, el sistema que hemos descrito hasta el momento. Para dar de alta
una nueva calibración será necesaria una gran cantidad de captura de datos proporcionados por
el usuario. Tras dicha captura se realizará la propia calibración, que se finalizará con la creación
de archivos de salida que resuman el proceso.
Sin embargo en la fase de captación de requerimientos se ha visto que puede ser útil revisar
posteriormente estas calibraciones. Por lo tanto se facilitarán listados y consultas de las
calibraciones realizadas en el sistema. También se facilitará la baja de calibración.
Manual Técnico
6
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
Observando la forma de trabajar del LOMG se ha constatado que es habitual calibrar los
dispositivos en unos determinados puntos de consigna. Es decir, para un tipo determinado de
calibrandos se suelen realizar calibraciones en unas determinadas condiciones de temperatura y
humedad, que se repiten habitualmente. Por ello se ha llegado a la conclusión de que podría ser
interesante que, en lugar de introducir estos puntos de consigna cada vez que se da de alta una
calibración, se permita cargarlos, teniendo únicamente el técnico que escogerlos de un listado.
Se cree que puede ser una buena funcionalidad, aunque se permitirá, del mismo modo,
introducir nuevos puntos de consigna en el proceso de alta, y no sólo cargarlos.
Para permitir esto se habilitarán funcionalidades de alta, baja, modificación, consulta y listado
de Protocolos. Llamamos protocolo a un determinado punto de consigna: su temperatura, su
humedad relativa, las mediciones que se realizarán, el intervalo de tiempo entre cada medición,
etc. Recordemos que una calibración consta de varios protocolos.
Tras esto se llegó a la conclusión de que sería interesante poder reunir, poder especializar, estos
protocolos en una serie de tipos. Así, para un tipo de calibrando, se cargaría los protocolos de
un tipo específico, y se podrían incluir fácilmente en el proceso de alta de calibración. Por lo
tanto también serán necesarias las funcionalidades de alta, baja, modificación, consulta y listado
de tipos de protocolo.
Finalmente, y dado que las calibraciones son realizadas por técnicos, se vio fundamental una
sección de usuarios que permita a cada técnico loguearse y salir del sistema, así como cambiar
sus datos.
Fue analizando esta sección cuando se comprendió que eran necesarios dos tipos de usuarios.
Por un lado los usuarios básicos, los técnicos, cuyas atribuciones eran todas las descritas hasta
ahora. Por otro, el Jefe de Departamento, un usuario especial que, además de las atribuciones de
un técnico, estaba capacitado para listar los técnicos del sistema, darlos de alta y borrarlos.
Tras este análisis se distinguió por un lado la funcionalidad de alta de calibración, que es la más
importante y crucial del sistema, del resto de funcionalidades, concebidas simplemente como
apoyo a esta funcionalidad.
Por lo tanto, después de escuchar las necesidades del LOMG, y habiendo tomando las
decisiones descritas, las funcionalidades que ha de cumplir el sistema son:
- GESTIÓN DE TÉCNICOS. Operaciones de Alta, Baja, Modificación, Consulta y Listado de
Técnicos
- GESTIÓN DE PROTOCOLOS: Operaciones de Alta, Baja, Modificación, Consulta y Listado de
Protocolos.
- GESTIÓN DE TIPOS DE PROTOCOLO: Operaciones de Alta, Baja, Modificación, Consulta y
Listado de Tipos de Protocolo.
- GESTIÓN DE CALIBRACIONES: Operaciones de Alta, Baja, Consulta y Listado de
Calibraciones.
- GESTIÓN DE SEGURIDAD: Validación de usuarios.
3.1.4 Otras ampliaciones
El alta de calibración se verá completada con dos funcionalidades hasta ahora realizadas de
forma manual: el acceso al Sistema Redundante y la inclusión de Correcciones.
El Sistema Redundante son una serie de sensores que registran temperatura y humedad
relativa en cada uno de los laboratorios del LOMG. Cada cinco minutos vuelcan dicha
información en unos archivos de texto del servidor. Cada calibración debe informar, además de
la información anteriormente detallada, de las condiciones del ambiente del laboratorio en que
Manual Técnico
7
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
fue desarrollada dicha calibración. Eso supone que el técnico debe acceder a los archivos de
texto de los días en los que fue realizada la calibración, y hallar las temperaturas máxima y
mínima, además de las humedades relativas máxima y mínima. La intención es que el sistema
haga estos accesos de manera automática y el técnico pueda incluir dicha información en sus
informes de manera sencilla.
La inclusión de las correcciones de los dispositivos es otra tarea manual que se pretende
automatizar. Cada dispositivo tiene un cierto error conocido a unas ciertas temperaturas. Se
dispone de una pequeña tabla que asigna, para cada temperatura, un determinado error. Sin
embargo esta tabla solamente indica el error para ciertas temperaturas, lo que obliga a
interpolar linealmente para hallar el error a una temperatura deseada. La idea es hallar estas
correcciones automáticamente a partir de las mediciones obtenidas y de una serie de archivos
que contendrán la información necesaria para los cálculos. Las mediciones corregidas estarán
disponibles para los técnicos, de modo que puedan añadirlas a sus informes sin efectuar ningún
cálculo.
La manera de incluir las correcciones en el sistema ha sido motivo de debate. La decisión final
fue que el proceso de calibración adquiera la información necesaria para calcular las
correcciones a través de archivos de texto indicados por el usuario en el momento de iniciar la
calibración. Es la forma más flexible, ya que dicha información cambia, al menos, una vez al
año, al calibrar el dispositivo. El sistema tomará dicha información, por tanto, de un archivo de
texto.
Las entrevistas con el LOMG han causado que se hayan tomado decisiones particulares:
-
no existirá una funcionalidad de modificación de calibraciones, ya que es un
proceso cerrado, que cuando acaba no es posible modificar. Por ello no tiene sentido
modificar una calibración.
-
la gestión de técnicos será testimonial, ya que ya existe una aplicación de gestión en
el LOMG para tal efecto. En este sistema su utilidad se reduce a entrar en el sistema
y asociar la calibración que se da de alta a un técnico en concreto.
Por lo tanto, y a modo de resumen, se puede decir que la idea inicial del sistema, reflejada en el
anteproyecto, se ha ampliado notablemente. Se ha pasado del caso particular de calibración
tratado inicialmente, a multitud de tipos de calibración distintos, muy variados y complejos. Se
han añadido numerosas funcionalidades con la intención de hacer más útil el sistema, y
finalmente se han automatizado tareas hasta ahora realizadas de modo manual que pueden
ayudar, sin duda, en el trabajo diario de los técnicos del LOMG.
3.1.5 Usuarios del sistema
Distinguiremos dos tipos de usuarios del sistema de ahora en adelante:
-
-
El Técnico Calibrador es el usuario principal del sistema. Tiene capacidad para
gestionar Protocolos, Tipos de Protocolo y Calibraciones. Puede entrar y salir del
sistema. Finalmente puede modificar sus datos y consultarlos.
El Jefe de Departamento es un usuario especial que tiene las mismas capacidades
que un Técnico Calibrador con algunas funcionalidades añadidas: puede dar de alta
a otros Técnicos Calibradores, darlos de baja y listarlos.
Manual Técnico
8
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
En ciertas partes de esta documentación se hará referencia a otros dos tipos de usuarios;
-
-
El usuario Usuario Registrado no es más que una generalización de los usuarios
Técnico Calibrador y Jefe de Departamento. Se usa para nombrar a estos dos tipos
de usuarios al mismo tiempo.
El usuario Usuario no Validado es un usuario que llega al sistema y desea
validarse. Por lo tanto no está logueado, y la única opción que tiene es salir o
loguearse.
Manual Técnico
9
Sistema de Calibración Automática de Termohigrómetros
3.2 Enumeración de los Casos de Uso
Gestión de Técnicos
1. Alta de Técnico
2. Baja de Técnico
3. Modificación de Técnico
4. Consulta de Técnico
5. Listado de Técnicos
Gestión de Protocolos
6. Alta de Protocolo
7. Baja de Protocolo
8. Modificación de Protocolo
9. Consulta de Protocolo
10. Listado de Protocolos
Gestión de Tipos de Protocolo
11. Alta de Tipo de Protocolo
12. Baja de Tipo de Protocolo
13. Modificación de Tipo de Protocolo
14. Consulta de Tipo de Protocolo
15. Listado de Tipos de Protocolo
Gestión de Calibraciones
16. Alta de Calibración
17. Baja de Calibración
18. Consulta de Calibración
19. Listado de Calibraciones
Gestión de Seguridad
20. Validar Usuario
21. Finalizar Sesión de Usuario
Manual Técnico
10
Ángel Dacal Nieto
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.3 Diagramas de Casos de Uso
3.3.1 Diagramas de paquetes
Los casos de uso se distribuyen en los siguientes paquetes:
Gestión de
Técnicos
Gestión de Tipos de
Protocolo
Gestión de
Seguridad
Gestión de
Protocolos
Manual Técnico
Gestión de
Calibraciones
11
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.3.2 Diagramas de Casos de Uso por paquetes
Paquete Gestión de Técnicos:
Alta Técnico
Jefe de
Departamento
(from Use Case View)
<<include>>
Listado Técnicos
<<include>>
<<include>>
Usuario
Registrado
<<include>>
Validar Usuario
(from Gestión de Seguridad)
<<include>>
(from Use Case View)
<<include>>
Baja Técnico
Modificación Técnico
Técnico
Calibrador
<<include>>
(from Use Case View)
Consulta Técnico
Paquete Gestión de Seguridad:
Validar Usuario
Usuario no
validado
(from Use Case View)
Cerrar Sesión Usuario
Usuario
Registrado
(from Use Case View)
Jefe de
Departamento
(from Use Case View)
Manual Técnico
Técnico
Calibrador
(from Use Case View)
12
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
Paquete Gestión de Protocolos:
Alta Protocolo
<<include>>
Listado Protocolos
<<include>>
<<include>>
<<include>>
<<include>>
Técnico
Calibrador
Validar Usuario
(from Gestión de Seguridad)
<<include>>
(from Use Case View)
<<include>>
Baja Protocolo
Modificación Protocolo
<<include>>
<<extend>>
<<include>>
<<extend>>
Listado Tipos Protocolo
Consulta Protocolo
(from Gestión de Tipos de Protocolo)
Paquete Gestión de Tipos de Protocolo:
Alta Tipo Protocolo
Listado Tipos Protocolo
<<include>>
<<include>>
<<include>>
Técnico
Calibrador
<<include>>
<<include>>
(from Use Case View)
<<include>>
Baja Tipo Protocolo
<<include>>
Modificación Tipo Protocolo
<<include>>
Consulta Tipo Protocolo
Manual Técnico
13
Validar Usuario
(from Gestión de Seguridad)
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
Paquete Gestión Calibraciones:
<<extend>>
Listado Protocolos
(f rom Gestión de Protocolos)
<<extend>>
<<include>>
Alta Protocolo
Alta Calibración
(f rom Gestión de Protocolos)
<<include>>
Listado Calibraciones
<<include>>
<<extend>>
<<include>>
<<include>>
<<include>>
Validar Usuario
Técnico
Calibrador
(f rom Gestión de Seguridad)
(f rom Use Case View)
...)
Baja Calibración
<<include>>
<<include>>
<<include>>
Consulta Calibración
Manual Técnico
14
Listado Técnicos
(f rom Gestión de Técnicos)
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4 Descripción de los Diagramas de Casos de Uso
3.4.1 Alta de Técnico
3.4.1.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Alta de Técnico
Añadir un técnico en el sistema
Jefe de Departamento
El Jefe de Departamento está convenientemente validado. Será él
quien dé al técnico de alta.
Se añade un nuevo técnico al sistema
1. El Jefe de Departamento, previamente validado, solicita
dar de alta un nuevo técnico.
2. Se le muestra un formulario para tal efecto.
3. El técnico asigna unos determinados datos al técnico, que
podrá cambiarlos en cuanto se valide.
4. Se verifica la validez de los datos recién introducidos,
como por ejemplo que no se esté introduciendo un
técnico ya existente.
5. Si los datos son válidos, el técnico se añade.
1. Si algún dato no es válido, se le pide al Jefe de
Departamento que lo introduzca adecuadamente.
2. Si el técnico ya existe, se aborta la operación.
Baja
3.4.1.2 Diagrama de secuencia
: Sistema
: Jefe de
Departamento
: Técnico
Solicita Alta de Técnico
Solicita datos
Introduce datos
Comprueba si Técnico ya existe
Comprueba validez de los datos
Nuevo Técnico
Informa de operación realizada
Manual Técnico
15
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.2 Baja de Técnico
3.4.2.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Baja de Técnico
Suprimir un técnico del sistema
Jefe de Departamento
El Jefe de Departamento está convenientemente validado.
El Jefe de Departamento no puede borrarse a sí mismo, pero sí a
otros Técnicos Calibradores.
Se elimina un técnico del sistema.
1. El Jefe de Departamento solicita dar de baja un técnico.
Puede acceder a esta opción desde el caso de uso Listado
de Técnicos.
2. Se pide una confirmación para eliminarlo.
3. Si el Jefe de Departamento lo confirma, se suprime el
técnico del sistema.
1. Si el Jefe de Departamento reconsidera el borrado del
técnico, debe devolvérsele a la situación previa.
Baja
3.4.2.2 Diagrama de secuencia
: Sistema
: Jefe de
Departamento
: Técnico
Solicita Baja de Técnico
Solicita confirmación
Confirma
Borra técnico del sistema
Informa de operación realizada
Manual Técnico
16
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.3 Modificación de Técnico
3.4.3.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Modificación de Técnico
Modificar los datos de un técnico en el sistema
Usuario Registrado
El Usuario Registrado está convenientemente validado.
El Usuario Registrado sólo tiene la capacidad de modificarse a sí
mismo. El Jefe de Departamento no puede modificar a Técnicos
Calibradores.
Los datos del usuario son cambiados
1. El Usuario Registrado, previamente validado, solicita
modificar un técnico. Se accede a esta opción desde el caso
de uso Consulta de Técnico.
2. Se le muestra un formulario con los datos del técnico.
3. El Usuario puede ahora modificar sus datos.
4. Se verifica la validez de los datos recién introducidos.
5. Si los datos son válidos, el técnico se modifica.
1. Una vez introducidos los datos, alguno de ellos puede ser
erróneo; en ese caso se fuerza a que se introduzcan de
nuevo o se descarte continuar.
Baja
3.4.3.2 Diagrama de secuencia
: Sistema
: Usuario
Registrado
: Técnico
Solicita Modificación de Técnico
Obtiene información de técnicos
Muestra datos y solicita nuevos datos
Introduce nuevos datos
Comprueba validez de los datos
Modifica técnico
Informa de operación realizada
Manual Técnico
17
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.4 Consulta de Técnico
3.4.4.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Consulta de Técnico
Consultar un técnico del sistema
Usuario Registrado
El Usuario Registrado está convenientemente validado.
Un Técnico Calibrador puede consultar sus datos; un Jefe de
Departamento no puede consultar los de los Técnicos Calibradores.
Se muestran los datos del técnico escogido.
1. El Usuario Registrado solicita visualizar sus datos.
2. El sistema muestra los datos de dicho técnico.
Media
3.4.4.2 Diagrama de secuencia
: Sistema
: Usuario
Registrado
: Técnico
Solicita Consulta de Técnico
Obtiene información de Técnico
Muestra información de Técnico
Manual Técnico
18
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.5 Listado de Técnicos
3.4.5.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Listado de Técnicos
Consultar todos los técnicos del sistema
Jefe de Departamento
El Jefe de Departamento está convenientemente validado
Se muestra un listado con los técnicos del sistema
1. El Jefe de Departamento solicita visualizar un listado de los
técnicos del sistema.
2. Se le presenta al Jefe de Departamento un listado con los
técnicos del sistema.
3. El Jefe de Departamento podrá indicar uno o más técnicos
para borrarlos, previa confirmación.
Media
3.4.5.2 Diagrama de secuencia
: Jefe de
Departamento
: Sistema
: Técnico
Solicita Listado de Técnicos
Obtiene información de Técnicos
Muestra listado de Técnicos
Manual Técnico
19
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.6 Alta de Protocolo
3.4.6.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Alta de Protocolo
Dar de alta un protocolo en el sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se añade un nuevo protocolo en el sistema
1. El Técnico Calibrador, previamente validado, solicita dar
de alta un nuevo protocolo.
2. Se le muestra un formulario para tal efecto.
3. Se verifica la validez de los datos recién introducidos,
como por ejemplo que no se esté introduciendo un
protocolo ya existente.
4. Si los datos son válidos, el protocolo se añade.
1. Si algún dato no es válido, se le pide al Técnico Calibrador
que lo introduzca adecuadamente.
2. Si el protocolo ya existe, se aborta la operación.
3. En la operación se escoge un Tipo de Protocolo, por medio
de un listado.
Alta
3.4.6.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
: Protocolo
:
Tipo_Protocolo
Solicita Alta de Protocolo
Obtiene lista de tipos de protocolo
Solicita datos
Introduce datos
Comprueba validez
Nuevo Protocolo
Informa de operación realizada
Manual Técnico
20
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.7 Baja de Protocolo
3.4.7.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Baja de Protocolo
Eliminar un protocolo del sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se elimina un protocolo del sistema
1. El Técnico Calibrador, previamente validado, solicita dar
de baja un protocolo. El Técnico Calibrador puede acceder
a esta opción desde el caso de uso Consulta de Protocolo.
2. Si el Protocolo ha sido usado en alguna Calibración
existente en el sistema, se impide el borrado para que no se
pierda dicha información.
3. Se pide una confirmación para eliminarlo.
4. Si el Técnico Calibrador lo confirma, se suprime el
protocolo del sistema.
1. Si el Técnico Calibrador reconsidera el borrado del
protocolo, debe devolvérsele a la situación previa.
2. Si el Protocolo ha sido usado en alguna Calibración
existente en el sistema, se impide el borrado para que no se
pierda dicha información.
Baja
3.4.7.2 Diagrama de secuencia
: Sistema
: Técnico
Calibrador
: Protocolo
Solicita Baja de Protocolo
Solicita confirmación
Confirma
Borra Protocolo de Sistema
Informa de operación realizada
Manual Técnico
21
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.8 Modificación de Protocolo
3.4.8.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Modificación de Protocolo
Modificar los datos de un protocolo en el sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Los datos del protocolo son cambiados
1. El Técnico Calibrador, previamente validado, solicita
modificar un protocolo. El Técnico Calibrador accede a esta
opción desde el caso de Consulta de Protocolo.
2. Si el Protocolo ha sido usado en alguna Calibración
existente en el sistema, se impide la modificación para que
no se pierda dicha información.
3. Se le muestra un formulario con los datos del protocolo.
4. El Técnico Calibrador modifica los datos del protocolo que
considere oportunos.
5. Se verifica la validez de los datos recién introducidos.
6. Si los datos son válidos, el protocolo se modifica.
1. Una vez introducidos los datos, alguno de ellos puede ser
erróneo; en ese caso se fuerza a que se introduzcan de
nuevo o se descarte continuar
2. En la operación se hace uso de un listado de Tipos de
Protocolo.
3. Si el Protocolo ha sido usado en alguna Calibración
existente en el sistema, se impide la modificación para que
no se pierda dicha información.
Media
3.4.8.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
: Protocolo
:
Tipo_Protocolo
Solicita Modificación de Protocolo
Obtiene listado de tipos de protocolo
Obtiene información de protocolos
Muestra datos y solicita nuevos datos
Introduce nuevos datos
Comprueba validez
Modifica protocolo
Informa de operación realizada
Manual Técnico
22
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.9 Consulta de Protocolo
3.4.9.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Consulta de Protocolo
Consultar un protocolo del sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se muestran los datos del protocolo escogido
1. El Técnico Calibrador solicita visualizar un protocolo. El
Técnico Calibrador puede acceder a esta opción desde el
caso de uso Listado de Protocolos.
2. El sistema muestra los datos de dicho protocolo.
El técnico puede ahora modificar o borrar dicho protocolo.
Alta
3.4.9.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
: Protocolo
Solicita Consulta de Protocolo
Obtiene información de protocolo
Muestra información de protocolo
Manual Técnico
23
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.10 Listado de Protocolos
3.4.10.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Listado de Protocolos
Consultar todos los protocolos del sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se muestra un listado con los protocolos disponibles
1. El Técnico Calibrador solicita visualizar un listado de los
protocolos del sistema.
2. Se le presenta al Técnico Calibrador un listado con los
protocolos del sistema.
3. El Técnico Calibrador podrá indicar un protocolo para
verlo con más detalle.
Alta
3.4.10.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
: Protocolo
Solicita Listado de Protocolos
Obtiene información de protocolos
Muestra Listado de Protocolos
Manual Técnico
24
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.11 Alta de Tipo de Protocolo
3.4.11.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Alta de Tipo de Protocolo
Añadir un Tipo de Protocolo en el sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se añade un Tipo de Protocolo en el sistema
1.
El Técnico Calibrador, previamente validado, solicita dar
de alta un nuevo Tipo de Protocolo.
2.
Se le muestra un formulario para tal efecto.
3.
Se verifica la validez de los datos recién introducidos. Se
comprueba, por ejemplo, que el tipo introducido no
exista en el sistema.
4.
Si los datos son válidos, el Tipo de Protocolo se añade.
1. Si algún dato no es válido, se le pide al Técnico Calibrador
que lo introduzca adecuadamente.
Media
3.4.11.2 Diagrama de secuencia
: Sistema
: Técnico
Calibrador
:
Tipo_Protocolo
Solicita Alta de Tipo de Protocolo
Solicita datos
Introduce datos
Comprueba datos
Crea nuevo Tipo de Protocolo
Informa de operación realizada
Manual Técnico
25
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.12 Baja de Tipo de Protocolo
3.4.12.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Baja de Tipo de Protocolo
Eliminar un Tipo de Protocolo del sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se elimina un Tipo de Protocolo del sistema
1. El Técnico Calibrador, previamente validado, solicita dar
de baja un Tipo de Protocolo. El Técnico Calibrador puede
acceder a esta opción desde el caso de uso Consulta de
Tipo de Protocolo.
2. Se informa al Técnico Calibrador de los Protocolos que se
borrarían en caso de seguir adelante con la operación.
3. Si alguno de dichos Protocolos ha sido usado en alguna
Calibración existente en el sistema, se impide el borrado de
ese Protocolo para que no se pierda dicha información.
4. Se pide una confirmación para eliminarlo.
5. Si el Técnico Calibrador lo confirma, se suprime el Tipo de
Protocolo del sistema, así como los Protocolos asociados
que no hayan sido usados en alguna Calibración.
1. Si el Técnico Calibrador reconsidera el borrado del Tipo de
Protocolo, debe devolvérsele a la situación previa.
2. Si algún Protocolo ha sido usado en alguna Calibración
existente en el sistema, se impide el borrado de dicho
Protocolo para que no se pierda dicha información.
Baja
Flujo de eventos
excepcional:
Frecuencia de uso
3.4.12.2 Diagrama de secuencia
: Sistema
: Técnico
Calibrador
:
Tipo_Protocolo
: Protocolo
Solicita Baja de Tipo de Protocolo
Obtiene información de protocolos borrados a causa de la baja del Tipo de Protocolo
Muestra información de protocolos borrados a causa de la baja del Tipo de Protocolo
Solicita confirmación
Confirma
Borra Tipo de Protocolo
Borra protocolos
Se informa de operación realizada
Manual Técnico
26
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.13 Modificación de Tipo de Protocolo
3.4.13.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Modificación de Tipo de Protocolo
Modificar los datos de un Tipo de Protocolo en el sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Los datos del Tipo de Protocolo son cambiados
1. El Técnico Calibrador, previamente validado, solicita
modificar los datos de un Tipo de Protocolo. El Técnico
Calibrador puede acceder a esta opción desde el caso de
uso Consulta de Tipo de Protocolo.
2. Se le muestra un formulario con los datos del Tipo de
Protocolo.
3. El Técnico Calibrador modifica los datos del Tipo de
Protocolo que considere oportunos.
4. Se verifica la validez de los datos recién introducidos
5. Si los datos son válidos, el Tipo de Protocolo se modifica.
1. Una vez introducidos los datos, alguno de ellos puede ser
erróneo; en ese caso se fuerza a que se introduzcan de
nuevo o se descarte continuar
Media
3.4.13.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
:
Tipo_Protocolo
Solicita Modificación de Tipo de Protocolo
Obtiene información de Tipos de Protocolo
Muestra datos y solicita nuevos datos
Introduce nuevos datos
Comprueba validez
Modifica Tipo de Protocolo
Se informa de operación realizada
Manual Técnico
27
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.14 Consulta de Tipo de Protocolo
3.4.14.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Consulta de Tipo de Protocolo
Consultar un Tipo de Protocolo del sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se muestran los datos del Tipo de Protocolo escogido
1. El Técnico Calibrador solicita visualizar un Tipo de
Protocolo. Puede acceder a esta opción desde el caso de
uso Listado de Tipos de Protocolo.
2. El sistema muestra los datos de dicho Tipo de Protocolo.
Alta
3.4.14.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
:
Tipo_Protocolo
Solicita Consulta de Tipo de Protocolo
Obtiene información de Tipo de Protocolo
Muestra información de Tipo de Protocolo
Manual Técnico
28
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.15 Listado de Tipos de Protocolo
3.4.15.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Listado de Tipos de Protocolo
Consultar todos los Tipos de Protocolo del sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se muestra un listado con los Tipos de Protocolo disponibles
1. El Técnico Calibrador solicita visualizar un listado de los
Tipos de Protocolo del sistema.
2. Se le presenta al Técnico Calibrador un listado con los
Tipos de Protocolo del sistema.
3. El Técnico Calibrador podrá indicar un Tipo de Protocolo
para verlo con más detalle.
Alta
3.4.15.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
:
Tipo_Protocolo
Solicita Listado de Tipos de Protocolo
Obtiene información de Tipos de Protocolo
Muestra Listado de Tipos de Protocolo
Manual Técnico
29
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.16 Alta de Calibración
3.4.16.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Manual Técnico
Alta de Calibración
Añadir una Calibración en el sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado. Los
dispositivos que sean necesarios en la Calibración están conectados
y configurados.
Se añade una Calibración al sistema
1. El Técnico Calibrador, previamente validado, solicita dar
de alta una nueva Calibración.
2. Se le muestran diversos formularios para tal efecto. En
dichos formularios se escogerán y configurarán
parámetros de la Calibración.
3. Se verifica la validez de los datos recién introducidos.
4. Si los datos son válidos, la Calibración se lleva a cabo.
Durante su duración el Técnico Calibrador es informado
de las incidencias de la misma.
5. A su término, la Calibración es añadida en el sistema y
son creados diversos archivos de salida.
1. Si algún dato no es válido, se le pide al Técnico Calibrador
que lo introduzca adecuadamente.
2. Si algún dispositivo no está conectado, o falla en su
funcionamiento durante la Calibración, se detiene el
proceso.
3. Durante el proceso de alta es posible dar de alta nuevos
Protocolos, para que puedan ser utilizados en la nueva
Calibración. Se habilitarán listados de protocolos y tipos de
protocolo para poder usarlos en la calibración.
4. Durante el proceso de alta se hará uso del listado de
Técnicos, con la intención de escoger uno.
Alta
30
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.16.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
: Calibración
: Archivo
: Técnico
: Protocolo
: Dispositivo
: Medición
Solicita Alta de Calibración
Solicita datos
Introduce datos
Comprueba que no se repita
Selecciona Técnico
Selección de Protocolos
Selección de Dispositivos
Se informa de inicio de Calibración
Para cada protocolo
Nueva Medición
Se informa de medición tomada
Nueva Fotografía
Se informa de fotografía tomada
Crear Archivos
Fin_para
Crear Calibración
Se informa de operación realizada
Manual Técnico
31
: Fotografía
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.17 Baja de Calibración
3.4.17.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Baja de Calibración
Eliminar una Calibración del sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se elimina una Calibración del sistema
1. El Técnico Calibrador, previamente validado, solicita dar
de baja una Calibración. El Técnico Calibrador puede
acceder a esta opción desde los casos de uso Consulta de
Calibración.
2. Si el Técnico Calibrador lo confirma, se suprime la
Calibración del sistema
1. Si el Técnico Calibrador reconsidera el borrado, debe
devolvérsele a la situación previa.
Baja
3.4.17.2 Diagrama de secuencia
: Sistema
: Técnico
Calibrador
: Calibración
: Archivo
: Medición
: Fotografía
Solicita Baja de Calibración
Obtiene información de Calibración
Obtiene información de archivos que se darían de baja a causa de la baja de la Calibración
Obtiene información de mediciones que se darían de baja a causa de la baja de la Calibración
Obtiene información de fotografías que se darían de baja a causa de la baja de la Calibración
Muestra información de elementos que se darían de baja a causa de la baja de la Calibración
Solicita confirmación
Confirma
Borra archivos
Borra mediciones
Borra fotografías
Borra Calibración
Informa de operación realizada
Manual Técnico
32
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.18 Consulta de Calibración
3.4.18.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Consulta de Calibración
Consultar una Calibración del sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se muestran los datos de la Calibración escogida
1. El Técnico Calibrador solicita visualizar una Calibración. El
Técnico Calibrador puede acceder a esta opción desde el
caso de uso Listado de Calibraciones.
2. El sistema muestra los datos de dicha Calibración.
3. El Técnico Calibrador podrá borrar dicha calibración si así
lo desea.
Flujo de eventos
excepcional:
Frecuencia de uso
Alta
3.4.18.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
: Calibración
: Archivo
: Técnico
Solicita Consulta de Calibración
Obtiene información de Calibración
Obtiene información de archivos
Obtiene información de Técnico
Obtiene información de protocolos
Obtiene información de dispositivos
Obtiene información de mediciones
Obtiene información de fotografías
Muestra información de Calibración
Manual Técnico
33
: Protocolo
: Dispositivo
: Medición
: Fotografía
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.19 Listado de Calibraciones
3.4.19.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Listado de Calibraciones
Consultar las Calibraciones del sistema
Técnico Calibrador
El Técnico Calibrador está convenientemente validado
Se muestra un listado con las Calibraciones del sistema
1. El Técnico Calibrador solicita visualizar un listado de las
Calibraciones existentes en el sistema.
2. Se le presenta al Técnico Calibrador un listado con las
Calibraciones existentes.
3. El Técnico Calibrador podrá indicar una Calibración para
verla con más detalle.
Alta
3.4.19.2 Diagrama de secuencia
: Técnico
Calibrador
: Sistema
: Calibración
Solicita Listado de Calibraciones
Obtiene información de calibraciones
Muestra Listado de Calibraciones
Manual Técnico
34
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.20 Validar Usuario
3.4.20.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Validar Usuario
Certificar la existencia de un usuario en el sistema
Usuario No Validado
Ninguna
Un Usuario No Validado certifica que es Usuario Registrado.
1. El usuario introduce sus datos para entrar en el sistema
2. Si el usuario existe y sus datos son válidos, se reconoce
como Usuario Registrado.
1. Si los datos introducidos son erróneos, se pedirán de nuevo
o se posibilitará abandonar la operación
Alta
3.4.20.2 Diagrama de secuencia
: Usuario no
validado
: Sistema
: Técnico
Solicita hacer Login
Obtiene información de Técnico
Comprueba datos introducidos
El Técnico inicia sesión en el Sistema
Se informa de operación realizada
Manual Técnico
35
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.4.21 Finalizar Sesión Usuario
3.4.21.1 Descripción
Nombre:
Objetivo:
Actores:
Precondiciones:
Poscondiciones:
Flujo de eventos
principal:
Flujo de eventos
excepcional:
Frecuencia de uso
Finalizar Sesión Usuario
Finaliza la sesión de un usuario en el sistema
Usuario Registrado
El Usuario Registrado está convenientemente validado
El Usuario Registrado finaliza su sesión en el sistema, por lo que no
podrá acceder de nuevo al sistema sin validarse de nuevo.
1. El Usuario Registrado solicita finalizar la sesión.
2. El sistema finaliza la sesión de dicho usuario.
Alta
3.4.21.2 Diagrama de secuencia
: Usuario
Registrado
: Sistema
Solicita Cerrar Sesión
El Sistema cierra la sesión del usuario
Se informa de operación realizada
Manual Técnico
36
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
3.5 Diagrama de Clases Preliminar
Antes de comenzar el diseño, han surgido las siguientes clases:
Al expresar una clase como Singleton, se indica que de dicha clase solo puede existir una instancia. Se usa
este patrón en Sistema, ya que se tiene la certeza de que sólo va a existir un objeto Sistema.
Manual Técnico
37
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4. Diseño
Al comenzar el diseño se tuvieron que tomar algunas decisiones que modificaban de alguna manera el
trabajo realizado hasta el momento:
-
-
-
La clase Sistema, que se usaba para no tener un nivel de detalle excesivo, desapareció, para
dar lugar a clases que definiesen mejor el comportamiento de la aplicación.
La clase Dispositivo, que recogía todos los periféricos implicados en el proyecto, se
especializó en diversas subclases. Concretamente, Dispositivo_Patrón, Cámara_Climática y
Sistema_Redundante. La clase Cámara Fotográfica se separó de Dispositivo para distinguir
el comportamiento de los dispositivos (que miden) del de la cámara fotográfica (que crea
fotografías).
Tras la creación de las clases Cámara_Fotográfica, Dispositivo_Patrón y Cámara_Climática,
se crearon subclases correspondientes a cada uno de los dispositivos implicados en el
proyecto. Así, fue necesario crear las clases Termohigrómetro_Protimeter_996,
Camara_Thunder_2500, Camara_CCam_BCi4, etc.
La clase Archivo se subdividió en Archivo_txt y Archivo_xls.
Tras estas especializaciones evidentes, se ampliaron las clases existentes con las clases dedicadas al
manejo de la base de datos. Posteriormente se añadieron las clases encargadas de la interfaz de usuario.
4.1 Diseño de las clases del dominio del problema
En este apartado se tratará de explicar el camino seguido para darle forma al sistema, desde una
perspectiva temporal. En posteriores apartados se hará una descripción de cada clase, pero en este
apartado la intención es simplemente indicar cómo se ha abordado el diseño del sistema.
4.1.1 Dispositivo
La primera tarea del diseño era especializar los dispositivos implicados. La primera decisión fue separar
las Cámaras Fotográficas, por un lado (porque principalmente se dedican a efectuar fotografías), y por
otro lado dispositivos que miden ciertas magnitudes y las vuelcan en una medición. De este modo las
cámaras fotográficas se desvinculaban de dispositivo.
Sin embargo esto no era suficiente, y fue necesario distinguir entre distintos tipos de dispositivos. Esta
división es necesaria para distinguir el comportamiento de las cámaras climáticas (que configuran un
medio a partir de un protocolo), del de un dispositivo patrón (que simplemente mide). Finalmente, el
Sistema Redundante es un dispositivo especial, que también crea una medición, pero con características
diferentes al resto.
Cada una de estas subclases se divide, a su vez, en más subclases:
-
Dispositivo_Patron se especializa en:
o Multimetro_34401ª
o Multimetro_HP3457A
o Termohigrometro_DP30_BCS
o Termohigrometro_Protimeter_996
o Termometro_BlackStack_1560
Manual Técnico
38
Sistema de Calibración Automática de Termohigrómetros
o
-
Ángel Dacal Nieto
Termometro_F250
Camara_Climatica se especializa en;
o Camara_Thunder_2500
Con estas consideraciones, un esquema de lo comentado hasta ahora es el siguiente:
Especialización de Dispositivo
Especialización de Camara_Fotografica
Manual Técnico
39
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.1.2 Dispositivo - Medicion
La siguiente tarea del diseño era tratar de encontrar similitudes entre los dispositivos implicados.
Hablamos de periféricos muy heterogéneos entre sí, con comportamientos diversos, interfaces diversas,
distintas magnitudes, etc.
Tras la lectura de manuales y numerosas pruebas, se llegó a la conclusión de que la principal similitud, y
más importante, era que los dispositivos realizaban mediciones. Daba igual qué midiesen o cómo. Lo
importante era que la aplicación viese un Dispositivo medible que, del modo que fuese, devolviera una
medición.
Así, los primeros esfuerzos se dedicaron a encapsular los accesos a los puertos Serie y GPIB, para
después centrarse en el proceso de creación de una medición.
Para ello se decidió hacer uso de una variante del patrón de diseño conocido como Factory Method.
Define la interfaz de creación de un cierto tipo de objetos, pero deja que sean sus subclases las que
decidan qué tipo de objeto se debe crear.
Patrón de Diseño Factory Method
De este modo, existirá una subclase de Dispositivo por cada dispositivo que cree mediciones. Cada una
de ellas creará su propio tipo de medición, adecuada a sus magnitudes y necesidades. Para la superclase
Dispositivo, qué medición concreta se crea es irrelevante, ya que sabe que, en todo caso, será una
Medicion.
Esta arquitectura permite que la aplicación se desentienda del proceso de creación de mediciones de
cada dispositivo, dejando un acceso transparente a los mismos.
La clase Dispositivo, recordemos, tiene tres especializaciones:
- Dispositivo_Patron, que denota a los patrones utilizados en las calibraciones.
- Cámara_Climática, que denota a las cámaras climáticas que generarán condiciones de
temperatura y humedad.
- Sistema_Redundante, que es una clase que sirve para leer del Sistema Redundante.
En todo caso cualquier subclase de estas especializaciones crea Mediciones, con las magnitudes
adecuadas para cada caso.
Manual Técnico
40
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.1.3 Camara_Fotografica - Fotografia
Algo parecido a lo comentado en el punto 4.1.2 sucedió con la clase Camara_Fotografica.
A pesar de que actualmente solamente se dispone de una Cámara Fotográfica (una CCam BCi4 USB), el
sistema ha de quedar preparado para la posible inclusión de otros modelos. Por ello, y análogamente al
caso de los dispositivos medibles, existe una clase abstracta Camara_Fotografica que define la manera de
crear fotografías: a partir del método sacarFoto().
Cada subclase de Camara_Fotografica define su propia manera de acceder al dispositivo, y su propia
manera de crear la fotografía.
La diferencia con el Factory Method está en que sólo existe un tipo de Fotografía. Es decir, no existe un
tipo de Fotografía por cada cámara como en el caso anterior.
Creación de Fotografia
En el diagrama vemos una cámara fotográfica concreta, la CCam BCi4, que es la única cámara, por el
momento, de que se dispone. Dicha clase Camara_CCam_BCi4 es subclase de Camara_Fotografica.
4.1.4 Calibracion
Una vez resuelta la problemática de creación de mediciones y fotografías, el siguiente paso era el eje
central del proceso: la clase Calibracion.
Se optó por una visión sencilla. La clase calibración incluiría toda la información necesaria para una
calibración concreta. Esto supone incluir dispositivos, mediciones, fotografías, técnico, archivos,
protocolos y otros datos relevantes como identificadores.
Manual Técnico
41
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.2 Diseño de las clases de acceso a base de datos
Una vez implantada la base de datos (que será descrita con mayor profundidad en capítulos
posteriores), se crearon clases encargadas de su manejo.
Para ello se diseñó una clase para cada una de las clases que almacenarían información en la base de
datos: Dispositivo, Medicion, Fotografia, Tecnico, Archivo, Protocolo, Tipo_Protocolo y finalmente
Calibracion. Cada una de estas clases dispondrían de los métodos necesarios para gestionar con
transparencia los accesos: altas, bajas, consultas, modificaciones y listados.
Con este diseño tenemos material suficiente para comenzar la implementación de modo que nos permita
la creación de una aplicación que cumpla los objetivos marcados en un principio. Obviamente, y dadas
las posibilidades actuales, se ha concebido una interfaz de usuario sobre este diseño que facilite el flujo
de información entre usuario y sistema.
Manual Técnico
42
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.3 Diseño de las clases de la interfaz de usuario
Para el diseño de la interfaz de usuario se hace uso de diversas clases definidas en el .NET framework de
Visual Studio.
Dichas clases extienden el comportamiento de la clase System::Windows::Forms::Form, estando cada
una orientada a un propósito específico.
Form
Form_Entrada
Form_Home
Form_Alta_Protocolo
Form_Nueva_Calibracion_1
Form_Consulta_Protocolo
Form_Nueva_Calibracion_2
Form_Listado_Protocolos
Form_Nueva_Calibracion_3
Form_Alta_Tecnico
Form_Consulta_Tecnico
Form_Listado_Tecnicos
Form_Nueva_Calibracion_4
Form_Alta_Tipo_Protocolo
Form_Nueva_Calibracion_5
Form_Consulta_Tipo_Protocolo
Form_Nueva_Calibracion_6
Form_Consulta_Calibracion
Form_Nueva_Calibracion_7
Form_Listado_Calibraciones
Form_Listado_Tipos_Protocolo
Dividiremos estas clases en tres grupos para explicar mejor su funcionamiento.
4.3.1 Formularios sencillos
El primer tipo de formularios diseñados son los llamados formularios sencillos. Se trata de formularios
que dan soporte a ciertos escenarios cuyo comportamiento es extremadamente simple. Son formularios
que se limitan a recoger o mostrar datos, sin nunca carga algorítmica más allá de la instanciación y paso
de mensajes entre objetos.
Cada uno de estos formularios cumplirán el cometido de un escenario (formularios de altas y
formularios de listados), o incluso de dos (los formularios de consulta sirven, además, para
modificaciones). Un caso especial es el Form_Home, que sirve para encaminar al usuario por las
distintas funcionalidades del sistema.
En este tipo de formularios se ha optado por permitir una interacción directa entre las clases del dominio
del problema y el formulario, sin ninguna estructura intermedia.
Entran en este grupo todos los formularios, a excepción de los formularios Form_Nueva_Calibracion_x.
Manual Técnico
43
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.3.2 Formularios de alta de calibración
El segundo tipo de formularios son los encargados de recoger los datos que conformarán una nueva
calibración. Cada uno de ellos recogerá una cierta información del usuario que permitirá poder iniciar el
proceso de calibración.
Las funciones de cada uno de estos formularios se han dividido de la manera más coherente posible,
agrupando las funciones similares para que el usuario vaya construyendo el proceso de la manera más
natural posible:
FORM_NUEVA_CALIBRACION_1: se dedicará a recoger datos genéricos de la calibración.
FORM_NUEVA_CALIBRACION_2: todo lo relacionado con dispositivos patrón.
FORM_NUEVA_CALIBRACION_3: todo lo relacionado con cámaras climáticas.
FORM_NUEVA_CALIBRACION_4: asignación de protocolos.
FORM_NUEVA_CALIBRACION_5: todo lo relacionado con cámaras fotográficas.
FORM_NUEVA_CALIBRACION_6: resumen de lo introducido, y confirmación si procede.
Son formularios sumamente complejos, con numerosas restricciones entre ellos, de modo que el
formulario n+1 necesita que el formulario n haya sido rellenado correctamente. Por ello se exigirá un uso
secuencial de los mismos.
Para mantener la coherencia entre los formularios y permitir que su funcionamiento sea correcto, se ha
escrito la clase EstadoInterfaz. Gracias a ella los formularios comparten información y toman decisiones
en función de dicha información. Debemos ver a esta clase como una mochila que se pasa entre los
distintos formularios, en la que éstos dejan y recogen cosas, de modo que la captura de datos sea
coherente hasta el último momento.
4.3.3 Formulario de calibración en curso
El tercer caso es el del formulario que presenta la información de la calibración en curso. Este formulario,
FORM_NUEVA_CALIBRACION_7, que se ha construido mediante la información recogida en
EstadoInterfaz, ha de dar respuesta a eventos de la interfaz de usuario mientras el proceso se realiza. Es
decir, han de existir dos hilos de ejecución, uno para el proceso de calibración y otro para el formulario.
En .NET los hilos se encuentran en el namespace System::Threading. Aunque no es posible crear una
nueva clase que extienda a Thread, sí es posible que un nuevo hilo ejecute un cierto código. Por ello se
ha diseñado una clase Proceso que es la encargada de definir ese nuevo hilo, y que dicho hilo ejecute el
código encargado del desarrollo de la calibración.
Los siete formularios FORM_NUEVA_CALIBRACION conforma el escenario de Alta de Calibración.
Debido a su complejidad, el apartado 4.5 dedicado a los diagramas de diseño de los distintos escenarios
del sistema, dividirá este escenario en función de los siete formularios que acabamos de describir. Por lo
tanto, a pesar de esta división orientada a que el lector comprenda mejor el funcionamiento del
escenario, se ha de ver como una sola funcionalidad.
Manual Técnico
44
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.4 Algoritmos
4.4.1 Algoritmo de Calibración
El eje central de este proyecto es, sin duda, el alta de una nueva calibración.
Es un proceso complejo y muy variable. Los dispositivos que intervienen en él van desde un sólo patrón
(en el caso más simple) a varios patrones, una cámara climática y una cámara fotográfica (en un caso
más complejo). Y puede desarrollarse con un solo calibrando, o con varios al mismo tiempo. Por todo
esto el algoritmo ha de ser lo más flexible posible, permitiendo una alta modularidad.
El siguiente algoritmo describe, a grandes rasgos, el funcionamiento del proceso de calibración. Dicho
algoritmo se implementa en la clase Proceso.
ALGORITMO DE CALIBRACIÓN:
Para cada protocolo
hacer
//estabilizar
si hay cámara climática
configurar cámara climática
mientras calibración no estable, esperar
fin_si
Para cada paso de este protocolo
hacer
Para cada patrón
hacer
Para cada sonda del patrón
hacer
realizar medición
presentar medición en interfaz
fin_hacer
fin_hacer
si hay cámara fotográfica
sacar fotografía
recortar
interpretar fotografía (si procede)
presentar fotografía en interfaz
fin_si
esperar tiempo indicado por el protocolo
fin_hacer
fin_hacer
Esta es la visión más automática del algoritmo. Se ofrecerá una variante más manual, de modo que sea el
técnico quien tome las decisiones de cuándo está estable el medio, o cuándo pasar al siguiente protocolo.
Manual Técnico
45
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.4.2 Algoritmo de Estabilización
Otro punto conflictivo es el de estabilización del medio. Es de vital importancia conocer cuándo está
estable el medio y detectar cuándo no.
La estabilización es un proceso que puede llevar horas, dependiendo del medio que se pretende
estabilizar. El aire, que es el usado por las cámaras climáticas con las que trabaja este proyecto, es un
medio especialmente difícil de estabilizar.
El algoritmo se basa en la comprobación de que las últimas mediciones de la cámara climática no
sobrepasen (ni por encima ni por debajo) un cierto margen. Es decir, vamos a controlar una ventana de
un cierto número de mediciones. Si todas y cada una de esas últimas mediciones se encuentran entre dos
valores que consideramos válidos, entonces el medio se da por estable. Si no, se espera un cierto tiempo
y se vuelve a medir.
Lo podemos comprobar con el siguiente gráfico. En los puntos negros tenemos las mediciones de una
cámara climática, mientras que la línea gris los interpreta dibujando una gráfica. Imaginemos que se
pretende generar la temperatura marcada por la línea roja. Y que los márgenes definidos, asignados por
el técnico, vienen marcados por las dos líneas naranja. Supongamos ahora que se necesitan 7 mediciones
dentro de estos márgenes para considerar la el medio como estable. Pues bien, la calibración estaría
estable (según los parámetros antes descritos) a partir del punto azul, y no antes.
Estabilización de un medio
Esta ventana de seguridad pretende solucionar el problema de la inercia. Dicho problema consiste en que
la temperatura no va a subir o bajar directamente de una temperatura a otra, sino que hará una gráfica
como la que acabamos de describir: acercándose al objetivo poco a poco.
ALGORITMO DE ESTABILIZACIÓN:
Si tenemos suficientes mediciones para crear una ventana
hacer
Hallar temperatura máxima de la ventana
Hallar temperatura mínima de la ventana
Si la temperatura máxima se sale del rango -> no está estable
Si la temperatura mínima se sale del rango -> no está estable
Si ambas están dentro de rango -> está estable
fin_hacer
Manual Técnico
46
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.4.3 Algoritmo para Correcciones
Una utilidad muy interesante, ya que facilita mucho el trabajo de los técnicos del LOMG, es de la
inclusión de las correcciones. Recordemos que cada dispositivo patrón tiene un error conocido a una
cierta temperatura. Se conocen los errores para varias temperaturas, pero no obviamente cada
temperatura concreta tendrá un error concreto.
La idea es que la aplicación halle la corrección para cada dispositivo patrón a partir de una temperatura
y unas tablas que se le proporcionan en archivos de texto, como esta:
Tª
0
50
100
Corr.
0.150
0.166
0.180
Para hallar la corrección a una temperatura t, previamente tenemos que hallar:
t_menor = la temperatura de la columna de la izquierda inmediatamente menor que t
t_mayor = la temperatura de la columna de la izquierda inmediatamente mayor que t
c_menor = la corrección de la columna de la derecha correspondiente a t_menor
c_mayor = la corrección de la columna de la derecha correspondiente a t_mayor
La fórmula para hallar una corrección a partir de la temperatura t y los datos anteriores es:
Corr(t) = c_menor +
c_mayor − c_mayor
t_mayor − t_menor
· ( t – t_menor )
El algoritmo carga en una estructura de datos la tabla obtenida del fichero de texto indicado y halla la
corrección para una temperatura t indicada. Posteriormente las correcciones se suman, de modo que el
técnico pueda disponer de las mediciones corregidas para incluir en sus informes.
Por último, hay que comentar que hemos hablado de correcciones para temperatura, pero se pueden
corregir otras magnitudes, como humedad relativa o las provenientes de un multímetro. Simplemente
debemos tener la tabla adecuada, con los valores adecuados en la columna de la izquierda. La fórmula
sería la misma.
Manual Técnico
47
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.4.4 Algoritmo para recoger mediciones del Sistema Redundante
El Sistema Redundante está compuesto por una serie de sensores, uno por habitación del LOMG, que
registran temperatura y humedad relativa, y que vuelcan dichos registros cada cinco minutos en
archivos de texto en el servidor. Se le conoce como Sistema Redundante porque el edificio ya dispone de
un sistema similar para controlar sus condiciones ambientales y modificarlas en función de las
necesidades de cada laboratorio. El Sistema Redundante simplemente registra, mientras que el otro
controla.
Cada calibración debe llevar consigo información acerca de las condiciones ambientales existentes en el
laboratorio donde se llevó a cabo. Por ello la interacción con el Sistema Redundante es muy frecuente, y
cualquier automatización es bienvenida.
La información necesaria es un rango de temperatura y humedad relativa en el que ha fluctuado el
laboratorio. Es decir, temperaturas máxima y mínima y humedades relativas máxima y mínima.
Para ello la aplicación debe primero acceder a los ficheros de texto en los que se han registrado las
incidencias de los días en los que fue realizada la calibración. Para ello el Sistema Redundante almacena
estos registros de una manera bastante organizada. Cada día tiene su propia carpeta, dentro de la cual
cada laboratorio dispone de dos archivos de texto: uno para datos de temperatura y otro para datos de
humedad relativa.
Las carpetas son fácilmente localizables, ya que su nombre se compone a partir de la fecha. Los archivos,
en cambio, se nombran con números del 1 al 60, siendo necesario conocer la correspondencia
laboratorio-archivos gracias a una lista aportada por el LOMG. Por ejemplo el laboratorio de Humedad
Relativa registra sus incidencias en los archivos 1 y 21.
Cada uno de estos archivos tiene una estructura como la que sigue:
09:54:32 ,24.17
09:59:37,24.188
…
El algoritmo, por tanto, carga los archivos implicados en memoria, extrae los valores máximo y mínimo
y hace posible que esa información se añada a la de la calibración en curso, que será escrita en los
archivos de salida del proceso.
Manual Técnico
48
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.4.5 Algoritmo para recortado de fotografías
Una de las principales funcionalidades requeridas para el sistema era el recortado de las fotografías
realizadas, salvando únicamente la zona de la fotografía en la que se observase el display del calibrando.
Para esta funcionalidad se barajaron diversas alternativas. Una de ellas se basaba en la comparación de
varias fotografías sucesivas. Comparando dichas imágenes se comprobaría que determinadas partes de
la fotografía cambiaban (la zona del display) mientras que otras no cambiaban (el resto de la fotografía,
como el cuerpo del termómetro, la pared, etc.). Localizando esa zona cambiante se conseguiría conocer en
qué zona de la escena se encontraba el display. Posteriormente, y ya que la escena no se movería, se
recortarían todas las imágenes en esa zona localizada.
Sin embargo, tras la fase de captación de requisitos, se observó que era común la presencia de más de un
calibrando por calibración. Es decir, era posible que hubiese más de un display por fotografía. Esto
introducía una nueva variable en el problema, ya que no sólo era necesario localizar los displays, sino
también identificarlos.
Por ello se optó por darle un enfoque distinto al problema. En lugar de ser el sistema el que buscase los
displays, sería el técnico el que, mediante algún tipo de herramienta en la fase de enfoque de la cámara,
le indicase al sistema en qué lugares exactos de la fotografía se encontraban los displays. No sólo eso:
también asociaría dichas zonas con sus calibrandos.
De este modo, en esta fase de enfoque, el técnico deberá indicar una zona de la fotografía por cada
calibrando introducido. El sistema tomará nota de las zonas indicadas y posteriormente recortará las
fotografías por dichas zonas, teniendo cada calibrando su pedazo de fotografía para almacenar
convenientemente.
Es decir:
//Fase de enfoque
Para cada calibrando
Escoger zona del display de dicho calibrando
El sistema toma nota de dicha zona
Fin_Para
…
//Fase de calibración
Se toma una fotografía
Para cada calibrando
Se recorta la fotografía por la zona deseada
Se almacena dicha fotografía
Fin_Para
Manual Técnico
49
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5 Diagramas de Diseño
Antes de entrar con los diagramas de diseño, hemos de efectuar algunas aclaraciones.
En primer lugar, se omitirán los atributos y métodos de las clases derivadas de Form, ya que dichas
clases se forman a partir de numerosísimos componentes del .NET Framework, y su presencia en estos
diagramas los convertiría en inmanejables.
En segundo lugar, las clases de la carpeta Librerías (StringTokenizer, Conversiones y Tiempo) se han
omitido. Por ser utilizadas en casi todos los escenarios, su presencia entorpecería la finalidad de estos
diagramas. Dichas clases serán descritas posteriormente en esta misma documentación.
Por último, otras clases, que como en el caso de la carpeta Librerías, son utilizadas pero no son
fundamentales para la comprensión del diseño, serán omitidas. Por ejemplo, todos las clases dedicadas a
la interacción con la base de datos instancian un objeto Base, encargado de conectarse con la base de
datos. Esta clase y otras, como se ya se ha dicho, serán omitidas en los diagramas.
Manual Técnico
50
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.1 Escenario Alta de Técnico
4.5.1.1 Diagrama de Clases parcial
Form_Home
Form_Alta_Tecnico
(from Formularios)
(fromFormulari...
Técnico
BD_Tecnico
(fromBD)
login
password
tipo
base
consultaTecnico()
altaTecnico()
bajaTecnico()
modificacionTecnico()
listadoTecnicos()
n
0..n
toString()
getLogin()
getPassword()
getTipo()
4.5.1.2 Diagrama de secuencia
: Jefe de
Departamento
: Form_Home
:
Form_Alta_Tecnico
: BD_Tecnico
: Técnico
Solicita Alta de Técnico
new()
Introduce datos
Comprueba validez de los datos
new()
consultaTecnico( )
new()
altaTecnico( )
Informa de operación realizada
Manual Técnico
51
new( )
En esta
consulta se
comprueba
que no se
repita
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.2 Escenario Baja de Técnico
4.5.2.1 Diagrama de Clases parcial
BD_Tecnico
(f rom BD)
base
Form_Listado_Tecnicos
consultaTecnico()
altaTecnico()
bajaTecnico()
modificacionTecnico()
listadoTecnicos()
(f rom Formularios)
4.5.2.2 Diagrama de secuencia
: Jefe de
Departamento
:
Form_Listado_Tecnicos
: BD_Tecnico
Solicita baja de Técnico
Solicita confirmación
Confirma
new()
bajaTecnico()
Informa de operación realizada
Manual Técnico
52
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.3 Escenario Modificación de Técnico
4.5.3.1 Diagrama de Clases parcial
Form_Consulta_Tecnico
(f rom Formularios)
Técnico
login
password
tipo
BD_Tecnico
(f rom BD)
base
consultaTecnico()
altaTecnico()
bajaTecnico()
modificacionTecnico()
listadoTecnicos()
0..n
n
toString()
getLogin()
getPassword()
getTipo()
4.5.3.2 Diagrama de secuencia
: Usuario
Registrado
:
Form_Consulta_Tecnico
: BD_Tecnico
: Técnico
Introduce nuevos datos
Comprueba validez de datos
new()
consultaTecnico( )
Solicita confirmación
confirma
new( )
modificacionTecnico( )
Informa de operación realizada
Manual Técnico
53
new( )
Esta
consulta es
para
comprobar la
contraseña
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.4 Escenario Consulta de Técnico
4.5.4.1 Diagrama de Clases parcial
Form_Home
Form_Consulta_Tecnico
(f rom Formularios)
(f rom Formularios)
Técnico
login
password
tipo
BD_Tecnico
(f rom BD)
base
consultaTecnico()
altaTecnico()
bajaTecnico()
modificacionTecnico()
listadoTecnicos()
0..n
n
toString()
getLogin()
getPassword()
getTipo()
4.5.4.2 Diagrama de secuencia
: Usuario
Registrado
: Form_Home
:
Form_Consulta_Tecnico
: BD_Tecnico
: Técnico
Solicita consulta de técnico
new()
new()
consultaTecnico()
Presenta datos de técnico
Se usa el
Técnico
consultado
para
presentar
datos por
pantalla
Manual Técnico
54
new()
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.5 Escenario Listado de Técnicos
4.5.5.1 Diagrama de Clases parcial
Form_Home
Form_Listado_Tecnicos
(f rom Formularios)
(f rom Formularios)
Técnico
login
password
tipo
BD_Tecnico
(f rom BD)
base
consultaTecnico()
altaTecnico()
bajaTecnico()
modificacionTecnico()
listadoTecnicos()
0..n
n
toString()
getLogin()
getPassword()
getTipo()
4.5.5.2 Diagrama de secuencia
: Jefe de
Departamento
: Form_Home
:
Form_Listado_Tecnicos
: BD_Tecnico
: Técnico
Solicita Listado de Técnicos
new()
new()
listadoTecnicos( )
Fin_Para
Presenta listado de Técnicos
Se devuelve
un vector, y
es lo que se
usa para
construir el
listado en el
formulario.
Manual Técnico
Para cada tecnico
new( )
55
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.6 Escenario Alta de Protocolo
4.5.6.1 Diagrama de Clases parcial
Form_Home
Form_Alta_Protocolo
(f rom Formularios)
(f rom Formularios)
BD_Protocolo
(f rom BD)
BD_Tipo_Protocolo
base
(f rom BD)
altaProtocolo()
bajaProtocolo()
modificacionProtocolo()
consultaProtocolo()
listadoProtocolos()
listadoProtocolosPorTipo()
listadoProtocolosPorCalibracion()
altaAsociacionCalProtocolo()
haSidoUsadoEsteProtocolo()
altaTipo_Protocolo()
bajaTipo_Protocolo()
consultaTipo_Protocolo()
modificacionTipo_Protocolo()
listadoTipos_Protocolo()
Protocolo
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
Tipo_Protocolo
id
nombre
descripcion
1
toString()
getId()
getNombre()
getDescripcion()
0..n toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
getNumero_mediciones()
getTipo()
4.5.6.2 Diagrama de secuencia
: Técnico
Calibrador
: Form_Home
Solicita Alta de Protocolo
:
Form_Alta_Protocolo
:
BD_Tipo_Protocolo
new( )
new( )
listadoTipos_Protocolo( )
Para todo tipo
new( )
Fin_Para
Introduce datos
Comprueba validez de los datos
new( )
new( )
altaProtocolo( )
Informa de operación realizada
Manual Técnico
56
:
Tipo_Protocolo
:
BD_Protocolo
Se recogen
todos los
tipos para
presentarlos
en el
formulario y
que el actor
seleccione
uno
: Protocolo
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.7 Escenario Baja de Protocolo
4.5.7.1 Diagrama de Clases parcial
BD_Protocolo
(f rom BD)
base
altaProtocolo()
bajaProtocolo()
modificacionProtocolo()
consultaProtocolo()
listadoProtocolos()
listadoProtocolosPorTipo()
listadoProtocolosPorCalibracion()
altaAsociacionCalProtocolo()
haSidoUsadoEsteProtocolo()
Form_Consulta_Protocolo
(f rom Formularios)
4.5.7.2 Diagrama de secuencia
: Técnico
Calibrador
:
Form_Consulta_Protocolo
Solicita Baja de Protocolo
Solicita confirmación
Confirma
new( )
bajaProtocolo( )
Informa de operación realizada
Manual Técnico
57
:
BD_Protocolo
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.8 Escenario Modificación de Protocolo
4.5.8.1 Diagrama de Clases parcial
Form_Consulta_Protocolo
(f rom Formularios)
Protocolo
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
BD_Protocolo
(f rom BD)
base
altaProtocolo()
bajaProtocolo()
modificacionProtocolo()
consultaProtocolo()
listadoProtocolos()
listadoProtocolosPorTipo()
listadoProtocolosPorCalibracion()
altaAsociacionCalProtocolo()
haSidoUsadoEsteProtocolo()
toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
getNumero_mediciones()
getTipo()
4.5.8.2 Diagrama de secuencia
: Técnico
Calibrador
:
Form_Consulta_Protocolo
:
BD_Protocolo
Solicita modificación de Protocolo
Comprueba validez de datos
Solicita confirmación
Confirma
new( )
new( )
modificacionProtocolo( )
Informa de operación realizada
Manual Técnico
58
: Protocolo
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.9 Escenario Consulta de Protocolo
4.5.9.1 Diagrama de Clases parcial
Form_Listado_Protocolos
Form_Consulta_Protocolo
(f rom Formularios)
(f rom Formularios)
BD_Protocolo
(f rom BD)
base
BD_Tipo_Protocolo
(f rom BD)
altaProtocolo()
bajaProtocolo()
modificacionProtocolo()
consultaProtocolo()
listadoProtocolos()
listadoProtocolosPorTipo()
listadoProtocolosPorCalibracion()
altaAsociacionCalProtocolo()
haSidoUsadoEsteProtocolo()
altaTipo_Protocolo()
bajaTipo_Protocolo()
consultaTipo_Protocolo()
modificacionTipo_Protocolo()
listadoTipos_Protocolo()
Protocolo
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
Tipo_Protocolo
id
nombre
descripcion
toString()
getId()
getNombre()
getDescripcion()
1
0..n
toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
getNumero_mediciones()
getTipo()
4.5.9.2 Diagrama de secuencia
: Técnico
Calibrador
:
Form_Listado_Protocolos
Solicita consulta de Protocolo
:
Form_Consulta_Protocolo
: BD_Tipo_Protocolo
new( )
:
Tipo_Protocolo
new( )
consultaProtocolo( )
new( )
listadoTipos_Protocolo( )
Para cada tipo
new( )
Fin_para
Muestra datos de protocolo
Manual Técnico
:
BD_Protocolo
59
new( )
: Protocolo
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.10 Escenario Listado de Protocolos
4.5.10.1 Diagrama de Clases parcial
Form_Home
Form_Listado_Protocolos
(f rom Formularios)
(f rom Formularios)
Protocolo
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
BD_Protocolo
(f rom BD)
base
altaProtocolo()
bajaProtocolo()
modificacionProtocolo()
consultaProtocolo()
listadoProtocolos()
listadoProtocolosPorTipo()
listadoProtocolosPorCalibracion()
altaAsociacionCalProtocolo()
haSidoUsadoEsteProtocolo()
toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
getNumero_mediciones()
getTipo()
4.5.10.2 Diagrama de secuencia
: Técnico
Calibrador
: Form_Home
:
Form_Listado_Protocolos
:
BD_Protocolo
: Protocolo
Solicita Listado de Protocolos
new( )
new( )
listadoProtocolos( )
Para cada protocolo
new( )
Fin_Para
Presenta listado de protocolos
Manual Técnico
Se devuelve un
vector, y es lo
que se usa
para construir
el listado en el
formulario.
60
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.11 Escenario Alta de Tipo de Protocolo
4.5.11.1 Diagrama de Clases parcial
Form_Home
Form_Alta_Tipo_Protocolo
(f rom Formularios)
(f rom Formularios)
Tipo_Protocolo
BD_Tipo_Protocolo
id
nombre
descripcion
(f rom BD)
altaTipo_Protocolo()
bajaTipo_Protocolo()
consultaTipo_Protocolo()
modificacionTipo_Protocolo()
listadoTipos_Protocolo()
toString()
getId()
getNombre()
getDescripcion()
4.5.11.2 Diagrama de secuencia
: Técnico
Calibrador
: Form_Home
: Form_Alta_Tipo_Protocolo
:
BD_Tipo_Protocolo
:
Tipo_Protocolo
Solicita alta de tipo de protocolo
new( )
Introduce datos
Comprueba validez de los datos
Esta consulta
es para
comprobar
que el tipo no
se repita
new( )
consultaTipo_Protocolo( )
new( )
altaTipo_Protocolo( )
Informa de operación realizada
Manual Técnico
61
new( )
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.12 Escenario Baja de Tipo de Protocolo
4.5.12.1 Diagrama de Clases parcial
BD_Tipo_Protocolo
(f rom BD)
Form_Consulta_Tipo_Protocolo
altaTipo_Protocolo()
bajaTipo_Protocolo()
consultaTipo_Protocolo()
modificacionTipo_Protocolo()
listadoTipos_Protocolo()
(f rom Formularios)
4.5.12.2 Diagrama de secuencia
: Técnico
Calibrador
:
Form_Consulta_Tipo_Protocolo
:
BD_Tipo_Protocolo
Solicita baja de tipo de protocolo
Solicita confirmación
Confirma
new( )
bajaTipo_Protocolo( )
Informa de operación realizada
Manual Técnico
62
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.13 Escenario Modificación de Tipo de Protocolo
4.5.13.1 Diagrama de Clases parcial
Form_Consulta_Tipo_Protocolo
(f rom Formularios)
Tipo_Protocolo
id
nombre
descripcion
BD_Tipo_Protocolo
(f rom BD)
altaTipo_Protocolo()
bajaTipo_Protocolo()
consultaTipo_Protocolo()
modificacionTipo_Protocolo()
listadoTipos_Protocolo()
toString()
getId()
getNombre()
getDescripcion()
4.5.13.2 Diagrama de secuencia
: Técnico
Calibrador
:
Form_Consulta_Tipo_Protocolo
:
BD_Tipo_Protocolo
Solicita modificación de tipo de protocolo
Comprueba validez de los datos
Solicita confirmación
Confirma
new( )
new( )
modificacionTipo_Protocolo( )
Informa de operación realizada
Manual Técnico
63
:
Tipo_Protocolo
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.14 Escenario Consulta de Tipo de Protocolo
4.5.14.1 Diagrama de Clases parcial
Form_Home
Form_Consulta_Tipo_Protocolo
(f rom Formularios)
(f rom Formularios)
Tipo_Protocolo
BD_Tipo_Protocolo
id
nombre
descripcion
(f rom BD)
altaTipo_Protocolo()
bajaTipo_Protocolo()
consultaTipo_Protocolo()
modificacionTipo_Protocolo()
listadoTipos_Protocolo()
toString()
getId()
getNombre()
getDescripcion()
4.5.14.2 Diagrama de secuencia
: Técnico
Calibrador
: Form_Home
:
Form_Consulta_Tipo_Protocolo
:
BD_Tipo_Protocolo
:
Tipo_Protocolo
Solicita consulta de tipo de protocolo
new( )
new( )
consultaTipo_Protocolo( )
Presenta información de tipo de protocolo
Manual Técnico
64
new( )
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.15 Escenario Listado de Tipos de Protocolo
4.5.15.1 Diagrama de Clases parcial
Form_Home
Form_Listado_Tipos_Protocolo
(f rom Formularios)
(f rom Formularios)
Tipo_Protocolo
BD_Tipo_Protocolo
id
nombre
descripcion
(f rom BD)
altaTipo_Protocolo()
bajaTipo_Protocolo()
consultaTipo_Protocolo()
modificacionTipo_Protocolo()
listadoTipos_Protocolo()
toString()
getId()
getNombre()
getDescripcion()
4.5.15.2 Diagrama de secuencia
: Técnico
Calibrador
: Form_Home
:
Form_Listado_Tipos_Protocolo
:
BD_Tipo_Protocolo
:
Tipo_Protocolo
Solicita listado de tipos de protocolo
new( )
new( )
listadoTipos_Protocolo( )
Para cada tipo
new( )
Fin_Para
Presenta listado de tipos de protocolo
Se devuelve un
vector, y es lo
que se usa
para construir
el listado en el
formulario.
Manual Técnico
65
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.16 Escenario Alta de Calibración
Como ya se ha comentado con anterioridad, el escenario Alta de Calibración es el eje central de este
proyecto, y el que recoge la mayor complejidad.
El diseño de la interfaz de usuario para esta funcionalidad se ha dividido en seis formularios (orientados
de la manera más natural posible a recoger los datos del usuario que conformarán una nueva
calibración), y un último formulario que se destina a informar de las incidencias de la calibración en
curso.
Debido al gran número de clases que intervienen en este escenario, presentarlas en un solo diagrama
sería inmanejable. Es por ello que se presentarán del mismo modo que el que siguen los formularios
destinados a la interfaz de usuario. Este orden es:
- 1: recoger datos genéricos de la calibración
- 2: recoger datos relativos a los patrones que intervendrán en el proceso
- 3: recoger datos relativos a la cámara climática y a los protocolos que conformarán el proceso
(se corresponde con los formularios 3 y 4)
- 4: recoger datos relativos a la cámara fotográfica
- 5: presentación de los datos recogidos y solicitud de confirmación
- 6: el propio proceso en sí
- 7: las tareas de salvado y creación de archivos de salida
El orden escogido no es casual, ya que es necesario cubrir ciertos pasos antes de proseguir a los
siguientes.
A continuación se presentarán los diagramas de secuencia de este escenario divididos en los seis pasos
antes mencionados. Para la total comprensión de este escenario habría que verlos conjuntamente, y en
este orden.
Manual Técnico
66
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.16.1 Paso 1: Datos genéricos de la calibración
DIAGRAMA DE CLASES PARCIAL
Form_Home
Form_Nueva_Calibracion_1
Form_Nueva_Calibracion_2
(f rom Formularios)
(f rom Formularios)
(f rom Formularios)
EstadoInterfaz
(f rom Estado_Interfaz)
lista_calibraciones
esManual
mediciones_estabilidad
protocolo_activo
lista_patrones
camara_climatica
protocolos
asignaciones
camara_fotografica
q_interpretacion
getCorrecciones()
getListaCalibraciones()
getListaPatrones()
getListaProtocolos()
getCamaraClimatica()
getAsignaciones()
getMediciones_estabilidad()
getCamaraFotografica()
getSeQuiereInterpretacion()
getEsManual()
temperaturaEsEstable()
hrEsEstable()
getProtocolo_activo()
Manual Técnico
DatosCalibracion
BD_Tecnico
(f rom Estado_Interfaz)
(f rom BD)
OT
directorio
laboratorio
id
fichero_de_texto
fichero_excel
tecnico_calibrador
tipo
descripcion
getId()
getDescripcion()
getTipo()
getTecnico()
getArchivo_txt()
getArchivo_xls()
getOT()
getDirectorio()
getLaboratorio()
67
base
consultaTecnico()
altaTecnico()
bajaTecnico()
modificacionTecnico()
listadoTecnicos()
BD_Calibracion
(f rom BD)
base
altaCalibracion()
bajaCalibracion()
consultaCalibracion()
listadoCalibraciones()
Técnico
login
password
tipo
toString()
getLogin()
getPassword()
getTipo()
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
DIAGRAMA DE SECUENCIA
: Técnico
Calibrador
: Form_Home
:
Form_Nueva_Calibracion_1
: BD_Tecnico
: Técnico
Solicita alta de calibración
new( )
new( )
listadoTecnicos( )
Para cada Técnico
new( )
Fin_Para
new( )
Introduce datos
Para cada calibración
Comprueba validez de los datos
La consulta
sirve para
comprobar
que la
calibración
no se repite.
new( )
consultaCalibracion( )
new( )
añadir a estado
Fin_Para
Pulsa siguiente
new( )
Manual Técnico
68
:
EstadoInterfaz
:
BD_Calibracion
:
DatosCalibracion
:
Form_Nueva_Calibracion_2
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.16.2 Paso 2: Datos relativos a los patrones
DIAGRAMA DE CLASES PARCIAL
Form_Nueva_Calibracion_2
Form_Nueva_Calibracion_3
(f rom Formularios)
(f rom Formularios)
BD_Dispositivo
(f rom BD)
base
altaAsociacionCalDispositivo()
bajaCalibracion()
consultaCamaraFotografica()
consultaDispositivo()
consultaCamaraClimaticaPorCalibracion()
consultaCamaraFotograficaPorCalibracion()
listadoDispositivosPatronPorCalibracion()
listadoDispositivosPatron()
listadoCamarasClimaticas()
listadoCamarasFotograficas()
EstadoInterfaz
(f rom Estado_Interfaz)
lista_calibraciones
esManual
mediciones_estabilidad
protocolo_activo
lista_patrones
camara_climatica
protocolos
asignaciones
camara_fotografica
q_interpretacion
Dispositivo_Patrón
(f rom _Dispositivo)
sondas
quiere_correccion
uds
arch_correccion
getCorrecciones()
getListaCalibraciones()
getListaPatrones()
getListaProtocolos()
getCamaraClimatica()
getAsignaciones()
getMediciones_estabilidad()
getCamaraFotografica()
getSeQuiereInterpretacion()
getEsManual()
temperaturaEsEstable()
hrEsEstable()
getProtocolo_activo()
Manual Técnico
<<virtual>> configurar()
asignarSondas()
getSondas()
getQuiereCorreccion()
getArchCorreccion()
getUds()
69
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
DIAGRAMA DE SECUENCIA
: Técnico
Calibrador
:
Form_Nueva_Calibracion_2
:
BD_Dispositivo
:
Dispositivo_Patrón
new( )
listadoDispositivosPatron( )
Para cada patrón
new( )
Fin_Para
Introduce datos
Para cada patrón
Comprueba validez de los datos
Añade patrón a estado
Fin_Para
Pulsa siguiente
new( )
Manual Técnico
70
:
EstadoInterfaz
:
Form_Nueva_Calibracion_3
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.16.3 Paso 3: Datos relativos a la cámara climática y a los protocolos
DIAGRAMA DE CLASES PARCIAL
Se han suprimido las operaciones y atributos de las clases para que el diagrama sea suficientemente
claro.
Manual Técnico
71
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
DIAGRAMA DE SECUENCIA
: Técnico
Calibrador
:
Form_Nueva_Calibracion_3
:
BD_Protocolo
: Protocolo
:
BD_Tipo_Protocolo
:
Tipo_Protocolo
:
BD_Dispositivo
:
Cámara_Climática
:
EstadoInterfaz
:
Form_Nueva_Calibracion_4
:
DatosCalibracion
new( )
listadoProtocolos( )
Para cada protocolo
new( )
Fin_Para
new( )
listadoTipos_Protocolo( )
"Introducir datos"
supone o bien
escoger los
protocolos del
listado, o bien
dar de alta
nuevos
protocolos para
poder ser
escogidos.
Para cada tipo de protocolo
new( )
Fin_para
new( )
listadoCamarasClimaticas( )
Para cada camara
new( )
Fin_para
Introduce datos
Comprueba validez de los datos
Añadir datos a estado
Pulsa siguiente
new( )
Solicita información para mostrar construir formulario
get( )
Introduce datos
Comprueba validez de los datos
Añadir datos a estado
Pulsa siguiente
new( )
Manual Técnico
72
:
Form_Nueva_Calibracion_5
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.16.4 Paso 4: Datos relativos a la cámara fotográfica
DIAGRAMA DE CLASES PARCIAL
Form_Nueva_Calibracion_5
Form_Nueva_Calibracion_6
(f rom Formularios)
(f rom Formularios)
BD_Dispositivo
(f rom BD)
base
altaAsociacionCalDispositivo()
bajaCalibracion()
consultaCamaraFotografica()
consultaDispositivo()
consultaCamaraClimaticaPorCalibracion()
consultaCamaraFotograficaPorCalibracion()
listadoDispositivosPatronPorCalibracion()
listadoDispositivosPatron()
listadoCamarasClimaticas()
listadoCamarasFotograficas()
EstadoInterfaz
(f rom Estado_Interfaz)
lista_calibraciones
esManual
mediciones_estabilidad
protocolo_activo
lista_patrones
camara_climatica
protocolos
asignaciones
camara_fotografica
q_interpretacion
getCorrecciones()
getListaCalibraciones()
getListaPatrones()
getListaProtocolos()
getCamaraClimatica()
getAsignaciones()
getMediciones_estabilidad()
getCamaraFotografica()
getSeQuiereInterpretacion()
getEsManual()
temperaturaEsEstable()
hrEsEstable()
getProtocolo_activo()
Manual Técnico
DatosCalibracion
(f rom Estado_Interfaz)
OT
directorio
laboratorio
id
fichero_de_texto
fichero_excel
tecnico_calibrador
tipo
descripcion
Fotografía
(f rom _Archivo)
getId()
getDescripcion()
getTipo()
getTecnico()
getArchivo_txt()
getArchivo_xls()
getOT()
getDirectorio()
getLaboratorio()
Camara_Fotográfica
id_fotografia
fecha
hora
ruta
id_calibracion
id_dispositivo
id_dispositivo
nombre
descripcion
tipo
<<virtual>> configurar()
<<virtual>> cerrar()
<<virtual>> sacarFoto()
getIdDispositivo()
getNombre()
getDescripcion()
getTipo()
73
1
0..n
getId()
setId()
getURL()
setURL()
getFechaCreacion()
setFechaCreacion()
getHoraCreacion()
setHoraCreacion()
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
DIAGRAMA DE SECUENCIA
:
Form_Nueva_Calibracion_5
: Técnico
Calibrador
:
BD_Dispositivo
:
Camara_Fotográfica
:
EstadoInterfaz
:
DatosCalibracion
new( )
listadoCamarasFotograficas( )
Para cada cámara
new( )
Fin_para
Solicita datos para crear el formulario
get( )
Escoge cámara
Mientras cámara no enfocada
Solicita sacar fotografía
sacarFoto( )
new( )
Fin_mientras
Determina displays
Comprueba validez de los datos
Añade datos a estado
Pulsa siguiente
new( )
Manual Técnico
74
: Fotografía
:
Form_Nueva_Calibracion_6
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.16.5 Paso 5: Resumen de los datos obtenidos y solicitud de confirmación
DIAGRAMA DE CLASES PARCIAL
Manual Técnico
75
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
DIAGRAMA DE SECUENCIA
: Técnico
Calibrador
:
Form_Nueva_Calibracion_6
:
EstadoInterfaz
getListaCalibraciones( )
Solicita datos
para mostrar
un resumen.
Se obtienen
vectores de
objetos.
getListaPatrones( )
getListaProtocolos( )
getCamaraClimatica( )
get( )
getCamaraFotografica( )
get( )
Pulsa siguiente
Para cada calibración
new( )
Añade calibración a estado
Fin_Para
new( )
Manual Técnico
76
:
Cámara_Climática
:
Camara_Fotográfica
: Calibración
:
Form_Nueva_Calibracion_7
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.16.6 Paso 6: Proceso de calibración
DIAGRAMA DE CLASES PARCIAL
Form_Nueva_Calibracion_7
(f rom Formularios)
Proceso
(f rom Proceso)
altaCalibracion()
finalizarCalibracion()
Cámara_Climática
(f rom _Dispositivo)
EstadoInterfaz
<<virtual>> configurar()
<<virtual>> run()
<<virtual>> stop()
0..1
0..n
(f rom Estado_Interfaz)
lista_calibraciones
esManual
mediciones_estabilidad
protocolo_activo
lista_patrones
camara_climatica
protocolos
asignaciones
camara_fotografica
q_interpretacion
getCorrecciones()
getListaCalibraciones()
getListaPatrones()
getListaProtocolos()
getCamaraClimatica()
getAsignaciones()
getMediciones_estabilidad()
getCamaraFotografica()
getSeQuiereInterpretacion()
getEsManual()
temperaturaEsEstable()
hrEsEstable()
getProtocolo_activo()
Dispositivo_Patrón
(f rom _Dispositivo)
sondas
quiere_correccion
uds
arch_correccion
1..n
<<virtual>> configurar()
asignarSondas()
getSondas()
getQuiereCorreccion()
getArchCorreccion()
getUds()
Camara_Fotográfica
id_dispositivo
nombre
descripcion
tipo
0..1
<<virtual>> configurar()
<<virtual>> cerrar()
<<virtual>> sacarFoto()
getIdDispositivo()
getNombre()
getDescripcion()
getTipo()
1..n
Protocolo
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
getNumero_mediciones()
getTipo()
Manual Técnico
77
Calibración
camara_climatica
camara_fotografica
descripcion
directorio
fecha_fin
fecha_inicio
fichero_de_texto
fichero_excel
fotografias
hora_fin
hora_inicio
id
laboratorio
medicion_sistema_redundante
mediciones_camara
mediciones_camara_estabilidad
mediciones_interpretadas
mediciones_patrones
OT
patrones
protocolo_activo
protocolos
tecnico_calibrador
tipo
getArchivo_txt()
getArchivo_xls()
getCamara_climatica()
getCamara_fotografica()
0..n
getDescripcion()
getDirectorio()
getFecha_fin()
getFecha_ini()
getFotografias()
0..n
getHora_fin()
getHora_ini()
getId()
getLaboratorio()
0..n
getMedicion_sistema_redundante()
getMediciones_camara()
getMediciones_camara_estabilidad()
getMediciones_interpretadas()
getMediciones_patrones()
getOT()
getPatrones()
getProtocolos()
getTecnico()
getTipo()
setMedicion_sistema_redundante()
toString()
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
DIAGRAMA DE SECUENCIA
: Técnico
Calibrador
:
Form_Nueva_Calibracion_7
Crea estructura
de datos en
interfaz para
mostrar el
proceso de
calibración.
Para ello
solicita
información a
EstadoInterfaz.
Una vez
creada la
interfaz, lanza
el hilo para
alta de
Calibración.
:
EstadoInterfaz
: Proceso
: Calibración
: Protocolo
Solicita información para construir interfaz
getListaCalibraciones( )
getListaProtocolos( )
getListaPatrones( )
getCamaraClimatica( )
getCamaraFotografica( )
new( )
altaCalibracion( )
getListaCalibraciones( )
Para cada calibración
get()
Presenta información de calibraciones
Recoge información para presentar en interfaz
Fin_Para
getListaProtocolos( )
Para cada protocolo
get()
getCamaraClimatica( )
Estabilización
get()
configurar( )
Mientras no estable
realizarMedicion( )
Mostrar medición
Esperar
Fin_mientras
Fin estabilización
getListaPatrones( )
get()
configurar( )
Para cada paso del protocolo
Para cada dispositivo patrón
Para cada sonda
realizarMedicion( )
Mostrar medición
Fin_Para
getCamaraFotografica( )
Fin_Para
get()
sacarFoto( )
Mostrar foto
Esperar
Fin_Para
Fin_Para
Manual Técnico
78
:
Dispositivo_Patrón
:
Cámara_Climática
:
Camara_Fotográfica
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.16.7 Paso 7: Finalizar proceso
DIAGRAMA DE CLASES PARCIAL
BD_Calibracion
(f rom BD)
Form_Nueva_Calibracion_7
base
(f rom Formularios)
altaCalibracion()
bajaCalibracion()
consultaCalibracion()
listadoCalibraciones()
Archivo_TXT
(f rom _Archivo)
Proceso
escribir()
leerLinea()
toString()
(f rom Proceso)
altaCalibracion()
finalizarCalibracion()
Calibración
1
Sistema_Redundante
(f rom _Dispositivo)
laboratorio
fecha
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
getNumero_mediciones()
getTipo()
1
configurar()
establecerConexion()
cerrarConexion()
realizarMedicion()
1
0..n
Medición
Protocolo
1..n
1
fecha
hora
unidades
id_calibracion
id_medicion
id_dispositivo
temperatura
humedadRelativa
medida
puntoDeRocio
<<virtual>> toString()
getFecha()
getHora()
getUnidades()
getIdCalibracion()
getIdMedicion()
getTemperatura()
getHumedadRelativa()
getPuntoDeRocio()
getMedida()
0..n
0..n
1..n
0..n
1
Dispositivo_Patrón
(f rom _Dispositivo)
sondas
quiere_correccion
uds
arch_correccion
<<virtual>> configurar()
asignarSondas()
getSondas()
getQuiereCorreccion()
getArchCorreccion()
getUds()
Manual Técnico
79
1..n
camara_climatica
camara_fotografica
descripcion
directorio
fecha_fin
fecha_inicio
fichero_de_texto
fichero_excel
fotografias
hora_fin
hora_inicio
id
laboratorio
medicion_sistema_redundante
mediciones_camara
mediciones_camara_estabilidad
mediciones_interpretadas
mediciones_patrones
OT
patrones
protocolo_activo
protocolos
tecnico_calibrador
tipo
getArchivo_txt()
getArchivo_xls()
getCamara_climatica()
getCamara_fotografica()
getDescripcion()
getDirectorio()
getFecha_fin()
getFecha_ini()
0..n getFotografias()
getHora_fin()
getHora_ini()
getId()
getLaboratorio()
getMedicion_sistema_redundante()
getMediciones_camara()
getMediciones_camara_estabilidad()
getMediciones_interpretadas()
getMediciones_patrones()
getOT()
getPatrones()
getProtocolos()
getTecnico()
getTipo()
setMedicion_sistema_redundante()
toString()
1
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
DIAGRAMA DE SECUENCIA
: Técnico
Calibrador
:
Form_Nueva_Calibracion_7
: Proceso
:
Sistema_Redundante
: Calibración
:
Dispositivo_Patrón
Solicita finalizar proceso
finalizarCalibracion( )
Para cada calibración
new( )
configurar( )
realizarMedicion( )
Este paso
supone
múltiples
llamadas a
funciones, que
resumimos en
"datos
genéricos"
Escritura de archivos de salida
Obtiene datos genéricos
Añadir datos genéricos
Hallar correcciones
Se obtienen
los datos que
serán
volcados en
los archivos
getPatrones( )
get()
getProtocolos( )
getMediciones_patrones( )
get()
get()
getMediciones_interpretadas( )
Se informa de operación realizada
Manual Técnico
El método
altaCalibracion()
supone el uso de
las clases
BD_Medicion,
BD_Archivo,
BD_Fotografia,
BD_Protocolo y
BD_Dispositivo,
para las
respectivas altas
de los
componentes de
una calibración.
Se omiten para
ganar en
claridad.
80
get()
Fin_escritura
getArchivo_txt( )
escribir( )
new( )
altaCalibracion( )
Fin_Para
get()
: Protocolo
: Medición
: Archivo_TXT
:
BD_Calibracion
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.17 Escenario Baja de Calibración
4.5.17.1 Diagrama de Clases parcial
Form_Consulta_Calibracion
(f rom Formulari...
BD_Fotografia
BD_Archivo
(f rom BD)
BD_Calibracion
(f rom BD)
base
altaCalibracion()
bajaCalibracion()
consultaCalibracion()
listadoCalibraciones()
(f rom BD)
base
base
altaArchivo()
bajaArchivo()
modificacionArchivo()
consultaArchivo()
listadoArchivos()
altaFotografia()
bajaFotografia()
bajaFotografiaPorCalibracion()
consultaFotografia()
listadoFotografias()
listadoFotografiasPorCalibracion()
modificacionFotografia()
BD_Medicion
BD_Dispositivo
(f rom BD)
BD_Protocolo
(f rom BD)
base
altaProtocolo()
bajaProtocolo()
modificacionProtocolo()
consultaProtocolo()
listadoProtocolos()
listadoProtocolosPorTipo()
listadoProtocolosPorCalibracion()
...
Manual Técnico
base
altaAsociacionCalDispositivo()
bajaCalibracion()
consultaCamaraFotografica()
consultaDispositivo()
consultaCamaraClimaticaPorCalibracion()
consultaCamaraFotograficaPorCalibracion()
listadoDispositivosPatronPorCalibracion()
listadoDispositivosPatron()
listadoCamarasClimaticas()
listadoCamarasFotograficas()
81
(f rom BD)
base
altaMedicion()
bajaMedicion()
bajaMedicionPorCalibracion()
consultaMedicion()
listadoMediciones()
listadoMedicionesPorCalibracion()
listadoMedicionesPorCalibracionYCamaraClimatica()
listadoMedicionesPorCalibracionYPatrones()
listadoMedicionesPorCalibracionYSR()
listadoMedicionesInterpretadasPorCalibracion()
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.17.2 Diagrama de secuencia
: Técnico
Calibrador
:
Form_Consulta_Calibracion
:
BD_Calibracion
: BD_Medicion
:
BD_Dispositivo
Solicita baja de Calibración
Solicita confirmación
Confirma
new( )
bajaCalibracion( )
new( )
bajaMedicionPorCalibracion( )
new( )
bajaCalibracion( )
new( )
bajaFotografiaPorCalibracion( )
Baja de
archivo_txt y
de
archivo_xls
new( )
bajaArchivo( )
bajaArchivo( )
new( )
bajaCalibracion( )
Informa de operación realizada
Manual Técnico
82
:
BD_Fotografia
: BD_Archivo
:
BD_Protocolo
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.18 Escenario Consulta de Calibración
4.5.18.1 Diagrama de Clases parcial
BD_Archivo
(from BD)
Form_Home
Form_Consulta_Calibracion
(from Formulari...
base
(from Formulari...
altaArchivo()
bajaArchivo()
modificacionArchivo()
consultaArchivo()
listadoArchivos()
BD_Calibracion
(from BD)
base
Archivo_TXT
altaCalibracion()
bajaCalibracion()
consultaCalibracion()
listadoCalibraciones()
Archivo_XLS
(from _Archivo)
(from _Archivo)
escribir()
leerLinea()
toString()
Camara_Fotográfica
toString()
id_dispositivo
nombre
descripcion
tipo
1
1
Fotografía
(from _Archivo)
1
<<virtual>> configurar()
<<virtual>> cerrar()
<<virtual>> sacarFoto()
getIdDispositivo()
getNombre()
getDescripcion()
getTipo()
1
id_fotografia
fecha
0..n
hora
ruta
id_calibracion
id_dispositivo
0..n
0..1
1
Calibración
BD_Protocolo
mediciones_patrones
medicion_sistema_redundante
camara_fotografica
fotografias
protocolos
protocolo_activo
OT
directorio
laboratorio
mediciones_interpretadas
id
fecha_inicio
fecha_fin
hora_inicio
hora_fin
fichero_de_texto
fichero_excel
tecnico_calibrador
tipo
descripcion
camara_climatica
mediciones_camara
mediciones_camara_estabilidad
patrones
(from BD)
base
altaProtocolo()
bajaProtocolo()
modificacionProtocolo()
consultaProtocolo()
listadoProtocolos()
listadoProtocolosPorTipo()
listadoProtocolosPorCalibracion()
altaAsociacionCalProtocolo()
haSidoUsadoEsteProtocolo()
Protocolo
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
getNumero_mediciones()
getTipo()
1..n
toString()
getId()
getFecha_ini()
0..n getFecha_fin()
getHora_ini()
getHora_fin()
getDescripcion()
getTipo()
getTecnico()
getArchivo_txt()
getArchivo_xls()
getCamara_climatica()
getMediciones_camara()
getMediciones_camara_estabilidad()
getPatrones()
getMediciones_patrones()
getMedicion_sistema_redundante()
setMedicion_sistema_redundante()
getCamara_fotografica()
getFotografias()
getProtocolos()
getOT()
getDirectorio()
getLaboratorio()
getMediciones_interpretadas()
BD_Dispositivo
(from BD)
base
0..n
BD_Fotografia
(from BD)
base
1
altaFotografia()
bajaFotografia()
bajaFotografiaPorCalibracion()
consultaFotografia()
listadoFotografias()
listadoFotografiasPorCalibracion()
modificacionFotografia()
0..n
Cámara_Climática
0..n
(from _Dispositi...
0..1
<<virtual>> configurar()
<<virtual>> run()
<<virtual>> stop()
Dispositivo_Patrón
(from _Dispositi...
1
sondas
quiere_correccion
uds
arch_correccion
1..n
1..n
BD_Medicion
(from BD)
base
altaMedicion()
bajaMedicion()
bajaMedicionPorCalibracion()
consultaMedicion()
listadoMediciones()
listadoMedicionesPorCalibracion()
listadoMedicionesPorCalibracionYCamaraClimatica()
listadoMedicionesPorCalibracionYPatrones()
listadoMedicionesPorCalibracionYSR()
listadoMedicionesInterpretadasPorCalibracion()
Manual Técnico
altaAsociacionCalDispositivo()
bajaCalibracion()
consultaCamaraFotografica()
consultaDispositivo()
consultaCamaraClimaticaPorCalibracion()
consultaCamaraFotograficaPorCalibracion()
listadoDispositivosPatronPorCalibracion()
listadoDispositivosPatron()
listadoCamarasClimaticas()
listadoCamarasFotograficas()
<<virtual>> toString()
getFecha()
getHora()
getUnidades()
getIdCalibracion()
getIdMedicion()
getTemperatura()
getHumedadRelativa()
getPuntoDeRocio()
getMedida()
83
<<virtual>> configurar()
asignarSondas()
getSondas()
getQuiereCorreccion()
getArchCorreccion()
getUds()
Medición
fecha
hora
unidades
id_calibracion
id_medicion
id_dispositivo
temperatura
humedadRelativa
medida
puntoDeRocio
1
0..n
0..n
1
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.18.2 Diagrama de secuencia
: Técnico
Calibrador
:
Form_Listado_Calibraciones
:
Form_Consulta_Calibracion
:
BD_Calibracion
:
BD_Fotografia
: Fotografía
:
BD_Dispositivo
:
Cámara_Climática
:
Camara_Fotográfica
:
Dispositivo_Patrón
:
BD_Protocolo
: Protocolo
: BD_Archivo
: Archivo_TXT
Solicita consulta de calibración
new( )
new( )
consultaCalibracion( )
new( )
listadoFotografiasPorCalibracion( )
Para cada fotografía
new( )
Fin_para
new( )
consultaCamaraClimaticaPorCalibracion( )
consultaCamaraFotograficaPorCalibracion( )
new( )
new( )
listadoDispositivosPatronPorCalibracion( )
Para cada patrón
new( )
Fin_Para
new( )
listadoProtocolosPorCalibracion( )
Para cada protocolo
new( )
Fin_para
new( )
consultaArchivo( )
consultaArchivo( )
new( )
Presenta datos de calibración
Manual Técnico
84
new( )
new( )
: Archivo_XLS
: Calibración
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.19 Escenario Listado de Calibraciones
4.5.19.1 Diagrama de Clases parcial
BD_Archivo
Form_Home
Form_Listado_Calibraciones
(from Formularios)
(from Formularios)
(from BD)
base
altaArchivo()
bajaArchivo()
modificacionArchivo()
consultaArchivo()
listadoArchivos()
BD_Calibracion
(from BD)
base
Archivo_TXT
altaCalibracion()
bajaCalibracion()
consultaCalibracion()
listadoCalibraciones()
Archivo_XLS
(from _Archivo)
(from _Archivo)
escribir()
leerLinea()
toString()
Camara_Fotográfica
toString()
id_dispositivo
nombre
descripcion
tipo
1
1
Fotografía
(from _Archivo)
1
<<virtual>> configurar()
<<virtual>> cerrar()
<<virtual>> sacarFoto()
getIdDispositivo()
getNombre()
getDescripcion()
getTipo()
1
id_fotografia
fecha
0..n
hora
ruta
id_calibracion
id_dispositivo
0..n
0..1
1
Calibración
BD_Protocolo
mediciones_patrones
medicion_sistema_redundante
camara_fotografica
fotografias
protocolos
protocolo_activo
OT
directorio
laboratorio
mediciones_interpretadas
id
fecha_inicio
fecha_fin
hora_inicio
hora_fin
fichero_de_texto
fichero_excel
tecnico_calibrador
tipo
descripcion
camara_climatica
mediciones_camara
mediciones_camara_estabilidad
patrones
(from BD)
base
altaProtocolo()
bajaProtocolo()
modificacionProtocolo()
consultaProtocolo()
listadoProtocolos()
listadoProtocolosPorTipo()
listadoProtocolosPorCalibracion()
altaAsociacionCalProtocolo()
haSidoUsadoEsteProtocolo()
Protocolo
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
getNumero_mediciones()
getTipo()
1..n
toString()
getId()
getFecha_ini()
0..n getFecha_fin()
getHora_ini()
getHora_fin()
getDescripcion()
getTipo()
getTecnico()
getArchivo_txt()
getArchivo_xls()
getCamara_climatica()
getMediciones_camara()
getMediciones_camara_estabilidad()
getPatrones()
getMediciones_patrones()
getMedicion_sistema_redundante()
setMedicion_sistema_redundante()
getCamara_fotografica()
getFotografias()
getProtocolos()
getOT()
getDirectorio()
getLaboratorio()
getMediciones_interpretadas()
BD_Dispositivo
(from BD)
base
0..n
BD_Fotografia
(from BD)
base
1
altaFotografia()
bajaFotografia()
bajaFotografiaPorCalibracion()
consultaFotografia()
listadoFotografias()
listadoFotografiasPorCalibracion()
modificacionFotografia()
0..n
Cámara_Climática
0..n
(from _Dispositi...
0..1
<<virtual>> configurar()
<<virtual>> run()
<<virtual>> stop()
Dispositivo_Patrón
(from _Dispositi...
1
sondas
quiere_correccion
uds
arch_correccion
1..n
1..n
BD_Medicion
(from BD)
base
altaMedicion()
bajaMedicion()
bajaMedicionPorCalibracion()
consultaMedicion()
listadoMediciones()
listadoMedicionesPorCalibracion()
listadoMedicionesPorCalibracionYCamaraClimatica()
listadoMedicionesPorCalibracionYPatrones()
listadoMedicionesPorCalibracionYSR()
listadoMedicionesInterpretadasPorCalibracion()
Manual Técnico
altaAsociacionCalDispositivo()
bajaCalibracion()
consultaCamaraFotografica()
consultaDispositivo()
consultaCamaraClimaticaPorCalibracion()
consultaCamaraFotograficaPorCalibracion()
listadoDispositivosPatronPorCalibracion()
listadoDispositivosPatron()
listadoCamarasClimaticas()
listadoCamarasFotograficas()
<<virtual>> toString()
getFecha()
getHora()
getUnidades()
getIdCalibracion()
getIdMedicion()
getTemperatura()
getHumedadRelativa()
getPuntoDeRocio()
getMedida()
85
<<virtual>> configurar()
asignarSondas()
getSondas()
getQuiereCorreccion()
getArchCorreccion()
getUds()
Medición
fecha
hora
unidades
id_calibracion
id_medicion
id_dispositivo
temperatura
humedadRelativa
medida
puntoDeRocio
1
0..n
0..n
1
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.19.2 Diagrama de
secuencia
: Técnico
Calibrador
: Form_Home
Solicita listado de calibraciones
:
Form_Listado_Calibraciones
:
BD_Calibracion
:
BD_Fotografia
: Fotografía
:
BD_Dispositivo
:
Cámara_Climática
:
Camara_Fotográfica
:
Dispositivo_Patrón
:
BD_Protocolo
: Protocolo
: BD_Archivo
: Archivo_TXT
new( )
new( )
listadoCalibraciones( )
Para cada CALIBRACIÓN
new( )
listadoFotografiasPorCalibracion( )
Para cada fotografía
new( )
Fin_para
new( )
consultaCamaraClimaticaPorCalibracion( )
consultaCamaraFotograficaPorCalibracion( )
new( )
new( )
listadoDispositivosPatronPorCalibracion( )
Para cada patrón
new( )
Fin_Para
new( )
listadoProtocolosPorCalibracion( )
Para cada protocolo
new( )
Fin_para
new( )
consultaArchivo( )
consultaArchivo( )
new( )
Presenta listado de calibraciones
Manual Técnico
Fin_Para
86
new( )
new( )
: Archivo_XLS
: Calibración
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.20 Escenario Validar Usuario
4.5.20.1 Diagrama de Clases parcial
Form_Entrada
Form_Home
(f rom Formularios)
(f rom Formularios)
Técnico
login
password
tipo
BD_Tecnico
(f rom BD)
base
consultaTecnico()
altaTecnico()
bajaTecnico()
modificacionTecnico()
listadoTecnicos()
toString()
getLogin()
getPassword()
getTipo()
4.5.20.2 Diagrama de secuencia
: Usuario no
validado
:
Form_Entrada
: BD_Tecnico
: Técnico
Introduce login y password
Comprueba validez de los datos
new( )
consultaTecnico( )
new( )
Manual Técnico
87
new( )
: Form_Home
Esta
consulta es
para
comprobar
que los datos
introducidos
son correctos
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.5.21 Escenario Finalizar Sesión de Usuario
4.5.21.1 Diagrama de Clases parcial
Form_Home
Form_Entrada
(f rom Formularios)
(f rom Formularios)
4.5.21.2 Diagrama de secuencia
: Usuario
Registrado
: Form_Home
:
Form_Entrada
Solicita finalizar sesión de usuario
Se cierra
new( )
Manual Técnico
88
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.6 Diagrama de Clases
Se ha estructurado el Diagrama de Clases en varios subdiagramas. Uno se centra en las clases del
dominio del problema, y es el que se muestra a continuación:
Técnico
Archivo
login
password
tipo
id
URL
fecha_creacion
hora_creacion
toString()
getLogin()
getPassword()
getTipo()
Archivo_TXT
1
Protocolo
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
0..n
toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
getNumero_mediciones()
getTipo()
1..n
0..n
<<virtual>> toString()
getId()
setId()
getURL()
setURL()
getFechaCreacion()
setFechaCreacion()
getHoraCreacion()
setHoraCreacion()
(from_Archivo)
Calibración
camara_climatica
camara_fotografica
descripcion
directorio
fecha_fin
fecha_inicio
fichero_de_texto
fichero_excel
fotografias
hora_fin
hora_inicio
id
laboratorio
medicion_sistema_redundante
mediciones_camara
mediciones_camara_estabilidad
mediciones_interpretadas
mediciones_patrones
OT
patrones
protocolo_activo
protocolos
tecnico_calibrador
tipo
escribir()
leerLinea()
toString()
Archivo_XLS
(from_Archivo)
1
toString()
1
Fotografía
1
(from_Archivo)
id_fotografia
fecha
hora
ruta
id_calibracion
id_dispositivo
1
0..n
1
0..n
1
Tipo_Protocolo
id
nombre
descripcion
toString()
getId()
getNombre()
getDescripcion()
1
getArchivo_txt()
getArchivo_xls()
getCamara_climatica()
getCamara_fotografica()
getDescripcion()
getDirectorio()
getFecha_fin()
getFecha_ini()
getFotografias()
getHora_fin()
getHora_ini()
getId()
getLaboratorio()
getMedicion_sistema_redundante()
getMediciones_camara()
getMediciones_camara_estabilidad()
getMediciones_interpretadas()
getMediciones_patrones()
getOT()
getPatrones()
getProtocolos()
getTecnico()
getTipo()
setMedicion_sistema_redundante()
toString()
getId()
setId()
getURL()
setURL()
getFechaCreacion()
setFechaCreacion()
getHoraCreacion()
setHoraCreacion()
0..n
0..n
1
Camara_Fotográfica
0..1
id_dispositivo
nombre
descripcion
tipo
<<virtual>> configurar()
<<virtual>> cerrar()
<<virtual>> sacarFoto()
getIdDispositivo()
getNombre()
getDescripcion()
getTipo()
ConexiónGPIB
(fromConexiones)
Dispositivo
0..n
0..n
id_dispositivo
nombre
descripcion
tipo
0..n
1..n
Medición
fecha
hora
unidades
id_calibracion
id_medicion
id_dispositivo
temperatura
humedadRelativa
medida
puntoDeRocio
<<virtual>> toString()
getFecha()
getHora()
getUnidades()
getIdCalibracion()
getIdMedicion()
getTemperatura()
getHumedadRelativa()
getPuntoDeRocio()
getMedida()
1
0..n
getIdDispositivo()
getNombre()
getDescripcion()
getTipo()
<<virtual>> establecerConexion()
<<virtual>> cerrarConexion()
<<virtual>> realizarMedicion()
1
Sistema_Redundante
(from_Dispositivo)
laboratorio
fecha
configurar()
establecerConexion()
cerrarConexion()
realizarMedicion()
0..1
Cámara_Climática
(from_Dispositivo)
<<virtual>> configurar()
<<virtual>> run()
<<virtual>> stop()
1..n
Dispositivo_Patrón
(from_Dispositivo)
sondas
quiere_correccion
uds
arch_correccion
<<virtual>> configurar()
asignarSondas()
getSondas()
getQuiereCorreccion()
getArchCorreccion()
getUds()
Manual Técnico
89
slot_GPIB
readbuffer
0..1
0..n
establecerConexion()
cerrarConexion()
escribir()
leerHasta()
ConexiónSerie
0..n
(fromConexiones)
puerto
0..1
establecerConexion()
cerrarConexion()
escribir()
leerHasta()
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
El siguiente diagrama muestra el diagrama anterior con las clases encargadas de los accesos a la base de
datos. Se han obviado clases como BD, Conversiones, Tiempo, etc, para que el diagrama sea más claro:
Técnico
BD_Tecnico
login
password
tipo
(fromBD)
base
consultaTecnico()
altaTecnico()
bajaTecnico()
modificacionTecnico()
listadoTecnicos()
Archivo
toString()
getLogin()
getPassword()
getTipo()
Archivo_TXT
(from_Archivo)
1
Protocolo
id
temperatura
margen_temperatura
hr
margen_hr
intervalo_medicion
numero_mediciones
tipo
escribir()
leerLinea()
toString()
Calibración
0..n
toString()
getId()
getTemperatura()
getMargen_temperatura()
getHr()
getMargen_hr()
getIntervalo_medicion()
...
id
URL
fecha_creacion
hora_creacion
1..n
0..n
0..n
BD_Protocolo
(fromBD)
camara_climatica
camara_fotografica
descripcion
directorio
fecha_fin
fecha_inicio
fichero_de_texto
fichero_excel
fotografias
hora_fin
hora_inicio
id
laboratorio
medicion_sistema_redundante
mediciones_camara
mediciones_camara_estabilidad
mediciones_interpretadas
mediciones_patrones
OT
patrones
protocolo_activo
protocolos
tecnico_calibrador
tipo
(from_Archivo)
toString()
1
Tipo_Protocolo
id
nombre
descripcion
toString()
getId()
getNombre()
getDescripcion()
BD_Tipo_Protocolo
1
(fromBD)
altaTipo_Protocolo()
bajaTipo_Protocolo()
consultaTipo_Protocolo()
modificacionTipo_Protocolo()
listadoTipos_Protocolo()
Fotografía
(from_Archivo)
1
id_fotografia
fecha
hora
ruta
id_calibracion
id_dispositivo
1
0..n
BD_Fotografia
(fromBD)
base
altaFotografia()
bajaFotografia()
bajaFotografiaPorCalibracion()
consultaFotografia()
listadoFotografias()
listadoFotografiasPorCalibracion()
modificacionFotografia()
getId()
setId()
getURL()
setURL()
getFechaCreacion()
setFechaCreacion()
getHoraCreacion()
setHoraCreacion()
0..n
1
0..n
getArchivo_txt()
getArchivo_xls()
getCamara_climatica()
getCamara_fotografica()
getDescripcion()
getDirectorio()
getFecha_fin()
getFecha_ini()
getFotografias()
getHora_fin()
getHora_ini()
getId()
getLaboratorio()
getMedicion_sistema_redundante()
getMediciones_camara()
getMediciones_camara_estabilidad()
getMediciones_interpretadas()
getMediciones_patrones()
getOT()
getPatrones()
getProtocolos()
getTecnico()
getTipo()
...
0..n
altaArchivo()
bajaArchivo()
modificacionArchivo()
consultaArchivo()
listadoArchivos()
1
base
altaProtocolo()
bajaProtocolo()
modificacionProtocolo()
consultaProtocolo()
listadoProtocolos()
listadoProtocolosPorTipo()
listadoProtocolosPorCalibracion()
altaAsociacionCalProtocolo()
haSidoUsadoEsteProtocolo()
(fromBD)
<<virtual>> toString()
getId()
setId()
getURL()
setURL()
getFechaCreacion()
setFechaCreacion()
...
Archivo_XLS
1
BD_Archivo
base
0..n
1
Camara_Fotográfica
0..1
BD_Calibracion
(fromBD)
id_dispositivo
nombre
descripcion
tipo
BD_Dispositivo
(fromBD)
base
<<virtual>> configurar()
<<virtual>> cerrar()
<<virtual>> sacarFoto()
getIdDispositivo()
getNombre()
getDescripcion()
getTipo()
altaAsociacionCalDispositivo()
bajaCalibracion()
consultaCamaraFotografica()
consultaDispositivo()
consultaCamaraClimaticaPorCalibracion()
consultaCamaraFotograficaPorCalibracion()
listadoDispositivosPatronPorCalibracion()
listadoDispositivosPatron()
listadoCamarasClimaticas()
listadoCamarasFotograficas()
base
altaCalibracion()
bajaCalibracion()
consultaCalibracion()
listadoCalibraciones()
0..n
ConexiónGPIB
(fromConexiones)
slot_GPIB
readbuffer
Dispositivo
id_dispositivo
nombre
descripcion
tipo
1..n
Medición
fecha
hora
unidades
id_calibracion
id_medicion
id_dispositivo
temperatura
humedadRelativa
medida
puntoDeRocio
<<virtual>> toString()
getFecha()
getHora()
getUnidades()
getIdCalibracion()
getIdMedicion()
getTemperatura()
getHumedadRelativa()
...
1
0..n
1
Sistema_Redundante
(from_Dispositivo)
laboratorio
fecha
0..1
Cámara_Climática
(from_Dispositivo)
BD_Medicion
(fromBD)
base
configurar()
establecerConexion()
cerrarConexion()
realizarMedicion()
<<virtual>> configurar()
<<virtual>> run()
<<virtual>> stop()
altaMedicion()
bajaMedicion()
bajaMedicionPorCalibracion()
consultaMedicion()
listadoMediciones()
listadoMedicionesPorCalibracion()
listadoMedicionesPorCalibracionYCamaraClimatica()
listadoMedicionesPorCalibracionYPatrones()
listadoMedicionesPorCalibracionYSR()
listadoMedicionesInterpretadasPorCalibracion()
Manual Técnico
getIdDispositivo()
getNombre()
getDescripcion()
getTipo()
<<virtual>> establecerConexion()
<<virtual>> cerrarConexion()
<<virtual>> realizarMedicion()
1..n
Dispositivo_Patrón
(from_Dispositivo)
sondas
quiere_correccion
uds
arch_correccion
<<virtual>> configurar()
asignarSondas()
getSondas()
getQuiereCorreccion()
getArchCorreccion()
getUds()
90
0..1
0..n
establecerConexion()
cerrarConexion()
escribir()
leerHasta()
ConexiónSerie
0..n
(fromConexiones)
0..1
puerto
establecerConexion()
cerrarConexion()
escribir()
leerHasta()
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
Finalmente se ha incluido otro diagrama con las clases encargadas de la interfaz de usuario, y otras que
colaboran con ellas. Se han obviado las clases de los dos diagramas anteriores, para ganar en claridad.
Form_Consulta_Protocolo
Form_Consulta_Tipo_Protocolo
Form_Consulta_Tecnico
Form_Consulta_Calibracion
(from Formularios)
(from Formularios)
(from Formularios)
(from Formularios)
Form_Entrada
(from Formularios)
Form_Listado_Calibraciones
(from Formularios)
Form_Listado_Tecnicos
Form_Home
(from Formularios)
(from Formularios)
Form_Alta_Tipo_Protocolo
Form_Listado_Tipos_Protocolo
(from Formularios)
(from Formularios)
Form_Alta_Tecnico
Form_Listado_Protocolos
(from Formularios)
(from Formularios)
Form_Alta_Protocolo
Form
(from Formularios)
(from Formularios)
Form_Nueva_Calibracion_3
Form_Nueva_Calibracion_1
Form_Nueva_Calibracion_2
(from Formularios)
(from Formularios)
(from Formularios)
Form_Nueva_Calibracion_4
Form_Nueva_Calibracion_5
Form_Nueva_Calibracion_6
(from Formularios)
(from Formularios)
(from Formularios)
EstadoInterfaz
Proceso
(from Proceso)
getCorrecciones()
getListaCalibraciones()
getListaPatrones()
getListaProtocolos()
getCamaraClimatica()
getAsignaciones()
getMediciones_estabilidad()
getCamaraFotografica()
getSeQuiereInterpretacion()
getEsManual()
temperaturaEsEstable()
hrEsEstable()
getProtocolo_activo()
91
(from Formularios)
(from Estado_Interfaz)
lista_calibraciones
esManual
mediciones_estabilidad
protocolo_activo
lista_patrones
camara_climatica
protocolos
asignaciones
camara_fotografica
q_interpretacion
Manual Técnico
Form_Nueva_Calibracion_7
altaCalibracion()
finalizarCalibracion()
Interpretacion
(from _Interpretacion)
interpretar()
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7 Descripción detallada de las clases
En este apartado se pretende tener una visión global de las clases creadas. Por ello no se hará hincapié en
describir todos sus métodos y atributos, sino en resaltar ciertos aspectos importantes.
Para una descripción absolutamente detallada de las clases, es posible acceder a la documentación
generada mediante Doxygen en el soporte digital adjunto a esta documentación. Dicha documentación
es accesible en distintos formatos, y permite un conocimiento exhaustivo de cada clase. Se puede
encontrar en el directorio Documentación\Documentación del código por Doxygen.
Se han omitido las clases derivadas de Form, ya que sus atributos y métodos se reducen a la captación de
eventos de usuario, y no aportan información al diseño desarrollado.
4.7.1 Clase Archivo
Superclase de los dos tipos de archivos del sistema: de texto y excel. Contiene atributos que permiten
trabajar con un archivo, y métodos que establecen y obtienen los valores de dichos atributos.
La clase archivo tiene dos subclases: Archivo_txt y Archivo_xls.
4.7.2 Clase Archivo_xls
Clase derivada de Archivo. Especializa Archivo para archivos excel.
Manual Técnico
92
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.3 Clase Archivo_txt
Clase derivada de Archivo. Especializa Archivo para archivos de texto.
El método escribir() sirve para volcar un texto en el archivo de texto asociado. Se sirve de funciones de
acceso a archivos para rellenar el archivo de texto asociado. Usando este método se vuelca la
información de una calibración el un archivo de texto de salida.
4.7.4 Clase BD
Esta clase facilita el acceso al SGBD a las clases de acceso a BD. Así, las clases BD_Calibracion,
BD_Archivo, etc, dispondrán de una interfaz simple para realizar conexiones, lecturas y escrituras.
Los atributos myData y res son estructuras de datos de MySQL para efectuar conexiones y recoger
resultados.
El método establecerConexion() es el encargado de conectarse a la base de datos, gracias a una serie de
argumentos como dirección de la base de datos, nombre, etc. El método escribirSentencia() se limita a
escribir una determinada sentencia en la BD. Por su parte, el método getResultado() recibe un resultado
de la base de datos, respuesta a alguna sentencia introducida anteriormente.
Gracias a estos tres métodos, cualquier código que necesite interactuar con la base de datos puede
hacerlo de manera transparente, sin preocuparse por los datos de conexión, y escribiendo sentencias y
recogiendo sus resultados en tipos de datos comunes.
Manual Técnico
93
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.5 Clase BD_Archivo
La clase BD_Archivo provee de métodos para interactuar con la base de datos de manera transparente,
permitiendo el alta, baja, modificación, consulta y listado de archivos.
Los métodos de la clase BD_Archivo hacen uso de la clase BD para efectuar sus accesos a la base de
datos.
Más concretamente.
El método altaArchivo() introduce una nueva tupla en la tabla Archivo a partir de un objeto
Archivo.
El método bajaArchivo() elimina una tupla de la tabla Archivo a partir de un identificador de
archivo.
El método modificarArchivo() modifica una tupla de la tabla Archivo a partir de un objeto
Archivo.
El método consultaArchivo() obtiene un objeto Archivo a partir de un identificador de Archivo.
El método listadoArchivos() obtiene un vector de Archivos a partir de la tabla Archivo.
4.7.6 Clase BD_Calibracion
La clase BD_Calibracion tiene una estructura análoga a BD_Archivo.
La principal diferencia es que se carece de un método modificacionCalibracion(), ya que es una
operación que no tiene sentido: una calibración es un proceso cerrado y no está permitido efectuar
modificaciones sobre ella.
Manual Técnico
94
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.7 Clase BD_Dispositivo
La clase BD_Dispositivo tiene una estructura similar a BD_Archivo y BD_Calibracion.
La principal diferencia es la presencia de métodos más específicos, dadas las características de los objetos
Dispositivo. Concretamente:
El método altaAsociacionCalDispositivo() añade a la base de datos la información necesaria para
que se guarde la correspondencia entre una determinada calibración y un determinado dispositivo.
Por la contra, el método bajaCalibracion() hace justo lo contrario.
Existen métodos de consulta específicos para las distintas especializaciones de Dispositivo
(consultaCamaraClimaticaPorCalibracion(), que recupera la cámara climática utilizada en una
determinada calibración, consultaCamaraFotograficaPorCalibracion(), que recupera la cámara
climática utilizada en una determinada calibración…).
Existen métodos que permiten listados específicos. Por ejemplo listadoCamarasFotograficas()
simplemente
lista
los
dispositivos
catalogados
como
cámaras
fotográficas.
Y
listadoDispositivosPatronPorCalibracion() lista únicamente los dispositivos patrón de una
calibración concreta.
4.7.8 Clase BD_Fotografia
La clase BD_Fotografia es similar a las anteriormente descritas en cuanto a su estructura.
La única diferencia es la presencia de los métodos bajaFotografiaPorCalibracion() y
listadoFotografiasPorCalibracion(), que efectúan sus funciones sobre una calibración determinada, y no
sobre todas como el resto de métodos.
Manual Técnico
95
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.9 Clase BD_Medicion
La clase BD_Medicion dispone, como las clases de acceso a base de datos, de los métodos de alta, baja,
consulta y listado.
Sin embargo carece de un método modificacionCalibracion(), ya que no tiene sentido modificar una
medición ya hecha.
Por el contrario dispone de listados específicos para los distintos tipos de mediciones. Así:
listadoMedicionesPorCalibracion(): devuelve todas las mediciones de una determinada
calibración.
listadoMedicionesPorCalibracionYCamaraClimatica(): devuelve, de todas las mediciones de una
determinada calibración, solamente las efectuadas por cámaras climáticas.
listadoMedicionesPorCalibracionYPatrones(): devuelve, de todas las mediciones de una
determinada calibración, solamente las efectuadas por dispositivos patrón.
listadoMedicionesPorCalibracionYSR(): devuelve, de todas las mediciones de una determinada
calibración, solamente la efectuada por el Sistema Redundante.
listadoMedicionesInterpretadasPorCalibracion(): devuelve, de todas las mediciones de una
determinada calibración, solamente las interpretadas (bien por el usuario o por el intérprete de
fotografías).
Manual Técnico
96
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.10 Clase BD_Protocolo
La clase BD_Protocolo contiene los métodos típicos de acceso a base de datos vistos hasta ahora.
Además dispone de dos métodos específicos:
altaAsociacionCalProtocolo(): es un método que introduce en la base de datos la información
necesaria para que sea posible que una determinada calibración ha usado un determinado protocolo.
haSidoUsadoEsteProtocolo(): es un método que permite saber si un protocolo ha sido usado por
alguna calibración. Este método se usa a la hora de gestionar los protocolos. Si un protocolo ha sido
usado por alguna calibración, no se permite su borrado o modificación, para así no perder la
información que describe por qué puntos fue pasando la calibración.
4.7.11 Clase BD_Tecnico
La clase BD_Tecnico dispone únicamente de los métodos típicos de acceso a base de datos que hemos
visto hasta ahora: alta, baja, modificación, consulta y listado.
4.7.12 Clase BD_Tipo_Protocolo
La clase BD_Tipo_Protocolo, al igual que la anterior, dispone únicamente de los métodos típicos de
acceso a base de datos que hemos visto hasta ahora: alta, baja, modificación, consulta y listado.
Manual Técnico
97
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.13 Clase Calibracion
Es la clase más importante. Integra todo lo relacionado con una calibración, desde sus mediciones a sus
datos básicos.
Entre sus atributos, encontramos:
camara_climatica: un objeto Camara_Climatica, necesario para configurar el medio donde se
efectuará la calibración.
camara_fotografica: un objeto Camara_Fotografica, para efectuar las fotografías a los displays
de los calibrandos.
descripción: un texto que describa brevemente la calibración.
directorio: el directorio asociado a la calibración, donde se guardarán las fotografías efectuadas
a los displays.
fecha_fin: fecha de finalización de la calibración.
fecha_inicio: fecha de inicio de la calibración.
Manual Técnico
98
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
fichero_de_texto: objeto Fichero_txt, necesario para volcar en él la información de salida del
proceso de calibración.
fichero_excel: objeto Fichero_xls, necesario por la misma razón que fichero_de_texto.
fotografías: vector de objetos Fotografia en el que se van añadiendo las fotografías a medida que
son sacadas.
hora_fin: hora de finalización de la calibración.
hora_inicio: hora de inicio de la calibración.
id: identificador único de la calibración. También conocido como número de muestra.
laboratorio: identificador de la sala del LOMG donde fue efectuada la calibración.
medicion_sistema_redundante: objeto Medicion_Sistema_Redundante que sirve para registrar
los datos relativos al Sistema Redundante obtenidos durante la duración de la calibración.
mediciones_camara: vector de objetos Medicion relativos a mediciones obtenidas de la cámara
climática.
mediciones_camara_estabilidad: vector de objetos Medicion relativos a mediciones obtenidas
de la cámara climática, utilizados para determinar la estabilidad del medio.
mediciones_interpretadas: vector de objetos Medicion relativos a mediciones obtenidas de la
interpretación que el usuario ha hecho de las fotografías efectuadas, o bien del intérprete
automático de fotografías.
mediciones_patrones: vector de objetos Medicion relativos a mediciones obtenidas de los
dispositivos patrón.
OT: identificador de la orden de trabajo asociada a la calibración.
patrones: vector de objetos Dispositivo_Patron a través de los cuales se realizarán mediciones.
protocolo_activo: protocolo que está siendo llevado a cabo en un momento dado.
protocolos: vector de objetos Protocolo que sirve para ir pasando de un punto a otro de la
calibración.
tecnico_calibrador: identificador del técnico que efectúa la calibración.
tipo: clasificación de la calibración según el criterio del técnico (no existen tipos predefinidos).
Sus métodos se reducen a la obtención de los atributos que acabamos de describir.
4.7.14 Clase Camara_Climatica
Esta clase deriva de Dispositivo y es superclase de todas las cámaras climáticas.
Sus métodos son:
configurar (): establece, según un Protocolo, los valores de temperatura y humedad relativa
deseados. Se establece una comunicación con el dispositivo y se asignan los valores de dicho
protocolo.
run(): se arranca la cámara climática.
stop(): se detiene la cámara climática.
Manual Técnico
99
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
En el sistema hay una única subclase de Camara_Climatica: la clase Camara_Thunder_2500:
4.7.15 Clase Camara_Fotografica
La clase Camara_Fotografica es la superclase de las cámaras fotográficas del sistema.
Sus métodos más importantes son:
configurar(): inicia la comunicación con el dispositivo mediante unos determinados valores de
configuración.
cerrar (): cierra la comunicación con la máquina.
sacarFoto (): accede a la cámara para efectuar una fotografía, la guarda físicamente en una ruta
determinada, y devuelve un objeto Fotografia asociado.
La única subclase de Camara_Fotografica en el sistema es la Camara_CCam_BCi4:
Manual Técnico
100
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.16 Clase ConexionGPIB
La clase ConexionGPIB se usa para facilitarle al sistema el uso de dispositivos GPIB. Se pretende ofrecer
métodos para leer y escribir del puerto sin necesidad de conocer las sentencias específicas de acceso a
puertos GPIB.
La variable slot_GPIB sirve para identificar el puerto GPIB usado en esta máquina. Algunas máquinas
permiten la personalización de este puerto, mientras que otras no lo permiten.
Los métodos, con más detalle, son:
establecerConexion (): se crea el puerto, se abre y se configura. Todo queda preparado para
comenzar las lecturas y escrituras sobre él.
cerrarConexion (): se cierra el puerto, de modo que es necesario volver a abrirlo para realizar
nuevas operaciones de lectura o escritura.
escribir (): se envía un texto al puerto. Útil para los dispositivos que precisan de comandos para
emitir mediciones.
leerHasta (): se lee del puerto hasta que se encuentre un carácter concreto. Normalmente los
dispositivos terminan sus respuestas con un salto de carro (CR), con una nueva línea (LF), o con
ambas cosas (CRLF).
4.7.17 Clase ConexionSerie
Análogamente a la clase ConexionGPIB, la clase ConexionSerie pretende facilitar la interacción con un
puerto serie de la manera más transparente posible. Por ello se ofrecen los mismos métodos que en
ConexionGPIB, aplicados ahora a un puerto serie.
La principal diferencia es que, en lugar de tener una variable para el puerto GPIB, se tiene una variable
para el puerto serie. La variable puerto denota un manejador del puerto serie, sobre el que se podrán
manejar lecturas y escrituras.
Manual Técnico
101
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.18 Clase Conversiones
Debido al gran número de conversiones entre tipos que provocan los accesos a base de datos y el trabajo
con interfaces de usuario, se ha creado una clase Conversiones que haga este proceso lo más sencillo
posible.
Por ello se han creado los métodos intToString() para convertir un entero en cadena, stringToInt() para
convertir una cadena en un entero, floatToString() para convertir un número decimal en cadena, y
stringToFloat() para convertir una cadena en un número decimal.
4.7.19 Clase DatosCalibracion
En el proceso de alta de calibración, como ya se ha visto, se pasa por una serie de puntos
secuencialmente para conformar lo que finalmente es una nueva calibración. En ese proceso de recogida
de datos se le pide al usuario que seleccione e introduzca información, hasta que finalmente se tenga
información suficiente para crear un objeto Calibracion y trabajar sobre él.
Es decir, se tiene un objeto Calibracion incompleto. Para tener esa información disponible en el proceso
de recogida de datos, se ha creado la clase DatosCalibracion. Esta clase recoge los atributos básicos de
una calibración, y los mantiene hasta que se crea el objeto Calibracion.
Manual Técnico
102
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.20 Clase Dispositivo
Dispositivo es la superclase de todos aquellos dispositivos susceptibles de realizar algún tipo de
medición, y por tanto crear un objeto Medicion mediante la arquitectura ya descrita Factory Method.
Se especializa en Camara_Climatica (dispositivos que configuran un medio), Dispositivo_Patron
(dispositivos que realizan mediciones y son tomados como referencia para medir una calibración) y
Sistema_Redundante (que es un dispositivo especial que mide los extremos climáticos de un laboratorio
en un espacio de tiempo).
Dispositivo pretende fijar el comportamiento de todas estas subclases, mediante los siguientes métodos
abstractos:
establecerConexion(): para abrir la comunicación con un dispositivo, ya sea mediante la clase
ConexionSerie o ConexionGPIB.
cerrarConexion(): para cerrar dicha comunicación.
realizarMedicion(): es el método más importante. Será el encargado de solicitar al dispositivo
que emita una nueva medición. Cada dispositivo concreto creará un objeto Medicion concreto,
pero en todo caso ese objeto Medicion concreto será una especialización de la clase Medicion.
Existen, además, atributos y métodos para tener información del dispositivo como su nombre,
identificación, etc. Dichos métodos ya se encontrarán, por lo tanto, disponibles para todas sus subclases.
Manual Técnico
103
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.21 Clase Dispositivo_Patron
Dispositivo_Patron especializa Dispositivo para el caso de dispositivos considerados como patrón.
Posteriormente, Dispositivo_Patron se especializa en otras seis clases.
Dispositivo_Patron añade a Dispositivo las siguientes variables:
sondas: para tener constancia de qué sondas se quiere leer en una determinada calibración.
uds: para conocer en qué unidades se está midiendo (útil sobre todo en el caso de los
multímetros)
quiere_correccion: flag que indica si este dispositivo patrón solicita corrección para sus
mediciones, o no.
arch_correccion: ruta del archivo en que se encuentran las correcciones, en caso de que se hayan
solicitado.
Las subclases de Dispositivo_Patron son:
Manual Técnico
104
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.22 Clase EstadoInterfaz
Como se ha descrito anteriormente, EstadoInterfaz se define como una clase que mantiene la coherencia
entre los distintos pasos que supone el alta de una calibración, además de actuar como una especie de
repositorio de todas las incidencias de dicho proceso de alta.
En sus variables se mantiene información sobre las calibraciones que intervienen en el proceso, los
protocolos, los patrones, y el resto de dispositivos. Además controla si la calibración es manual o
automática (mediante esManual) y si se quiere o no interpretación automática de las fotografías
(mediante q_interpretacion).
Existen dos métodos especialmente interesantes:
temperaturaEsEstable(): determina, según su estado interno, si la temperatura en un
determinado medio está o no estable. Para ello utiliza el algoritmo para estabilización visto con
anterioridad. Puede determinar esta estabilidad, ya que conoce las mediciones efectuadas
(mediciones_estabilidad), conoce el protocolo activo (protocolo_activo) y la lista de protocolos
(protocolos).
hrEsEstable(): análogamente al caso anterior, pero con humedad relativa en lugar de
temperatura.
4.7.23 Clase Excepcion
Se ha diseñado una pequeña clase Excepcion, de la que derivarán excepciones más concretas, para
aquellos errores específicos de este proyecto. De sus excepciones derivadas, la más importante es
ConsultaSinResultadosExcepcion, que indica que una consulta a la base de datos no ha retornado
ningún valor. Es útil en los escenarios de alta, para indicar si un valor se repite o no.
Manual Técnico
105
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.24 Clase Fotografia
La clase Fotografia identifica los objetos que son creados por las cámaras fotográficas. Esta clase permite
conocer todos los aspectos relevantes a una fotografía, como su identificador, cuándo fue creada, por
quién, etc. Los métodos se reducen al trabajo sobre estas variables.
4.7.25 Clase Intepretacion
La clase Intepretacion se concibe como un primer paso en la ampliación de este proyecto en cuanto a
interpretación automática de los displays fotografiados. Con la existencia de esta clase, el sistema se
prepara para dicha ampliación, cuyo único paso sería reescribir el método interpretar(). Este método
recoge una fotografía y retorna un número decimal.
4.7.26 Clase Medicion
La clase Medicion es la superclase de todas las mediciones realizadas por los distintos dispositivos del
sistema. Como ya se ha explicado, la relación entre Dispositivo y Medicion radica en el uso del patrón de
diseño Factory Method. Las especializaciones de Dispositivo crearán especializaciones de Medicion. Por
ello es necesario que exista un tipo de Medicion por cada Dispositivo concreto.
Sus atributos reúnen toda la información necesaria para identificar unívocamente una medición. Desde
identificadores básicos a información de cuándo fue creada, por quién y en qué calibración.
Manual Técnico
106
Sistema de Calibración Automática de Termohigrómetros
Sus métodos se limitan al acceso a las variables anteriormente descritas.
Las subclases de Medicion son:
Manual Técnico
107
Ángel Dacal Nieto
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.27 Clase Proceso
La clase Proceso dispone de dos métodos que son utilizados en el proceso de alta de una nueva
calibración. Dichos métodos realizarán el verdadero proceso de alta, dejando libre la interfaz de usuario
para que el usuario pueda seguir interactuando con ella mientras el proceso sigue su curso.
El método altaCalibracion() es el responsable del propio proceso de alta de la calibración (el algoritmo
de calibración descrito anteriormente), mientras que finalizarCalibracion() es el responsable de la
creación de los archivos de salida a partir de la calibración recién realizada.
4.7.28 Clase Protocolo
La clase Protocolo reúne la información necesaria para conocer un punto de consigna de la calibración.
Determina la temperatura generada, la humedad relativa generada, el margen que se tiene en ambas
magnitudes para saber si el medio está estable, el intervalo de tiempo entre medición y medición, y el
número de mediciones que se efectuarán en todo el punto de consigna.
Todo protocolo tiene un tipo, que es el identificador de un objeto Tipo_Protocolo.
Manual Técnico
108
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
4.7.29 Clase Tecnico
La clase Tecnico es utilizada para la identificación de usuarios dentro del sistema. Es una clase muy
sencilla, que únicamente dispone de los atributos login (para el nombre del usuario), password (para su
contraseña) y tipo (para determinar los permisos del usuario).
Los métodos se limitan a obtener los valores de dichas variables.
4.7.30 Clase Tiempo
La clase Tiempo facilita la captura de la hora y fecha actual a partir de dos métodos. Es sumamente útil,
ya que se necesita conocer la fecha y hora de creación de mediciones, fotografías, calibraciones, etc.
4.7.31 Clase Tipo_Protocolo
La clase Tipo_Protocolo define las distintas variantes de Protocolo que pueden ser definidas por el
usuario. Es una clase muy sencilla que simplemente toma nota del nombre e identificación del tipo, para
que posteriormente este tipo pueda ser usado por algún Protocolo.
Manual Técnico
109
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
5. Diseño de la Base de Datos
5.1 Diagrama Entidad-Relación
El uso de diagramas Entidad-Relación a lo largo de esta documentación se fundamenta en que, aunque
no pertenece a UML, es un tipo de diagrama muy útil para comprender conceptualmente el diseño de la
Base de Datos.
Tras la fase de diseño, dicho diagrama es el siguiente:
Hemos obviado los atributos de las relaciones, para así ganar claridad de cara al lector. Dichos atributos
serán descritos en las próximas páginas.
Ahora nos dedicaremos a ver en detalle las tablas que surgen tras aplicar el algoritmo de paso a tablas a
este diagrama.
Manual Técnico
110
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
5.2 Tablas de la Base de Datos
5.2.1 Tabla Archivo
Esta tabla almacena los archivos generados en las calibraciones. Dichos archivos son archivos de texto
(.txt), que sirven para tener un resumen de la calibración en texto plano, y archivos excel (.xls), que serán
utilizadas para la integración en la aplicación de gestión del LOMG. Con esta tabla se pretende tener en
el sistema información suficiente para saber cuándo ha sido creado un archivo y dónde encontrarlo.
No es necesaria una referencia a la calibración a la que pertenece, ya que la relación entre las tablas
Archivo y Calibración es 1 a 1, y basta con tener dos campos id_archivo_txt e id_archivo_xls para
resolver dicha relación. Cada archivo pertenece únicamente a una calibración; cada calibración tiene un
único archivo_txt y un único archivo_xls.
Sus campos son:
-
-
id_archivo: un identificador único para cada archivo. En dicho identificador se indica, para
evitar repeticiones, la id de la calibración a la que pertenece, seguido de “TXT” en el caso de los
archivos de texto o “XLS” en el caso de los archivos excel. Es la clave primaria de la tabla. Un
ejemplo de id_archivo: 07-125 TXT.
fecha: la fecha de creación del archivo. Por ejemplo: 2007-05-25.
hora: la hora de creación del archivo. Por ejemplo: 11-51-12.
ruta: la dirección dentro del sistema de archivos en la cual se encuentra el archivo en cuestión.
Por ejemplo: F:\Temperatura\2007\Calibraciones Clientes\07-125\07-125_txt.txt.
tipo: el tipo de archivo. Con “txt” se denotan los archivos de texto, mientras que con “xls” se
denotan archivos excel.
5.2.2 Tabla Fotografía
Esta tabla almacena las fotografías realizadas por las cámaras fotográficas empleadas en las
calibraciones. Con esta tabla se pretende tener en el sistema información que permita conocer cuándo se
ha sacado una determinada fotografía, dónde encontrarla y a qué calibración pertenece.
Al tener un campo id_calibración en esta tabla, resolvemos la relación existente entre las tablas
Fotografia y Calibración, que es 1 a n. Cada fotografía “pertenece” únicamente a una calibración; una
calibración puede efectuar n fotografías.
Del mismo modo, teniendo un campo id_dispositivo también se resuelve la relación entre las tablas
Fotografia y Calibración, que es 1 a n. Cada fotografía “pertenece” únicamente a un dispositivo (en este
caso una cámara fotográfica); un dispositivo puede efectuar n fotografías.
Sus campos son:
-
-
id_fotografia: un identificador único para cada fotografía. En dicho identificador se indica, para
evitar repeticiones, la id de la calibración a la que pertenece, seguido de un “contador” del
protocolo en que fue sacada (por ejemplo, en el 4º), y un “contador” de la medición concreta en
que fue realizada (por ejemplo, en la 5ª). Un ejemplo de id_fotografía: 07-125-3-4. Se trataría de
la 5ª fotografía del 4º protocolo de l calibración 07-125.
fecha: la fecha de creación de la fotografía. Por ejemplo: 2007-06-01 (1 de junio de 2007).
hora: la hora de creación de la fotografía. Por ejemplo: 11-51-12.
ruta: la dirección dentro del sistema de archivos en la cual se encuentra la fotografía en cuestión.
Por ejemplo: F:\Temperatura\2007\Calibraciones Clientes\07-125\07-125-3-4.bmp.
Manual Técnico
111
Sistema de Calibración Automática de Termohigrómetros
-
Ángel Dacal Nieto
id_calibracion: la referencia al identificador de la calibración. Esta calibración es única. En este
campo se almacena la clave de la calibración. Por ejemplo: 07-125.
id_dispositivo: la referencia al identificador del dispositivo. Este dispositivo es único. En este
campo se almacena la clave del dispositivo. Por ejemplo: T-BCi4.
5.2.3 Tabla Medicion
Esta tabla almacena las mediciones efectuadas en las calibraciones. Dichas mediciones son realizadas por
dispositivos patrón, por cámaras climáticas y por el Sistema Redundante. Con esta tabla se pretende
tener información en el sistema que permita recuperar los datos recogidos en una medición concreta,
como temperatura, humedad relativa… y datos específicos de cada dispositivo, cuándo fue efectuada, a
qué calibración pertenece o con qué dispositivo fue realizada.
Al tener un campo id_calibración en esta tabla, resolvemos la relación existente entre las tablas Medicion
y Calibracion, que es 1 a n. Cada medición “pertenece” únicamente a una calibración; una calibración
puede efectuar n mediciones.
Del mismo modo, teniendo un campo id_dispositivo también se resuelve la relación entre las tablas
Medicion y Calibración, que es 1 a n. Cada medición “pertenece” únicamente a un dispositivo; un
dispositivo puede efectuar n mediciones.
Los campos de la tabla son:
-
-
-
-
id_medicion: un identificador único para cada medición. En dicho identificador se indica, para
evitar repeticiones, la id de la calibración a la que pertenece, la id del dispositivo que realiza la
medición (y su sonda, si procede), seguido de un “contador” del protocolo en que fue sacada
(por ejemplo, en el 3º), y un “contador” de la medición concreta en que fue realizada (por
ejemplo, en la 6ª). Un ejemplo de id_medicion: 07-125-T-1301--2-5.
fecha: la fecha de realización de la medición. Por ejemplo: 2007-06-01.
hora: la hora de realización de la medición. Por ejemplo: 10-28-51.
unidades: unidades en que ha sido recogida la temperatura (en caso de que haya sido medida),
o unidades en que ha sido recogida una medida (en el caso de un multímetro, que puede medir
corriente alterna, corriente continua, resistencia, frecuencia, etc). Por ejemplo: C (ºC).
temperatura: temperatura registrada en la medición, en caso de recogerla. Por ejemplo: 21.631.
hr: humedad relativa registrada en la medición, en caso de haberse recogido. Por ejemplo: 45.78.
punto_de_rocio: punto de rocío registrado en la medición, en caso de que haya sido recogido.
Por ejemplo: 15.77.
medida: otro tipo de medida registrada en la medición, como el caso de los multímetros, que
recogen magnitudes como corriente alterna, resistencia, etc. Por ejemplo: -0.00185158.
t_max: temperatura máxima registrada en la medición, usada en las mediciones del Sistema
Redundante. Por ejemplo: 23.277.
t_min: temperatura mínima registrada en la medición, usada en las mediciones del Sistema
Redundante. Por ejemplo: 22.442.
hr_max: humedad relativa máxima registrada en la medición, usada en las mediciones del
Sistema Redundante. Por ejemplo: 45.434.
hr_min: humedad relativa mínima registrada en la medición, usada en las mediciones del
Sistema Redundante. Por ejemplo: 36.348.
sonda: sonda mediante la que ha sido registrada la medición; ciertos dispositivos disponen de
varias posibilidades para recoger mediciones, con lo cual es necesario especificar de qué sonda
se están obteniendo las mediciones. Por ejemplo: A.
id_calibracion: la referencia al identificador de la calibración. Esta calibración es única. En este
campo se almacena la clave de la calibración. Por ejemplo: 07-125.
id_dispositivo: la referencia al identificador del dispositivo. Este dispositivo es único. En este
campo se almacena la clave del dispositivo. Por ejemplo: T-1301.
Manual Técnico
112
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
5.2.4 Tabla Protocolo
Esta tabla almacena los protocolos usados en las calibraciones. Estos protocolos indican cada uno de los
pasos por los que va pasando una calibración. Cada uno de esos pasos individuales es un protocolo. En
ellos se indica qué temperatura y humedad relativa se deben alcanzar en la cámara climática, qué
márgenes se usarán para evaluar si la calibración está o no estable, que intervalo de tiempo se dejará
entre medición y medición, y cuántas mediciones se deben efectuar (en este paso).
Para facilitar la identificación de los protocolos existen los tipos de protocolo, que a nivel de base de
datos podemos encontrar en la tabla Tipo_Protocolo.
Al tener un campo id_tipo_protocolo en esta tabla, resolvemos la relación existente entre las tablas
Protocolo y Tipo_Protocolo, que es 1 a n. Cada protocolo “tiene” únicamente un tipo de protocolo; un
tipo de protocolo puede denotar n protocolos.
Dado que la relación entre las tablas Protocolo y Calibración es n a n, es preciso crear una tabla
intermedia que denominaremos Cal_Protocolo, que será la que mantenga la información de qué
protocolos se han usado en una calibración concreta.
Los campos de la tabla son:
-
-
-
id_protocolo un identificador único para cada protocolo. El identificador debería ser
suficientemente indicativo de qué hace el protocolo en cuestión. Por ejemplo: CAM-THU-002.
temperatura: la temperatura generada en la cámara climática en este punto de la calibración. Por
ejemplo: 50.
margen_temperatura: el margen de temperatura que indica cuándo una calibración está
estabilizada o no según su temperatura. Por ejemplo un margen de 1ºC indica que una
calibración se considera estable cuando ninguna de las últimas mediciones sobrepasan en 0,5ºC
la temperatura buscada (y exactamente lo mismo por debajo). Por ejemplo: 0.01.
hr: la humedad relativa generada en la cámara climática en este punto de la calibración. Por
ejemplo: 70.
margen_hr: el margen de humedad relativa que indica cuándo una calibración está estabilizada
o no según su humedad relativa. Por ejemplo un margen de 1% indica que una calibración se
considera estable cuando ninguna de las últimas mediciones sobrepasan en 0,5% la humedad
relativa buscada (y exactamente lo mismo por debajo). Por ejemplo: 0.01.
intervalo: el tiempo en segundos entre una medición y la siguiente (normalmente 60). Por
ejemplo: 60.
num_mediciones: el número de mediciones efectuadas en este protocolo (normalmente 10). Por
ejemplo: 10.
tipo_protocolo: el tipo de protocolo al que “pertenece” este protocolo. Es la referencia al
identificador del tipo de protocolo. Este tipo de protocolo es único. En este campo se almacena la
clave del tipo de protocolo. Por ejemplo: CAM-THU-LW.
5.2.5 Tabla Tipo_Protocolo
Esta tabla almacena tipos de protocolo, que son referenciados por los protocolos a modo de
especialización. Estos tipos de protocolos indican únicamente un nombre y una descripción. La intención
es que existan muchos protocolos, y los tipos de protocolo agrupen estos protocolos para facilitar su uso.
Un ejemplo sería agrupar los protocolos que trabajen con termómetros de una determinada marca X, con
los cuales es habitual generar condiciones de 20, 40, 60 y 80ºC. La idea es crear un tipo de protocolo
Termómetros_X, y unos protocolos que generen esas temperaturas, cuyo tipo sea Termómetros_X.
Manual Técnico
113
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
Los campos de la tabla son:
-
-
id_tipo_protocolo un identificador único para cada protocolo. El identificador debería ser
suficientemente indicativo de qué protocolos agrupa el tipo de protocolo en cuestión. Por
ejemplo: Termómetros_X.
nombre: el nombre del tipo de protocolo. Por ejemplo: Termómetros X.
descripción: una breve descripción de porqué se agrupan unos determinados protocolos en esta
“familia” de protocolos. Por ejemplo: Este tipo de protocolo recoge protocolos para
termómetros X, con un rango de temperaturas de 20 a 80ºC.
5.2.6 Tabla Técnico
Esta tabla almacena información para identificar a los usuarios del sistema. Se usará a la hora de validar
quién quiere entrar en el sistema y para identificar quién realiza una determinada calibración.
Existen dos tipos de usuario: jefe de departamento y técnicos calibradores. Los primeros tendrán un 1 en
su campo tipo, y los segundos un 2.
Los campos de la tabla son:
-
nombre: un identificador único para cada usuario. Es la clave primaria de la tabla. Lo escoge el
propio usuario al registrarse. Por ejemplo: admin.
password: es la contraseña del usuario, escogida también en el momento de registrarse.
tipo: el nivel de privilegios para hacer uso del sistema, que además nos indica el tipo de usuario.
El jefe de departamento tiene nivel 1 y los técnicos calibradores tienen nivel 2. Esto nos sirve
para restringir el paso, por ejemplo, a los técnicos a la zona de listado de técnicos.
5.2.7 Tabla Dispositivo
Esta tabla almacena información sobre los dispositivos del sistema. Se usan para identificar qué realiza
una fotografía, qué realiza una medición, y qué está presente en una determinada calibración.
Existen diversos tipos de dispositivos: cámaras fotográficas, cámaras climáticas, baños, hornos,
termómetros, termohigrómetros, puntos de rocío, multímetros, el Sistema Redundante… Esta variedad
se refleja en el campo tipo de esta tabla, que sirve para distinguirlos entre sí.
Los campos de la tabla son:
-
-
id_dispositivo: un identificador único para cada dispositivo. Es la clave primaria de la tabla. Es
un identificador asignado por el LOMG. Los dispositivos que no estaban registrados en el
LOMG (como la cámara fotográfica) se han añadido con una clave análoga. Por ejemplo: T-1301.
nombre: el nombre del dispositivo. Por ejemplo: HP 3457A.
descripcion: una descripción de qué hace el dispositivo, y cómo debe ser configurado. Por
ejemplo: Enchufar y encender el dispositivo. Conectarlo al Puerto Serie del PC.
tipo: la clase de dispositivo de que se trata. Entre ellos, los tipos antes comentados. Por ejemplo:
Termometro.
Manual Técnico
114
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
5.2.8 Tabla Calibracion
Esta tabla almacena información sobre las calibraciones realizadas en el sistema. Su intención es recoger
todos los datos que permitan al usuario recuperar totalmente una calibración.
Como ya se ha descrito en los puntos anteriores, la tabla calibración tiene relaciones 1 a n con otras
tablas, como Medicion y Fotografia, por lo que en la tabla Calibración no se guarda ninguna información
acerca de estas entidades. Dicha información se recoge en las tablas Medicion y Fotografia, por medio de
una clave foránea a Calibración.
Un caso distinto son las relaciones 1 a 1, que se producen con Archivo y Tecnico. En este caso la
información se almacena en la tabla Calibracion, que es la que referencia como claves foráneas a Archivo
y Tecnico.
Por último, en las relaciones n a n con otras tablas (Dispositivo y Protocolo), la solución es crear una
tabla intermedia. Dichas tablas serán descritas a continuación de esta.
Los campos de la tabla son:
-
-
-
-
-
id_calibracion: un identificador único para cada calibración. Es la clave primaria de la tabla. Es
un identificador asignado por el usuario en el momento del alta de la calibración. Se
corresponde con el número de muestra de la calibración dentro de la aplicación de gestión del
LOMG. Por ejemplo: 07-125.
OT: la orden de trabajo de la calibración. Una orden de trabajo puede tener más de una muestra.
No es clave, ya que, como acabamos de decir, puede estar repetido en más de una calibración.
Por ejemplo: OT-1003.
directorio: el directorio base de la calibración. En este directorio se crearán las fotografías
efectuadas (en caso de haber sido utilizada una cámara fotográfica). También es habitual que se
utilice este directorio para la creación de los archivos de salida, aunque dichos archivos pueden
ser creados en cualquier localización. Por ejemplo: F:\Temperatura\2007\Calibraciones
Clientes\OT-1003\07-125.
laboratorio: indica en qué laboratorio del LOMG se ha efectuado la calibración. Lo indica con un
dígito, que se corresponde con un laboratorio. Por ejemplo: 2.
descripción: es un breve texto que puede ser usado para describir ciertos aspectos de la
calibración que no puedan ser salvados mediante los otros atributos.
tipo: del mismo modo que con la descripción, este campo se deja a elección del usuario para que
efectúe las clasificaciones que considere oportunas.
tecnico: el técnico que efectuó la calibración. En este campo se guarda la clave primaria de la
tabla Tecnico, es decir, su login.
id_archivo_txt: el identificador del archivo de texto asociado a esta calibración. Este campo
referencia a un archivo de la tabla Archivo. Por lo tanto, para recuperar, por ejemplo, su ruta,
bastaría con ir a la tupla de la tabla Archivo con este identificador. Por ejemplo: 07-125 TXT.
id_archivo_xls: Del mismo modo que con los archivos de texto, los archivos excel se referencian
mediante este campo. Por ejemplo: 07-125 XLS.
fecha_inicio: la fecha en que se inició la calibración. Por ejemplo: 2007-05-25.
hora_inicio: la hora en que fue iniciada la calibración. Por ejemplo: 09-59-34.
fecha_fin: la fecha en que se finalizó la calibración. Por ejemplo: 2007-05-26.
hora_fin: la hora en que fue finalizada la calibración. Por ejemplo: 13-43-17.
Manual Técnico
115
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
5.2.9 Tabla Cal_Dispositivo
Esta tabla intermedia surge por la relación n a n entre las tablas Calibracion y Dispositivo.
Sus únicos campos son las claves primarias de las tablas Calibracion y Dispositivo. Con ello se tiene
suficiente información para poder resolver la relación y determinar qué dispositivos se han usado en una
calibración concreta.
Los campos de la tabla son:
-
id_calibracion: la clave de la calibración. Es clave primaria de la tabla.
id_dispositivo: la clave del dispositivo. Es clave primaria de la tabla.
5.2.10 Tabla Cal_Protocolo
Del mismo modo que con Cal_Dispositivo, Cal_Protocolo surge por la relación n a n entre las tablas
Calibración y Protocolo. Por ello es necesaria una tabla intermedia, que únicamente contenga la clave de
Calibración y la clave de Protocolo.
Con dicha tabla se dispone de suficiente información para determinar qué protocolos han sido usados en
una calibración en concreto.
Los campos de la tabla son:
-
id_calibracion: la clave de la calibración. Es clave primaria de la tabla.
id_protocolo: la clave del protocolo. Es clave primaria de la tabla.
Manual Técnico
116
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
6. Implementación
6.1 Clases administradas y no administradas
6.1.1 Diferencias
Visual Studio 2005 Professional es un entorno de desarrollo de Microsoft que permite el desarrollo de
aplicaciones en varios lenguajes de programación. Dispone de su propio framework, el .NET Framework
2.0, que incluye numerosas clases ya implementadas listas para su uso e inclusión en aplicaciones
propias.
Visual Studio permite la programación en C++ clásico (basado en MFC, Microsoft Foundation Class
Library), y en C++ supervisado, basado en el CLR (Common Language Runtime). Mientras que el
código en C++ Clásico se compila y ejecuta como cualquier otro compilador de C++, el código en C++
supervisado se compila a un código intermedio llamado MSIL (Microsoft Intermediate Language) que es
ejecutado en una máquina virtual, que es la que interactúa realmente con la computadora. Las clases del
.NET Framework están orientadas a su uso en C++ supervisado.
Las diferencias entre C++ clásico y supervisado no terminan ahí. El código en C++ basado en CLR
cambia ligeramente la sintaxis que todos conocemos:
- Los punteros se indican con ^ en lugar de con *.
- El operador new se indica como gcnew.
- Para crear una clase administrada, se crea como public ref class MiClase.
6.1.2 Decisiones adoptadas
Desde un primer instante se comprobó que era absolutamente necesaria la presencia de ambas visiones
de C++.
Por un lado, las clases del dominio del problema, las que surgieron en el análisis, tenían que estar
obligatoriamente en C++ clásico. Esta obligatoriedad surge del uso de librerías de terceros.
Concretamente, para el manejo de la Cámara Fotográfica CCam BCi4 es necesario incluir una serie de
librerías en C. Lo mismo pasa con las clases que interactúan con la base de datos (lo cual será explicado
con mayor detenimiento en capítulos posteriores). Finalmente, el controlador GPIB que el LOMG ha
dispuesto para el proyecto también aporta sus propias librerías.
Otro motivo fundamental para escribir las clases más importantes en C++ clásico era la portabilidad del
código. Aunque el proyecto se desarrolle en Visual Studio, hay que pensar en C++ como un lenguaje
universal, por lo que el código escrito debería poder ser usado en otros entornos de desarrollo.
Por otra parte la creación de una interfaz potente y fácil de desarrollar pasaba por el uso de los Windows
Forms del .NET Framework, cuyas clases son en C++ supervisado. Las otras alternativas no
supervisadas, como los Forms de MFC, no cumplían las expectativas deseadas.
Finalmente el inevitable encontronazo entre ambas tecnologías sucedió. Se restringió el uso de CLR a las
clases encargadas de la interfaz de usuario, mientras que las clases con el peso de la algoritmia de la
aplicación se desarrollaron en C++ clásico. La interfaz de usuario, en C++ supervisado, hace uso de las
clases de C++ clásico para procesos sencillos, y de ciertas clases “puente”.
Manual Técnico
117
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
6.2 Diagrama de Despliegue
Sistema
Dispositivos
(Cámaras
fotográficas,
cámaras
climáticas y
dispositivos
patrón)
Interfaz de Usuario
(CLR)
Clases del dominio del problema
(MFC)
S.G.B.D
MySQL
El sistema consta de tres partes: el propio sistema, los dispositivos implicados, y el sistema gestor de la
base de datos. El sistema se divide en la interfaz de usuario y en las clases del dominio del problema.
Son éstas últimas las que realizan los accesos a los dispositivos y la interacción con la base de datos. La
interfaz se limita a presentar y recoger datos al usuario.
- Dispositivos: los dispositivos de los que hace uso el sistema. Son cámaras fotográficas, cámaras
climáticas y dispositivos patrón.
- Sistema: El propio sistema:
- Interfaz de usuario: presentar y recoger datos del usuario.
- Clases del dominio del problema: llevan el peso de la aplicación.
- SGBD: El sistema gestor de la base de datos, MySQL.
6.3 Estructura del código
El código se ha organizado en diversas carpetas, agrupando las clases en función de su comportamiento.
Cada clase se compone de un archivo de cabecera (*.h) y otro de código (*.cpp):
•
Carpeta Archivo:
o Archivo
Archivo_txt
Archivo_xls
•
Carpeta BD (además de estas clases, se incluyen librerías de MySQL)
o BD
o BD_Archivo
o BD_Calibracion
o BD_Dispositivo
o BD_Fotografia
o BD_Medicion
o BD_Protocolo
o BD_Tecnico
o BD_Tipo_Protocolo
Manual Técnico
118
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
•
Carpeta Calibracion:
o Calibracion
•
Carpeta Camara (además de estas clases, se incluyen librerías de la CCam BCi4)
o Camara_Fotografica
Camara_CCam_BCi4
o Fotografia
•
Carpeta Conexiones (además de estas clases, se incluyen librerías del adaptador GPIB)
o ConexionGPIB
o ConexionSerie
•
Carpeta Dispositivos
o Dispositivo
Dispositivo_Patron
• Multimetro_34401A
• Multimetro_HP3457A
• Termohigrometro_DP30_BCS
• Termohigrometro_protimeter_996
• Termometro_BlackStack_1560
• Termometro_F250
• Termometro_F250_Serie
Camara_Climatica
• Camara_Thunder_2500
Sistema_Redundante
o Medicion
Medicion_Multimetro_34401ª
Medicion_Multimetro_HP3457A
Medicion_Termohigrometro_DP30_BCS
Medicion_Termohigrometro_Protimeter_996
Medicion_Termometro_BlackStack_1560
Medicion_Termometro_F250
Medicion_Camara_Thunder_2500
Medicion_Sistema_Redundante
Medicion_Interpretada
•
Carpeta EstadoInterfaz
o EstadoInterfaz
o DatosCalibracion
•
Carpeta Excepcion
o Excepcion
•
Carpeta Interpretación
o Interpretación
•
Carpeta Librerias
o Conversiones
o Tiempo
o StringTokenizer
•
Carpeta Proceso
o Proceso
Manual Técnico
119
Sistema de Calibración Automática de Termohigrómetros
•
Carpeta Protocolo
o Protocolo
o Tipo_Protocolo
•
Carpeta Tecnico
o Tecnico
•
Carpeta de Formularios
o Form_Entrada
o Form_Home
o Form_Alta_Tecnico
o Form_Alta_Protocolo
o Form_Alta_Tipo_Protocolo
o Form_Consulta_Calibracion
o Form_Consulta_Tecnico
o Form_Consulta_Protocolo
o Form_Consulta_Tipo_Protocolo
o Form_Listado_Calibraciones
o Form_Listado_Tecnicos
o Form_Listado_Protocolos
o Form_Listado_Tipo_Protocolos
o Form_Nueva_Calibracion_1
o Form_Nueva_Calibracion_2
o Form_Nueva_Calibracion_3
o Form_Nueva_Calibracion_4
o Form_Nueva_Calibracion_5
o Form_Nueva_Calibracion_6
o Form_Nueva_Calibracion_7
Ángel Dacal Nieto
Dicho código se ha comentado mediante la herramienta Doxygen. Los resultados de dicha
documentación pueden ser consultados en la carpeta Documentación\Documentación del código por
Doxygen del soporte digital.
Las librerías de terceros necesarias para el funcionamiento de la cámara CCam BCi4, del adaptador GPIB
y de la base de datos MySQL han sido retiradas de dicha documentación, dejando únicamente las clases
escritas para este proyecto (a excepción de la clase StringTokenizer, que se comenta en el capítulo 8 de
este tomo). Otras clases no comentadas (como los formularios) sí se han incluido en la documentación de
Doxygen para tener una visión global del proyecto).
6.4 Compilación
Para poder compilar el proyecto, es necesario abrir previamente el archivo *.sln del proyecto, o bien abrir
Visual Studio y pulsar Abrir proyecto, seleccionando después dicho archivo *.sln.
Una vez abierto el proyecto, se debe pulsar en Generar, y a continuación en Generar solución. Otra
alternativa es pulsar directamente F7. Con cualquiera de esas dos alternativas Visual Studio comenzará a
compilar el proyecto. En la ventana de resultados podremos ver qué archivos se están compilando,
podremos controlar la aparición de errores o advertencias, y se nos informará del éxito de la operación.
Manual Técnico
120
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
6.5 Ejecución
Para poder ejecutar el proyecto desde Visual Studio con la opción de depuración, es necesario que se
haya compilado el proyecto previamente, lo cual se explica en el paso anterior. Hecho eso, basta con ir a
Depurar, Iniciar Depuración, o bien pulsar directamente F5.
Otra opción es lanzar el ejecutable sin Visual Studio. Se debe hacer doble clic en el archivo *.exe del
proyecto.
Manual Técnico
121
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
7. Pruebas
Este capítulo estará dedicado a las pruebas realizadas para comprobar que el sistema funciona
correctamente. Cabe destacar, primero, que durante la fase de implementación del sistema ya se han ido
probando sus distintos componentes de forma individual aunque al final se hayan probado estos
componentes de forma más exhaustiva.
7.1 Seguridad
Estas pruebas pretenden demostrar que si un usuario no tiene permiso para acceder a una determinada
zona del sistema, se le impide el paso a dicha zona.
Las zonas susceptibles de necesitar un permiso especial son las de Alta de técnico, Listado de técnicos y
Consulta tus datos. El listado y el alta únicamente pueden ser llevados a cabo por un Jefe de
departamento, mientras que la consulta de datos únicamente puede realizarse sobre el usuario que está
logueado.
Tras dichas pruebas se ha comprobado que, en efecto, dichas restricciones se cumplen, manteniéndose el
funcionamiento del proyecto dentro de los límites marcados por los requerimientos del análisis.
7.2 Integración
Una vez comprobados todos los componentes por separado, se integran todas las unidades que
constituyen el sistema final y se prueban conjuntamente. Aquí se comprueba que la comunicación entre
las distintas unidades sea correcta.
Las pruebas en esta fase se han llevado a cabo mediante calibraciones de prueba, probando los distintos
dispositivos estudiados con anterioridad. Se ha ido comprobando que las mediciones que el sistema iba
registrando eran, de hecho, las que marcaban los dispositivos. Finalmente se ha comprobado que los
archivos generados reflejaban correctamente dichas mediciones, y que la base de datos guardaba esa
información de manera correcta.
Estas pruebas se han ido realizando a lo largo de todo el proceso de implementación, con mucha
frecuencia, ya que es de vital importancia tener constancia de que lo que se está midiendo es, en
realidad, lo que está registrando el dispositivo.
7.3 Formularios
Estas pruebas consisten en comprobar la validez de los campos introducidos en los formularios. Dichas
pruebas hacen uso de diversas estrategias, como contar el número de caracteres de los campos, o
comprobar su correspondencia con una determinada expresión regular (usando la clase
System::Text::RegularExpressions::Regex::IsMatch).
En las columnas llamadas “Modificación” se indica si las pruebas realizadas en el formulario de alta
también están presentes en el formulario de modificación. En el caso de que un determinado campo no
sea modificable (o no se muestre en la modificación) se indica con “No permite”.
*: caracteres inválidos son aquellos distintos de dígitos(0-9), letras (a-z, A-Z), guión (-), guión bajo (_) o
espacio ( ).
Manual Técnico
122
Sistema de Calibración Automática de Termohigrómetros
Pruebas realizadas en el login de un usuario.
Prueba
Resultado esperado
Enviar formulario vacío
Usuario incorrecto o
password incorrecta
Enviar usuario vacío
Usuario incorrecto o
password incorrecta
Enviar contraseña vacía
Usuario incorrecto o
password incorrecta
Enviar usuario no
Usuario incorrecto o
existente
password incorrecta
Enviar usuario existente
Usuario incorrecto o
con contraseña incorrecta
password incorrecta
Enviar usuario existente
Se entra en el sistema
con contraseña correcta
Pruebas realizadas en el alta de un técnico.
Prueba
Resultado esperado
Enviar formulario vacío
El campo login es
demasiado pequeño
Enviar login vacío
El campo login es
demasiado pequeño
Enviar login de longitud El campo login es
<4
demasiado pequeño
Enviar login de longitud
El campo login es
> 14
demasiado grande
Enviar login con
El login debe estar
caracteres inválidos*
formado por caracteres
alfanuméricos
Enviar password vacío
El campo password es
demasiado pequeño
Enviar
password
de El campo password es
longitud < 4
demasiado pequeño
Enviar password de
El campo password es
longitud > 14
demasiado grande
Enviar password con
El password debe estar
caracteres inválidos*
formado por caracteres
alfanuméricos
Enviar repetición de
El campo repetición de
password vacía
password es demasiado
pequeño
Enviar repetición
de El campo repetición de
password de longitud < 4 password es demasiado
pequeño
Enviar repetición de
El campo repetición de
password de longitud >
password es demasiado
14
grande
Enviar repetición de
El campo repetición de
password con caracteres
password debe estar
inválidos*
formado por caracteres
alfanuméricos
Enviar password y
La password introducida
repetición de password
no se corresponde con su
distintos
repetición
Insertar usuario repetido
El técnico ya existe
Manual Técnico
123
Ángel Dacal Nieto
Resultado obtenido
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Resultado obtenido
Modificación
Correcto
Igual
Correcto
No permite
Correcto
No permite
Correcto
No permite
Correcto
No permite
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
No permite
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
En la modificación de técnico es necesario introducir la contraseña vieja antes de cambiar la nueva. Se ha
de introducir dicha contraseña antigua correctamente, o de lo contrario se informa de que “La antigua
contraseña no es correcta”.
Pruebas realizadas en el alta de un protocolo.
Prueba
Resultado esperado
Enviar formulario vacío
El identificador es
demasiado pequeño
Enviar identificador
El identificador es
vacío
demasiado pequeño
Enviar identificador de El identificador es
longitud < 4
demasiado pequeño
Enviar identificador de
El identificador es
longitud > 14
demasiado grande
Enviar identificador con
El identificador debe estar
caracteres inválidos*
formado por caracteres
alfanuméricos
Enviar temperatura vacía La temperatura es
demasiado pequeña
Enviar temperatura de
La temperatura es
longitud > 10
demasiado grande
Enviar temperatura con
La temperatura debe estar
caracteres no dígitos
formada por dígitos
Enviar margen de
El margen de temperatura
temperatura de longitud
es demasiado grande
> 10
Enviar margen de
El margen de temperatura
temperatura con
debe estar formado por
caracteres no dígitos
dígitos
Enviar humedad relativa La humedad relativa es
vacía
demasiado pequeña
Enviar humedad relativa La humedad relativa es
de longitud > 10
demasiado grande
Enviar humedad relativa La humedad relativa debe
con caracteres no dígitos
estar formada por dígitos
Enviar margen de
El margen de humedad
humedad relativa de
relativa es demasiado
longitud > 10
grande
Enviar margen de
El margen de humedad
humedad relativa con
relativa debe estar
caracteres no dígitos
formado por dígitos
Enviar intervalo vacío
El intervalo es demasiado
pequeño
Enviar
intervalo
de El intervalo es demasiado
longitud > 5
grande
Enviar intervalo con
El intervalo debe estar
caracteres no dígitos
formado por dígitos
Enviar mediciones vacío
El número de mediciones
es demasiado pequeño
Enviar mediciones de
El número de mediciones
longitud > 5
es demasiado grande
Enviar mediciones con
El número de mediciones
caracteres no dígitos
debe estar formado por
dígitos
Manual Técnico
124
Resultado obtenido
Modificación
Correcto
Igual
Correcto
No permite
Correcto
No permite
Correcto
No permite
Correcto
No permite
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Sistema de Calibración Automática de Termohigrómetros
Enviar mediciones de
estabilidad de longitud >
5
Enviar mediciones de
estabilidad con caracteres
no dígitos
Enviar tipo vacío
Insertar protocolo
repetido
El número de mediciones
de estabilidad es
demasiado grande
El número de mediciones
de estabilidad debe estar
formado por dígitos
Es necesario seleccionar un
tipo para el punto de
consigna
El punto de consigna ya
existe
Pruebas realizadas en el alta de un tipo de protocolo.
Prueba
Resultado esperado
Enviar formulario vacío
El identificador es
demasiado pequeño
Enviar identificador
El identificador es
vacío
demasiado pequeño
Enviar identificador de El identificador es
longitud < 4
demasiado pequeño
Enviar identificador de
El identificador es
longitud > 14
demasiado grande
Enviar identificador con
El identificador debe
caracteres inválidos*
estar formado por
caracteres alfanuméricos
Enviar nombre vacío
El nombre es demasiado
pequeño
Enviar
nombre
de El nombre es demasiado
longitud < 4
pequeño
Enviar nombre de
El nombre es demasiado
longitud > 300
grande
Enviar nombre con
El nombre debe estar
caracteres inválidos*
formado por caracteres
alfanuméricos
Enviar descripción vacía
La descripción es
demasiado pequeña
Enviar descripción de La descripción es
longitud < 4
demasiado pequeña
Enviar descripción de
La descripción es
longitud > 300
demasiado grande
Enviar descripción con
La descripción debe estar
caracteres inválidos*
formada por caracteres
alfanuméricos
Insertar tipo de protocolo El tipo de punto de
repetido
consigna ya existe
Manual Técnico
125
Ángel Dacal Nieto
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
No permite
Resultado obtenido
Modificación
Correcto
Igual
Correcto
No permite
Correcto
No permite
Correcto
No permite
Correcto
No permite
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
Igual
Correcto
No permite
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
Pruebas realizadas en el alta de una calibración.
FORMULARIO 1 (Datos genéricos)
Prueba
Resultado esperado
Enviar formulario vacío
Es necesario introducir
alguna calibración.
Enviar OT vacío
El campo OT es demasiado
pequeño
Enviar OT de longitud < El campo OT es demasiado
4
pequeño
Enviar OT de longitud >
El campo OT es demasiado
14
grande
Enviar OT con caracteres El campo OT debe estar
inválidos*
formado por caracteres
alfanuméricos
Enviar número de
El campo muestra es
muestra vacío
demasiado pequeño
Enviar muestra de
El campo muestra es
longitud < 4
demasiado pequeño
Enviar muestra de
El campo muestra es
longitud > 14
demasiado grande
Enviar muestra con
El campo muestra debe
caracteres inválidos*
estar formado por
caracteres alfanuméricos
Enviar tipo con longitud
El campo tipo es
> 300
demasiado grande
Enviar descripción con
El campo descripción es
longitud > 600
demasiado grande
No seleccionar técnico
Es necesario seleccionar un
técnico y un laboratorio
No seleccionar
Es necesario seleccionar un
laboratorio
técnico y un laboratorio
Enviar ruta de directorio La ruta del directorio es
vacía
demasiado pequeña
Enviar directorio de
La ruta del directorio es
longitud < 4
demasiado pequeña
Enviar directorio de
La ruta del directorio es
longitud > 300
demasiado grande
Enviar ruta de archivo txt La ruta del archivo de
vacía
texto es demasiado
pequeña
Enviar ruta de archivo txt La ruta del archivo de
con longitud < 4
texto es demasiado
pequeña
Enviar ruta de archivo txt La ruta del archivo de
con longitud > 300
texto es demasiado grande
Enviar ruta de archivo
La ruta del archivo excel es
excel vacía
demasiado pequeña
Enviar ruta de archivo La ruta del archivo excel es
excel con longitud < 4
demasiado pequeña
Enviar ruta de archivo
La ruta del archivo excel es
excel con longitud > 300
demasiado grande
Enviar calibración ya
Ya existe una calibración
existente
con ese número de
muestra
Manual Técnico
126
Resultado obtenido
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Sistema de Calibración Automática de Termohigrómetros
FORMULARIO 2 (Patrones)
Prueba
Resultado esperado
Enviar formulario vacío
Es necesario introducir al
menos un patrón
No seleccionar patrón
Es necesario seleccionar un
patrón y un adaptador
No seleccionar adaptador Es necesario seleccionar un
patrón y un adaptador
No indicar archivo de
La ruta del archivo de
correcciones, habiendo
correcciones es demasiado
seleccionado
pequeño
previamente que se desea
corrección
Enviar archivo de
La ruta del archivo de
correcciones de longitud
correcciones es demasiado
<4
pequeño
Enviar archivo de
La ruta del archivo de
correcciones de longitud
correcciones es demasiado
> 14
pequeño
Insertar un patrón más
Patrón ya introducido
de una vez
FORMULARIO 3 (Cámara climática y protocolos)
Prueba
Resultado esperado
Enviar formulario vacío
Es necesario introducir al
menos un patrón
Enviar temperatura vacía La temperatura es
demasiado pequeña
Enviar temperatura de
La temperatura es
longitud > 10
demasiado grande
Enviar temperatura con
La temperatura debe estar
caracteres no dígitos
formada por dígitos
Enviar margen de
El margen de temperatura
temperatura de longitud
es demasiado grande
> 10
Enviar margen de
El margen de temperatura
temperatura con
debe estar formado por
caracteres no dígitos
dígitos
Enviar humedad relativa La humedad relativa es
vacía
demasiado pequeña
Enviar humedad relativa La humedad relativa es
de longitud > 10
demasiado grande
Enviar humedad relativa La humedad relativa debe
con caracteres no dígitos
estar formada por dígitos
Enviar margen de
El margen de humedad
humedad relativa de
relativa es demasiado
longitud > 10
grande
Enviar margen de
El margen de humedad
humedad relativa con
relativa debe estar
caracteres no dígitos
formado por dígitos
Enviar intervalo vacío
El intervalo es demasiado
pequeño
Enviar
intervalo
de El intervalo es demasiado
longitud > 5
grande
Manual Técnico
127
Ángel Dacal Nieto
Resultado obtenido
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Resultado obtenido
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Sistema de Calibración Automática de Termohigrómetros
Enviar intervalo con
caracteres no dígitos
Enviar mediciones vacío
Enviar mediciones de
longitud > 5
Enviar mediciones con
caracteres no dígitos
Enviar mediciones de
estabilidad de longitud >
5
Enviar mediciones de
estabilidad con caracteres
no dígitos
Enviar tipo vacío
Insertar protocolo
repetido
El intervalo debe estar
formado por dígitos
El número de mediciones
es demasiado pequeño
El número de mediciones
es demasiado grande
El número de mediciones
debe estar formado por
dígitos
El número de mediciones
de estabilidad es
demasiado grande
El número de mediciones
de estabilidad debe estar
formado por dígitos
Es necesario seleccionar un
tipo para el punto de
consigna
El punto de consigna ya ha
sido introducido
Ángel Dacal Nieto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
Correcto
El resto de formularios del alta de calibración no poseen elementos susceptibles de necesitar un control
como los anteriores. Su uso se basa en selección de elementos, más que en introducción de datos, por lo
que no se hará un análisis exhaustivo como con los anteriores.
Manual Técnico
128
Sistema de Calibración Automática de Termohigrómetros
Ángel Dacal Nieto
8. Apéndices
8.1 Librerías
En ciertas partes de este proyecto se ha utilizado la clase StringTokenizer. Dicha clase ha sido
desarrollada por el ingeniero australiano Arash Partow, cuyo trabajo puede ser visto en su site:
http://www.partow.net/programming/stringtokenizer/index.html.
El funcionamiento de dicha clase puede ser consultado en la documentación generada por Doxygen (que
se encuentra en la carpeta Documentación\Documentación del código por Doxygen del soporte
digital):
8.2 Drivers
Ha sido necesaria la incorporación de diversas librerías especiales para el funcionamiento y uso de
diversos dispositivos del proyecto.
En primer lugar, la cámara fotográfica CCam BCi4 precisa de las librerías ccapi.h y ccutil.h que
proporcionan diversas funciones para acceder a la cámara, configurarla, obtener fotografías y
guardarlas. La adición de estos archivos precisa de la inclusión de diversos archivos .h y .lib.
También precisa de sus propias librerías el adaptador GPIB National Instruments. Concretamente
necesita los archivos ni488.h y gpib-32.obj. En ellos se encuentran utilidades para la conexión y
configuración del puerto GPIB.
Por último, la base de datos MySQL necesita un cúmulo de archivos para la correcta comunicación entre
el SGBD y la aplicación. La cabeza visible de estos archivos es el fichero mysql.h, aunque se incluyen
otros archivos .h, .lib y .dll.
Manual Técnico
129