Modelo de un sistema crítico para la caracterización de señales aplicado a la detección de eventos sísmicos Mario Andrés Yandar [email protected] U NIVERSIDAD DEL VALLE E SCUELA DE I NGENIERÍA DE S ISTEMAS Y C OMPUTACIÓN C ALI - C OLOMBIA M ARZO 10 DEL 2004 Ficha Técnica T ÍTULO : M ODELO DE UN SISTEMA CRÍTICO PARA LA CARACTERIZA - CIÓN DE SEÑALES APLICADO A LA DETECCIÓN DE EVENTOS SÍSMICOS . AUTOR Mario Andrés Yandar Lobón Código: 9613994 email: [email protected] Director del proyecto de grado Prof. Héctor Angulo B. Ingeniero electricista Universidad del Valle Especialista en Redes de Comunicaciones Universidad del Valle Profesor de las asignaturas Sistemas Operativos, Diseño de sistemas en tiempo real y Redes neuronales. Universidad del Valle Asesor Jorge Alberto Mejía Mejía, Ph.D. Ingeniero Civil - Universidad Nacional Ph.D. en Geofísica Investigador Observatorio Sismológico del SurOccidente O.S.S.O. Universidad del Valle Asesor Jhon Henry Caicedo Orbes Ingeniero de Sistemas - Universidad del Valle Área de Instrumentación y Desarrollo O.S.S.O. Nota de aceptación ________________________________ ________________________________ Índice general Resumen XI Introducción 1 1. Marco Contextual 3 1.1. Formulación del problema . . . . . . . . . . . . . . . . . . . . . 3 1.1.1. Definición del problema . . . . . . . . . . . . . . . . . . 3 1.1.2. Caracterización del problema . . . . . . . . . . . . . . . 4 1.1.3. Propuesta de solución . . . . . . . . . . . . . . . . . . . 6 1.1.4. Justificación . . . . . . . . . . . . . . . . . . . . . . . . 8 1.1.5. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1.6. Alcances y limitaciones . . . . . . . . . . . . . . . . . . 11 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . 12 1.2.2. Objetivos estratégicos . . . . . . . . . . . . . . . . . . . 12 1.2.3. Objetivos específicos . . . . . . . . . . . . . . . . . . . . 13 I 1.3. Organización del documento . . . . . . . . . . . . . . . . . . . . 2. Marco Teórico 14 17 2.1. Visión general y estado del arte . . . . . . . . . . . . . . . . . . . 17 2.2. Sistemas de control . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.1. Descripción general . . . . . . . . . . . . . . . . . . . . 19 2.2.2. Componentes básicos . . . . . . . . . . . . . . . . . . . . 21 2.3. Procesamiento digital de señales . . . . . . . . . . . . . . . . . . 24 2.3.1. El efecto del ruido . . . . . . . . . . . . . . . . . . . . . 25 2.3.2. Filtrado . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4. Redes de estaciones . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4.1. Estaciones de registro . . . . . . . . . . . . . . . . . . . 28 2.4.2. Topologías de red . . . . . . . . . . . . . . . . . . . . . . 29 2.4.3. Procesamiento de señales sísmicas . . . . . . . . . . . . . 30 2.4.4. Otros casos de consideración . . . . . . . . . . . . . . . . 33 2.5. Sistemas en tiempo real . . . . . . . . . . . . . . . . . . . . . . . 35 2.5.1. Diseño en tiempo real . . . . . . . . . . . . . . . . . . . 35 2.5.2. Adquisición digital de datos . . . . . . . . . . . . . . . . 37 2.5.3. Estructuras de datos . . . . . . . . . . . . . . . . . . . . 38 2.5.4. Referencia a la señal de tiempo . . . . . . . . . . . . . . 39 2.5.5. Tiempo de respuesta . . . . . . . . . . . . . . . . . . . . 39 2.6. Detección y clasificación de señales . . . . . . . . . . . . . . . . 40 2.6.1. Detección STA/LTA . . . . . . . . . . . . . . . . . . . . 40 II 2.6.2. Estimación de parámetros sobre la señal. . . . . . . . . . 42 2.6.3. Mecanismos de detección . . . . . . . . . . . . . . . . . 43 2.6.4. Wavelets . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.7. Inteligencia artificial en DSP . . . . . . . . . . . . . . . . . . . . 45 2.7.1. Reconocimiento de patrones . . . . . . . . . . . . . . . . 45 2.7.2. Redes Neuronales . . . . . . . . . . . . . . . . . . . . . . 47 2.7.3. Algoritmos genéticos . . . . . . . . . . . . . . . . . . . . 49 2.7.4. Otras técnicas . . . . . . . . . . . . . . . . . . . . . . . . 50 2.8. Desarrollo de proyectos de software . . . . . . . . . . . . . . . . 51 2.8.1. Ciclo de vida de desarrollo . . . . . . . . . . . . . . . . . 52 2.8.2. Bases del desarrollo de software . . . . . . . . . . . . . . 52 2.8.3. Sistema crítico o con tolerancia a fallos . . . . . . . . . . 55 3. Desarrollo del Modelo 59 3.1. Planeación del proyecto . . . . . . . . . . . . . . . . . . . . . . . 60 3.1.1. Análisis de factibilidad . . . . . . . . . . . . . . . . . . . 60 3.1.2. Recursos y actividades . . . . . . . . . . . . . . . . . . . 61 3.1.3. Sistema de calidad . . . . . . . . . . . . . . . . . . . . . 63 3.2. Comprensión y Análisis . . . . . . . . . . . . . . . . . . . . . . . 64 3.2.1. Descripción general . . . . . . . . . . . . . . . . . . . . 64 3.2.2. Análisis de requerimientos . . . . . . . . . . . . . . . . . 65 3.3. Determinación del Ciclo de Vida . . . . . . . . . . . . . . . . . . 67 3.3.1. Entrega por etapas . . . . . . . . . . . . . . . . . . . . . 67 III 3.3.2. Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.3.3. Gestión de riesgos . . . . . . . . . . . . . . . . . . . . . 72 3.4. Consideraciones de Diseño . . . . . . . . . . . . . . . . . . . . . 74 3.4.1. Gestión de configuraciones . . . . . . . . . . . . . . . . . 74 3.4.2. Patrones de diseño . . . . . . . . . . . . . . . . . . . . . 75 3.4.3. Diseño crítico . . . . . . . . . . . . . . . . . . . . . . . . 76 3.4.4. Excepciones de aplicación . . . . . . . . . . . . . . . . . 79 3.5. Definición Plan de Pruebas . . . . . . . . . . . . . . . . . . . . . 79 3.5.1. Sobre el diseño del producto . . . . . . . . . . . . . . . . 79 3.5.2. Sobre la funcionalidad del producto . . . . . . . . . . . . 81 3.6. Resumen del modelo . . . . . . . . . . . . . . . . . . . . . . . . 81 4. Etapas del desarrollo 83 4.1. Planeación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.1.1. Factibilidad . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.1.2. Actividades . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.1.3. Sistema de calidad . . . . . . . . . . . . . . . . . . . . . 85 4.2. Descripción del sistema actual . . . . . . . . . . . . . . . . . . . 86 4.2.1. Análisis detallado (Etapa 0) . . . . . . . . . . . . . . . . 86 4.2.2. Definición de las etapas . . . . . . . . . . . . . . . . . . 93 4.2.3. Arquitectura de la herramienta . . . . . . . . . . . . . . . 96 4.2.4. Sección crítica . . . . . . . . . . . . . . . . . . . . . . . 98 4.3. Etapa 1: Comunicaciones y control . . . . . . . . . . . . . . . . . 99 IV 4.3.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.3.2. Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.3.3. Codificación . . . . . . . . . . . . . . . . . . . . . . . . 99 4.3.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.4. Etapa 2: Entrada y visualización de señales . . . . . . . . . . . . 101 4.4.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.4.2. Diseño detallado . . . . . . . . . . . . . . . . . . . . . . 101 4.4.3. Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.4.4. Codificación . . . . . . . . . . . . . . . . . . . . . . . . 102 4.4.5. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.5. Etapa 3: Núcleo - Detector de cambios . . . . . . . . . . . . . . . 102 4.5.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.5.2. Diseño detallado . . . . . . . . . . . . . . . . . . . . . . 105 4.5.3. Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.5.4. Codificación . . . . . . . . . . . . . . . . . . . . . . . . 106 4.5.5. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.6. Etapa 4: Clasificador de eventualidades . . . . . . . . . . . . . . 108 4.6.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . 108 4.6.2. Codificación . . . . . . . . . . . . . . . . . . . . . . . . 108 4.6.3. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.7. Etapa 5: Sistema de alerta . . . . . . . . . . . . . . . . . . . . . . 109 4.7.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . 109 V 4.7.2. Diseño detallado . . . . . . . . . . . . . . . . . . . . . . 111 4.7.3. Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . 111 4.7.4. Codificación . . . . . . . . . . . . . . . . . . . . . . . . 112 4.7.5. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 4.8. Etapa 6: Integración de componentes y pruebas . . . . . . . . . . 114 4.8.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . 114 4.8.2. Diseño detallado . . . . . . . . . . . . . . . . . . . . . . 114 4.8.3. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 5. Análisis de resultados 117 5.1. Estabilidad y rendimiento . . . . . . . . . . . . . . . . . . . . . . 117 5.1.1. Etapa 1 - funciones comunes . . . . . . . . . . . . . . . . 117 5.1.2. Etapa 2 - Entrada y visualización . . . . . . . . . . . . . . 118 5.1.3. Etapa 3 - Núcleo Detector . . . . . . . . . . . . . . . . . 118 5.1.4. Etapa 4 - Clasificación de eventualidades . . . . . . . . . 119 5.1.5. Etapa 5 - Servidor de Alertas . . . . . . . . . . . . . . . . 119 5.1.6. Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.2. Verificación y validación . . . . . . . . . . . . . . . . . . . . . . 120 5.2.1. Primera verificación . . . . . . . . . . . . . . . . . . . . 120 5.2.2. Segunda verificación . . . . . . . . . . . . . . . . . . . . 121 6. Conclusiones 125 6.1. Sobre el Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 VI 6.2. Sobre la herramienta . . . . . . . . . . . . . . . . . . . . . . . . 126 6.3. Conclusiones generales . . . . . . . . . . . . . . . . . . . . . . . 127 7. Trabajo futuro y recomendaciones 131 Bibliografía 133 A. Estructuras de control 137 A.1. Flujo de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 A.1.1. Estructura DSRCP . . . . . . . . . . . . . . . . . . . . . 137 A.1.2. Estructura XMLDSRC . . . . . . . . . . . . . . . . . . . 138 A.1.3. Comunicaciones . . . . . . . . . . . . . . . . . . . . . . 140 A.1.4. Registro de mensajes . . . . . . . . . . . . . . . . . . . . 140 A.1.5. Formato WVM . . . . . . . . . . . . . . . . . . . . . . . 141 A.2. Configuraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 A.2.1. Parámetros de configuración general . . . . . . . . . . . . 142 A.2.2. Emisión de alertas . . . . . . . . . . . . . . . . . . . . . 144 A.2.3. Manejo de errores . . . . . . . . . . . . . . . . . . . . . 146 B. Pruebas S-DCE 153 B.1. Eventos previamente detectados . . . . . . . . . . . . . . . . . . 153 B.1.1. Evento 1995 04 06 - 10:31:11 . . . . . . . . . . . . . . . 153 B.1.2. Evento 1995 08 09 - 10:30:40 . . . . . . . . . . . . . . . 155 B.1.3. Evento 1995 07 16 - 16:40:26 . . . . . . . . . . . . . . . 157 VII B.1.4. Evento 1995 04 13 - 18:28:34 . . . . . . . . . . . . . . . 159 B.1.5. Evento 1996 09 05 - 08:22:22 . . . . . . . . . . . . . . . 161 B.1.6. Evento 1996 11 15 - 02:53:06 . . . . . . . . . . . . . . . 163 B.1.7. Evento 1998 11 07 - 03:10:46 . . . . . . . . . . . . . . . 165 B.1.8. Evento 1998 12 03 - 00:55:35 . . . . . . . . . . . . . . . 167 B.1.9. Evento 1998 11 05 - 01:03:28 . . . . . . . . . . . . . . . 168 B.1.10. Evento 1998 12 10 - 04:19:36 . . . . . . . . . . . . . . . 171 B.2. Señal continua . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 B.2.1. Evento 2003 12 25 - 06:59:03 . . . . . . . . . . . . . . . 173 B.2.2. Evento 2003 12 25 - 07:13:00 . . . . . . . . . . . . . . . 174 B.2.3. Evento 2003 12 25 - 07:21:12 . . . . . . . . . . . . . . . 176 B.2.4. Evento 2003 12 25 - 08:55:20 . . . . . . . . . . . . . . . 178 B.2.5. Evento 2003 12 25 - 20:34:18 . . . . . . . . . . . . . . . 179 VIII Índice de figuras 2.1. Conversión análogo/digital . . . . . . . . . . . . . . . . . . . . . 26 2.2. Distribución de las estaciones sismológicas del OSSO. . . . . . . 31 2.3. Localización de eventos. . . . . . . . . . . . . . . . . . . . . . . 32 2.4. Adquisición digital . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.5. STA/LTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.1. Ciclo de vida de Entrega por etapas . . . . . . . . . . . . . . . . . 69 4.1. Casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.2. Modelo Conceptual . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.3. DSS - Visualización y configuración . . . . . . . . . . . . . . . . 91 4.4. DSS - Captura de señal . . . . . . . . . . . . . . . . . . . . . . . 92 4.5. DSS - Detección . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.6. DSS - Clasificación . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.7. DSS - Emisión de alerta . . . . . . . . . . . . . . . . . . . . . . . 94 4.8. Arquitectura de componentes . . . . . . . . . . . . . . . . . . . . 97 4.9. DColaboración - Captura de señal . . . . . . . . . . . . . . . . . 103 IX 4.10. DColaboración - Visualización y configuración . . . . . . . . . . 104 4.11. DColaboración - Detección y Clasificación . . . . . . . . . . . . 105 4.12. DColaboración - Emisión de alerta . . . . . . . . . . . . . . . . . 111 4.13. Diagrama de clases . . . . . . . . . . . . . . . . . . . . . . . . . 115 X Resumen Los sistemas de observación sismológicos han tenido la responsabilidad de alertar con rapidez y precisión ante eventos sísmicos que ocurran en su zona de cobertura. El proceso de detección es una de las partes más importantes de la alerta y atención en situaciones de emergencia, ya que debe determinar con alto grado de confiabilidad cuando y donde ocurre un fenómeno natural o artificial, a partir de señales registradas por sensores localizados en diversos lugares geográficos. Este proyecto propone un modelo para realizar la caracterización de señales digitales, con el fin de identificar comportamientos anormales que fuesen de interés para el sistema de monitoreo. Finalmente se realiza la construcción de una herramienta basada en un modelo funcional para la detección de eventos sísmicos considerando el problema del ruido y realizando alertas para situaciones de emergencia. Palabras claves: Ingeniería de software, tiempo real, procesamiento de señales, inteligencia artificial, sistemas de control, sismología. Keywords: Software engineering , real-time, signal processing, artificial intelligence, control systems, seismology. XI Introducción Gran parte del compromiso social y científico de las instituciones de investigación es ofrecer a la comunidad, información que le permita conocer mejor su medio ambiente. Para el caso de la observación de fenómenos naturales, tal información resulta ser más importante siempre que pueda advertir de peligros potenciales o que permitan tomar medidas de atención y prevención en emergencias. Es imperativo para los sistemas de socorro conocer la información relevante en el menor tiempo posible, a fin de atender las consecuencias inmediatas o futuras que pudieran presentarse, minimizando en algunas situaciones impactos sobre seres y bienes. La observación sismológica consta, a grandes rasgos, de tres procesos: adquisición de información sismológica, sistema de detección de eventos sísmicos y procesamiento de información básica del evento. Para efectos de investigación del fenómeno se tiene una cuarta fase denominada post-procesamiento. Por lo general, es factible la automatización de las tres primeras fases, debido al volumen de datos, corto tiempo de respuesta y funcionamiento permanente. El Observatorio Sismológico del Sur Occidente -OSSO- opera desde 1987 una red 1 de estaciones sismológicas al sur occidente de Colombia, con la misión de evaluar la información sísmica registrada. Tal observación se debe realizar ininterrumpidamente, manteniendo constante vigilancia sobre el comportamiento de la señal registrada y el estado de los componentes de todo el sistema. Para el OSSO, así como para otros institutos de observación no es posible tener personal capacitado 24 horas al día cumpliendo esta labor. Es por ello que se buscan mecanismos automáticos con los cuales se pueda identificar y analizar la ocurrencia de movimiento terrestre de origen sísmico. Las señales, vistas como registros que cambian con el tiempo, describen comportamientos de algún sistema. Estas señales pueden tener diversas fuentes y pueden estimar o medir diferentes variables, por ejemplo registros de sonido, temperatura o movimiento. Con la modernización de los sistemas digitales, las señales se adquieren por medio de dispositivos electrónicos y su procesamiento por sistemas de computo, ampliándose las posibilidades para el monitoreo y la investigación del comportamiento de la tierra. El presente proyecto propone un modelo para realizar análisis de señales y busca desarrollar un sistema para procesar la señal sísmica e identificar cuando segmentos de los datos registrados corresponden a movimientos terrestres y condiciones anormales que representen mal funcionamiento del sistema. 2 Capítulo 1 Marco Contextual 1.1. Formulación del problema 1.1.1. Definición del problema El monitoreo de una variable física requiere supervisión permanente de señales que varían con el tiempo. Tal información, en sismología es generalmente impredecible, es decir, no se conoce de antemano el comportamiento que tendrá la señal en un momento dado. Para la observación sismológica es de especial interés reconocer comportamientos anormales de las señales sísmicas, debido a que estos cambios pueden sugerir la ocurrencia de algún fenómeno natural. Las señales emitidas por el conjunto de estaciones sismológicas contienen, además de la señal sísmica, otras señales añadidas como consecuencia de efectos del medio físico en el que se encuentran o adicionadas en el proceso de transmisión/recepción. 3 Teniendo en cuenta la complejidad de las señales terrestres, durante un sismo o en presencia de ruido u otras señales, se deben tener en consideración diversas variables para su efectiva discriminación. Actualmente no se cuenta con un mecanismo de detección, que sea de rápida respuesta y confiable, capaz de recibir datos de los sistemas de adquisición en desarrollo por el OSSO, de uso fácil y configurable a las necesidades de la observación a realizar. Este sistema debería determinar la ocurrencia de eventos sísmicos en una red de estaciones sismológicas, independiente de su distribución geográfica y ante la presencia de diferentes tipos de fenómenos artificiales que ocasionan la ocurrencia de falsas alarmas. 1.1.2. Caracterización del problema Existen en el mercado, varios sistemas de detección automática que actúan correctamente en situaciones ideales, pero las señales terrestres tienen añadidas otras señales provenientes de diversas fuentes. Generalmente los sistemas comerciales para adquisición de datos sismológicos incluyen una herramienta que realiza la detección, usando exclusivamente la información que provee la adquisición. Los resultados de estas detecciones generan, muchas veces, falsas alarmas, o no registran señales que correspondan a eventos sísmicos. Una red sismológica está conformada por un grupo de estaciones con diversas características, que puede registrar señal sísmica en una área geográfica, teniendo limitaciones en cuanto a la precisión y alcance de los instrumentos de medición, así como un margen de confiabilidad en la localización de eventos. El proceso de 4 localización constituye la obtención de parámetros que caracterizan un evento y el tiempo-espacio en el cual ocurrió. Lo anterior se puede realizar siempre que sea posible determinar cuando una señal registrada es de origen sísmico, a fin de conocer el momento en el tiempo para el cual un evento es registrado por los sensores1 (a esto se le denomina el proceso de detección), otorgando un alto margen de confianza sobre la detección de eventos reales. La detección de un evento debe tener en cuenta varios factores que varían de acuerdo a características del medio ambiente como: Espectro de observación del sensor. (capacidad física de registro del equipo) Calidad de la transmisión. Factores climáticos. (lluvia, viento) Ruido natural. (maquinaria, personas, animales) Calidad de la recepción. Funcionamiento incorrecto de componentes eléctricos, mecánicos o de software. Estos factores pueden generar tipos de señales no deseables que alteran los registros sísmicos, ocasionando la emisión de falsas alarmas o la pérdida de información. 1 Sensor: dispositivo físico, mecánico, químico o electrónico que entrega datos sobre el comportamiento de un objeto de estudio. 5 En conclusión, no se dispone en el medio de un sistema de detección de eventos sísmicos de dominio público, que tenga en cuenta los factores mencionados, que tenga una independencia del proceso de adquisición de datos y principalmente que detecte eventos sísmicos con un alto grado de confiabilidad. 1.1.3. Propuesta de solución Los aspectos mencionados anteriormente deben tenerse en cuenta durante el diseño de la aplicación. El sistema propuesto deberá determinar cuales datos representan actividad sísmica real y cuales daños sobre componentes del sistema provienen de otras señales que no son de interés (ruido). Es necesario además poder configurar los criterios de la detección, considerando casos como el listado de estaciones que se desee usar, nivel de sensibilidad de la detección, entre otros. Los puntos mencionados no son exclusivos de la red sismológica del OSSO; ellos son válidos en redes sismológicas de similares características o incluso de otros sistemas que operan con señales. La alternativa de solución consiste en la construcción de herramientas de software que permitan satisfacer los requisitos planteados, con el mínimo tiempo de respuesta, máxima confiabilidad, gran facilidad de uso y siguiendo criterios de Ingeniería de software. Como recurso de investigación se utilizarán datos de señal continua, previamente almacenados, con los cuales se podrán realizar pruebas del software sin esperar la ocurrencia de eventos sísmicos, con el objetivo de realizar calibración y control de calidad del sistema. También se cuenta con varios sistemas de adquisición continua 6 de datos, los cuales pueden ser usados para probar el funcionamiento del software. El sistema a desarrollar especifica un formato de entrada de datos, compuesto básicamente por : Datos de la señal: Tiempo, tasa de muestreo, estación origen, frecuencia, amplitud, entre otros. Parámetros de configuración: Nivel de sensibilidad, grupo de estaciones, opciones de filtrado, escogencia de alerta. El sistema debe decidir si un segmento de señal corresponde o no a un evento y obtener sus características generales en caso afirmativo, sin incurrir en un proceso de localización automática. La caracterización es una estimación de algunos factores relevantes del conjunto de señales, que puede entregar información útil de manera ágil y confiable. Como requerimientos adicionales a los mencionados antes, el desarrollo se hará bajo el sistema operativo Linux, que ya está siendo utilizado en el OSSO para la adquisición de datos, debido a que es constantemente mejorado, estable, multitarea y de dominio público. Se debe realizar el desarrollo de un sistema documentado, que pueda ser aplicado en diversas redes sismológicas, e incluso en otros casos con comportamiento similar (control industrial, seguridad, telecomunicaciones), de acuerdo a las necesidades del usuario, garantizando dentro de las limitaciones, el funcionamiento de la herramienta. 7 1.1.4. Justificación Con el crecimiento de las tecnologías digitales, especialmente el computador, se han dado grandes avances en el campo de la investigación científica. El manejo de señales análogas ha evolucionado al procesamiento digital de señales aunado al uso del computador como herramienta principal para el análisis. Esto ha permitido la creación de diversos sistemas enfocados en áreas específicas (comunicaciones, reconocimiento de voz, imágenes). La sismología también ha transformado sus mecanismos para el análisis de su información, con la adquisición de sistemas digitales que les permitan almacenar y procesar señales sísmicas, permitiendo mejorar e incrementar el rango de observación del fenómeno, la calidad de los datos y las posibilidades para la investigación en este campo. El problema de la detección automática requiere el uso de las matemáticas, principalmente la teoría de señales, además de herramientas propias de las ciencias de la computación tales como Ingeniería de Software, Sistemas Operativos, Diseño en Tiempo Real, Inteligencia Artificial, Redes de Comunicaciones, entre otras, las cuales aportarán elementos para el diseño y desarrollo del proyecto, adicionándole características para su uso y mantenimiento. Este proyecto propondrá un modelo teórico, base de la herramienta de software, y factible de usarse en implementaciones de otras áreas del conocimiento con requerimientos similares. El criterio de diseño como sistema crítico otorga condiciones para garantizar la estabilidad, confiabilidad y tiempo de respuesta del producto, a fin de usarse en otros ambientes con requerimientos similares. 8 Para el OSSO la consecución de un sistema que cubra sus necesidades en este campo permitirá aumentar su umbral de detección y aumentar la cantidad de eventos detectados por la red sismológica, que actualmente no se pueden discriminar. Adicionalmente se espera reducir el número de falsas detecciones, obtener más información a partir de las señales y alertar de manera oportuna al personal del área de sismología sobre posibles eventos, a fin de realizar una estimación más completa sobre los datos registrados. 1.1.5. Antecedentes Los primeros avances en detección se dieron en el ámbito militar, a fin de explorar las vibraciones terrestres cuando dispositivos nucleares explotaran en algún lugar del planeta. Con varios sensores muy potentes se podía determinar el sitio de ocurrencia y la magnitud de la explosión. Luego estos sistemas se implementaron para la vigilancia del tratado de “No proliferación de armas nucleares”. La sismología hace uso de esta tecnología para la observación terrestre en búsqueda de eventos sísmicos importantes, a fin de comunicar lo más rápido posible para su atención. El OSSO cuenta, desde hace varios años, con un sistema de adquisición y detección de eventos, que funciona en plataforma DOS (modeaprh). Sin embargo, para el caso del OSSO y la Red Sismológica del Sur Occidente, de las señales registradas como eventos por el sistema, entre el 40 y 50 % son reclasificados como ruido (año 1999), ésto debido a mal funcionamiento de las estaciones, problemas de transmisión por radio o recepción de la señal, además de posibles ruidos gene9 rados por elementos cercanos al sitio donde se encuentra el sensor. Otros sistemas existentes como ViSeis, que se ejecuta bajo plataforma Microsoft WindowsTM , realiza la adquisición y detección de manera conjunta. El principal inconveniente detectado es que toma bloques de datos de 5 minutos, buscando de manera independiente en cada bloque la condición de ocurrencia de evento sísmico. Además no permite el uso de señal adquirida por fuera de su sistema. Seisan es parte de un sistema desarrollado en Noruega para procesamiento de datos sismológicos. Este sistema tiene un módulo que realiza la adquisición y detección también de manera conjunta. Para su funcionamiento se depende del sistema de adquisición, Seisnet. De acuerdo a estas experiencias y otras que se han tenido con sistemas de adquisición y detección, se ha concluido que muchos no cumplen con las características que requiere el OSSO para la observación. La mayoría de los sistemas de adquisición, cuentan con un sistema de detección basado en STA/LTA (Short Term Average / Large Term Average)2 , almacenando la señal en periodos específicos de tiempo. Estos sistemas integrados son construidos para realizar detección sólo con las señales de la adquisición, cerrando la posibilidad de usar registros de estaciones que no estén incluidas en el mismo proceso de adquisición. 2 Algoritmo de detección descrito en 2.6.1. 10 1.1.6. Alcances y limitaciones Los alcances de este proyecto están enfocados hacia la construcción de una herramienta de software, siguiendo principios de diseño de ingeniería de software con las siguientes metas: Modelo abierto de desarrollo. Diseño y software aplicable a problemas similares. Generación de documentación para el manejo y desarrollo del software. Generación de interfaces gráficas para uso cómodo del usuario. Uso de tecnología de bajo costo y disponibles en el OSSO. Utilidad y aplicabilidad para el OSSO. Interconexión con módulos anteriores y posteriores al proceso: Adquisición y procesamiento de datos. Algunas limitaciones de sistemas similares se han descrito anteriormente. En general, de los sistemas existentes pocos ofrecen un diseño abierto de software que permita su revisión y afianzamiento. La mayoría de los modelos comerciales del mercado son cerrados y tienen pocas opciones de interconectividad con sistemas de adquisición y procesamiento diferentes a los ofrecidos por el fabricante o manejo de algunos formatos estándar en el medio. Otros modelos más eficientes son muy costosos, manteniendo su diseño oculto y están ligados a plataformas de software3 3 Conjunto de instrucciones escritas en algún lenguaje de programación que son ejecutadas por un procesador. 11 y hardware4 especializado. El sistema propuesto debe tener en cuenta para su diseño y ejecución, características derivadas del sistema operativo sobre el cual funcionará. El formato de entrada de la información, el cual será establecido por el modelo. Especificaciones de los sistemas de comunicación y trasmisión de datos a usar. Dado el enfoque de sistema crítico, el diseño debe contemplar la recuperación de fallos y excepciones dentro de algunas situaciones, a fin de garantizar el funcionamiento correcto y constante del sistema. 1.2. Objetivos 1.2.1. Objetivo general Implementar un sistema detector de eventos sísmicos para redes sismológicas, a partir de señales sísmicas, que siga principios de diseño de sistemas críticos, otorgando confiabilidad y tolerancia a fallos, dentro de criterios establecidos. 1.2.2. Objetivos estratégicos Diseñar un modelo teórico que permita realizar la detección de anomalías sobre una señal y caracterización de la información obtenida, usando técnicas de Inteligencia Artificial y de Procesamiento de Señales. 4 Dispositivo electrónico que permite la ejecución de rutinas lógico matemáticas, funciones de almacenamiento, comunicaciones, entre otros. 12 Aplicar el modelo de desarrollo de software de código abierto (OpenSource) para la construcción de herramientas para sistemas de control industrial, siguiendo el diseño planteado. Promover la creación de herramientas bajo plataforma Linux, siguiendo criterios de calidad y garantizando su modularidad, robustez y estabilidad, a fin de emplearse en medios productivos, académicos y científicos para el monitoreo de variables naturales o artificiales. Proponer métodos y herramientas para el monitoreo de fenómenos físicos, usando tecnología de bajo costo, con hardware de propósito general. 1.2.3. Objetivos específicos Proponer un diseño teórico bajo la combinación de técnicas de programación, que permita el análisis automático de señales digitales a partir de adquisición continua de datos. Elaborar una aplicación que permita reducir el número de falsas alarmas, comparando resultados con los obtenidos por otros sistemas del mismo tipo. 13 Realizar un plan de pruebas para determinar la confiabilidad de la herramienta, haciendo uso de datos anteriormente almacenados, comparándolos con análisis manuales de los operadores sismológicos. Diseñar un actuador del sistema, que permita la emisión de alarmas sobre eventos detectados u otras anomalías que pueda presentar el conjunto de señales (ruido excesivo, daños, entre otros). Generar mecanismos de control para determinar posibles daños o mal funcionamiento de la red de estaciones. Facilitar el uso de la herramienta por parte del usuario, con el uso de interfaces gráficas para realizar la configuración del sistema a operar. 1.3. Organización del documento El presente documento se encuentra organizado por capítulos. Este primer capítulo plantea el problema, la justificación del mismo y los objetivos entre otros, con lo cual se dá una idea general del trabajo. El Capítulo 2, presenta el Marco Teórico necesario para plantear el modelo requerido. El Capítulo 3, propone el modelo de sistema crítico, sobre el cual estará basado el diseño del sistema. El Capítulo 4, corresponde a la etapa de implementación para el caso particular de la detección 14 de eventos sísmicos, basado en el modelo propuesto. En el Capítulo 5, se presenta un análisis de resultados respecto a la ejecución del software construido y se dan algunas conclusiones y recomendaciones sobre este trabajo. Finalmente, los Capítulos 6 y 7 muestran una síntesis de los logros alcanzados y aportes para futuros desarrollos. 15 16 Capítulo 2 Marco Teórico 2.1. Visión general y estado del arte Entre los tópicos teóricos que contempla este proyecto se relacionan diversas áreas: Sistemas automáticos de control: La automatización de procesos ha tenido grandes avances con los aportes de la computación y la electrónica avanzada, ya que ha permitido incorporar a estos sistemas características que los hacen más eficientes. Con la utilización de técnicas de inteligencia artificial se han creado sistemas adaptativos que captan las condiciones del medio y los aplican a la resolución de problemas y toma de decisiones. Procesamiento digital de señales: Con la aparición de equipos de cómputo de gran capacidad de almacenamiento y procesamiento, las señales han podido ser analizadas por métodos matemáticos y estadísticos, entre otros. Estas señales pueden ser resultado de una medición que tiene una variación respecto a otra variable 17 como el tiempo; tales mediciones han permitido utilizar la información provista por sensores1 de distinto tipo, para realizar monitoreo y control en diversos campos de investigación y producción. Sistemas en tiempo real: los sistemas en tiempo real tienen la función primordial de ejecutar aplicaciones en rangos de tiempo muy limitados o en instantes precisos de tiempo, debido a requerimientos indispensables de los problemas a tratar. A medida que los sistemas de cómputo han ido evolucionando, se dá paso a su utilización en procesos industriales y científicos más complejos, teniendo como condiciones indispensables de diseño una respuesta completa y correcta al problema, además del predeterminar el tiempo máximo o preciso necesario para tenerla. Algoritmos y métodos de detección: La detección de eventos sobre señal digital consiste básicamente en determinar el momento sobre el tiempo en el cual ocurren cambios o fenómenos de interés, de manera abrupta o paulatinamente en el tiempo. La importancia de estos métodos radica en que ciertos comportamientos de la señal pueden indicar estados especiales sobre el sistema que sugieran la necesidad de emitir una acción o respuesta de algún sistema. La idea general es que el algoritmo sea lo suficientemente robusto como para tener un grado de confiabilidad alto (tasa de aciertos), contemplando efectos propios del monitoreo de variables físicas como el ruido y otros factores externos. Ingeniería de software: Durante los últimos 20 años la manera de producir soft1 Sensor: dispositivo físico, mecánico, químico o electrónico que entrega datos sobre el comportamiento de un objeto de estudio. 18 ware ha sufrido grandes transformaciones. A medida que los sistemas de software son más complejos se han requerido mecanismos que permitan diseñarlos más confiablemente. Para el desarrollo de software de uso exhaustivo, donde su correcto funcionamiento determine en gran medida la operatividad de un sistema, es necesario contar con una metodología para realizar análisis, diseño e implementación de una solución de software adecuada a las condiciones del problema. Estas áreas de conocimiento corresponden a diversas ramas de la Ingeniería y las ciencias exactas, que serán utilizadas de manera conceptual y práctica en el desarrollo de este proyecto. Se hace en este capítulo una breve explicación de los apartes más significativos al producto a desarrollar. 2.2. Sistemas de control 2.2.1. Descripción general La teoría de sistemas de control y tecnología de control son disciplinas académicas aplicadas a problemas de ingeniería y ciencia. Los sistemas de control constituyen modelos de flujo de información compuestos por entradas, salidas, procesamiento de datos y realimentación [Kuo96]. Sistemas y teoría de control La teoría de control está relacionada con el comportamiento dinámico de los sistemas con entradas y salidas, e interactivos con el ambiente. 19 Tecnología de control La tecnología de control está relacionada con el control del comportamiento dinámico de sistemas técnicos complejos, por ejemplo sistemas (electro) mecánicos y procesos químicos o biológicos. El objetivo del control es lograr un comportamiento del sistema de acuerdo a las especificaciones deseadas, la complejidad del proceso aumenta en la medida que se tenga una descripción menos precisa del comportamiento dinámico del sistema. La tecnología de control es muy próxima a la síntesis, usando métodos, técnicas y herramientas de diversos campos científicos, en particular teoría de sistemas. La teoría de control se concentra en problemas asociados con el comportamiento dinámico de sistemas. Estos problemas son tratados como sistemas abiertos, que significan, sistemas con entradas y salidas, que interactúan con el ambiente. Algunos problemas importantes manejados por la teoría de control son: Modelamiento: La búsqueda de conceptos adecuados y herramientas matemáticas para describir sistemas dinámicos en interacción con el medio. Identificación: Desarrollo de algoritmos para formular modelos dinámicos sobre la base de la observación de señales. Filtrado: Estimación del comportamiento de una variable a partir de la observación de la razón señal - ruido. Control: Aplicar principios y algoritmos para obtener un procesador con retroalimentación que responda adecuadamente al comportamiento dinámico del sistema. 20 Motivada por los problemas de ingeniería, la teoría (o también tecnología) de control aporta conceptos como la dependencia tecnológica y aplicabilidad de restricciones principales. Ambos conceptos son utilizados de una parte por la teoría de control, y de otra por el análisis y modelamiento matemático de problemas. La teoría de sistemas y tecnología de control son complementarias en muchas situaciones, por ejemplo en modelamiento de procesos electro-mecánicos o químicos y en la validación de diseños. Una infraestructura tecnológica y un conocimiento científico son necesarios para proponer un modelo y validarlo en un alto nivel. Para ejecutar exitosamente las tareas asociadas al modelamiento, un científico de control deberá tener conocimiento de las áreas de aplicación, así como con sistemas modernos para procesamiento de datos. 2.2.2. Componentes básicos Según [Kuo96], un sistema de control se describe mediante: Objetivos de control. Componentes del sistema de control. Resultados o salidas. En términos técnicos, los objetivos se pueden identificar como entradas, o señales actuales y a los resultados se les denomina salidas, o variables controladas. En general, el objetivo de un sistema de control es controlar las salidas en alguna forma prescrita mediante las entradas a través de los elementos que componen tal sistema. 21 2.2.2.1. Sistema de control en lazo abierto (Sistemas no retroalimentados). Los sistemas de control en lazo abierto son sistemas simples, que no pueden satisfacer requerimientos de desempeño crítico. Los elementos de un sistema de control en lazo abierto se pueden dividir en dos partes: el controlador y el proceso controlado. Una señal de entrada o comando se aplica al controlador, cuya salida actúa como señal actuante; la señal actuante controla el proceso de tal forma que la variable controlada se desempeñe de acuerdo con estándares preestablecidos. En los casos simples, el controlador puede ser un amplificador, unión mecánica, filtro u otro elemento de control. En los casos mas complejos el controlador puede ser una computadora tal como un microprocesador. Debido a la simplicidad y economía de los sistemas de control en lazo abierto, se les encuentra en muchas aplicaciones no críticas. 2.2.2.2. Sistemas de control en lazo cerrado (Sistemas de control retroalimentado). Un sistema de control en lazo abierto sería más exacto y adaptable si tuviera una conexión o retroalimentación desde la salida hacia la entrada del sistema. En este caso, la señal controlada debe ser retroalimentada y comparada con la entrada de referencia, enviando una señal actuante proporcional a la diferencia de la entrada y la salida a través del sistema para reevaluar el proceso realizado. Un sistema con una o más trayectorias de retroalimentación como el que se acaba de describir se denomina sistema en lazo cerrado. 22 2.2.2.3. Retroalimentación La retroalimentación se usa para reducir los errores de la entrada de referencia y la salida del sistema. La reducción del error del sistema es uno de los efectos más importantes que se puede realizar sobre el sistema. Para evaluar los efectos de la retroalimentación sobre un sistema de control, es esencial examinar el fenómeno en un sentido más amplio: cuando ésta es aplicada en forma deliberada para propósitos de control, su existencia se identifica fácilmente. Sin embargo, existen numerosas situaciones en donde un sistema físico, que normalmente se reconocería como un sistema inherentemente no realimentado, se puede volver uno cuando se observan variables distintas. En general, cuando una secuencia cerrada de relaciones causaefecto existe entre las variables de un sistema, se dice que existe retroalimentación. 2.2.2.4. Tipos de sistemas Los sistemas de control realimentados se pueden clasificar en diversas formas, dependiendo del propósito de la clasificación. Por ejemplo, de acuerdo con el método de análisis y diseño, los sistemas de control se clasifican en lineales y no lineales, variantes o invariantes con el tiempo. De acuerdo con los tipos de señales usados en el sistema, se hace referencia a sistemas en tiempo continuo y en tiempo discreto, o sistemas modulados y no modulados. A menudo, los sistemas de control se clasifican de acuerdo a su propósito principal. Por ejemplo, un sistema de control de posición y un sistema de velocidad controlan las variables de salida de posición y velocidad, como sus nombres lo indican. 23 2.3. Procesamiento digital de señales De acuerdo a la definición de [SWS99], el procesamiento digital de señales (DSP2 sigla en inglés) es distinguido de otras áreas en ciencias de la computación por el tipo único de datos que usa: señales digitales. En muchos casos, estas señales se originan como datos observados en el mundo real: vibraciones sismológicas, imágenes visuales, ondas de sonido, etc. DSP comprende la matemática, los algoritmos y las técnicas usadas para manipular estas señales después de su conversión en forma digital. Este procesamiento tiene diversas aplicaciones, como: mejoramiento de imágenes visuales, reconocimiento y generación del habla, compresión de datos para almacenamiento y transmisión, entre otros. La parte más importante del cualquier aplicación de DSP es entender cómo la información está contenida en las señales con las que se está trabajando, ya que pueden existir muchas formas, ésto es especialmente cierto si la señal es artificial. Por lo general, las señales se presentan en el mundo real como flujos continuos de información. Para que estas señales sean procesadas en sistemas de cómputo, se realiza un proceso denominado digitalización, donde la señal original (análoga) se representa por un conjunto discreto de valores (digital). El proceso de conversión análogo a digital presenta una pérdida de datos, pero dependiendo del sistema observado la señal digital podrá representar fidedígnamente la señal análoga. Esta conversión es favorable puesto que el conjunto discreto de datos se puede procesar 2 (Digital Signal Processing) Procesamiento digital de señales. Hace referencia al conjunto de técnicas y métodos utilizados para el procesamiento matemático, estadístico o algorítmico que sufra un arreglo numérico correspondiente a una señal digital. 24 con algoritmos y otras técnicas matemáticas que puedan ejecutarse sobre procesadores computarizados. El proceso de digitalización se describe en la Figura 2.1. 2.3.1. El efecto del ruido En observación de señales del mundo real, es común encontrar que la señal observada es una composición de varias, producto de variables externas que inciden en el objeto de estudio, es decir, la señal observada tiene inmersa la señal que se desea obtener, más otras señales de poco o nulo interés; a estas señales se les denominan regularmente ruido. Hay diversos tipos de ruido, los cuales se pueden catalogar dependiendo de los entes que lo generen (eléctricos, mecánicos, seres vivos). De acuerdo a los elementos con los cuales se recolecte la señal, los niveles de ruido pueden variar; también puede existir como representación de otro tipo de información que se encuentra en el ambiente, pero que no es de interés para el estudio realizado. 2.3.2. Filtrado El filtrado es una operación que consiste en extraer de una señal observada, la señal útil al observador : se pueden citar como ejemplos la extracción de una señal inmersa en ruido o la estimación de la derivada de una señal con ruido. [SS99] Si la operación realizada es lineal e invariante, se dirá que se hace un filtrado lineal : el filtro será un sistema dinámico lineal. Si el mensaje y la señal son continuos, el filtro es continuo o analógico. Si 25 Figura 2.1: Conversión análogo/digital 26 al contrario el mensaje y la señal útiles son discretas o discretizadas se dirá que el filtro es digital. Según el método de síntesis se puede tener: • filtro temporal; el filtro es especificado a partir de las características temporales. • filtro de frecuencias; las características del filtro están dadas por su respuesta en frecuencia. • filtrado óptimo; si la síntesis hace intervenir un criterio de optimización. • filtrado estocástico o determinista; si el estudio del filtro hace o no intervenir señales aleatorias, su representación y su cálculo de probabilidades. Desde un punto de vista práctico se distingue el filtrado en tiempo real del filtrado a tiempo diferido. 2.4. Redes de estaciones Esta sección trata sobre la composición y distribución de una estructura que denominaremos red, de acuerdo a [LEE91]. En general, una red puede ser vista como un conjunto de nodos enlazados entre sí por medio de aristas. Para cada aplicación real los nodos y las aristas tienen significado: una red telefónica tiene como aristas los cables o líneas de interconexión físicas o inalámbricas; los nodos corresponderían a los puntos donde se conectan los equipos telefónicos (celulares, fax, teléfonos). Otro ejemplo, un poco más general, lo constituye un conjunto de estaciones actuando como nodos, un medio de transmisión o interconexión como aristas y una señal como mensaje. Este concepto puede aplicarse a un sistema concreto como la 27 sismología. 2.4.1. Estaciones de registro Para un caso más particular de red, se tiene una estación de registro como un nodo fuente de información, es decir, captura o genera información por sí mismo y la transmite por las aristas al resto de la red. Una estación de registro sismológico contiene básicamente uno o varios sensores, un amplificador de señal y una unidad transmisora; alternativamente la estación puede realizar el proceso de digitalización, almacenamiento y procesamiento de la señal. 2.4.1.1. Sensores Un sensor es un dispositivo eléctrico, mecánico, físico o químico que mide una o varias variables sobre un ambiente u objeto. El propósito de un sensor es hacer una cuantificación de una o más variables regularmente en función del tiempo. 2.4.1.2. Transmisión de datos Es el proceso de envío de un conjunto de datos desde un origen a un destino utilizando un medio. Con los avances en los sistemas de comunicación se tienen diversas alternativas para realizar transmisión remota o local de información. 28 2.4.2. Topologías de red Una red sismológica es un sistema de observación sísmica compuesto por un grupo de estaciones. Cada una contiene básicamente un sensor, que puede ser de movimiento, velocidad o aceleración y componentes electrónicos para realizar el registro de la señal en algún medio, más los mecanismos para transmitir la información. Estas estaciones por lo general se localizan en sitios geográficos donde existen bajos niveles de ruido generado por factores distintos al terrestre (carreteras, ciudades) y bajo condiciones geológicas específicas. Una red sismológica puede estar compuesta de estaciones no telemetradas, o telemetradas utilizando diversas tipos de tecnologías. Estaciones telemetradas: indica si las estaciones realizan envío de los datos registrados a un punto geográfico distinto, a través de algún sistema de comunicación, para su almacenamiento o procesamiento en una estación central donde se reuna con la información de otras estaciones. Esta transmisión permite obtener registros sísmicos de varias estaciones en muy corto tiempo; la información tomada en un instante de tiempo se transmite instantáneamente, por lo cual se considera como un sistema de funcionamiento online, es decir, a medida que se va generando la información es enviada para su análisis. En la Figura 2.2, se indica la distribución geográfica de estaciones sismológicas de la red del sur-occidente del OSSO. Estaciones no telemetradas: cada estación realiza almacenamiento local de la información tomada, algunas pueden realizar procesamiento sobre los datos. Este caso en sismología no es comúnmente usado para localización de eventos en corto 29 tiempo, por lo tanto se considera de funcionamiento fuera de linea (offline). A pesar que la señal está referida con el tiempo en el que se produjo, se almacena para su posterior análisis. Una red sismológica puede contener estaciones telemetradas y no telemetradas. Para su análisis digital, se discretiza esta información, usando un elemento de hardware denominado conversor Análogo-Digital. Este conversor aproxima una señal análoga a digital con un nivel de resolución, definido por el número de muestras por segundo que se toman. La señal digital registrada debe estar referida a un momento exacto en el tiempo, ya que es necesario para determinar, en caso de eventos sísmicos, parámetros como el sitio geográfico, profundidad, etc. Para tener un valor de referencia común del tiempo se utiliza un sistema de posicionamiento global (GPS por su sigla en inglés). 2.4.3. Procesamiento de señales sísmicas Con los datos recopilados por la red de estaciones, se realiza el análisis sismológico para extraer información sobre las señales. Un evento se denomina de manera general la ocurrencia de movimiento sísmico. El proceso de detección de eventos es una de las etapas del proceso de observación, en la cual se desea conocer el momento en el tiempo donde se ha registrado un evento. A partir de este momento se pueden identificar los parámetros epicentrales realizando el proceso de localización del evento. 30 (Fuente Catálogo digital OSSO 2002) Figura 2.2: Distribución de las estaciones sismológicas del OSSO. 31 Detección de eventos La detección de eventos es el procedimiento para encontrar el tiempo aproximado de inicio de un movimiento terrestre con una red sísmica. Una lista de eventos corresponde a una tabla en orden cronológico, con los tiempos de los eventos registrados. Si un movimiento regional o telesísmico es detectado y procesado, también podrá ser incluido en la lista. Este procesamiento se realiza por métodos visuales, automáticos o semiautomáticos. Localización de eventos La localización de eventos corresponde a la identificación de los parámetros de magnitud, profundidad y posición geográfica, junto a grado de error y calidad de la solución, entre otros. Figura 2.3. (Tomado de New Manual of Seismological Observatory Practice) Figura 2.3: Localización de eventos. Según [RC92], en el dominio sismológico un sistema automático debe cumplir 4 tareas principales: 1. Detección de señales: precisión para identificar y rechazar trazas de ruido 32 realzando la relación Señal - Ruido (SNR) 2. Extracción de características y reconocimiento de fases: características básicas como tiempo de arribo, amplitud, frecuencia dominante y duración son extraídas de las señales detectadas. 3. Análisis asociativo: La idea de detectar señales y tentativamente interpretar fases, es analizada luego con la información de todas las estaciones de la red. Esto valida y mejora la etapa de reconocimiento de fases; la identificación de un evento candidato se hace desde sismogramas candidatos consistentes; fases pertenecientes a sismogramas menos claros, no son tomados en cuenta. 4. Estimación de parámetros: El evento es localizado en espacio y tiempo (coordenadas hipocentrales: latitud, longitud, profundidad, tiempo de origen) y cuantificado utilizando escalas de valores aproximados, denominados magnitud. 2.4.4. Otros casos de consideración Para extender la idea de los casos de redes de estaciones y procesamiento de señales se pueden considerar algunos casos, sobre los cuales se realizará una aproximación en cuanto a su funcionamiento y acoplamiento a la estructura de red presentada. El sistema de procesamiento es visto para estos casos como un sistema especializado para cada caso, así como el término de manejo de eventualidades, como el mecanismo accionador del sistema. 33 2.4.4.1. Electrocardiógrafo digital Un electrocardiógrafo simple consta de tres electrodos o sensores de diferencia de potencial que miden pequeños niveles de voltaje en tres puntos alejados de un organismo. La información obtenida en un lapso de tiempo es considerada señal o electrocardiograma, la cual puede ser interpretada por expertos o procesada por software especializado. En términos generales el comportamiento de este sistema puede ser visto como una serie de estaciones o electrodos, cada uno censando datos físicos, los cuales serán procesados por un sistema central en busca de eventualidades propias de las situaciones médicas relacionadas. 2.4.4.2. Sistemas de seguridad física Algunos sistemas antirrobo están basados en un mecanismo de verificación de espacio o de apertura de pasadores. Por ejemplo un sistema de seguridad física en una empresa puede consistir en un conjunto de cámaras digitales que se activen en horas de inactividad laboral, cada cámara tendrá un espacio visual que, en condiciones normales, no varía o varía muy poco. Para el caso del modelo de redes de estaciones, las cámaras interconectadas a un sistema central corresponden al conjunto de estaciones, la presencia de una eventualidad o cambio no considerado dentro del comportamiento del sistema puede considerarse, para este caso, una alerta de seguridad, de acuerdo como se tenga establecido en el sistema de procesamiento de las señales. 34 2.4.4.3. Control de temperatura Para un sistema de control de temperatura basado en información obtenida de termómetros, es posible acoplar el mismo sistema descrito en los casos anteriores, bajo el esquema de redes de estaciones (termómetros) incorporados a un sistema centralizado que procese las señales y determine los casos donde ocurran eventualidades en el entorno del problema específico. 2.5. Sistemas en tiempo real 2.5.1. Diseño en tiempo real Como requerimientos fundamentales de un sistema de tiempo real se tiene no solo su correcto funcionamiento, sinó también su principal atributo de control : el tiempo. El sistema deberá entregar respuesta en un lapso de tiempo máximo establecido, a impulsos predeterminados o calculados. De acuerdo a la aplicación final del sistema existen diversos tipos [JHC00]: Por restricciones de tiempo Sistemas de Tiempo Real Blandos: Sistemas que a pesar de tener restricciones de tiempo real, es aceptable que los límites de tiempo no se cumplan siempre. Sistemas de Tiempo Real Duros: Es indispensable el cumplimiento de las restricciones temporales impuestas, aún a costa de disminuir las funciones que el sistema es capaz de desarrollar. 35 Por las escalas de tiempo: Respuesta en la ejecución de las tareas del sistema frente a los eventos externos que ocurren. Sistemas basados en Reloj: Existencia de una señal periódica que desencadena la ejecución de las operaciones del sistema. Sistemas basados en Eventos: Las actividades son ejecutadas cuando ocurre un evento o condición que activa el sistema. Por la integración con el sistema físico: Por el entorno en el cual se ejecuta el sistema: Sistemas embebidos Se usan para controlar hardware especializado, en este caso el software que se instala es específico para controlar un tipo particular de hardware (firmware3 ). Sistemas no embebidos Estos son sistemas en donde el software no está directamente integrado al hardware, pueden a su vez clasificarse como acoplados o débilmente acoplados según el grado de dependencia del software respecto al hardware sobre el cual puede correr. 3 Software almacenado en memoria de solo lectura (ROM) o sobre ROM programable, generalmente utilizado para hardware programable. 36 2.5.2. Adquisición digital de datos Los procesos de adquisición y procesamiento de datos modernos, realizan la captura de datos por dispositivos de hardware especializados para esta tarea, operados por firmware o equipos de cómputo de propósito general, operados por software. El proceso de adquisición tiene restricciones en cuanto al tiempo, la precisión de los datos y la transmisión de la información a otros módulos para el almacenamiento y procesamiento, por eso se considera un sistema de adquisición de datos en linea un sistema de tiempo real duro, ya que se debe garantizar la recepción de la información en lapsos de tiempo determinados, ya sea para almacenamiento o para otros servicios. La adquisición digital de datos, no es proceso exclusivo de la sismología. Se puede presentar en procesos industriales automáticos, receptores de radar o telecomunicaciones. Un esquema general del flujo de la información se muestra en la Figura 2.4. El proceso de adquisición es independiente de los procesos de recepción y transmisión de datos, sin embargo se deben conocer los tiempos de retraso ocasionados por la transmisión remota, así como el tipo de datos que llegan a cada canal de entrada. La adquisición digital sobre un computador, consiste en el almacenamiento en memoria principal o secundaria de un conjunto de datos con un formato específico durante un periodo de tiempo. Generalmente se tienen varios canales de adquisi37 Figura 2.4: Adquisición digital ción. La adquisición digital puede tener una etapa previa dependiendo de la señal. Si ésta es análoga, se debe realizar la conversión o discretización de ésta. Este proceso de conversión análogo-digital es realizado por hardware dedicado conocido como conversores A/D (análogo/digital), los cuales se encuentran limitados por el número de muestras por segundo que pueden recibir y por el nivel de resolución de cada dato medido en bits. 2.5.3. Estructuras de datos La señal discretizada puede ya ser procesada en el computador. El procesamiento es un proceso específico del análisis realizado. Los datos que han sido adquiridos deben tener un formato claro que permita su interpretación. El formato que encapsula la señal, será determinado por el programa. Básicamente se debe especificar cual es la tasa de muestreo, la referencia de tiempo, la fuente de los datos y un flujo de datos a procesar. Esta información se encuentra en algún me38 dio de almacenamiento digital y se accede bajo una estructura de almacenamiento circular que permita la disponibilidad continua de datos. Como característica asociada a la estructura de datos se debe tener en cuenta que la permanencia de la señal en el medio tiene un periodo de permanencia, regularmente corto, lo cual indica que otros procesos deben atender esta información antes de ser reemplazada por nuevos datos. 2.5.4. Referencia a la señal de tiempo La localización de eventos sísmicos requiere una buena precisión del tiempo en que las señales se están registrando. Para tener una referencia global de tiempo se usa un sistema de posicionamiento global (GPS), el cual capta determinadas señales de satélites artificiales geoestacionarios para determinar datos como la posición geográfica y un valor de tiempo en meridiano 0 (Hora UTC). Con este sistema se asigna el tiempo que acompaña la señal obtenida, regularmente manejada con una precisión de décimas o centésimas de segundo. 2.5.5. Tiempo de respuesta Un sistema adecuado a los requerimientos de entrada y salida de datos debe considerar un tiempo de respuesta máximo, que permita atender las peticiones de recepción de datos y transferencia a otros procesos que los soliciten. Por otra parte se debe garantizar que las operaciones de procesamiento de datos cumplan con tiempos máximos de respuesta, admisibles por los requerimientos del sistema. 39 2.6. Detección y clasificación de señales Un detector es un sistema que identifica la ocurrencia de cambios abruptos sobre una señal. De manera general se busca conocer el momento en el cual la señal presenta una cambio en su amplitud, tratando de evitar las condiciones de ruido. Según [CHT98], los cuatro principales problemas de la detectabilidad de eventos son: Diferenciación entre señal débil y formas de onda con ruido puro. Errores en la señal y modelos de ruido como resultados de disimilaridades de onda P (tiempo de llegada del primer cambio abrupto o inicio del evento sísmico), a través del arreglo. Alta probabilidad de activación del detector de eventos por falsas alarmas y ruido Fluctuaciones del nivel de ruido o dependencia de frecuencia de relación señal-ruido (SNR). 2.6.1. Detección STA/LTA Short Term Average / Large Term Average. STA/LTA es un algoritmo de detección de cambios que se activa frente a la relación de la amplitud de la señal en dos ventanas de tiempo. Es utilizado en sismología porque regularmente no presenta alteraciones debido a la amplitud del ruido ajustando automáticamente la sensibilidad de las estaciones sísmicas a los actuales 40 niveles de ruido. Como resultado, provee una alta sensibilidad del sistema durante periodos de quietud sísmica y logra prevenir un número excesivo de alarmas sísmicas, o al menos mitiga durante periodos de ruido sísmico. Los cálculos son repetidamente ejecutados en tiempo real. Este proceso s realizado, por lo general, independientemente de todos los canales de una estación sismológica o de una red sísmica. El algoritmo procesa señales sísmicas filtradas en dos ventanas de tiempo: una corta, de promedio de tiempo (STA) y otra larga con su promedio de tiempo (LTA). El STA mide el ’instante’ de la señal sísmica e inspecciona ocurrencia de terremotos. El LTA toma nota del actual promedio de amplitud del ruido.[SRC00] Primero, se calcula la amplitud absoluta de cada muestra de datos. Luego se realiza para el promedio de amplitud absoluta en ambas ventanas. En un paso posterior se calcula una razón de ambos valores (radio STA/LTA). Esta razón se compara continuamente comparado con un valor seleccionado por el usuario: umbral de detección STA/LTA. Si el radio excede este umbral, un canal de ocurrencia de evento será declarado. Este no necesariamente es el medio para que un grupo de canales o red sísmica inicie un registro de señal sísmica. Todas las redes sísmicas y muchos registros sísmicos tiene un mecanismo para determinar la activación (trigger4 ) del sistema, basado en que varios canales presentan la condición de ocurrencia de evento antes de que el instrumento o la red inicien el registro de datos. Después que la señal gradualmente termina, se dá la condición de parada (detrigger). El usuario puede determinar una condición de parada, la cual será menor o igual que la dada 4 Trigger : condición de disparo o alerta sobre una señal ante la presencia de cambios abruptos. 41 para la condición de activación. Adicionalmente a los datos adquiridos entre los tiempos de activación y de parada, las redes sísmicas y las estaciones entregan una gran cantidad de datos antes del trigger - datos del pre-evento (PEM). Después de que la condición de trigger termina, se toman los datos de post-evento (PET). La Figura 2.5 muestra la disposición de estas variables sobre un segmento de señal: Figura 2.5: STA/LTA 2.6.2. Estimación de parámetros sobre la señal. La estimación de parámetros en señal sísmica o extracción de características, es un proceso de análisis preliminar de datos partiendo de un conjunto de reglas preestablecidas en el sistema, así como de un proceso de aprendizaje sobre el comportamiento de un grupo de señales. Unas cuantas técnicas en procesamiento de señales son aplicables para estimar características tradicionales de señales sismológicas, tales como amplitud sísmica, periodo y otros aspectos del reconocimiento de señales. 42 2.6.3. Mecanismos de detección De acuerdo a [FH98] y [CHT98], existen diversos métodos para determinar la ocurrencia de eventos. Algunos de ellos son: Detector telesísmico Enfocados hacia la detección de eventos lejanos a la zona de cobertura de la red de estaciones. Por lo general son eventos de gran magnitud (mayores de 5 grados en la escala de Richter). Detector por estimación espectral Obtienen funciones y valores de la señal en términos del espectro generalmente calculado como una transformada. Detector basado en filtros Aplicación de algoritmos matemáticos y pseudo-matemáticos para la transformación de las señales en otras que representen de manera más aproximada el comportamiento real del sistema. Detector estadístico Se tienen de dos tipos principalmente, de comportamiento aproximado o según alguna distribución estadística y basados en métodos Bayesianos, los cuales son una aplicación del teorema de Bayes. 43 2.6.4. Wavelets Las técnicas de análisis wavelet emplean regiones de tamaño variable, para el análisis de las señales deja usar durante largo tiempo intervalos donde se necesita mucha información que precisa poca frecuencia y pequeñas regiones donde la información necesita altas frecuencias. El análisis wavelet es capaz de mostrar aspectos de la señal que otras técnicas no logran encontrar [SPIHT]. 2.6.4.1. Transformada Wavelet La transformada wavelet consiste en comparar la señal con ciertas funciones wavelet, las cuales se obtienen a partir de las wavelet madre. La comparación permite obtener unos coeficientes que son susceptibles de interpretación y posterior manipulación. En cualquier caso, un requisito básico es la posibilidad de invertir la transformada, recuperando la señal a partir de esos coeficientes wavelet calculados. 2.6.4.2. Transformada Wavelet Discreta (DWT) El cálculo de la transformada wavelet para todas las posibles escalas supone una gran cantidad de información. Escoger solo aquellas escalas y posiciones que resulten interesantes para ciertos estudios es una tarea difícil. Si se escogen aquellas escalas y posiciones basadas en potencias de dos, los resultados serán más eficaces. Este análisis se denomina DWT. Para muchas señales la información más importante se encuentra en las frecuencias bajas, mientras que en las altas frecuencias se encuentran los detalles o matices de 44 la señal. Por ejemplo, en el caso de la voz humana, si se eliminan los componentes con altas frecuencias, la voz suena diferente pero se sigue entendiendo su mensaje. En cambio, si lo que se elimina son las componentes de bajas frecuencias, el mensaje se vuelve irreconocible. Por eso el análisis wavelet permite descomponer la señal en aproximaciones y detalles, a este proceso se le conoce con el nombre de análisis. 2.7. Inteligencia artificial en DSP La Inteligencia Artificial (AI por su sigla en Inglés) es una de las áreas de las ciencias de la computación encargadas del desarrollo de software o equivalente, que presente comportamientos inteligentes. Regularmente la AI es utilizada para resolver problemas cuyas soluciones no son obtenidas mediante el cómputo, para lo cual utiliza métodos de búsqueda de soluciones factibles al problema, en un conjunto de soluciones válidas. En el campo específico del Procesamiento Digital de Señales, la información que representan las señales puede no ser fácilmente procesada con algoritmos deterministas. Estos casos son más frecuentes si se tiene en cuenta la naturaleza de las señales: ambientes del mundo real, donde las señales se comportan como una combinación de múltiples fuentes de datos. 2.7.1. Reconocimiento de patrones El Reconocimiento de Patrones es un área de la tecnología conocida como Aprendizaje de Máquinas (Machine Learning) o Aprendizaje Automático. El único propósito de este método es clasificar un grupo de patrones conocido como conjunto de pruebas en dos o mas clases de categorías. Esto es posible al calcular las ca45 tegorías del conjunto en prueba comparándolo con un conjunto de entrenamiento previo (training set). Un clasificador dado mide la distancia entre varios puntos dados (compara), para saber cuales puntos son mas cercanos a la meta en un modelo parametrizado [JK02]. También se puede definir Reconocimiento de Patrones como el acto de tomar datos sin ningún sentido y clasificarlos de acuerdo a una acción basada en las categorías de un patrón dado o previamente analizado. Las operaciones en un sistema de reconocimiento son las siguientes : Sensado : toma de información de sensores5 . Segmentación y Agrupamiento : La operación de segmentación ocurre cuando el sistema determina que un elemento, objeto o muestra finaliza y da comienzo a otro. Extracción de Características : La meta del extractor es caracterizar un objeto con medidas o cualidades cuyos “valores” tienden a ser similares. Clasificación: El objetivo en la operación de clasificación es utilizar un “vector” con las características provistas por el extractor para asignar el objeto (patrón) de la entrada a una categoría. Procesamiento a Posteriori: En un clasificador raramente existe la clasificación nula, sin embargo en muchos casos es utilizada para recomendar 5 Sensor: dispositivo físico, mecánico, químico o electrónico que entrega datos sobre el comportamiento de un objeto de estudio. 46 decisiones y acciones que dependen de un costo o riesgo particular. El procesamiento a posteriori se utiliza en la descarga o resultado del clasificador para recomendar una acción. 2.7.2. Redes Neuronales Emulando la estructura biológica del cerebro humano, las técnicas de redes neuronales modelan las neuronas como unidades de proceso. Cada unidad de proceso se compone de una red de conexiones de entrada, una función de red ( de propagación), encargada de computar la entrada total combinada de todas las conexiones, un núcleo central de proceso, encargado de aplicar la función de activación, y la salida, por dónde se transmite el valor de activación a otras unidades.[BM01] La función de red es típicamente el sumatorio ponderado, mientras que la función de activación suele ser alguna función de umbral o una función sigmoidal. Función de propagación o de red: Calcula el valor de base o entrada total a la unidad, generalmente como simple suma ponderada de todas las entradas recibidas, es decir, de las entradas multiplicadas por el peso o valor de las conexiones. Equivale a la combinación de las señales excitatorias e inhibitorias de las neuronas biológicas. Función de activación: Es quizás la característica principal o definitoria de las neuronas, la que mejor define el comportamiento de la misma. Se usan diferentes tipos de funciones, desde simples funciones simples de umbral a funciones no lineales. Se encarga de calcular el nivel o estado de activación de la neurona en función de la entrada total. 47 Conexiones ponderadas: hacen el papel de las conexiones sinápticas, el peso de la conexión equivale a la fuerza o efectividad de la sinápsis. Las existencia de conexiones determina si es posible que una unidad influya sobre otra, el valor de los pesos y el signo de los mismos definen el tipo (excitatorio/inhibitorio) y la intensidad de la influencia. Salida: calcula la salida de la neurona en función de la activación de la misma, aunque normalmente no se aplica más que la función identidad, y se toma como salida el valor de activación. El valor de salida cumpliría la función de la tasa de disparo en las neuronas biológicas. La idea detrás del proceso consiste en que las neuronas codifican criterios de operación, durante el periodo de ejecución de la red neuronal las conexiones se van reasignando como de mayor o menor peso, según la respuesta de la red a los estímulos de nuevos datos de entrada. El resultado de todo el proceso se entrega como la unidad de salida. Aunque inicialmente se desarrollaron redes de una sola capa, lo más usual es disponer de tres o más capas: la primera capa actúa como almacenamiento de entrada, conteniendo la información bruta suministrada a la red o realizando un sencillo pre-proceso de la misma, se denomina capa de entrada; otra capa actúa como interfaz o espacio de salida, almacenando la respuesta de la red para que pueda ser leída, llamada capa de salida; y las capas intermedias, principales encargadas de extraer, procesar y memorizar la información, se conoce como capas ocultas. Como parte de los procesos de implementación de la red neuronal se realiza la etapa 48 de aprendizaje, la cual le permitirá a la red establecer sus valores de operación. El aprendizaje de una red se puede producir de tres formas: Aprendizaje supervisado: consiste en introducir una serie de patrones de entrada a la red y a su vez mostrar la salida que se quiere tener. La red es capaz de ajustar los pesos de las neuronas de forma que a la presentación posterior de esos patrones de entrada la red responde con salida memorizada. Aprendizaje no supervisado: se presentan los patrones de entrada a la red y ésta los clasifica en categorías según sus rasgos más sobresalientes. Aprendizaje autosupervisado: la propia red corrige los errores en la interpretación empleando una realimentación. El uso de las redes neuronales en procesamiento de señales aprovecha la capacidad de aprendizaje y adaptabilidad de estas técnicas, mostrando buenos resultados en su aplicación como filtros digitales sobre la señal y como mecanismo de aplicación de reconocimiento de patrones. La utilización de las técnicas de redes neuronales es conveniente cuando el comportamiento de las señales no presentan patrones o comportamientos predecibles o ajustables a un comportamiento del entorno. Con la utilización de técnicas supervisadas de aprendizaje, una red entrenada puede clasificar uno o varios segmentos de señal en grupos establecidos de acuerdo a características comunes. 2.7.3. Algoritmos genéticos Son basados en modelos computacionales de procesos evolucionarios fundamentales como la selección, recombinación y mutación. Son codificados como palabras 49 compuestas sobre algunos alfabetos y una población inicial producida por muestras aleatorias de estas palabras. Una vez la población ha sido producida, puede ser evaluada usando una función objetivo con características individuales del dominio del problema. La función objetivo es también usada como la base para la selección y determina la eficiencia de un individuo en este ambiente. Estos procesos de selección, reproducción y evaluación son repetidos hasta un criterio de terminación determinado. Por ejemplo, cierto número de generaciones, una desviación promedio en la eficiencia de los individuos de la población o cuando un punto particular en el espacio de búsqueda es encontrado. 2.7.4. Otras técnicas KDD KDD (Knowledge Discover on Databases) o Descubrimiento de conocimiento en bases de datos en una área mixta de trabajo de las bases de datos, la inteligencia artificial y la estadística. Básicamente busca extraer información oculta en bases de datos con gran cantidad de registros; se pretende conocer comportamientos o patrones de interés que surjan de los datos. Las técnicas de KDD permiten reconocer reglas que se presentan “de manera natural” en los datos, organizándolos como patrones o reglas. Para que estas reglas se consideren válidas es necesario contar con gran cantidad de datos que sustenten su aprobación. Para el caso del procesamiento de señales la aplicación del KDD es factible. Sin embargo, el procesamiento de tal cantidad de información impediría tener un tiempo de respuesta adecuado para el sistema, por lo cual su uso en este tipo de aplicaciones no es muy extendido en procesamiento de señales. 50 Investigación de Operaciones Aplicados a problemas de optimización, los modelos matemáticos de la investigación de operaciones pueden usarse en determinadas etapas del procesamiento de señales a fin de encontrar valores óptimos y valores máximos o mínimos. Estas técnicas son usadas en diversos campos del conocimiento, donde el conjunto de variables de búsqueda y el número de datos de entrada no son muy extensos y se encuentran claramente definidos en el contexto de cada problema. Para la resolución de este tipo de problemas, se debe tener en cuenta las limitaciones computacionales que pueda tener una posible implementación, debido a que algunos planteamientos podrían no ser determinados o requerirían muchos recursos de procesamiento. 2.8. Desarrollo de proyectos de software La Ingeniería de Software se define como “la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas (eficaces en costo o económicas) a los problemas de desarrollo de software", es decir, "permite elaborar consistentemente productos correctos, utilizables y costo-efectivos". Como cualquier proyecto de ingeniería moderna, el software se construye de acuerdo a las posibilidades técnicas y la factibilidad de los recursos disponibles para hacerlo. Para dimensionar el desarrollo de un producto de software es necesario realizar la planeación general del proyecto, como proyecto de Ingeniería, así como considerar su análisis y diseño dentro de los principios de desarrollo de la Ingeniería de Software. 51 2.8.1. Ciclo de vida de desarrollo De acuerdo a la norma [ISO12207-1], se puede describir un ciclo de vida de desarrollo de software como “Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso”. Los procesos del ciclo de vida de desarrollo de software se muestran en la Tabla2.1, de acuerdo a [RSP98]. Esta estructura basada en procesos, agrupa como fases generales las actividades a realizar para la construcción de software. Existen diversos enfoques para aplicar las etapas de elaboración; el criterio de escogencia entre los ciclos de vida para el desarrollo, lo otorga a nivel general los requerimientos del problema, así como las características del entorno de desarrollo y utilización del producto. 2.8.2. Bases del desarrollo de software Tomando el esquema propuesto por [SM96], las bases del desarrollo de software se pueden dividir en : 2.8.2.1. Bases de gestión Realizar gestión sobre el desarrollo de software, consiste básicamente en dimensionar el producto, en términos de funcionalidad, complejidad, recursos, actividades, entre otros. Como etapas de la gestión se tienen los procesos de estimación, planificación y seguimiento. 52 1. Estimación: corresponde a la cuantificación que se considera sobre el proyecto. a) Estimación del tamaño: se realiza entre otros por puntos de función o en líneas de código. Los puntos de función son indicadores de valor (puntos) de acuerdo a los componentes del producto. Las líneas de código son una medida estándar de la extensión del producto. b) Estimación del esfuerzo: con base en la estimación del tamaño y con experiencias previas similares, se puede considerar dedicación de personal / tiempo. c) Estimación de la planificación: realizando la estimación de tamaño y esfuerzo es posible estimar la duración y distribución del proyecto en el tiempo. 2. Planificación: a) Selección y organización del personal: en referencia a los perfiles del personal de desarrollo y de planificación. b) Elección del modelo de ciclo de vida a utilizar: identificar el modelo que mejor se adapte a las condiciones del proyecto y al entorno del desarrollo. c) Gestión de riesgos: La función de la gestión de riesgos es la de identificar, estudiar y eliminar las fuentes de riesgo antes de que empiecen a amenazar la planificación del proyecto. Estimación de riesgos: Identificación, análisis y priorización de riesgos. 53 Control de riesgos: Planificación, resolución y monitorización de riesgos. 3. Seguimiento: verificación constante de la ejecución del proyecto. Constituye las revisiones técnicas y cumplimiento de los parámetros de calidad, así como la demarcación de puntos cruciales para el proyecto. 4. Medición: La medición es un proceso enfocado hacia el desarrollador. En general busca recopilar datos sobre la planificación y envergadura del proyecto, a fin de estimar otros proyectos a futuro. 2.8.2.2. Bases técnicas Desde el punto de vista del desarrollo técnico del proyecto de software, se pueden considerar: 1. Gestión de requerimientos: corresponde a identificar los requerimientos de los actores del proceso de desarrollo, organizándolos de acuerdo a una metodología que permita reflejar lo mejor posible las necesidades y características del entorno de desarrollo. 2. Diseño: Conceptos de modularidad y ocultamiento de información. Consideraciones de diseño propios del dominio de la aplicación. 3. Construcción: Establecimiento de prioridades en el proceso de codificación. Reglas y métodos para generación de código. 4. Gestión de configuración: (Software Configuration Manager) Incluye métodos para evaluar cambios propuestos, continuar los cambios, manejar va54 rias versiones y guardar copias de la evolución de los artefactos del proyecto. Los artefactos corresponden a todas los componentes utilizados en la fase de codificación. 2.8.2.3. Bases de control de calidad Las bases de control de calidad permiten establecer un control sobre la funcionalidad real del producto, buscando minimizar a futuro la corrección de defectos. 1. Módulos propensos a errores: por lo general están ligados a la falta de prueba por presiones de tiempo o a deficiencias técnicas en los estilos de codificación. 2. Prueba: realización de pruebas del código (desarrollador) y sobre el funcionamiento del sistema. La intención de la prueba es detectar fallos sobre el producto o sus componentes. 3. Revisiones técnicas: corresponde a a cualquier clase de revisiones utilizadas para detectar defectos en requerimientos, diseño, código, casos de prueba. 2.8.3. Sistema crítico o con tolerancia a fallos Como característica fundamental de un sistema crítico se tiene el factor de supervivencia, como la habilidad de un sistema de comunicación o computación para satisfacer requerimientos como seguridad, confiabilidad, tiempo de respuesta, respuesta a situaciones anormales y corrección de errores. La supervivencia debe ser definida respecto al conjunto de situaciones adversas que pongan en riesgo la fiabilidad del sistema [RD97], que generalmente ocurre por: 55 Fallos en el hardware. Imperfecciones en el software. Ataques sobre sistemas y redes de comunicaciones perpetrados por los usuarios de modo intencional o accidental. Interferencia electromagnética. Un sistema crítico de software es visto entonces como un producto de software que puede prevenir, con alcances y limitaciones, un rango de fallos sobre el software en ejecución. Como factores de consideración en el diseño para construcción de software de seguridad crítica [DG94] se tiene, en primera instancia, 7 factores primordiales: 1. Calidad y experiencia del personal. 2. Uso del manejo de configuración 3. Claridad, estabilidad y validación de los requerimientos del software 4. Independencia de la verificación y validación 5. Uso de un ciclo de vida formal para desarrollo del producto 6. Planificación de los requerimientos y diseño del sistema, a través de los requerimientos, diseño codificación y prueba del software. 7. Uso de análisis de riesgo y debilidades para guiar el desarrollo. Adicionalmente 9 factores de diseño son esenciales para la seguridad: 56 1. Referencia a la calidad 2. Buen manejo y completa actividad de documentación 3. Independencia del manejo de la configuración y aseguramiento de la calidad 4. Mejoramiento continuo del proceso 5. Medida de los resultados del proceso de desarrollo de software 6. Disponibilidad suficiente de recursos, apropiado a la dificultad de las tareas de desarrollo 7. Un registro sobre el tiempo, el presupuesto, las especificaciones internas del producto de entrega 8. Detección y resolución del problema primario 9. Seguimiento de defectos 57 Procesos principales Procesos de soporte Procesos generales Adquisición Documentación Gestión Suministro Gestión de la configuración Infraestructura Aseguramiento de la calidad Mejora Verificación Validación Formación - Entrenamiento De * Análisis * Diseño desarrollo * Implementación * Prueba * Aceptación Explotación - Uso Mantenimiento Revisión conjunta Auditoría Resolución de problemas Cuadro 2.1: Procesos Ciclo de Vida 58 Capítulo 3 Desarrollo del Modelo Este capitulo contempla las fases que componen el desarrollo del modelo de sistema crítico para la caracterización de señales. El término caracterización, como efecto de caracterizar (“Determinar los atributos peculiares de alguien o de algo, de modo que claramente se distinga de los demás”. Real Academia Española 2001). La especificación de los atributos, en este caso de atributos sobre las señales, así como la configuración e interpretación de tales señales corresponde a la implementación detallada de este modelo. El modelo propuesto plantea la estructura de elaboración de proyectos de software, pero estableciendo unos principios de desarrollo alrededor de la planificación, ciclo de vida y sistema de calidad, dejando para establecer en el marco del problema puntual el análisis y diseño detallado del sistema solución. Por proyecto se entiende en este capítulo el potencial sistema solución, que se 59 desarrollará como producto de software en etapas posteriores al modelo. 3.1. Planeación del proyecto Esta primera fase del modelo se contempla el reconocimiento de las necesidades y los recursos del proyecto a desarrollar. En esta fase se pretende establecer las características del entorno del sistema, así como la definición de ciertos criterios generales que se usarán durante todo el desarrollo del proyecto. 3.1.1. Análisis de factibilidad Como proyecto de ingeniería, el proyecto a desarrollar debe establecer un grado de confiabilidad respecto a la viabilidad operacional y económica sobre su elaboración. De acuerdo a la naturaleza del modelo de software crítico, el análisis de factibilidad permite medir si existen las condiciones para que se pueda desarrollar un sistema que cumpla con los requerimientos del modelo. Como criterios para evaluar la factibilidad del proyecto se tienen: 3.1.1.1. Factibilidad técnica Estudia si el trabajo para el proyecto puede desarrollarse con el software y el personal existente, o en caso de necesitar nueva tecnología, cuales son las posibilidades de desarrollarla o adquirirla. En el marco del modelo se debe establecer los criterios y restricciones de la definición de sistema crítico para el proyecto. 60 3.1.1.2. Factibilidad económica Investiga si los costos se justifican con los beneficios que se obtienen, o si se ha invertido demasiado, como para no desarrollar el sistema si se considera necesario. También es posible evaluar, hasta que nivel funcional y con qué nivel de confiabilidad se puede desarrollar el sistema, de acuerdo a los recursos disponibles. 3.1.1.3. Factibilidad operacional La factibilidad operacional investiga si será utilizado el sistema, si los usuarios usaran el sistema y si éste podrá satisfacer las necesidades reales. Realizar este análisis parece una tarea no muy productiva, ya que se asume existe un problema o falencia. Sin embargo, pueden no existir las condiciones para que el sistema pueda operar en conjunto con los usuarios u otros sistemas como se espera. Si bien esta factibilidad es difícil de detectar en las primeras etapas del proyecto, es aconsejable realizarla. 3.1.2. Recursos y actividades Se debe realizar una identificación de recursos disponibles para el proyecto, según: Tiempo : asociado a la elaboración de un cronograma, indica los plazos y metas a alcanzar en periodos de tiempo establecidos. Personal : tanto en disponibilidad física y motivación del recurso humano, así como la capacidad técnica para elaborar el producto. Información : disponibilidad de acceso a la información y procesos asociados al sistema. Incluye formatos, protocolos, estándares internos, entre otros. 61 Tecnología : disponibilidad de equipos, software y comunicaciones, de acuerdo a las posibilidades económicas del proyecto. Economía : como valor nominal para indicar costos del proyecto. No es un criterio de interés para el modelo. Asesoría : Como recurso no tangible, es necesario tener acompañamiento de personal calificado que conozca el entorno del sistema y que tenga disponibilidad para asesorar en temas relacionados. Experiencia : experiencia del grupo de desarrollo, como mecanismo para favorecer la gestión del riesgo y la estimación del proyecto. Las actividades generales que describe el modelo son: 1. 2. 3. Aplicación del Modelo. a) Revisión de Análisis Global b) Revisión de Diseño Global Diseño de etapas a) Análisis detallado b) Identificación de etapas: diseño detallado, implementación, pruebas. Diagnóstico y mejoras 62 3.1.3. Sistema de calidad El sistema de calidad se propone como mecanismo que contribuye a la gestión del riesgo, ya que favorece en: Asegurar que el producto entregado tiene un nivel de calidad aceptable. El concepto de calidad será dado como “el producto funciona como dice debe funcionar”. Detectar los errores del proyecto cuanto antes, a fin de evitar que estos ocasionen retrasos en tiempo y sobrecostos. El control de calidad sugerido por este modelo propone unos criterios generales, los cuales ayudarán a guiar la calidad del software: Proponer un modelo único de ciclo de vida de desarrollo que favorezca la gestión de riesgos. Establecer procedimientos de documentación de todas las etapas del desarrollo. • Asignación de manejo de configuraciones • Asignación de procedimientos para manejo de errores. Aspectos técnicos de diseño: Utilidad, Portabilidad, Integridad, Extensibilidad, Reutilización, Eficiencia, Verificabilidad, Facilidad de uso, Compatibilidad, Confiabilidad (corrección y robustez), Modularidad, Legibilidad. Utilización de patrones de diseño de software. 63 Definición y aplicación de un plan de pruebas del sistema. A nivel de diseño, contemplar : Estabilidad de la plataforma o sistema operativo. Confiabilidad de las herramientas de programación. Eficiencia y calidad en la utilización de módulos externos. 3.2. Comprensión y Análisis La comprensión del proceso considera el estudio e investigación de las variables, procesos e interacciones que ocurren en el sistema. El análisis a realizar documenta las necesidades del entorno del problema puntual, enfocándose sobre los requerimientos globales identificados para el modelo, ésto significa que algunas características de la composición del sistema se mencionan, pero se debe obtener el detalle según la aplicación puntual del modelo. Los siguientes puntos consideran el esquema y contenido global propuesto. 3.2.1. Descripción general El sistema a desarrollar procesa un flujo de datos de entrada correspondiente a un conjunto de canales o señales independientes desde uno o varios sistemas de adquisición. Estas señales deben poseer una referencia o variable independiente (regularmente el tiempo) por la cual se realizará la sincronización de las diversas señales si es necesario. La información recibida se presenta disponible para ser utilizada por un proceso que se encargará de operar las señales y otro para su visualización 64 o control de parámetros. El procesamiento de la señal es un mecanismo específico del problema a tratar, se considera como una tarea general ya que se pueden contener niveles de detalle que correspondan directamente a técnicas rigurosas de diseño y codificación. La parte de interfaz de manejo corresponde a una primera interfaz de interacción con los usuarios del sistema. Finalmente se encuentra el actuador del sistema como el mecanismo encargado de dar respuesta ante los criterios establecidos para indicar la ocurrencia de eventos. 3.2.2. Análisis de requerimientos 3.2.2.1. Panorama general Se tiene como propósito la creación de un modelo funcional basado en criterios de seguridad crítica. El sistema tiene la siguiente estructura: 1. Señales e información de entrada. 2. Procesamiento de la señal. 3. Actuador del sistema. 4. Interfaz de manejo. El modelo presenta una estructura semejante a un sistema de control considerando una unidad de entrada, una de procesamiento o control y una respuesta o salida. Se tiene como propósito realizar el flujo y procesamiento de la señal de entrada, en busca de características consideradas de interés según el sistema a evaluar, para términos de este modelo se denominará eventualidades. 65 3.2.2.2. Funciones del sistema Las funciones del sistema se indican en la Tabla 3.1. Ref.# Categoría Función R.1.1 Evidente Recibir señal desde la(s) fuente(s) establecida(s). R.1.2 Proporcionar mecanismos para suministrar las señales a otros procesos que las requieran, de acuerdo a las prioridades de acceso. Oculta R.1.3 Restablecer el sistema para la recepción de nuevas señales. Opcional R.2.1 Recibir flujo de datos desde la entrada de señales. Oculta R.2.2 Detectar eventualidades sobre señales de entrada. Evidente R.2.3 Transmitir resultados del procesamiento. Oculta R.2.4 Registrar estado / respuesta de la detección. Oculta R.2.5 Clasificar parámetros de señales detectadas. Opcional R.2.6 Establecer parámetros de operación para el actuador. Evidente R.2.7 Enviar solicitud de gestión hacia el actuador. Oculta R.2.8 Registrar estado / respuesta de la transacción con el actuador. Oculta R.3.1 Recibir solicitud de gestión para el actuador. Oculta R.3.2 Activar procedimiento(s) del actuador. Evidente R.3.3 Registrar estados / respuesta del actuador. Oculta R.4.1 Recibir flujo de datos desde la entrada de señales. Oculta R.4.2 Activar Interfaz para interacción con el usuario Oculta Cuadro 3.1: Funciones del sistema 66 3.2.2.3. Atributos del sistema Los atributos del modelo se consideran en la Tabla 3.2. 3.3. Determinación del Ciclo de Vida Como Ciclo de Vida para el desarrollo del proyecto, se realizaron evaluaciones comparativas para determinar cual ciclo favorece al proceso de elaboración del software, teniendo en cuenta los siguientes criterios: Que facilite mantener procesos documentados sobre el proyecto. Que favorezca el análisis y la gestión del riesgo. Que permita obtener resultados parciales durante el mismo proceso de elaboración. Que facilite la distribución de trabajo en equipo. Que permita hacer planificación sobre actividades y tiempo. Se darán los factores de pros y contras de un modelo de ciclo de vida, denominado entrega por etapas, considerado éste como el ciclo de vida general a seguir por el modelo. 3.3.1. Entrega por etapas Con el modelo de entrega por etapas, se siguen los pasos del modelo de cascada pasando por la definición del proceso del software, análisis de requerimientos y 67 Atributo Condiciones Metáfora de Interfaz Tolerancia a fallas Plataforma de ejecución Condiciones de uso (detalles) se utilizarán dos esquemas de interfaces: - De visualización y manejo simple para usuarios (interfaz externa). - De registro de transacciones o de mensajes del sistema (interfaz interna). (Restricciones de frontera) Se tratará de acuerdo a la especificación del sistema crítico - Análisis detallado. (Restricciones de frontera) A seleccionar según el detalle de la aplicación. Operación Condiciones del modelo (detalles) Características y consideraciones de la aplicación del modelo. Cuadro 3.2: Atributos del sistema 68 creación del diseño global de una arquitectura para el programa completo, luego se procede a realizar el diseño detallado, la codificación, depuración y pruebas dentro de cada etapa. Figura 3.1. (Tomado de [SM96]) Figura 3.1: Ciclo de vida de Entrega por etapas Este modelo de desarrollo de software, contribuye a disminuir el riesgo total sobre el proyecto debido a que se contempla liberar versiones del producto que son parcialmente funcionales. Entre algunos aspectos a favor : 69 Favorece la visibilidad del desarrollo ante los usuarios. Enfrenta en las primeras etapas detalles importantes de diseño. Detección temprana de problemas. Ayuda a controlar la ejecución del cronograma del proyecto. Facilita mantener la modularidad desde el diseño de las etapas. En contraposición, tiene asociados riesgos potenciales, como el cambio de prestaciones, lo que constituye la incapacidad o dificultad de modificar su estructura de acuerdo a cambios o adición de requerimientos, que afecten significativamente a etapas previas. Para el caso del modelo propuesto, se subsana este ítem realizando un análisis más detallado como parte de la aplicación del modelo. Adicionalmente el modelo propone una arquitectura general que facilita la modularidad de componentes generales, sin comprometer el funcionamiento y especificaciones de cada uno de estos componentes. Cada etapa tiene una estructura interna similar al resto. Una estructura recomendada para las etapas es: Descripción general: Explicación de qué hace o realiza la etapa. Diseño detallado: Diagramas y conceptos del diseño de los componentes o módulos. Formatos y estructuras: Estructuras de entrada y salida, formatos de archivo, protocolos y configuraciones. 70 Codificación: Información general sobre la codificación: lenguajes, métodos, algoritmos. Pruebas: Formatos de aplicación de los planes de prueba. 3.3.2. Discusión Aunque el ciclo de vida de entrega por etapas favorece la gestión de riesgos, es posible considerar como parte del diseño global una planificación de las etapas que permita la implementación temprana de los módulos base: clases y bibliotecas comunes de desarrollo, siguiendo con los mecanismos para entrada de datos y posteriormente el núcleo, considerado como el sistema crítico en sí. Como se encuentra definido en cada etapa, se describen los procedimientos de diseño y prueba. Si bien el ciclo de vida de entrega por etapas se ajusta bien a las condiciones y características del modelo, es posible definir aspectos adicionales que beneficiarían al modelo, tales como: Realizar planificación de las etapas: identificar un orden que permita la realización temprana de revisión y pruebas, como mecanismos de control de calidad. Análisis específico de requerimientos: a fin de definir con mayor detalle cuales serán las funcionalidades y limitaciones del sistema. Definición del sistema crítico: el componente de sistema crítico deberá tener un alcance definido. En rigor, el modelo solo contempla una parte del sistema como crítico, debido al alto costo de desarrollo que podría tener su 71 aplicación. Sin embargo, el componente crítico deberá tener unas condiciones de supervivencia que le permitan operar una parte reducida del sistema completo. La identificación, diseño, codificación y prueba de este componente tendrá mayores exigencias de calidad y verificación, para asegurar confiabilidad. Aplicación de un plan de calidad sobre las etapas: Aunque los criterios del control de calidad se encuentran sugeridos en este modelo, la utilización de otros esquemas no contraría tales propuestas. La aplicación de un plan de calidad solo es la confirmación de otros procesos que se encuentran ligados a la gestión del riesgo del software. Realizar un proceso de diagnóstico y mejoramiento: Como una última etapa no definida completamente en tiempo y alcances, se sugiere incluirla como proceso de acompañamiento y despliegue de la herramienta en el ambiente de operación. 3.3.3. Gestión de riesgos De acuerdo al desarrollo por etapas la gestión del riesgo será definida antes de cada etapa de manera puntual y evaluada finalizando tal etapa, a fin de no acarrear nuevos indicadores de riesgo a las etapas siguientes. Con la planificación de las etapas, se tiene que las primeras etapas tienen una mayor prioridad para el producto, por tanto la gestión debe realizarse intensivamente. La gestión del riesgo se puede dividir en dos subprocesos a ejecutarse como parte del diseño al inicio de una etapa (Estimación) y como parte de la implementación al finalizar la misma (Control). 72 3.3.3.1. Estimación Se busca establecer durante el proceso de diseño qué factores, restricciones del medio o características del producto, pueden representar problemas que generen sobrecostos en tiempo, recursos o personal. Estos riesgos están generalmente asociados al producto específico que se desee obtener. Sin embargo, a nivel de este modelo se puede estimar un riesgo asociado al ciclo de vida a utilizar: Sensibilidad a cambios en los requerimientos Descripción: con el uso de la entrega por etapas es posible que se presente una sensibilidad muy alta a cambios de prestaciones en las etapas que se realicen primero. El problema es latente si el usuario cambia drásticamente las características del desarrollo afectando detalles o estructuras de diseño sobre etapas previas, obligando a redefinir y modificar los subproductos retrasando cronogramas, incrementando costos, etc. Peor caso: en el peor de los casos es necesario reconstruir desde la primera etapa, realizando revisión sobre cada una de las siguientes. Es posible que no se reutilice la codificación realizada. Gestión: como medida tendiente a mitigar el impacto de este riesgo se propone la adición de una etapa 0, en la cual se haga una identificación de requerimientos y prestaciones, que permitan obtener confianza sobre la definición del producto a desarrollar. Excepciones: no cualquier cambio propuesto por el usuario tendría un impacto negativo sobre el modelo aplicado. En algunos casos, utilizar 73 la entrega por etapas es favorable, especialmente si los cambios son dados para etapas no desarrolladas. 3.3.3.2. Control Como mecanismo de monitorización de riesgos se utilizará la información del formato de estimación (punto anterior), evaluando como un criterio cualitativo, cuál fue el impacto del riesgo y cómo se está dando la respuesta. Este control se realizará durante el proceso de codificación, como tareas adicionales a la revisión y prueba. 3.4. Consideraciones de Diseño 3.4.1. Gestión de configuraciones 3.4.1.1. Manejo de configuraciones Como herramientas para la gestión de configuraciones se propone la utilización de: Estándar de Documentación: utilización de estándares para la edición de documentación interna y externa al producto. Listas de correo: Como mecanismo de flujo y almacenamiento, la listas de correo ayudan como instrumento que facilita la comunicación entre el personal involucrado al proyecto. Control de tareas: Identificación de roles sobre el personal de diseño y desarrollo, asignación y ordenamiento de tareas. Asignación de responsabilidades. 74 Cronogramas: Manejo de diagramas de Pert y Gant para conocer actividades, tiempos, ruta crítica. RCS (Revision Control System): sistema de control de versiones que automatiza el almacenamiento, recuperación, acceso, identificación y mezcla de versiones. Como herramienta específica CVS (Code Management System) proporciona estas prestaciones. 3.4.1.2. Control de errores Manejo de listado de errores y uso de excepciones que permitan conocer el comportamiento del sistema y solucionar eficientemente los problemas del producto. 3.4.2. Patrones de diseño Los patrones de diseño de software constituyen un conjunto de principios generales y expresiones que ayudan a desarrollar software. Un conjunto destacado de patrones es GRASP (General Responsabilty Assignment Software Patterns) [CL99], que permite establecer algunos parámetros útiles para el diseño del producto. 3.4.2.1. Modularidad Es la propiedad de un sistema que ha sido descompuesto en un conjunto de módulos coherentes e independientes. Para favorecer la construcción y uso del sistema se realizará un diseño e implementación modular. Se utilizarán los patrones GRASP experto, Alta cohesión y Bajo acoplamiento [CL99]: 75 Experto: Asignar una responsabilidad al experto en información: el módulo que cuenta con la información necesaria para cumplir la responsabilidad. Facilidad de entender, mantener y manipular. Reutilización. Alta cohesión: Asignar una responsabilidad para mantener alta la cohesión. Cuan relacionadas y enfocadas están las responsabilidades de un módulo. Bajo acoplamiento: Asignar una responsabilidad para mantener bajo el acoplamiento. Tener la mínima conexión entre los módulos. 3.4.2.2. Escalabilidad El sistema debe contener un núcleo central que realice las operaciones prioritarias. También contendrá módulos de funcionamiento independiente que interactúen con el núcleo principal y con otros módulos. Este esquema permitirá adicionar otros módulos según se presenten nuevos requerimientos o modificar las características de los existentes. 3.4.3. Diseño crítico De acuerdo al modelo HRT-HOOD [BW94], un objeto HOOD tiene propiedades estáticas (componentes internos funcionales) y dinámicas, las cuales describen los efectos del llamado sobre objetos : Flujo Secuencial: el control es transferido directamente a la aplicación requerida. Flujo Paralelo: el control es transferido al objeto llamado pero independientemente de otros flujos. 76 Aunque el modelo HRT-HOOD está enfocado al diseño de sistemas en tiempo real duro, también es posible su aplicación para sistemas críticos, por lo cual se utilizarán algunos de los conceptos de diseño en este modelo. 3.4.3.1. Diseño lógico de la arquitectura El diseño lógico puede ser hecho independientemente de las restricciones impuestas por el entorno de ejecución. Hay dos aspectos que facilitan el diseño de la arquitectura lógica de cualquier método de modelado para sistemas de tiempo real duros: Primero, soporte con la abstracción que es requerida por los diseñadores. El segundo aspecto involucra restricciones de arquitectura lógica, así que esto puede ser analizado durante el diseño de la arquitectura física. En particular el diseño es forzado para adaptarse a un modelo computacional que facilite el análisis. 1. Capa de Interfaz con el usuario: para el modelo, la interfaz con el usuario, consiste en la visualización y posible interacción del usuario con el sistema. En términos generales tiene una prioridad media-baja en cuanto a uso dentro del sistema crítico, ya que su función corresponde a brindar información gráfica sobre las señales y su comportamiento, mas no es vital para el conjunto del sistema. 2. Capa de alimentación: entrada de datos, para el caso del modelo señales e información asociada específica de la aplicación. 3. Capa de lógica: corresponde al procesamiento de la señal, específicamente detección, clasificación y respuesta. 77 4. Capa de actuador: sistema de respuesta. Interpreta y ejecuta la respuesta de la capa lógica. 5. Capa de comunicaciones: procedimientos y protocolos de comunicaciones entre los módulos. 6. Capa de registro del sistema: como mecanismo de supervisión y depuramiento, se incluyen registros (Logs), indicando estados de los procesos en ejecución, fallos, advertencias, entre otros. 3.4.3.2. Diseño físico de la arquitectura Toma los requerimientos no funcionales para crear un diseño funcional y generar un análisis de organización de tareas que garantice su correcto funcionamiento. La actividad de diseño lógico asegura que todo el diseño conforme un modelo computacional que facilite el análisis del tiempo de ejecución. En general el diseño de la arquitectura física concierte cuatro actividades: 1. Localización de objetos - Localización de objetos en la arquitectura lógica para procesadores con las restricciones impuestas por los requerimientos funcionales y no funcionales. 2. Organización de red - programar la red de comunicaciones para la espera de mensajes. 3. Organización de procesadores - determinar la programación (estática o dinámica) con la cual asegurar que todas las tareas dentro de los objetos residan en los procesadores en el momento de ejecución. 78 4. Dependencia - determinar la capacidad de detectar fallos imprevistos de software o hardware y su tolerancia a ellos. 3.4.4. Excepciones de aplicación Este aparte puede verse como la personalización de los conceptos y métodos desarrollados en el modelo. Para el problema planteado, en términos generales, se podrán utilizar las descripciones y métodos ofrecidos por el modelo. Sin embargo, para algunos casos de aplicación, los conceptos podrían tener otras interpretaciones, adiciones o no aplicación, de acuerdo a la descripción detallada del problema que se tenga. La inclusión de un mecanismo de redefinición de conceptos, permite por una parte hacer más flexible la aplicación del modelo a otro tipo de problemas; por otra parte, diversos tipos de aplicación permitirían la retroalimentación al modelo para futuras revisiones. 3.5. Definición Plan de Pruebas 3.5.1. Sobre el diseño del producto 3.5.1.1. Definición de las etapas de desarrollo Cada etapa es en sí misma es un desarrollo parcial del proyecto total, pero es un sub-producto funcional. Al final de cada etapa se desarrollarán pruebas de verificación del software elaborado. La última etapa de desarrollo corresponderá a la 79 integración de los módulos elaborados anteriormente. 3.5.1.2. Pruebas de integración Como parte del proceso de diseño global del modelo se debe realizar la especificación de los protocolos de comunicación o paso de mensajes y los formatos internos para los datos. Cualquier modificación estará sujeta a aprobación por el diseño detallado de cada etapa de desarrollo. 3.5.1.3. Pruebas de sistema crítico El componente de sistema crítico corresponde a uno o varios módulos del sistema. Debido al nivel de estabilidad que requiere este componente es recomendable que se haga la definición de un plan detallado adaptado a las necesidades del sistema. 3.5.1.4. Pruebas de rendimiento Como parte de la comprobación del producto, se realizarán pruebas de consumo de recursos computacionales. Para facilitar este proceso se recomienda implementar mecanismos que permitan conocer los estados internos de los módulos mediante sistemas de registros del sistema y codificación de mensajes de error. 80 3.5.2. Sobre la funcionalidad del producto La definición de los casos de prueba se realizará por cada etapa. Estas pruebas de funcionalidad consisten en verificar externamente la ejecución del producto, que para el caso del ciclo de vida a utilizar constituye probar los sub-productos y luego el producto final. El esquema general de las plantillas puede ser dado como: Caso de prueba: Nombre del caso de prueba Objetivo de la prueba: Descripción del cometido de esta prueba Configuración hardware y software: requerimientos y configuración del sistema utilizado. Formatos de entrada: Formatos o protocolos de la información de entrada. Formatos de salida: Formatos o protocolos de la información resultante. Procedimiento de prueba: Descripción del procedimiento utilizado por el encargado de la prueba. Resultados: Comentarios de ejecución de la prueba y respuesta del sistema. 3.6. Resumen del modelo En general el modelo presenta y contempla los siguientes conceptos: Planeación: establecer los recursos y medios para la realización del proyecto. Análisis de factibilidad 81 Actividades generales Sistema de Calidad Análisis Global: comprensión de los esquemas de funcionamiento del tipo de sistemas objetivo. Descripción del sistema Análisis de requerimientos Selección del Ciclo de Vida: determinación del modelo de desarrollo del producto de software a seguir. Entrega por etapas Estimación y Control del riesgo Diseño Global: Consideraciones para el diseño de las aplicaciones y concepto de sistema crítico. Gestión de configuraciones Utilización de Patrones Diseño Crítico Plan de pruebas: Como mecanismo de evaluación continua, se establecen procedimientos para la comprobación de la herramienta. Sobre el diseño o pruebas de caja blanca Sobre la funcionalidad o pruebas de caja negra 82 Capítulo 4 Etapas del desarrollo Este capítulo documenta la aplicación del modelo presentado anteriormente, para el caso de la detección y clasificación de eventos sísmicos sobre señales digitales. El problema presenta las condiciones que permiten categorizarlo en el dominio del modelo: entrada de datos, análisis o procesamiento, salida y respuestas. El modelo descrito, constituye una base conceptual que establece métodos y definiciones para problemas del tipo de detección y clasificación de señales digitales. Como ciclo de vida del producto software, el modelo establece los pasos para realizar el análisis y diseño global del problema, permitiendo la definición y ejecución de las etapas descritas para construir la aplicación de software. Como soporte del sistema crítico ofrece la recopilación de criterios y factores que guían las fases de construcción, vinculando todo el proceso de desarrollo con el concepto de calidad de un producto de software. 83 4.1. Planeación 4.1.1. Factibilidad 4.1.1.1. Técnica De acuerdo a la revisión bibliográfica, se conoce la existencia de métodos y procedimientos que pueden ayudar al alcance de las metas del proyecto. A fin de contemplar más alternativas de solución se buscarán nuevos mecanismos que definan los procesos de construcción de la herramienta de software. 4.1.1.2. Económica El OSSO proveerá los recursos humanos, equipos y telecomunicaciones para el desarrollo del proyecto. 4.1.1.3. Operacional Los ítem 1.1.4 y 1.1.5 del Capítulo 1 aportan elementos que sustentan la importancia del problema y algunas alternativas de solución existentes. 4.1.2. Actividades Siguiendo la identificación de actividades del modelo se tiene: Aplicación del modelo: Revisión de Análisis global: a realizar en la descripción del sistema actual. Revisión del Diseño global: Arquitectura general e identificación del componente crítico. 84 Diseño de etapas: Análisis detallado: Identificado como Etapa 0. Identificación de etapas: A partir de la etapa 1 hasta integración de componente y pruebas. Diagnóstico y Mejoras: Aplicación de planes de prueba del sistema. Procesos posteriores al desarrollo para evaluar validez de los procesos. 4.1.3. Sistema de calidad Se consideran los siguientes elementos para uso durante el diseño y codificación: Uso del ciclo de vida de entrega por etapas, según la descripción del modelo. Uso de patrones de diseño GRASP y conceptos de diseño Orientado a Objetos. Uso de un sistema para manejo de código (CVS). Generación de archivos de registros del sistema (LOGs). Codificación y asignación de errores y alertas sobre el sistema. Favorece en la detección de fallos presentados durante la ejecución del sistema. Formatos para aplicación del plan de pruebas de diseño y funcionalidad 85 4.2. Descripción del sistema actual Para tener una correcta identificación de las variables y condiciones del sistema, se propone la descripción formal de las características propias del sistema y sus necesidades. 4.2.1. Análisis detallado (Etapa 0) Siguiendo los métodos propuestos en [CL99], se realizará el análisis detallado del proyecto. 4.2.1.1. Definición del problema Como parte del proceso de observación sismológica, los casos de mayor interés son la ocurrencia de cambios o fenómenos sobre las señales; estos casos pueden presentarse en cualquier momento y tener diversas causas de origen. Se desea conocer cuando las señales detectadas son producidas por movimientos del subsuelo (eventos sísmicos) y buscar un esquema de clasificación basado en las características de la señal. La definición más completa de este punto se encuentra en los ítem 1.1 y 1.2 del Capítulo 1. 4.2.1.2. Listado detallado de requerimientos 1. Lectura de datos de entrada en formato WVM. 2. Lectura y conversión de datos desde archivos almacenados previamente. 3. Mecanismo de visualización de los datos actualmente en uso. 86 4. Mecanismo de configuración de códigos de estaciones y un coeficiente que indique calidad de la señal (valor numérico denominado peso). 5. Registro de funcionamiento del sistema mediante LOGs (mensajes a consola). 6. Determinar la ocurrencia de eventos de interés y establecer un mecanismo de clasificación. 7. Registrar e informar la ocurrencia de eventualidades sobre las señales. 4.2.1.3. Descripción Casos de uso Como metáfora de uso del sistema, se pueden considerar los siguientes elementos. Ver Figura 4.1. Se presentan dos actores: Usuario: puede visualizar información suministrada por el sistema de adquisición y los parámetros de configuración utilizados. Operador: Visualiza y monitorea los estados de operación del sistema. Los posibles errores en la entrada de datos, en la ejecución de los módulos internos, o en las salidas del sistema serán reportados al registro de mensajes del sistema. El operador debe realizar alguna acción para restaurar la operación completa de la herramienta. Cinco casos de uso: Visualización y configuración: Visualizar la señal de las estaciones sismológicas. Realizar configuración para la operación del sistema. 87 Captura de señal: Leer la señal del sistema de adquisición digital. Se utilizará el protocolo de datos nativo del sistema de adquisición. Se registran los estados de funcionamiento de los componentes asociados. Detección: Indica si un conjunto de señales muestran comportamientos o presencia de eventualidades. Clasificación: de acuerdo a la salida otorgada por la detección, la clasificación dará lugar a determinar la clase de comportamiento de la señal entrante. Alerta: respuesta del sistema de acuerdo a la salida del caso de detección. 4.2.1.4. Modelo Conceptual Como una primera aproximación al diseño detallado, los objetos funcionales sobre el sistema se indican a continuación. Se muestra en este modelo conceptual la interrelación entre los componentes. Figura 4.2. 4.2.1.5. Diagramas de Secuencia del Sistema Los diagramas de secuencia muestran una generalización del paso de mensajes entre los actores y casos de uso detectados. Estos diagramas ayudan a comprender el funcionamiento y la interacción de componentes del sistema. Caso de uso Visualización y configuración. Figura 4.3. Caso de uso Captura de señal. Figura 4.4. 88 Figura 4.1: Casos de uso 89 Figura 4.2: Modelo Conceptual 90 Figura 4.3: DSS - Visualización y configuración 91 Figura 4.4: DSS - Captura de señal Figura 4.5: DSS - Detección 92 Caso de uso Detección. Figura 4.5. Caso de uso Clasificación. Figura 4.6. Figura 4.6: DSS - Clasificación Caso de uso emitir alerta. Figura 4.7. 4.2.2. Definición de las etapas 4.2.2.1. Listado de componentes De acuerdo a la estructura general del modelo y con el análisis detallado del sistema a tratar, se pueden deducir algunos componentes funcionales: Entrada de datos Detección de cambios 93 Figura 4.7: DSS - Emisión de alerta 94 Clasificación de eventualidades Alerta Adicionalmente, se requieren algunos componentes ocultos para el usuario, pero de uso en la aplicación: Protocolos y funciones para comunicaciones. Protocolos y funciones para manejo de las estructuras de datos. Sistema de registro de mensajes en consola. 4.2.2.2. Ordenamiento Se puede determinar el orden de construcción de los componentes, buscando reducir el riesgo potencial de la entrega por etapas: sensibilidad en cambios de requerimientos sobre etapas tempranas. Se designarán como etapas tempranas las que ofrezcan mayor independencia de diseño y que definan protocolos y estructuras de información necesarias en etapas posteriores. De acuerdo a estos factores, el orden de las etapas será : Etapa 1: Comunicaciones y registro Corresponde a las estructuras y mecanismos de software que permiten realizar la comunicación entre los módulos internos, el registro de mensajes en consola (LOG) y la manipulación de estructuras de datos. Etapa 2: Entrada de datos Define el mecanismo de entrada de datos, estableciendo comunicación con 95 la fuente que suministra los datos, convirtiéndolos en la estructura interna adecuada. Etapa 3: Detector de cambios Este componente comprende la implementación del sistema que permite detectar los cambios sobre las señales de entrada. Etapa 4: Clasificador de eventualidades Este componente, aunado al trabajo del detector realiza la clasificación de las señales ingresadas. Etapa 5: Sistema de Alerta La alerta constituye el actuador o respuesta del sistema. Puede ser vista como un mecanismo de comunicación hacia otros sistemas o un mecanismo de retroalimentación. Etapa 6: Integración de componentes El modelo sugiere la inclusión de una última etapa para la integración de componentes y pruebas. Esto permite documentar y aplicar de manera homogénea planes de prueba. 4.2.3. 4.2.3.1. Arquitectura de la herramienta S-DCE : Señales - Detector y Clasificador de Eventualidades El sistema S-DCE corresponde a la implementación del diseño modular y Orientado a Objetos. Este sistema se encargará de tomar la señal de una fuente de adquisición de datos, detectar y clasificar las señales de entrada de acuerdo a los criterios definidos internamente y emitir una alerta, según sea necesario. Paralelamente 96 provee un entorno para la visualización y configuración del detector, indicando parámetros generales para el funcionamiento del sistema. Figura 4.8. Figura 4.8: Arquitectura de componentes 4.2.3.2. Componentes GUI: Interfaz de usuario. Sistema adquisición: fuente de señales digitales. Alerta: Actuador o respuesta. Detector: Mecanismo para la detección de cambios abruptos. Clasificador: Mecanismo para la clasificador de señales. IS-1: Interfaz del Sistema 1 para el módulo de adquisición de datos. IS-2: Interfaz del Sistema 2 para el módulo de visualización y configuración. 97 IS-3: Interfaz del Sistema 3 para el módulo de alerta. 4.2.3.3. Características generales Plataforma : GNU/Linux Lenguajes de programación : GNU/C y GNU/C++, Java, Perl. Bibliotecas del sistema : proporcionadas por las librerías propias del sistema operativo • Comunicaciones por sockets. • Manejo de memoria, cadenas, operaciones matemáticas. • Registro de mensajes a consola (syslog). 4.2.4. Sección crítica Las condiciones de estabilidad del sistema están dadas en gran medida por la gestión realizada en el control de calidad del producto de software. Este control se aplica durante los planes de prueba, especialmente en los componentes críticos. Para la aplicación puntual, los componentes críticos serán denominados núcleo, ya que en cierta medida los otros módulos trabajan alrededor de éste. El núcleo se define según los objetivos primarios del sistema, en este caso realizar la detección de cambios sobre el sistema. Cualquier fallo sobre los mecanismos de entrada o salida de datos deberán ser contemplados por el núcleo. 98 Los alcances de la sección crítica del sistema, se encuentran limitados a las condiciones de funcionamiento del sistema operativo y por ende al desempeño del hardware de la máquina. 4.3. Etapa 1: Comunicaciones y control 4.3.1. Descripción Esta etapa busca crear los métodos y funciones para : Realizar la transmisión de datos entre los módulos, utilizando sockets (Mas información A.1.3). Realizar el registro de mensajes en consola, utilizando syslog (Linux system logging utilities). Realizar el manejo de las estructuras de datos descritas en A.1.1 y A.1.2. 4.3.2. Protocolos Las especificaciones de las estructuras de datos utilizadas se encuentran consignados en el Anexo A, A.1.1 y A.1.2. 4.3.3. Codificación La codificación de estos componentes comprenden la generación de librerías y clases que sirvan para realizar : 99 1. Operaciones de transmisión de información localmente o por red de datos utilizando un modelo cliente servidor. 2. Registro de mensajes del sistema. 3. Funciones para el manejo de las estructuras DSRCP y XMLDSRC. 4.3.4. Pruebas Para esta etapa se utilizarán las siguientes fichas de prueba: Caso de prueba : Objetivo : Configuración : Entradas : Salidas : Descripción : Resultados : Transmisión de datos Realizar transmisión de datos mediante el modelo de sockets PC i386 con sistema operativo Linux Archivos planos y binarios. Copia de los archivos enviados. Se realiza la transmisión de archivos planos y binarios. La transmisión de datos utilizando sockets se realizó con éxito. Cuadro 4.1: Prueba: Transmisión de datos Caso de prueba : Objetivo : Configuración : Entradas : Salidas : Descripción : Resultados : Registro de mensajes Realizar el registro de mensajes en Consola PC i386 con sistema operativo Linux Entrada del mensaje a registrar. Formato de registro en Consola. Se realiza el registro de mensajes en Consola, utilizando syslog. Los mensajes son registrados con éxito. Cuadro 4.2: Prueba: Registro de mensajes 100 4.4. Etapa 2: Entrada y visualización de señales 4.4.1. Descripción 4.4.1.1. Enlace al sistema de adquisición Recepción y conversión del formato de los datos del sistema de adquisición. Este componente actúa como un servidor de datos para los otros módulos. Los datos quedan disponibles bajo la estructura XMLDSRC. 4.4.1.2. Cliente de interfaz gráfica Visualiza las señales recibidas, desplegando las ondas para cada canal de datos. También provee un mecanismo simple para configurar la información de las estaciones y su nivel de calidad mediante un parámetro denominado peso. 4.4.2. 4.4.2.1. Diseño detallado Enlace al sistema de adquisición El diagrama de colaboración para este componente se indica en la Figura 4.9. 4.4.2.2. Cliente de interfaz gráfica El diagrama de colaboración para este componente se indica en la Figura 4.10. 4.4.3. Protocolos Los detalles de los protocolos y estructuras de datos se encuentran en el Anexo A, ítem A.1.1 y A.1.4. 101 4.4.4. 4.4.4.1. Codificación Enlace al sistema de adquisición El enlace al sistema de adquisición permite la conexión a una fuente de datos, correspondiente a archivos previamente almacenados. Adicionalmente estos datos se podrán accesar mediante un servidor vía Sockets utilizando Threads (hilos) que proveerá esta información a los otros módulos. Este módulo se encuentra implementado en /C/C++. 4.4.4.2. Cliente de interfaz gráfica Como herramienta para visualizar la información adquirida, se cuenta con un cliente del enlace al sistema de adquisición. Este componente permite realizar una configuración simple de los canales de datos. Este cliente se implementa en Java y la visualización se realiza mediante Applets. 4.4.5. Pruebas Se propone la siguiente ficha de prueba para esta etapa: 4.5. Etapa 3: Núcleo - Detector de cambios 4.5.1. Descripción El detector de cambios corresponde al núcleo o sección crítica. En general este sistema es responsable de indicar donde ocurre un cambio importante sobre la señal, 102 Figura 4.9: DColaboración - Captura de señal Caso de prueba : Objetivo : Configuración : Entradas : Salidas : Enlace y visualización de datos Lee y visualiza los datos del sistema de adquisición. PC i386 con sistema operativo Linux Archivos en formato WVM. Señal visualizada mediante aplicación. Descripción : Se realiza la lectura de archivos WVM. Se provee un mecanismo para suministrar los datos a otros módulos. Resultados : Los datos se leyeron y visualizaron correctamente. Cuadro 4.3: Prueba: Enlace y visualización de datos 103 Figura 4.10: DColaboración - Visualización y configuración 104 bien sea que se presente atenuado o abrupto. Una vez se determine que ha ocurrido un cambio, se procede a llamar al módulo de clasificación, el cual opera en colaboración con este componente. 4.5.2. Diseño detallado El diagrama de colaboración para este componente se indica en la Figura 4.11. Figura 4.11: DColaboración - Detección y Clasificación 105 4.5.3. Protocolos Los protocolos de entrada y salida de datos se encuentran definidos en el Anexo A, ítem A.1. 4.5.4. Codificación Este es un cliente de datos que implementa la estructura XMLDSRC. Codifica el algoritmo STA/LTA (descrito en el Capítulo 2, ítem 2.6.1), aplicando algunos cambios para extraer características de las señales, basado en el estudio de [MDH02]. Luego, se realiza el llamado al proceso de clasificación. 4.5.5. Pruebas Dado que este componente corresponde a la parte crítica del sistema, se define y aplica un plan exhaustivo para la detección de señales. Las fichas de prueba a utilizar son: Caso de prueba : Objetivo : Configuración : Entradas : Salidas : Núcleo - Rendimiento del sistema Medir los niveles de carga y uso de recursos sobre la máquina. PC i386 con sistema operativo Linux Módulo de detección de cambios Reporte sobre niveles de carga en el sistema. Descripción : Se revisa el consumo de recursos que presenta el sistema. Resultados : La máquina no presenta niveles altos de consumo de recursos, excepto para arreglos de datos muy extensos. Cuadro 4.4: Prueba: Núcleo - Rendimiento del sistema 106 Caso de prueba : Objetivo : Configuración : Entradas : Salidas : Núcleo - Conexiones de entrada y salida Comprobar las funciones que realizan la entrada y salida de datos PC i386 con sistema operativo Linux Módulo de detección de cambios Reporte de funcionamiento de las conexiones. Descripción : Se realiza supervisión en la operación de las funciones de entrada / salida de mensajes y datos. Resultados : Las conexiones de entrada y salida responden correctamente a los llamados. Cuando los módulos no se encuentran disponibles, el sistema reporta este suceso. Cuadro 4.5: Prueba: Núcleo - Conexiones de entrada y salida Caso de prueba : Objetivo : Configuración : Entradas : Salidas : Núcleo - Excepciones del detector Comprobar la respuesta del sistema en situaciones de error o no disponibilidad de recursos. PC i386 con sistema operativo Linux Módulo de detección de cambios Reporte con excepciones del sistema Descripción : Se realiza la comprobación de respuesta del sistema ante entradas erróneas o fallos en el acceso a otros componentes. Resultados : El sistema realiza correctamente el registro ante los errores descritos. Cuadro 4.6: Prueba: Núcleo - Excepciones del detector 107 4.6. Etapa 4: Clasificador de eventualidades 4.6.1. Descripción Una vez las señales han sido declaradas como eventualidad, es de utilidad saber si corresponden a algún tipo de clasificación. Sin embargo, dada la naturaleza de las señales y la cantidad de variantes que las afectan, puede obtenerse, para alcances de este prototipo, una caracterización general, que resulta útil para identificar el tipo de señal. A nivel de diseño este componente no tiene grandes requerimientos: básicamente el núcleo del sistema entrega cierta información ya procesada; el clasificador determinará si la eventualidad se encuentra en uno de los grupos de clasificación y retornará una respuesta al detector. Para la implementación de éste módulo, es posible utilizar una gran variedad de técnicas desde algoritmos basados en reglas, estadísticos, técnicas de Inteligencia Artificial o de métodos numéricos. Para clasificar eventos sísmicos existen diversos mecanismos, entre los cuales se destacan técnicas de Inteligencia Artificial 2.7, o aquellos basados en aplicación de filtros para transformar la señal a una equivalente que favorezca un determinado procesamiento. Este módulo implementará un filtro, un algoritmo para extraer características y aplicará un conjunto de reglas, con el fin de simplificar las operaciones. 4.6.2. Codificación Para el caso de aplicación, el clasificador aplica un filtro sobre la señal, extrae un grupo de características relacionadas con la eventualidad detectada y determina 108 la clase a la que pertenece la señal basándose en algunas reglas derivadas de la configuración local de la red de estaciones del OSSO y algunos procedimientos simplificados de localización del evento. Este módulo realiza la aplicación del filtro Discrete Wavelet Transform con Daubechies - 4 para extracción de características, basado en la experimentación de [GEM98]. Para realizar la clasificación se aplican un conjunto de reglas utilizadas por el Área de Sismología de la red del Sur Occidente del OSSO. Las características utilizadas para la clasificación son: Tiempo y amplitud del inicio del evento (Tp y Ap). Tiempo y amplitud máxima (Ts y As). Tiempo finalización del evento (Tc y Ac). 4.6.3. Pruebas Se propone la siguiente ficha de prueba para esta etapa: 4.7. Etapa 5: Sistema de alerta 4.7.1. Descripción Actuando como sistema de control, la alerta corresponde a la respuesta del sistema frente a la ocurrencia de eventualidades, de acuerdo al módulo de detección. Este módulo se encarga de recibir y enviar las alertas generadas por la detección y clasificación de eventualidades. La alerta puede tener múltiples variantes de acuerdo 109 Caso de prueba : Objetivo : Configuración : Núcleo - Funcionamiento del detector Comprobar si el detector funciona correctamente. PC i386 con sistema operativo Linux Entradas : Módulo de detección de cambios y Módulo de conexión de entrada de datos. Salidas : Ocurrencia de cambios o eventualidades sobre las señales. Descripción : Se comprueba el nivel de funcionamiento de la detección de señales. Resultados : Se obtiene las caracterización de las señales donde ocurren cambios de interés (presencia de eventualidades). Cuadro 4.7: Prueba: Núcleo - Funcionamiento del detector Caso de prueba : Objetivo : Configuración : Entradas : Salidas : Clasificación de eventualidades Verificar el funcionamiento de la clasificación PC i386 con sistema operativo Linux Caracterización de las señales Tabla de clasificación de las señales Descripción : Se realiza la verificación en el correcto funcionamiento de la clasificación de las señales. Resultados : Se retorna un registro con los resultados de la clasificación. Cuadro 4.8: Prueba: Clasificación de eventualidades 110 a las necesidades o configuración del sistema. Para el caso de implementación, la función setMedia() soporta en envío de la alerta de texto por correo electrónico. 4.7.2. Diseño detallado El diagrama de colaboración para este componente se indica en la Figura 4.12. Figura 4.12: DColaboración - Emisión de alerta 4.7.3. Protocolos De manera general, los tipos de alerta a ser manejados por el sistema corresponden a: 111 Alerta S-DCE: Fallos importantes sobre la funcionalidad del sistema se catalogan con este tipo de clasificación. Alerta Técnica: Errores externos a S-DCE que indiquen imposibilidad de funcionamiento en las operaciones. Alerta de Eventualidad: Ocurrencia de eventos sísmicos o de otra índole y que requieran atención, de acuerdo a lo establecido en la configuración de este módulo. Estas alertas poseen clasificaciones internas dinámicas, que van cambiando de acuerdo a las condiciones y características resultantes en los módulos de detección y clasificación. 4.7.4. Codificación Para la implementación de este componente se generará un reporte de eventualidad. Los servicios que realiza la alerta son: Se provee un servidor que atiende los llamados del detector. Se realiza el registro de un reporte de alerta. Se ejecuta la acción de alerta de acuerdo a la configuración específica. 4.7.5. Pruebas Se proponen la siguientes fichas de prueba para esta etapa: 112 Caso de prueba : Objetivo : Servidor de alertas Verificar el funcionamiento del servicio de recepción de alertas Configuración : Entradas : Salidas : PC i386 con sistema operativo Linux Mensajes de alerta de prueba desde el detector Paso del mensaje al envío de alertas. Descripción : El servidor debe recibir y entregar el mensaje para que sea enviado. Resultados : El servidor entrega correctamente el mensaje. Cuadro 4.9: Prueba: Servidor de alertas Caso de prueba : Envío del mensaje de alerta Objetivo : Realizar envío del mensaje de alerta. Configuración : PC i386 con sistema operativo Linux Entradas : Salidas : Mensaje desde el servicio de recepción de alertas. Envío del reporte de eventualidad. Descripción : Se debe recibir y construir el reporte de eventualidad. Resultados : En reporte es enviado correctamente. Cuadro 4.10: Prueba: Envío del mensaje de alerta 113 4.8. Etapa 6: Integración de componentes y pruebas 4.8.1. Descripción Como etapa final del ciclo de vida de desarrollo se realiza la integración de los módulos antes desarrollados. Adicionalmente se complementa y aplica el plan de pruebas definido por el modelo utilizado. 4.8.2. Diseño detallado El Diagrama de clases, indica como se realiza la interconexión y paso de mensajes entre los módulos y clases del sistema, Figura 4.13. 4.8.3. Pruebas Se describen a continuación las pruebas a realizar para esta etapa. Los resultados de las mismas se especifican en el siguiente Capítulo, con el fin de dar más detalle sobre los datos, valores obtenidos y valores esperados. 4.8.3.1. Pruebas de caja blanca Estas pruebas, se enfocan principalmente en analizar el funcionamiento de la sección crítica del sistema integrado ahora con el resto del sistema. 4.8.3.2. Pruebas de caja negra Contemplando el sistema en conjunto, estas pruebas consisten en ejecutar de manera continua introduciendo señales conocidas de las cuales se conocen sus carac114 Figura 4.13: Diagrama de clases 115 terísticas, contrastando los resultados o reportes entregados por el sistema con la información conocida de las señales de entrada. 116 Capítulo 5 Análisis de resultados 5.1. Estabilidad y rendimiento Dado que la herramienta desarrollada, constituye un prototipo funcional de la aplicación en conjunto. Se dará en esta sección una medida teórica de la estabilidad de la aplicación basándose en las pruebas de funcionamiento de cada componente y en la utilización de algunos patrones que favorecen la operación planeada de la aplicación y en los conceptos derivados del modelo propuesto. 5.1.1. Etapa 1 - funciones comunes Sockets : La clase PracticalSocket permite la creación y manipulación de sockets para cliente y servidor. Se probaron de manera independiente con programas de ejemplo. DSRCP : funciones para el manejo de esta estructura. Básicamente se grabaron y leyeron datos de prueba generando archivos planos y comparándolos poste117 riormente. XMLDSRC : funciones para el manejo de esta estructura. Se realizó un proceso similar al anterior, solo que se agregó el proceso de conversión de XMLDSRC a DSRC y viceversa. LOG : funciones para la lectura del archivo de mensajes. Se probaron de manera independiente los procesos de registro de mensajes en consola. 5.1.2. 5.1.2.1. Etapa 2 - Entrada y visualización Módulo Servidor de Adquisición Este programa se encarga de leer un archivo WVM, genera y asigna la estructura DSRCP y posteriormente la convierte a XMLDSRC para dejarla disponible a través del servidor de sockets. El proceso de lectura de WVM se realizó de manera independiente, comparando las señales con las obtenidas con otros programas. 5.1.2.2. Módulo Cliente GUI Este cliente en Java despliega las señales en un Applet. Se recibe del servidor de adquisición la estructura XMLDSRC, se convierte a DSRCP y se posteriormente se dibujan las ondas. Las estructuras DSRCP y XMLDSRC previamente probadas funcionan correctamente. 5.1.3. Etapa 3 - Núcleo Detector El cliente de detección está compuesto por el cliente que recibe los datos en XMLDSRC, los cuales se convierten a DSRCP. A la señal de entrada se le aplica el filtro Wa118 velet y enseguida se llama la función de detección desde el objeto Triggers, la cual retorna una segunda estructura DSRCP. Las funciones de Triggers se han probado de manera independiente con antelación. Aunque se hicieron cambios sobre tales funciones en etapas posteriores, estos no afectaron el rendimiento del componente. 5.1.4. Etapa 4 - Clasificación de eventualidades Este componente codifica el filtro wavelet y las funciones de clasificación. Para el filtro se utiliza código fuente ya existente, lo que favorece la etapa de mantenimiento y brinda cierto grado de confianza en cuanto a su estabilidad. La clasificación se realiza basándose en reglas y fue probada de manera independiente. Resultados explícitos de este proceso se pueden ver en 5.2. 5.1.5. Etapa 5 - Servidor de Alertas El servidor de alertas realiza el envío del reporte generado durante la clasificación. Este componente es relativamente simple dado que sitúa un servidor que atiende los llamados del detector y envía por email el reporte entregado. 5.1.6. Discusión El factor de estabilidad del sistema se observa en esta sección como una valor cualitativo de las pruebas individuales que han tenido los componentes del sistema. Sin embargo, es posible diseñar y aplicar otros mecanismos de comprobación que ayuden a determinar con buen grado de confiabilidad, la estabilidad y el rendimiento funcional de la herramienta. 119 5.2. Verificación y validación Desde el punto de vista del funcionamiento de la aplicación, se tiene : 5.2.1. Primera verificación 5.2.1.1. Propósito Verificar el funcionamiento de la detección y clasificación de eventualidades sobre archivos previamente clasificados. 5.2.1.2. Descripción Se comparan los tiempos de ocurrencia de eventualidades como eventos sísmicos y ruido, presentes en un conjunto de registros previamente almacenados y catalogados por el Área de Sismología del OSSO. 5.2.1.3. Muestra Se utilizarán 10 archivos previamente detectados y clasificados correspondientes a diferentes periodos de la red de estaciones del OSSO. 5.2.1.4. Resultados El formato de reporte S-DCE se indica en A.2.2. Algunas convenciones utilizadas: SW Corresponde a la detección y localización realizada por el Área de Sismología. 120 LOCAL Evento local, refiere al rango de cobertura con radio de 200Km desde el centro de la red de estaciones. REGIONAL Evento regional, refiere al rango de cobertura con radio entre 200 y 2000 Km desde el centro de la red de estaciones. TELESISMO Evento telesísmico o lejano, refiere al rango de cobertura con radio mayor a 2000 Km desde el centro de la red de estaciones. RUIDO (NOISE) Presencia de condición de ruido o señal adherida no deseada. Ver resultados Tabla 5.1. 5.2.2. 5.2.2.1. Segunda verificación Propósito Comprobar el funcionamiento de la detección y clasificación de eventualidades sobre datos continuos sin clasificar. 5.2.2.2. Descripción Se ingresa el conjunto de datos y se examinan los resultados de la aplicación, a fin de compararlos con los resultados obtenidos de manera tradicional. 5.2.2.3. Muestra Se utilizará 1 día de datos correspondientes a señales de la red de estaciones del Sur Occidente del OSSO. 121 Evento Análisis 1995 04 06 - 10:31:11 S-DCE coincide en clasificarlo como evento LOCAL, con hora de llegada del evento Apr 6 10:31:13 1995. Detalles en B.1.1. 1995 08 09 - 10:30:40 S-DCE coincide en clasificarlo como evento REGIONAL, con hora de llegada del evento Aug 9 10:30:50 1995. Detalles en B.1.2. 1995 07 16 - 16:40:26 S-DCE coincide en clasificarlo como evento LOCAL, con hora de llegada del evento Jul 16 16:40:30 1995. Detalles en B.1.3. 1995 04 13 - 18:28:34 S-DCE ha clasificado este evento como REGIONAL, mientras SW lo ha hecho como LOCAL. Sin embargo, 4 de los 9 canales han sido clasificados como LOCAL. La hora de llegada del evento Apr 13 18:28:33 1995. Detalles en B.1.4. 1996 09 05 - 08:22:22 S-DCE ha clasificado este evento como LOCAL, mientras SW lo ha hecho como TELESISMO. De acuerdo a las reglas aplicadas, este tipo de clasificación depende muchas veces de la presencia de otros factores que el mód. de clasificación no contempla. La hora de llegada del evento Sep 5 08:22:28 1996. Detalles en B.1.5. 1996 11 15 - 02:53:06 S-DCE ha clasificado este evento como regional, mientras SW lo ha hecho como LOCAL. Sin embargo, 4 de los 9 canales han sido clasificados como LOCAL. La hora de llegada del evento Nov 15 02:53:13 1996. Detalles en B.1.6. 1998 11 07 - 03:10:46 S-DCE ha clasificado esta señal como RUIDO, mientras SW lo ha hecho como LOCAL. Sin embargo, en 2 canales se ha identificado como LOCAL. La hora de llegada del evento Nov 7 03:10:52 1998. Detalles en B.1.7. 1998 12 03 - 00:55:35 S-DCE coincide en clasificarlo como evento LOCAL, con hora de llegada del evento Dec 3 00:55:37 1998. Detalles en B.1.8. 1998 11 05 - 01:03:28 S-DCE ha clasificado este evento como LOCAL, mientras SW lo ha hecho como REGIONAL. Sin embargo, en 2 canales fué declarado LOCAL y en otros 2 REGIONAL. La hora de llegada del evento Nov 5 01:03:32 1998. Detalles en B.1.9. 1998 12 10 - 04:19:36 S-DCE ha clasificado esta señal como RUIDO, mientras SW lo ha hecho como LOCAL. Sin embargo, en 3 canales se ha identificado como LOCAL. La hora de llegada del evento Dec 10 04:19:41 1998. Detalles en B.1.10. Cuadro 5.1: Resultados primera verificación 122 5.2.2.4. Resultados El formato de reporte S-DCE se indica en A.2.2. Algunas convenciones utilizadas: SW Corresponde a la detección y localización realizada por el Área de Sismología. LOCAL Evento local, refiere al rango de cobertura con radio de 200Km desde el centro de la red de estaciones. REGIONAL Evento regional, refiere al rango de cobertura con radio entre 200 y 2000 Km desde el centro de la red de estaciones. TELESISMO Evento telesísmico o lejano, refiere al rango de cobertura con radio mayor a 2000 Km desde el centro de la red de estaciones. RUIDO (NOISE) Presencia de condición de ruido o señal adherida no deseada. Ver resultados Tabla 5.2. 123 Evento Análisis 2003 12 25 - 06:59:03 S-DCE ha clasificado este evento como LOCAL, mientras SW lo ha hecho como TELESISMO. De acuerdo a las reglas aplicadas, este tipo de clasificación depende muchas veces de la presencia de otros factores que el mód. de clasificación no contempla. La hora de llegada del evento Dec 25 06:57:26 2003. Detalles en B.2.1. 2003 12 25 - 07:13:00 S-DCE coincide en clasificarlo como evento REGIONAL, con hora de llegada del evento Dec 25 07:11:57 2003. Detalles en B.2.2. 2003 12 25 - 07:21:12 S-DCE clasifica esta señal como como evento LOCAL, con hora de llegada del evento Dec 25 07:21:12 2003. SW no muestra información en su localización, pero considera que efectivamente corresponde a un evento, pero es muy dificil localizarlo por los niveles de ruido y ondas del evento anterior. Detalles en B.2.3. 2003 12 25 - 08:55:20 S-DCE coincide en clasificarlo como evento LOCAL, con hora de llegada del evento Dec 25 08:55:31 2003. Detalles en B.2.4. 2003 12 25 - 20:34:18 S-DCE ha clasificado este evento como LOCAL, mientras SW lo ha hecho como REGIONAL. Sin embargo, en 2 canales fué declarado REGIONAL y en 4 LOCAL. La hora de llegada del evento Dec 25 20:34:13. Detalles en B.2.5. Cuadro 5.2: Resultados segunda verificación 124 Capítulo 6 Conclusiones 6.1. Sobre el Modelo Utilización de la ingeniería de software como mecanismo de aplicación y evaluación de la eficiencia y calidad operacional de un sistema de función crítica, visto como la definición de criterios de operación bajo condiciones y límites establecidos por el sistema y por las características externas del medio externo. En el desarrollo de productos de software las etapas de análisis de requerimientos y diseño toma gran parte del tiempo del proyecto. El modelo planteado en este proyecto pretende establecer unos parámetros de diseño generales que permitan agilizar la implementación de proyectos tipo sistemas de control por software, cuya base común es el procesamiento de señales digitales en busca de comportamientos de interés (caracterización de señales). La utilización de un ciclo de vida específico para el desarrollo de software, 125 basado en las condiciones del tipo de problemas a tratar, constituye uno de los alcances notables del modelo ofrecido. El ciclo de vida contempla la noción de fases generales que constituyen un marco de situación, estableciendo fases de solución para un subproblema concreto. Con el constante desarrollo e innovación de las tecnologías utilizadas en las implementaciones de software, es deseable tener un modelo no dependiente de mecanismos, métodos y plataformas específicas, adecuándolo a necesidades y ambientes particulares. Si bien se han utilizado conceptos de paradigmas como el de desarrollo orientado a objetos o sistemas en tiempo real, el modelo ha buscado generalizarse para que su interpretación pueda hacerse según condiciones singulares de los problemas a tratar. La consideración de un mecanismo para realizar la gestión del riesgo hace parte de los principios técnicos para el desarrollo de proyectos de ingeniería. A nivel de la Ingeniería de software y del modelo planteado, la gestión actúa como instrumento para el control de calidad y como guía para conocer las limitaciones y características del ciclo de vida. 6.2. Sobre la herramienta La implementación del software, constituye una aplicación y comprobación simple del modelo descrito. Desde el punto de vista técnico, se han utilizado conceptos básicos como : Modularización que favorece el depuramiento y codificación de la aplicación durante el proceso de implementación. Durante el mantenimiento del 126 software, favorece en el entendimiento y adición de características. Uso de protocolos y estándares abiertos para comunicaciones y programación, facilitando el paso de mensajes y datos entre módulos y métodos internos y externos. Diversos lenguajes de programación, realizando implementación de algunos módulos en lenguajes que ofrezcan mejores condiciones que otros en ambientes particulares de uso. Siguiendo las actividades sugeridas en el modelo, se presentan beneficios al tener una estructura homogénea y clara reflejada en el diseño y la codificación del producto de software. La aplicación de las pruebas durante las etapas, permiten agilizar el proceso de depuramiento, ya que no es necesario tener toda la aplicación funcionando, sinó que se diagnostica el funcionamiento de componentes más simples y recientemente codificados. Utilización de estructuras de datos de varios ordenes: la estructura DSRCP como estructura nativa del lenguaje de programación es rápida en uso. la estructura XMLDSRC como estructura de alto nivel, basada en etiquetas facilita el transporte entre aplicaciones de diversos lenguajes y arquitecturas. 6.3. Conclusiones generales Se realizó la construcción de un modelo funcional para la caracterización de señales. 127 Establecimiento de mecanismos para el procesamiento adaptativo, basado en el comportamiento dinámico de las señales y las características generales del procesamiento de señales digitales. Implementación de un sistema de control por software, dando la categorización de sistema de control por sus condiciones de operación, construcción de alto nivel y con la flexibilidad para personalizar, propio de los sistemas de software. Elaboración de una herramienta para la detección de eventos, independiente de un sistema de adquisición específico. Utilización de la plataforma Linux y el modelo de desarrollo de código abierto (OpenSource), para la implementación de software robusto siguiendo principios de diseño de un sistema crítico y de bajo costo de construcción en software y hardware. Factibilidad de aplicación del modelo y desarrollo técnico a otras tipos de problema que requieran procesamiento de señales, específicamente detección de cambios o eventualidades sobre señales digitales. Con la propuesta de un modelo ’portable’ en cuanto a análisis y diseño se observa la factibilidad de enfocarlo, bajo cierto nivel de abstracción a problemas similares en estructura, puntualizando en los detalles propios del sistema. El modelo considera aspectos de gestión de proyectos, análisis, diseño del software, gestión de riesgos, control de calidad, entre otros. 128 Bajo la idea de cómo se concibe este modelo, se puede evaluar si es posible aplicar el concepto general a nuevos campos o ambientes, definiendo nuevos modelos generales que puedan ser correspondientes a tipos de problemas específicos. Parte de la utilidad que tendría, es el poder agilizar la producción de software, sin comprometer la no realización de actividades como el análisis y diseño, poniendo en riesgo el desarrollo del proyecto. 129 130 Capítulo 7 Trabajo futuro y recomendaciones Este trabajo se ha enfocado principalmente en proponer un modelo de diseño general que permita su aplicación a problemas relacionados con procesamiento de señales, específicamente de cambios abruptos o detección de eventualidades (como el efecto de estar sujeto a cualquier evento o contingencia) sobre la señal y su uso como sistema de control para aplicaciones de uso crítico. El enfoque de sistema crítico para aplicaciones industriales y científicas ha estado dirigido a implementaciones en hardware y firmware, de alto costo, que son de uso específico, pero necesarias por su alto grado de confiabilidad. Sin embargo, algunos sistemas pueden establecer un umbral de confiabilidad en límites ajustables a la relación costo - beneficio y prestaciones. El modelo y las implementaciones no pretenden reemplazar sistemas de misión crítica complejos o de tiempo real duro, 131 cuyos requerimentos exigen el uso de componente de hardware para lograr la velocidad y confiabilidad necesaria. Si bien la implementación realizada aporta elementos para satisfacer necesidades del problema detectado en el sistema, se pueden realizar mejoras y adiciones técnicas a la solución. El modelo planteado presenta una gama de oportunidades en cuanto a futuros desarrollos teóricos y prácticos: A nivel práctico, con la investigación y mejoramiento de las técnicas de inteligencia artificial y los métodos de computación matemática, el procesamiento de señales digitales podrá realizar gran cantidad de tareas, y si estas a su vez son retroalimentadas o conectadas a otros sistemas se supone una arquitectura general compuesta por macro-componentes funcionales por sí mismos e interoperables con otros. A nivel teórico, ampliando y redefiniendo las conceptos, estructuras y métodos mediante la experimentación con casos de aplicación. 132 Bibliografía [BN99] Baseville, Michele and Nikiforov, Igor V. 1999, Detection of Abruptes changes: Theory and application. [JHC00] Caicedo, Jhon Henry. 2000. Diseño e implementación de un sistema de supervisión en tiempo real para adquisición continua de datos usando Linux. Universidad del Valle. [BW94] Burns, A. and Wellings, A.J. 1994. A Structured Design method for Hard Real-time Systems. Real-time and Destributed Systems Research Group, Department of Computer Science University of York. [BM01] Blais, Andrew introduction and to Mertz, neural David. networks. 2001 . An http://www- 106.ibm.com/developerworks/linux/library/lneural/?dwzone=linux [DG94] Dennis Lawrence, J. and Gary Preckshot, G. 1994. Design Factors for Safety-Critical Software. Lawrence Livermore National Laboratory. 133 [FH98] Fedorenki, Yu. V. and Husebye, Eystein. 1998. Simulating Seismic Signal Detectors. [FB98] Fisk, Mark and Bottone, Steven . 1998. Event characterization using regional seismic data. Mission Research Corporation. [GEM98] Gendron, Paul; Ebel, Jhon and Manolakis, Dimitris. 1998. Automatic Seismic Event Detection , Characterization and Classification : A Probabilist Approach. [CHT98] Hayward, Christopher T. 1998. An evaluation of the GSET-T3 prototype International Data Center Seismic Signal Detector. [JK02] Kitter, J. 2002. Notas del Seminario de Reconocimiento de Patrones. Universidad de Surrey. [Kuo96] Kuo, Benjamin C. 1996. Sistemas de control automático 7a Edición. ISBN 968-880-723-0. [CL99] Larman, Craig. 1999. UML y Patrones. ISBN:970-17-0261-1. [LEE91] Lee, W.H.K and Stewart, S.W. 1981. Principles and applications of microearthquake networks. [LF94] Linville, A. Frank. 1994. Single-channel digital filter design for seismic applications. [SM96] McConnell, Steve. 1996. Desarrollo y gestión de proyectos informáticos. Microsoft Press. ISBN:84-481-1229-6 134 [MDH02] Merchant, Bion J.; Drake, Jeffrey T.; Hart, Darren; Young, Christopher J. 2002. Multiple Algorithm Signal Detection using Neural Networks. 24th Seismic Research Review. [PTV92] Press, William, Teulkosky Saul, Vetterling William, Flannery Brian. 1992. Numerical recipes in C: the art in scientific computing. 2da. Edición. Cambrigde Press ISBN:0-521-43108-5 [PGN00] Neumann, Peter G. 2000. Practical Architectures for Survivable Systems and Networks. Computer Science Laboratory SRI International. [ISO12207-1] Norma ISO 12207-1. [RSP98] Pressman, Roger S. 1998. Ingeniería de software: un enfoque práctico. 4ta. Edición. ISBN:0-07-052182-4. [RC92] Roberto, Vito and Chiaruttini, Claudio. 1992. Seismic Signal Understanding: A knowlegde-Based Recognition System. IEEE Transactions on signal processing [RD97] R&D Programme in Safety Critical Systems. Advances in Safety Critical Systems Results and Achievements from the DTI/EPSRC Compiled and Edited by Mike Falla JUNE 1997 [SRC02] Seismology Research Centre, 2002, Guria V5.05 Manual - Trigger Algorithms. http://www.seis.com.au/InstAndSoft/Manuals/G_V505_Manual/TriggerAlgorithm.html 135 [SRC00] Seismology Research Centre. 2000. Earthquake Preparation, Alarm and Response Service. [SWS99] Smith, Steven W. 1999. The Scientist an Engineer’s Guide to Digital Signal Processing. California Techical. Publishing. ISBN 09660176-6-8. [SS99] Soliman, Samir S. and Srinath, Mandyam D. 1999. Señales y Sistemas continuos y discretos. 2a edición. ISBN 84-8322-154-3. [SPIHT] SPIHT, Análisis de señales mediante wavelets. 2003 http://coco.ccu.uniovi.es/immed/compresion/descripcion/spiht/wavelets/wavelets.htm [TC98] Torrence, Christopher and Compo, Gilbert P. 1998. A Practical Guide to Wavelet Analysis. 136 Apéndice A Estructuras de control A.1. Flujo de datos A.1.1. Estructura DSRCP La estructura DSRCP (Data SouRCe Protocol ) se creó teniendo en cuenta: Estructura residente en memoria primaria. Permite manejo de información de diversas fuentes. Independencia del formato nativo de los sistemas de adquisición. count : cantidad de canales o flujos de datos. DSRCmsg 1 DSRCmsg 2 ... DSRCmsg count Descripción struct dsrc_data_array 137 { int count; struct dsrc_data_msg **msg; }; struct dsrc_data_msg_header { char network[STA_ID_LEN + 1]; char sta[STA_ID_LEN + 1]; char stream[STREAM_ID_LEN + 1]; char chan[CHAN_ID_LEN + 1]; double stime; //start time double etime; //end time int nsamp; //number of samples int samprate; //samples rate }; struct dsrc_data_msg { struct dsrc_data_msg_header hdr; int maxsamp; int *data; //array data }; A.1.2. Estructura XMLDSRC <?XML S-DCE_DSRC_1.0 ?> 138 <DS_ARRAY> <COUNT>countvalue</COUNT> <DS_MSG>XMLMSG-1</DS_MSG> <DS_MSG>XMLMSG-2</DS_MSG> . . . <DS_MSG>XMLMSG-countvalue</DS_MSG> </DS_ARRAY> <DS_MSG> <DS_HDR>XMLHDR</DS_HDR> <MXSM>maxsampvalue</MXSM> <DS_DATA>XMLDATA[maxsampvalue]</DS_DATA> </DS_MSG> <DS_HDR> <NET>netvalue</NET> <STA>stationvalue</STA> <STR>streamvalue</STR> <CHN>channelvalue</CHN> <STM>starttimevalue</STM> <ETM>endtimevalue</ETM> <NSM>numsampvalue</NSM> <SRT>sampratevalue</SRT> </DS_HDR> <DS_DATA> <I>samplevalue-1</I> . . . 139 <I>samplevalue-numsampvalue</I> </DS_DATA> A.1.3. Comunicaciones Los sockets son un mecanismo o interfaz para comunicaciones, que habilitan las aplicaciones a operar localmente o a través de una red de datos. Ejemplos de su aplicación son comunes en aplicaciones Unix como ftp, rlogin, telnet, etc. A.1.3.1. Tareas de un Servidor sockets Paso 1: Crear un socket Paso 2: Nombrar el socket Paso 3: Servidor de procesos asigna una cola para escuchar Paso 4: Servidor espera por una conexión A.1.3.2. Tareas de un Cliente sockets El cliente crea un socket sin nombre, mediante un llamado a la función socket(). El cliente que usa la función connect(), establece una conexión al servidor usando el nombre del servidor y la dirección de acceso del socket (puerto). A.1.4. Registro de mensajes La siguiente estructura permite el almacenamiento de los mensajes utilizados para el registro en consola (LOG) y la generación de reportes en el módulo de alertas. 140 typedef struct _dcelog { char logid [128]; char logmod [512]; char logdesc [MXLINE]; char logact [MXLINE]; char logstat [MXLINE]; } dcelog; A.1.5. Formato WVM Especificación del formato WVM utilizado en el OSSO: typedef struct _station_info { char station_id[11]; /* Nombre Estacion Max 10 Chars */ UWORD channel; /* Canal */ char unused_fields[12]; /* No usados, 12 caracteres */ } station_info; typedef struct _time_info { INTEGER time; /* Segundos desde 1970 (epoch) GMT */ UWORD millitm; /* Milisegundos */ WORD timezone; /* ???? 0x01E0 = 480 en OSSO ? */ WORD dstflag; /* 0x0001 en OSSO ? */ } time_info; typedef struct _wvmheader { WORD magic_number; /* Siempre 00FF */ UWORD channel_length; /* 0200 en OSSO */ 141 WORD scan_count; /* 0009 Numero de Canalaes */ FLOAT srate; /* E7 9C C9 42->100.81 Hz */ UWORD channel_list[16]; /* Orden de Dig de Canales */ UWORD gain_list[16]; /* Ganancia de cada canal */ WORD /* Todos cero en OSSO ? */ channel_stat_list[32]; station_info station_list[16]; /* Datos de las estaciones */ time_info trigger_time; /* Hora del Evento */ time_info channel_start_time; /* Hora inicio grabacion */ char cal_channel_start_time[10]; /* Unused 10 chars */ char unused[472]; /* No usados */ } wvmheader; A.2. Configuraciones A.2.1. Parámetros de configuración general /* Archivo : dceconfig.h Proyecto : S-DCE Descripcion : Parametros de configuracion del sistema */ #ifndef __DCE_CONFIG_H #define __DCE_CONFIG_H /**** Variables Adquisicion 142 ****/ // Numero Maximo de Canales #define DCE_NET "OSSO" // Numero Maximo de Canales #define DCE_NCHAN 16 #define WVM_BLOCK 512 #define WVM_NUMBL 64 /**** Variables Deteccion ****/ #define STA_WINDOW_S 1 #define LTA_WINDOW_S 10 #define RATIO_TRIGG 1.5 #define RATIO_DTRIG 1.3 #define SOFT_PEND 1.1 #define PEM_SEC 5 #define PET_SEC 5 /**** Variables Comunicaciones ****/ // Configuracion Servidor de Sockets/Clientes #define DCE_ADQPORT 43210 #define DCE_ADQHOST "localhost" #define DCE_ALERTPORT 43211 #define DCE_ALERTHOST "localhost" 143 // Identificacion de los modulos S-DCE #define DCE_MODADQ "mod_adq" #define DCE_MODALR "mod_alert" #define DCE_MODCLA "mod_classif" #define DCE_MODGUI "mod_gui" #define DCE_SDETEC "s-detect" // Localizacion Base de errores #define DCE_LOG_FILE "dcelog.msg" #endif A.2.2. Emisión de alertas Como actuador del sistema de control, el proceso de emisión de alertas es un módulo completamente abierto a implementación del usuario. Una vez el detector determina la ocurrencia de eventualidades envía un reporte a la emisión de alertas el cual determinará qué hacer con éste. En una primera versión del componente de emisión de alertas, el reporte se envía a una dirección de correo, a través de la función setMedia(). La utilidad principal de este sub-sistema consiste en que puede ser construido en diversas etapas o realizar diversas acciones por una sola alerta. El formato utilizado se describe a continuación: S-DCE v. S-DCE y versión utilizada 144 Esta seccion hace un resumen de la detección < <Alert Report > > y clasificación. TRIGGER Apply [FUNCTION]. Found in [N] Channels. FUNCTIONS especifica la función o meca[CLASSTYPE] generate aprox. at [DATE TIME] trigger, nismo utilizado para realizar la clasificación. N, indica el número de canales en los que se activado el DETECTOR . CLASSTYPE indica el tipo de clasificación que se presenta en la mayoría de los canales. DATE TIME es la menor hora de la EVENTUALIDAD detectada. < <Channels Details > > Esta sección presenta en detalle los datos de detección y clasificación para cada canal. 145 [GENTYPE detected in [NETWORK]-[CHAN]] - Declared [OTHERCOND] [CONDVALS]. [CLASSTYPE] at [DATE TI- ME][CLASSVALS]. GENTYPE, muestra el tipo general de la cla[GENTYPE detected in sificación. NETWORK corresponde a la Red [NETWORK] - [CHAN]] de donde provienen los datos y CHAN el ca- - nal específico. OTHERCOND y CONDVALS Declared [OTHERCOND] es una característica extra, junto con el va- [CONDVALS]. [CLASSTYPE] at [DATE TI- ME][CLASSVALS]. lor asociado. CLASSTYPE indica para cada canal el tipo de clasificación obtenido. DATE TIME la hora de la EVENTUALIDAD y CLASSVALS algunos valores característicos asociados a la clasificación. A.2.3. Manejo de errores Como plataforma para el control de excepciones y errores del sistema se tiene: A.2.3.1. Operaciones de control Las señales de control del sistema son: 146 OK Las operaciones se ejecutaron exitosamente. WARNING Se ha detectado una eventualidad. ERROR Se ha presentado un error en uno de los componentes. Sin embargo, se puede continuar. FATAL Error irreparable. Intervención del operador es requerida inmediatamente. Si las señales son OK o WARNING el registro en consola es de aviso y se reporta como Mod_DCE [dcelog.logid] - dcelog.logdesc (dcelog.stat) Si las señales son ERROR o FATAL el registro incluye una acción sugerida: Mod_DCE [dcelog.logid] - dcelog.logdesc (dcelog.stat) : dcelog.logact A.2.3.2. Base de mensajes La base contiene los mensajes que se reportan sobre consola cuando se presentan señales de control que permitan evaluar el estado de funcionamiento de la aplicación. La base de mensajes tiene dos fuentes: Mensajes generados de acuerdo al procesamiento (detección y clasificación) que se realiza. Estos mensajes son generados OnFly (en tiempo de ejecución). Mensajes tomados de archivos planos con estados y comportamientos previamente definidos. Para S-DCE, la base tiene los siguientes registros. 147 # DCE System Messages #id{ # Componente # Descripcion # Accion # Estado: OK, ERROR, FATAL, WARNING #} COM1{ COMMUNICATIONS Connect to Adq_Server Recv signals OK } COM2{ COMMUNICATIONS Connect to Adq_Server Can’t connect to server. Please check this.. FATAL } COM3{ COMMUNICATIONS Connect to Alert_Server Sending Alert Msg OK } 148 COM4{ COMMUNICATIONS Connect to Alert_Server Can’t connect to server. Please check this.. ERROR } COM5{ COMMUNICATIONS Error recv data Zero data receive from server FATAL } COM6{ COMMUNICATIONS adqServer Starting fine! OK } COM7{ COMMUNICATIONS adqServer Starting Can’t begin socket ServerThread FATAL } COM8{ 149 COMMUNICATIONS adqServer threading Can’t create thread. Please check.. FATAL } ACQ1{ ACQUISITION Reading dataInputStream Can’t open datasource FATAL } ALR1{ REPORT Critical, report no send report resource no available ERROR } DET1{ DETECTOR DSRC format is incorrect Can’t read dsrc format. Please Check. FATAL } DET2{ TRIGGER 150 Trigger condition match Possible eventualitie.. WARNING } 151 152 Apéndice B Pruebas S-DCE B.1. Eventos previamente detectados Eventos localizados por la red SW del OSSO versus S-DCE. B.1.1. Evento 1995 04 06 - 10:31:11 ESTACION HORA EVENTO TIPO DURACION HOBC E P 1 950406103111.34 480.1 L 75. 690.1 ANCC E P 2 950406103123.08 110.2 39.3 E S 2 L 109. 160.3 DIAC E P 2 950406103122.33 50.2 L 103. 50.2 HOQC E P 2 950406103122.33 80.1 L 108. 100.2 PEIC E P+1 950406103115.20 50.1 L 78. 50.3 CLMC I P C 0 950406103117.41 290.1 L 93. 260.1 AZUC E P 2 950406103117.42 160.2 L 121. 120.3 153 ————— S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 9 channels.EV.LOCAL generate trigger, aprox. at Thu Apr 6 10:31:13 1995 COT. < <Channels Details > > EVENT detected in OSSO - HOBC .local event at Thu Apr 6 10:31:13 1995 COT s-p(6). EVENT detected in OSSO - ANCC - Declared HARD AmpP(1) AmpE(58).regional event at Thu Apr 6 10:31:25 1995 COT s-p(18). EVENT detected in OSSO - DIAC .local event at Thu Apr 6 10:31:31 1995 COT s-p(12). NOISE detected in OSSO - PURC .Signal pick at Thu Apr 6 10:37:00 1995 COT Dur(1). EVENT detected in OSSO - HOQC - Declared HARD AmpP(2) AmpE(20).regional event at Thu Apr 6 10:31:24 1995 COT s-p(17). EVENT detected in OSSO - PEIC - Declared HARD AmpP(3) AmpE(25).local event at Thu Apr 6 10:31:17 1995 COT s-p(10). EVENT detected in OSSO - CLMC - Declared HARD AmpP(8) AmpE(76).local event at Thu Apr 6 10:31:19 1995 COT s-p(13). EVENT detected in OSSO - AZUC - Declared HARD AmpP(1) AmpE(69).local event at Thu Apr 6 10:31:22 1995 COT s-p(10). EVENT detected in OSSO - SILC .local event at Thu Apr 6 10:31:38 1995 COT s-p(4). 154 B.1.2. Evento 1995 08 09 - 10:30:40 ESTACION HORA EVENTO TIPO DURACION HOBCiPd0 950809103046.58 480.5 R 307. 440.6 ANCCeP+1 950809103101.16 800.4 R 293. 600.6 DIACiPd0 950809103057.48 430.5 R 289. 540.5 PURCeP+1 950809103110.12 340.4 R 257. 240.7 PEICeP 2 950809103040.05 310.5 R 230. 240.6 SALCeP+1 950809103104.56 80.3 R 253. 80.7 CLMCeP+1 950809103055.21 1010.4 R 277. 810.5 AZUCeP-1 950809103053.21 500.3 R 309. 610.5 SILCeP-1 950809103104.40 420.3 R 373. 510.6 ————— 155 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 10 channels. EV.REGIONAL generate trigger, aprox. at Wed Aug 9 10:30:50 1995 COT. < <Channels Details > > EVENT detected in OSSO - HOBC - Declared HARD AmpP(11) AmpE(201). local event at Wed Aug 9 10:30:50 1995 COT s-p(3). EVENT detected in OSSO - ANCC - Declared HARD AmpP(5) AmpE(337). local event at Wed Aug 9 10:31:06 1995 COT s-p(1). EVENT detected in OSSO - DIAC - Declared HARD AmpP(8) AmpE(229). regional event at Wed Aug 9 10:31:00 1995 COT s-p(64). EVENT detected in OSSO - PURC . local event at Wed Aug 9 10:31:16 1995 COT s-p(1). EVENT detected in OSSO - HOQC - Declared HARD AmpP(9) AmpE(248). regional event at Wed Aug 9 10:31:04 1995 COT s-p(63). EVENT detected in OSSO - PEIC - Declared HARD AmpP(23) AmpE(139). regional event at Wed Aug 9 10:30:53 1995 COT s-p(25). EVENT detected in OSSO - SALC - Declared HARD AmpP(6) AmpE(98). regional event at Wed Aug 9 10:31:10 1995 COT s-p(71). EVENT detected in OSSO - CLMC - Declared HARD AmpP(10) AmpE(128). regional event at Wed Aug 9 10:31:00 1995 COT s-p(59). EVENT detected in OSSO - AZUC . regional event at Wed Aug 9 10:31:00 1995 COT s-p(51). EVENT detected in OSSO - SILC - Declared HARD AmpP(7) AmpE(251). regional event at Wed Aug 9 10:31:09 1995 COT s-p(69). 156 B.1.3. Evento 1995 07 16 - 16:40:26 ESTACION HORA EVENTO TIPO DURACION HOBCiPc0 950716164029.10 270.1 39.6eS 1 L 75. 610.1 HOQCeP-1 950716164029.18 110.1 L 97. 120.1 CLMCeP-1 950716164026.41 250.1 L 83. 370.1 AZUCiPd0 950716164030.55 260.2 L 84. 90.3 ————— 157 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 10 channels. EV.LOCAL generate trigger, aprox. at Sun Jul 16 16:40:30 1995 COT. < <Channels Details > > NOISE detected in OSSO - HOBC . Signal pick at Sun Jul 16 16:40:42 1995 COT Dur(3). EVENT detected in OSSO - ANCC - Declared HARD AmpP(4) AmpE(45). local event at Sun Jul 16 16:40:33 1995 COT s-p(14). EVENT detected in OSSO - DIAC - Declared HARD AmpP(2) AmpE(46). local event at Sun Jul 16 16:40:35 1995 COT s-p(15). EVENT detected in OSSO - PURC . local event at Sun Jul 16 16:46:00 1995 COT s-p(5). EVENT detected in OSSO - HOQC - Declared HARD AmpP(0) AmpE(16). local event at Sun Jul 16 16:40:31 1995 COT s-p(10). NOISE detected in OSSO - PEIC . Signal pick at Sun Jul 16 16:41:01 1995 COT Dur(2). NOISE detected in OSSO - SALC . Signal pick at Sun Jul 16 16:40:41 1995 COT Dur(4). EVENT detected in OSSO - CLMC - Declared HARD AmpP(6) AmpE(52). local event at Sun Jul 16 16:40:30 1995 COT s-p(7). EVENT detected in OSSO - AZUC - Declared HARD AmpP(0) AmpE(73). local event at Sun Jul 16 16:40:33 1995 COT s-p(13). EVENT detected in OSSO - SILC - Declared HARD AmpP(2) AmpE(10). regional event at Sun Jul 16 16:40:44 1995 COT s-p(18). 158 B.1.4. Evento 1995 04 13 - 18:28:34 ESTACION HORA EVENTO TIPO DURACION HOBCiPd0 950413182832.20 9990.1 L 217. 9990.1 ANCCiPc0 950413182838.01 9990.2 L 253. 9990.2 DIACiPc0 950413182839.86 9990.1 L 267. 9990.2 PURCeP 1 950413182852.87 20.1 L 102. 10.1 HOQCiPc0 950413182838.09 1240.1 L 213. 9990.1 PEICiPd0 950413182834.68 9990.2 L 141. 9990.3 CLMCiPc0 950413182834.56 9990.2 L 183. 9990.3 AZUCeP-1 950413182836.37 9990.1 L 264. 9990.3 SILCeP+1 950413182847.27 L 298. 520.2 500.2 ————— 159 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 9 channels. EV.REGIONAL generate trigger, aprox. at Thu Apr 13 18:28:33 1995 COT. < <Channels Details > > EVENT detected in OSSO - HOBC - Declared HARD AmpP(37) AmpE(492). regional event at Thu Apr 13 18:28:33 1995 COT s-p(28). EVENT detected in OSSO - ANCC - Declared HARD AmpP(3) AmpE(805). local event at Thu Apr 13 18:28:42 1995 COT s-p(13). EVENT detected in OSSO - DIAC - Declared HARD AmpP(3) AmpE(667). regional event at Thu Apr 13 18:28:42 1995 COT s-p(24). EVENT detected in OSSO - PURC - Declared HARD AmpP(1) AmpE(10). local event at Thu Apr 13 18:28:57 1995 COT s-p(1). EVENT detected in OSSO - HOQC - Declared HARD AmpP(2) AmpE(396). regional event at Thu Apr 13 18:28:40 1995 COT s-p(24). EVENT detected in OSSO - PEIC - Declared HARD AmpP(10) AmpE(690). local event at Thu Apr 13 18:28:38 1995 COT s-p(14). EVENT detected in OSSO - CLMC . local event at Thu Apr 13 18:28:42 1995 COT s-p(10). EVENT detected in OSSO - AZUC - Declared HARD AmpP(66) AmpE(867). regional event at Thu Apr 13 18:28:42 1995 COT s-p(16). EVENT detected in OSSO - SILC - Declared HARD AmpP(64) AmpE(341). regional event at Thu Apr 13 18:28:54 1995 COT s-p(27). 160 B.1.5. Evento 1996 09 05 - 08:22:22 ESTACION HORA EVENTO TIPO HOBCeP 2 960905082232.51 321.9 T ANCCeP 2 960905082223.91 470.8 T DIACeP 2 960905082226.77 241.3 T PURCeP 2 960905082222.69 541.2 T HOQCeP 2 960905082225.19 651.8 T PEICeP 4 960905082237.12 80.9 T SALCeP 2 960905082222.47 91.1 T CLMCeP 2 960905082227.68 441.3 T AZUCeP 2 960905082228.55 351.3 T SILCeP 2 960905082223.93 661.0 T ————— 161 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 10 channels. EV.LOCAL generate trigger, aprox. at Thu Sep 5 08:22:28 1996 COT. < <Channels Details > > EVENT detected in OSSO - HOBC - Declared HARD AmpP(18) AmpE(114). local event at Thu Sep 5 08:22:37 1996 COT s-p(7). EVENT detected in OSSO - ANCC - Declared HARD AmpP(5) AmpE(293). local event at Thu Sep 5 08:22:28 1996 COT s-p(7). EVENT detected in OSSO - DIAC - Declared HARD AmpP(2) AmpE(183). regional event at Thu Sep 5 08:22:32 1996 COT s-p(27). EVENT detected in OSSO - PURC . local event at Thu Sep 5 08:22:31 1996 COT s-p(4). EVENT detected in OSSO - HOQC - Declared HARD AmpP(11) AmpE(158). local event at Thu Sep 5 08:22:32 1996 COT s-p(10). EVENT detected in OSSO - PEIC - Declared HARD AmpP(6) AmpE(35). local event at Thu Sep 5 08:22:51 1996 COT s-p(2). NOISE detected in OSSO - SALC . Signal pick at Thu Sep 5 08:22:30 1996 COT Dur(2). EVENT detected in OSSO - CLMC . local event at Thu Sep 5 08:32:11 1996 COT s-p(2). EVENT detected in OSSO - AZUC - Declared HARD AmpP(1) AmpE(168). local event at Thu Sep 5 08:22:32 1996 COT s-p(9). EVENT detected in OSSO - SILC - Declared HARD AmpP(64) AmpE(324). local event at Thu Sep 5 08:22:31 1996 COT s-p(4). 162 B.1.6. Evento 1996 11 15 - 02:53:06 ESTACION HORA EVENTO TIPO DURACION HOBCeP 2 961115025339.16 130.2 L 109. 140.5 DIACeP 2 961115025321.36 740.2 40.2eS 3 L 214. 650.2 PURCiPc0 961115025306.50 9990.2 L 166. 9990.2 HOQCeP+1 961115025325.90 350.2 L 106. 360.2 CLMCeP-1 961115025331.47 160.2 L 109. 230.4 AZUCeP+1 961115025328.39 310.3 L 182. 330.5 SILCiPc0 961115025311.28 9990 ————— 163 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 10 channels. EV.REGIONAL generate trigger, aprox. at Fri Nov 15 02:53:13 1996 COT. < <Channels Details > > EVENT detected in OSSO - HOBC - Declared HARD AmpP(3) AmpE(78). regional event at Fri Nov 15 02:53:44 1996 COT s-p(32). NOISE detected in OSSO - ANCC . Signal pick at Fri Nov 15 02:58:51 1996 COT Dur(1). EVENT detected in OSSO - DIAC - Declared HARD AmpP(5) AmpE(330). regional event at Fri Nov 15 02:53:24 1996 COT s-p(18). EVENT detected in OSSO - PURC - Declared HARD AmpP(112) AmpE(630). local event at Fri Nov 15 02:53:13 1996 COT s-p(1). EVENT detected in OSSO - HOQC - Declared HARD AmpP(2) AmpE(133). regional event at Fri Nov 15 02:53:28 1996 COT s-p(22). NOISE detected in OSSO - PEIC . Signal pick at Fri Nov 15 02:57:09 1996 COT Dur(1). NOISE detected in OSSO - SALC . No signal Fri Nov 15 03:04:06 1996 COT Dur(2). EVENT detected in OSSO - CLMC - Declared HARD AmpP(4) AmpE(76). regional event at Fri Nov 15 02:53:35 1996 COT s-p(29). EVENT detected in OSSO - AZUC - Declared HARD AmpP(20) AmpE(195). regional event at Fri Nov 15 02:53:34 1996 COT s-p(21). EVENT detected in OSSO - SILC - Declared HARD AmpP(1) AmpE(361). local event at Fri Nov 15 02:53:14 1996 COT s-p(9). 164 B.1.7. Evento 1998 11 07 - 03:10:46 ESTACION HORA EVENTO ANCCeP+1 981107031046.81 TIPO DURACION 120.1 51.3eS 3 L 52. 370.1 DIACeP-1 981107031057.21 40.1 L 40. 20.1 HOQCiPd0 981107031049.93 40.1 56.8eS 3 L 42. 70.1 SALCeP 2 981107031055.94 30.1 ————— 165 L 60.2 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 9 channels. NOISE generate trigger, aprox. at Sat Nov 7 03:10:52 1998 COT. < <Channels Details > > NOISE detected in OSSO - HOBC . No signal Sat Nov 7 03:16:05 1998 COT Dur(1). EVENT detected in OSSO - ANCC . local event at Sat Nov 7 03:10:52 1998 COT s-p(1). NOISE detected in OSSO - DIAC . Signal pick at Sat Nov 7 03:10:58 1998 COT Dur(3). NOISE detected in OSSO - PURC . No signal Sat Nov 7 03:14:35 1998 COT Dur(2). EVENT detected in OSSO - HOQC . local event at Sat Nov 7 03:10:57 1998 COT s-p(1). NOISE detected in OSSO - PEIC . Signal pick at Sat Nov 7 03:13:52 1998 COT Dur(2). NOISE detected in OSSO - SALC . Signal pick at Sat Nov 7 03:10:57 1998 COT Dur(2). NOISE detected in OSSO - AZUC . No signal Sat Nov 7 03:15:59 1998 COT Dur(2). EVENT detected in OSSO - HUIC - Declared HARD AmpP(3) AmpE(21). regional event at Sat Nov 7 03:11:15 1998 COT s-p(22). 166 B.1.8. Evento 1998 12 03 - 00:55:35 ESTACION HORA EVENTO TIPO DURACION ANCCeP 2 981203005537.33 30.0 L 24. 60.1 HOQCeP+1 981203005535.59 40.0 39.8eS 3 L 23. 70.1 SALCeP 2 981203005536.80 20.0 42.1eS 3 L 23. 120.1 ————— 167 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 8 channels. EV.LOCAL generate trigger, aprox. at Thu Dec 3 00:55:37 1998 COT. < <Channels Details > > NOISE detected in OSSO - HOBC . No signal Thu Dec 3 01:01:00 1998 COT Dur(1). EVENT detected in OSSO - ANCC - Declared HARD AmpP(3) AmpE(29). local event at Thu Dec 3 00:55:38 1998 COT s-p(5). EVENT detected in OSSO - DIAC . local event at Thu Dec 3 00:55:37 1998 COT s-p(2). EVENT detected in OSSO - HOQC . local event at Thu Dec 3 00:55:41 1998 COT s-p(1). EVENT detected in OSSO - PEIC . local event at Thu Dec 3 00:55:45 1998 COT s-p(1). EVENT detected in OSSO - SALC - Declared HARD AmpP(3) AmpE(30). local event at Thu Dec 3 00:55:43 1998 COT s-p(1). EVENT detected in OSSO - AZUC - Declared HARD AmpP(0) AmpE(1). local event at Thu Dec 3 00:58:18 1998 COT s-p(8). NOISE detected in OSSO - HUIC . Signal pick at Thu Dec 3 01:01:17 1998 COT Dur(1). B.1.9. Evento 1998 11 05 - 01:03:28 ESTACION HORA EVENTO TIPO 168 ANCCeP 2 981105010328.76 200.3 R DIACeP 2 981105010338.40 10.2 R HOQCeP 3 981105010333.31 30.1 R PEICeP-1 981105010330.60 30.2 R ————— 169 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 9 channels. EV.LOCAL generate trigger, aprox. at Thu Nov 5 01:03:32 1998 COT. < <Channels Details > > EVENT detected in OSSO - HOBC . local event at Thu Nov 5 01:06:23 1998 COT s-p(2). EVENT detected in OSSO - ANCC - Declared HARD AmpP(7) AmpE(69). regional event at Thu Nov 5 01:03:32 1998 COT s-p(28). EVENT detected in OSSO - DIAC - Declared HARD AmpP(2) AmpE(15). regional event at Thu Nov 5 01:03:41 1998 COT s-p(22). NOISE detected in OSSO - PURC . No signal Thu Nov 5 01:05:41 1998 COT Dur(1). EVENT detected in OSSO - HOQC - Declared HARD AmpP(0) AmpE(1). local event at Thu Nov 5 01:08:58 1998 COT s-p(1). EVENT detected in OSSO - PEIC . local event at Thu Nov 5 01:06:30 1998 COT s-p(2). NOISE detected in OSSO - SALC . Signal pick at Thu Nov 5 01:03:52 1998 COT Dur(3). NOISE detected in OSSO - AZUC . No signal Thu Nov 5 01:09:45 1998 COT Dur(1). NOISE detected in OSSO - HUIC . No signal Thu Nov 5 01:06:28 1998 COT Dur(1). 170 B.1.10. Evento 1998 12 10 - 04:19:36 ESTACION HORA EVENTO TIPO HOQCeP 2 981210041941.38 10.0 48.1eS 3 L 30.1 SALCeP 2 981210041936.57 20.1 39.7eS 3 L 80.1 ————— 171 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 8 channels. NOISE generate trigger, aprox. at Thu Dec 10 04:19:41 1998 COT. < <Channels Details > > NOISE detected in OSSO - HOBC . No signal Thu Dec 10 04:20:41 1998 COT Dur(1). EVENT detected in OSSO - ANCC . local event at Thu Dec 10 04:24:18 1998 COT s-p(2). NOISE detected in OSSO - DIAC . Signal pick at Thu Dec 10 04:23:14 1998 COT Dur(1). EVENT detected in OSSO - HOQC - Declared HARD AmpP(0) AmpE(1). local event at Thu Dec 10 04:19:50 1998 COT s-p(3). NOISE detected in OSSO - PEIC . Signal pick at Wed Dec 31 19:00:05 1969 COT Dur(-10). EVENT detected in OSSO - SALC - Declared HARD AmpP(0) AmpE(8). local event at Thu Dec 10 04:19:41 1998 COT s-p(1). NOISE detected in OSSO - AZUC . No signal Thu Dec 10 04:21:36 1998 COT Dur(7). NOISE detected in OSSO - HUIC . No signal Thu Dec 10 04:21:20 1998 COT Dur(1). 172 B.2. Señal continua Se ingresaron al sistema los archivos correspondientes a un dia de datos, divididos en segmentos de 5 minutos. B.2.1. Evento 2003 12 25 - 06:59:03 ESTACION HORA EVENTO TIPO HOBCeP 2 031225065903.00 110.8 T ANCCeP 4 031225065916.53 101.1 T SEG1eP 3 031225065911.34 141.0 T HQZCeP 4 031225065915.23 71.2 T AZ1CeP 2 031225065906.81 2881.6 T PEICeP 2 031225065853.12 3741.0 T ————— 173 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 8 channels. EV.LOCAL generate trigger, aprox. at Thu Dec 25 06:57:26 2003 COT. < <Channels Details > > EVENT detected in OSSO - HOBC - Declared HARD AmpP(3) AmpE(30). local event at Thu Dec 25 06:59:14 2003 COT s-p(2). NOISE detected in OSSO - ANCC. No signal Thu Dec 25 06:57:26 2003 COT Dur(128). EVENT detected in OSSO - SEG1. local event at Thu Dec 25 06:59:34 2003 COT s-p(2). EVENT detected in OSSO - HQZC. local event at Thu Dec 25 06:59:30 2003 COT s-p(1). EVENT detected in OSSO - HQNC. local event at Thu Dec 25 06:59:31 2003 COT s-p(11). NOISE detected in OSSO - HQEC. Signal pick at Thu Dec 25 06:58:31 2003 COT Dur(3). EVENT detected in OSSO - AZ1C. regional event at Thu Dec 25 06:58:18 2003 COT s-p(64). EVENT detected in OSSO - PEIC - Declared HARD AmpP(21) AmpE(109). local event at Thu Dec 25 06:59:09 2003 COT s-p(1). B.2.2. Evento 2003 12 25 - 07:13:00 ESTACION HORA EVENTO TIPO 174 HOBCeP 2 031225071300.37 1301.1 R ANCCeP+1 031225071301.07 1060.9 R SEG1eP 2 031225071308.31 1300.6 R HQECeP 4 031225071304.45 2421.3 R AZ1CeP 2 031225071307.36 620.9 R PEICeP 2 031225071304.37 741.3 R ————— 175 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 8 channels. EV.REGIONAL generate trigger, aprox. at Thu Dec 25 07:11:57 2003 COT. < <Channels Details > > EVENT detected in OSSO - HOBC. regional event at Thu Dec 25 07:12:28 2003 COT s-p(39). NOISE detected in OSSO - ANCC. No signal Thu Dec 25 07:12:29 2003 COT Dur(40). EVENT detected in OSSO - SEG1. local event at Thu Dec 25 07:13:04 2003 COT s-p(14). EVENT detected in OSSO - HQZC. regional event at Thu Dec 25 07:12:45 2003 COT s-p(28). EVENT detected in OSSO - HQNC. regional event at Thu Dec 25 07:12:44 2003 COT s-p(32). NOISE detected in OSSO - HQEC. No signal Thu Dec 25 07:12:46 2003 COT Dur(31). EVENT detected in OSSO - AZ1C. regional event at Thu Dec 25 07:11:57 2003 COT s-p(82). EVENT detected in OSSO - PEIC. regional event at Thu Dec 25 07:12:59 2003 COT s-p(20). B.2.3. Evento 2003 12 25 - 07:21:12 ————— 176 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 8 channels. EV.LOCAL generate trigger, aprox. at Thu Dec 25 07:21:12 2003 COT. < <Channels Details > > EVENT detected in OSSO - HOBC. local event at Thu Dec 25 07:25:43 2003 COT s-p(1). EVENT detected in OSSO - ANCC - Declared HARD AmpP(4) AmpE(24). local event at Thu Dec 25 07:24:13 2003 COT s-p(6). EVENT detected in OSSO - SEG1. local event at Thu Dec 25 07:24:28 2003 COT s-p(2). NOISE detected in OSSO - HQZC. Signal pick at Thu Dec 25 07:23:34 2003 COT Dur(3). NOISE detected in OSSO - HQNC. Signal pick at Thu Dec 25 07:25:09 2003 COT Dur(2). NOISE detected in OSSO - HQEC. Signal pick at Thu Dec 25 07:24:16 2003 COT Dur(4). EVENT detected in OSSO - AZ1C. local event at Thu Dec 25 07:21:12 2003 COT s-p(14). EVENT detected in OSSO - PEIC. local event at Thu Dec 25 07:24:17 2003 COT s-p(2). 177 B.2.4. Evento 2003 12 25 - 08:55:20 ESTACION HORA EVENTO TIPO DURACION HOBCiPc0 031225085520.25 340.1 L 63. ANCCiPd0 031225085526.39 30.1 L 75. SEG1iPc0 031225085528.60 350.1 L 70. 20.1 43.6eS 3 L 69. HQECeP 2 031225085527.64 AZ1CiPc0 031225085526.92 170.1 L 75. PEICeP 3 031225085526.39 70.4 L 63. ————— 178 150.1 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 8 channels. EV.LOCAL generate trigger, aprox. at Thu Dec 25 08:55:31 2003 COT. < <Channels Details > > EVENT detected in OSSO - HOBC - Declared HARD AmpP(2) AmpE(70). local event at Thu Dec 25 08:55:31 2003 COT s-p(8). EVENT detected in OSSO - ANCC. local event at Thu Dec 25 08:55:43 2003 COT s-p(9). NOISE detected in OSSO - SEG1. Signal pick at Thu Dec 25 08:55:38 2003 COT Dur(3). NOISE detected in OSSO - HQZC. Signal pick at Thu Dec 25 08:55:53 2003 COT Dur(4). EVENT detected in OSSO - HQNC - Declared HARD AmpP(1) AmpE(22). regional event at Thu Dec 25 08:55:36 2003 COT s-p(17). EVENT detected in OSSO - HQEC - Declared HARD AmpP(5) AmpE(40). local event at Thu Dec 25 08:55:53 2003 COT s-p(1). EVENT detected in OSSO - AZ1C - Declared HARD AmpP(1) AmpE(66). local event at Thu Dec 25 08:55:36 2003 COT s-p(15). EVENT detected in OSSO - PEIC - Declared HARD AmpP(2) AmpE(19). regional event at Thu Dec 25 08:55:36 2003 COT s-p(16). B.2.5. Evento 2003 12 25 - 20:34:18 ESTACION HORA EVENTO TIPO 179 HOBCeP 3 031225203418.27 190.8 R ANCCeP 3 031225203418.20 50.3 R SEG1eP 2 031225203425.35 480.5 R AZ1CeP 2 031225203424.64 1240.8 R PEICeP 3 031225203422.51 R 651.2 ————— 180 S-DCE prototype v.0.1 < <Alert Report > > TRIGGER Apply DCEClassifBasicOSSOrsw function. Found in 8 channels. EV.LOCAL generate trigger, aprox. at Thu Dec 25 20:34:13 2003 COT. < <Channels Details > > EVENT detected in OSSO - HOBC. local event at Thu Dec 25 20:34:24 2003 COT s-p(10). EVENT detected in OSSO - ANCC. regional event at Thu Dec 25 20:34:28 2003 COT s-p(33). EVENT detected in OSSO - SEG1. local event at Thu Dec 25 20:34:35 2003 COT s-p(8). NOISE detected in OSSO - HQZC. Signal pick at Thu Dec 25 20:34:13 2003 COT Dur(2). EVENT detected in OSSO - HQNC. local event at Thu Dec 25 20:34:28 2003 COT s-p(9). EVENT detected in OSSO - HQEC. regional event at Thu Dec 25 20:34:27 2003 COT s-p(23). EVENT detected in OSSO - AZ1C - Declared HARD AmpP(1) AmpE(87). local event at Thu Dec 25 20:34:28 2003 COT s-p(4). EVENT detected in OSSO - PEIC. local event at Thu Dec 25 20:34:28 2003 COT s-p(1). 181