iconix - gutierrez

Upload: cristofer-evaristo-sue

Post on 09-Jan-2016

247 views

Category:

Documents


0 download

DESCRIPTION

Metodología ICONOX

TRANSCRIPT

  • Laboratorio virtual deRedes Neuronales

    Julian Esteban Gutierrez PosadaIngeniero de Sistemas / Especialista en Informatica Educativa

    Adscrito alPrograma de Ingeniera de Sistemas y Computacion

    Facultad de IngenieraUniversidad del Quindo

  • ii

    Laboratorio virtual de redes neuronales

    Esta permitida la reproduccion total o parcialde esta obra, y/o su tratamiento o transmision porcualquier metodo sin previa autorizacion del autor.

    Derechos reservadosc Agosto de 2008

    Este documento fue editado usando LATEX2

    Conceptos Graficos LtdaCalle 19 13-30Telefono: (6) 741 07 91 - 741 14 02Armenia, Quindo

    Armenia, Quindo - Colombia

  • Presentacion

    El trabajo que tiene en sus manos, ha sido el resultado de muchas horasde trabajo duro durante mi tiempo libre, tiempo que se ha invertido juiciosa-mente para producir un texto y un software Laboratorio Virtual de RedesNeuronales que estoy seguro podran ayudar a los estudiantes y docentesque se encuentren involucrados con las redes neuronales o con el desarrollode software.

    No considero que sea un trabajo libre de mejoras o totalmente finalizado,por el contrario, es un trabajo que abre un mundo nuevo de posibilidades,tanto en el diseno de soluciones con redes neuronales, como en la didacticaen el aula de clase.

    El presente documento pretende no solo mostrar el analisis, el diseno,la implementacion, las pruebas del software y las guas de laboratorio, sinoque pretende servir de modelo para el desarrollo de software utilizando elproceso de desarrollo ICONIX (explicado mas adelante).

    Por otro lado, no veo el software desarrollado como un software educati-vo, sino mas bien, como una herramienta de apoyo a la proceso de ensenanza/ aprendizaje de redes neuronales. En ella, los estudiantes podran mani-pular neuronas y conectarlas entre s, para construir cualquier topologa oarquitectura que deseen y finalmente implementar los algoritmos de apren-dizaje.

    El laboratorio virtual no tiene creadas las diferentes redes neuronales,sino que brinda un entorno para que el estudiante construya estas redes pormedio del software.

    Antes de terminar la presentacion, me gustara decir que los labora-torios planteados pueden ser usados como modelos para que los docentesinvolucrados puedan crear sus propios laboratorios, o como actividades deexploracion inicial antes de resolver otros mas complejos.

  • iv

  • Indice general

    I EL PROYECTO 1

    1. INTRODUCCION 3

    1.1. Proceso de desarrollo ICONIX . . . . . . . . . . . . . . . . . 5

    2. ANALISIS DE REQUERIMIENTOS 9

    2.1. Documento de requerimientos . . . . . . . . . . . . . . . . . . 9

    2.2. Tecnica de identificacion . . . . . . . . . . . . . . . . . . . . . 12

    2.2.1. Lista de clases candidatas . . . . . . . . . . . . . . . . 13

    2.2.2. Eliminacion de algunas clases candidatas . . . . . . . 13

    2.2.3. Lista definitiva de clases candidatas . . . . . . . . . . 14

    2.2.4. Relaciones entre las clases candidatas . . . . . . . . . 15

    2.2.5. Lista de verbos . . . . . . . . . . . . . . . . . . . . . . 15

    2.3. Modelo del dominio . . . . . . . . . . . . . . . . . . . . . . . 15

    2.4. Prototipo de las interfaces graficas . . . . . . . . . . . . . . . 18

    2.5. Diagramas de Casos de Uso . . . . . . . . . . . . . . . . . . . 40

    2.6. Revision de requerimientos (RR) . . . . . . . . . . . . . . . . 42

    v

  • vi INDICE GENERAL

    3. ANALISIS Y DISENO PRELIMINAR 45

    3.1. Descripcion de los casos de uso . . . . . . . . . . . . . . . . . 45

    3.1.1. Paquete archivo . . . . . . . . . . . . . . . . . . . . 46

    3.1.2. Paquete neurona de entrada . . . . . . . . . . . . . 49

    3.1.3. Paquete neurona de retardo . . . . . . . . . . . . . 60

    3.1.4. Paquete neurona de proceso . . . . . . . . . . . . . . 80

    3.1.5. Paquete red neuronal . . . . . . . . . . . . . . . . . 114

    3.2. Diagramas de robustez . . . . . . . . . . . . . . . . . . . . . . 123

    3.2.1. Paquete archivo . . . . . . . . . . . . . . . . . . . . 125

    3.2.2. Paquete neurona de entrada . . . . . . . . . . . . . 127

    3.2.3. Paquete neurona de retardo . . . . . . . . . . . . . . 135

    3.2.4. Paquete neurona de proceso . . . . . . . . . . . . . . 150

    3.2.5. Paquete red neuronal . . . . . . . . . . . . . . . . . 173

    3.3. Actualizacion del modelo del dominio . . . . . . . . . . . . . 178

    3.4. Revision del diseno preliminar (PDR) . . . . . . . . . . . . . 183

    4. DISENO 185

    4.1. Diagramas de secuencia . . . . . . . . . . . . . . . . . . . . . 185

    4.1.1. Paquete archivo . . . . . . . . . . . . . . . . . . . . 187

    4.1.2. Paquete neurona de entrada . . . . . . . . . . . . . 191

    4.1.3. Paquete neurona de retardo . . . . . . . . . . . . . . 204

    4.1.4. Paquete neurona de proceso . . . . . . . . . . . . . . 229

    4.1.5. Paquete red neuronal . . . . . . . . . . . . . . . . . 271

    4.2. Diagrama de clases . . . . . . . . . . . . . . . . . . . . . . . . 280

    4.3. Revision crtica del diseno (CDR) . . . . . . . . . . . . . . . . 288

  • INDICE GENERAL vii

    5. IMPLEMENTACION 2915.1. Comentarios cortos . . . . . . . . . . . . . . . . . . . . . . . . 2925.2. Particularidades de la implementacion . . . . . . . . . . . . . 293

    5.2.1. Definir nuevo monitor a neurona de entrada . . . . . . 2935.2.2. Crear monitor a neurona de entrada . . . . . . . . . . 294

    5.3. Plantillas para generar codigo . . . . . . . . . . . . . . . . . . 2965.3.1. Aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . 2965.3.2. Funcion Base . . . . . . . . . . . . . . . . . . . . . . . 2975.3.3. Funcion de activacion . . . . . . . . . . . . . . . . . . 2985.3.4. Funcion de transferencia . . . . . . . . . . . . . . . . . 2995.3.5. Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . 2995.3.6. Monitor a neurona de entrada . . . . . . . . . . . . . . 3005.3.7. Monitor a neurona de proceso . . . . . . . . . . . . . . 3015.3.8. Monitor a neurona de retardo . . . . . . . . . . . . . . 3025.3.9. Neurona de retardo (Valor Futuro) . . . . . . . . . . . 3035.3.10. Red Neuronal . . . . . . . . . . . . . . . . . . . . . . . 304

    6. PRUEBAS 3056.1. Listado de los casos de prueba . . . . . . . . . . . . . . . . . 3076.2. Pruebas en DiscoLaboratorioVirtualRNATest . . . . . . . . 3106.3. Pruebas en DiscoTest . . . . . . . . . . . . . . . . . . . . . . 3256.4. Pruebas en ListaDeNeuronasTest . . . . . . . . . . . . . . . 3296.5. Pruebas en ListaDeRedesNeuronalesTest . . . . . . . . . . 3316.6. Pruebas en ListaDeVariablesTest . . . . . . . . . . . . . . 3326.7. Pruebas en FuncionEscalonBipolarTest . . . . . . . . . . . 3426.8. Pruebas en FuncionEscalonUnipolarTest . . . . . . . . . . 3436.9. Pruebas en FuncionIdentidadTest . . . . . . . . . . . . . . 3446.10. Pruebas en FuncionLinealMixtaBipolarTest . . . . . . . . 3466.11. Pruebas en FuncionLinealMixtaUnipolarTest . . . . . . . . 3476.12. Pruebas en FuncionSigmoidalBipolarTest . . . . . . . . . . 3486.13. Pruebas en FuncionSigmoidalUnipolarTest . . . . . . . . . 3506.14. Pruebas en FuncionBaseLinealTest . . . . . . . . . . . . . . 3516.15. Pruebas en FuncionBaseRadicalTest . . . . . . . . . . . . . 3536.16. Pruebas en FuncionDeActivacionTest . . . . . . . . . . . . 3556.17. Pruebas en FuncionDeTransferenciaTest . . . . . . . . . . 3616.18. Pruebas en NeuronaDeEntradaTest . . . . . . . . . . . . . . 3666.19. Pruebas en NeuronaDeProcesoTest . . . . . . . . . . . . . . 3686.20. Pruebas en NeuronaDeRetardoTest . . . . . . . . . . . . . . 383

  • viii INDICE GENERAL

    II LABORATORIOS 393

    7. GUIAS DE LABORATORIOS (ESTUDIANTE) 395

    7.1. Instalacion del entorno de trabajo . . . . . . . . . . . . . . . 397

    7.2. Una neurona de entrada . . . . . . . . . . . . . . . . . . . . . 401

    7.3. Una neurona de retardo . . . . . . . . . . . . . . . . . . . . . 407

    7.4. Una neurona de proceso . . . . . . . . . . . . . . . . . . . . . 413

    7.5. Red monocapa con conexiones hacia adelante . . . . . . . . . 419

    7.6. Red multicapa con conexiones hacia adelante . . . . . . . . . 423

    7.7. Red monocapa con retroalimentacion . . . . . . . . . . . . . . 427

    8. GUIAS DE LABORATORIOS (DOCENTE) 431

    8.1. Instalacion del entorno de trabajo . . . . . . . . . . . . . . . 433

    8.2. Una neurona de entrada . . . . . . . . . . . . . . . . . . . . . 435

    8.3. Una neurona de retardo . . . . . . . . . . . . . . . . . . . . . 441

    8.4. Una neurona de proceso . . . . . . . . . . . . . . . . . . . . . 447

    8.5. Red monocapa con conexiones hacia adelante . . . . . . . . . 453

    8.6. Red multicapa con conexiones hacia adelante . . . . . . . . . 457

    8.7. Red monocapa con retroalimentacion . . . . . . . . . . . . . . 461

    8.8. Proyectos de programacion . . . . . . . . . . . . . . . . . . . 465

    BIBLIOGRAFIA 467

  • Parte I

    EL PROYECTO

    1

  • 1INTRODUCCION

    La idea fundamental de este trabajo es crear un software que sirva co-mo material de apoyo a el curso Inteligencia Artificial del programa deIngeniera de Sistemas y Computacion de la Universidad del Quindo u otrocurso similar en esta u otra universidad.

    Como en todo desarrollo de un software, primero se parte de una seriede requerimientos, los cuales no son mas que una vista muy abstracta de loque el software hace y el fin es llevar estos requerimientos a un codigo fuenteen un lenguaje de programacion determinado. Este codigo fuente no es masque la vista con el menor grado de abstraccion del proyecto, en la cual debequedar muy claro el como se satisfacen todos los requerimientos planteados.

    En esta parte El proyecto, el proposito fundamental es mostrar comopartiendo de los requerimientos se llega un codigo fuente acorde con ellos.Para hacer esto, es necesario seguir un proceso de desarrollo de software, elcual ayude a pasar suavemente entre los diferentes niveles de abstraccion delproyecto, ver Figura 1.1.

  • 4 CAPITULO 1. INTRODUCCION

    Figura 1.1: Niveles de abstraccion de un proyecto de software

    Estos diferentes niveles de abstraccion que se han mencionado, se vendurante el ciclo de vida de un producto de software. En muchos casos el ciclode vida de un producto de software (PLC1), se suele subdividir en etapas co-mo: analisis, diseno, implementacion, pruebas, implantacion, mantenimientoy soporte.

    La etapa del analisis, consiste en comprender el problema que se de-sea resolver; en la etapa de diseno, se especifica y detalla la solucion delproblema comprendido; en la etapa de implementacion, se crea un productoacorde con la especificacion hecha; en la etapa de pruebas, se verifica que elproducto cumple con toda la especificacion; en la etapa de implantacion, sehace disponible el producto a los clientes; en la etapa de mantenimiento, elobjetivo es realizar mejoras al producto; finalmente y no menos importante,se encuentra la etapa de soporte, en la cual se le brinda ayuda al usuario entodas las dificultades que llegara a tener mientras utiliza el producto final,ver Figura 1.2.

    1Product Life Cycle

  • 1.1. PROCESO DE DESARROLLO ICONIX 5

    Figura 1.2: Ciclo de vida de un producto de software (PLC)

    Para este desarrollo en particular, solo nos interesan las etapas de: ana-lisis, diseno, implementacion y pruebas. Un proceso de desarrollo de soft-ware que se centra especialmente en estas cuatro primeras etapas, se llamaICONIX2.

    1.1. Proceso de desarrollo ICONIX

    Entre las caractersticas mas importantes de ICONIX [17] y [16] se en-cuentran: el permitir pasar de los requerimientos a codigo fuente de unamanera rapida y eficiente; usar diagramas de UML3; permitir el seguimien-to de los requerimientos por todas las etapas del proceso; poseer un ciclode vida iterativo e incremental; y tener en cuenta todos los requerimientosfuncionales en el diseno.

    ICONIX se divide en las etapas de: analisis de requerimientos, analisisy diseno preliminar, diseno, e implementacion y pruebas.

    La etapa de analisis de requerimientos, cubre los numerales del unoal seis que se muestran en la Figura 1.3. Estos numerales son: realizaciondel documento de requerimientos, tecnica para identificar las clases y/o losobjetos candidatos, construccion del modelo del dominio, bosquejo de todaslas interfaces graficas de usuario (GUI4), construccion del diagrama de casosde uso, y finalmente una revision de requerimientos.

    2www.iconixsw.com3Unified Modeling Language - Lenguaje Unificado de Modelamiento4Graphical User Interface

  • 6 CAPITULO 1. INTRODUCCION

    Figura 1.3: Proceso de desarrollo ICONIX

  • 1.1. PROCESO DE DESARROLLO ICONIX 7

    La etapa de analisis y diseno preliminar, cubre los numerales del sieteal diez que se muestran en la Figura 1.3. Estos numerales son: Construccionde los textos descriptivos de los casos de uso, elaboracion de un diagramade robustez por cada caso de uso, actualizacion del modelo del dominio, yfinalmente una revision del diseno preliminar.

    La etapa de diseno, cubre los numerales del once al trece que se mues-tran en la Figura 1.3. Estos numerales son: construccion de un diagrama desecuencia por cada caso de uso, realizacion de la segunda actualizacion delmodelo del dominio (diagrama de clases), y finalmente una revision crticadel diseno. En esta etapa, tambien se pueden elaborar de ser necesarios, losdiagramas de colaboracion, estados y actividad.

    La etapa final, la de implementacion y pruebas, no se encuentra muydetallada en ICONIX[17], pero si lo estan en ICONIX[16] escrito este ano2007.

    En el momento no se explicaran con mayor detalle cada uno de losnumerales citados en las etapas del proceso ICONIX, sin embargo ellos serandesarrollados de aqu en adelante.

  • 8 CAPITULO 1. INTRODUCCION

  • 2ANALISIS DE REQUERIMIENTOS

    2.1. Documento de requerimientos

    Desarrollar un laboratorio virtual de redes neuronales, el cual permitatrabajar con neuronas de procesamiento, neuronas de retardo (Z1), neu-ronas de entrada y agrupacion de neuronas (redes neuronales). Tambiendebe permitir generar programas que se ejecuten por fuera del laboratorioy disponer de monitores por los cuales se puedan observar los cambios rea-lizados en neuronas de proceso, neuronas de retardo o neurona de entrada.

    Las neuronas de procesamiento deben tener externamente unas entradasy una unica salida, internamente cada neurona de procesamiento, posee aso-ciado un factor o peso por cada entrada, una funcion base, una funcion deactivacion, y una funcion de transferencia, ver Figura 2.1 y los Cuadros 2.1y 2.2.

    Una funcion base, relaciona los pesos y las entradas, su valor de salidase conoce como potencial de activacion (T). Esta relacion entre los pesos ylas entradas, se puede realizar por medio de una funcion base lineal, unafuncion base radical u otra definida por el usuario.

    Una funcion de activacion, cuya salida se conoce como valor de acti-vacion (A); y la funcion de transferencia, cuya salida corresponde al valor

  • 10 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    de salida (S) de la neurona de proceso; son funciones matematicas las cualespueden ser: funcion sigmoidal unipolar, funcion sigmoidal bipolar, funcionlineal mixta unipolar, funcion lineal mixta bipolar, funcion escalon unipolar,funcion escalon bipolar, funcion identidad, u otra definida por el usuario. VerCuadro 2.2.

    Cada neurona de proceso tambien dispone de un umbral de activacionel cual es considerado una entrada mas a la funcion base pero interno.

    Funcion base lineal T =

    ni=0

    ei wi

    Funcion base radical T =

    ni=0

    (ei wi)2

    Tabla 2.1: Lista de funciones base

    Figura 2.1: Neurona de proceso

    Las neuronas de retardo (Z1), conservan un valor de salida hasta quereciben una senal la cual hace que ellas actualicen dicho valor de salida porotro valor, el de entrada, ver Figura 2.2).

    Figura 2.2: Neurona de retardo

    Las neuronas de entrada, toman valores fijos y los distribuyen a otrasneuronas que lo soliciten, ver Figura 2.3.

    Por otro lado, las redes neuronales definen una forma de conexion de

  • 2.1. DOCUMENTO DE REQUERIMIENTOS 11

    Funcion identidad f(x) = x

    Funcion escalon unipolar f(x) =

    {1 si x 00 si x < 0

    Funcion escalon bipolar f(x) =

    {1 si x 01 si x < 0

    Funcion sigmoidal unipolar f(x) =1

    1 + ex

    Funcion sigmoidal bipolar f(x) =ex exex + ex

    Funcion lineal mixta unipolar f(x) =

    1 si x > 10 si x < 1x

    2+ 0,5 en otro caso

    Funcion lineal mixta bipolar f(x) =

    1 si x > 11 si x < 1x en otro caso

    u otra definida por el usuario f(x) = g(x)

    Tabla 2.2: Lista de funciones de activacion o transferencia

    Figura 2.3: Neurona de entrada

    las neuronas (topologa) y un algoritmo de entrenamiento (algoritmo paramodificar el peso de las conexiones segun algun criterio predefinido). Algu-nas redes neuronales [18] son: Perceptron, Perceptron multinivel, Adaline,Madaline, Hopfield y Backpropagation.

    Las funcionalidades que debe tener el laboratorio virtual sobre cada unode los elementos son:

    Sobre el laboratorio: Iniciar laboratorio, cargar laboratorio, guardarlaboratorio.

  • 12 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    Sobre las neurona de entrada: Crear neurona, obtener nombre,obtener valor de salida, asignar valor de salida, crear monitor, asignarmonitor, desasignar monitor, definir nuevo monitor o cargarlo.

    Sobre las neurona de retardo: Crear neurona, obtener nombre,obtener valor de salida, asignar valor de salida, actualizar valor pre-sente, obtener valor futuro, actualizar valor futuro, definir nuevo valorfuturo o cargarlo, enlazar neurona, desenlazar neurona, obtener estadoenlace, obtener con quien se relaciona, obtener nombre de la neuronaenlazada, crear monitor, asignar monitor, desasignar monitor, definirnuevo monitor o cargarlo.

    Sobre las neurona de proceso: Crear neurona, obtener nombre,obtener numero de entradas, enlazar neurona, desenlazar neurona, ob-tener estado de un enlace, obtener con quien se relaciona, obtenernombre de la neurona enlazada, obtener peso enlace, cambiar pesoenlace, obtener funcion base, cambiar funcion base, definir nueva fun-cion base o cargarla, obtener funcion de activacion, cambiar funcionde activacion, definir nueva funcion de activacion o cargarla, obtenerfuncion de transferencia, cambiar funcion de transferencia, definir nue-va funcion de transferencia o cargarla, obtener umbral de activacion,cambiar umbral de activacion, obtener potencial de activacion, obte-ner valor de activacion , obtener valor de salida, crear monitor, asignarmonitor, desasignar monitor, definir nuevo monitor o cargarlo.

    Sobre la red neuronal: Crear red, obtener nombre, definir nuevared neuronal o cargarla, ejecutar red, generar aplicacion.

    2.2. Tecnica de identificacion

    La tecnica que se va a utilizar para la identificacion de clases y objetoscandidatos es la llamada Descripcion informal, la cual consiste en redac-tar una descripcion del problema (o de una parte de el - Ver requerimientosen la pagina 9), para luego subrayar de dicha descripcion los sustantivos ylos verbos. Los sustantivos mas relevantes se convierten en clases u obje-tos, mientras que los verbos clave se convierten en las funcionalidades delsoftware (los casos de uso). Esta identificacion de sustantivos y verbos notiene porque ser exhaustiva, lo importante es identificar los elementos masrelevantes en el texto.

  • 2.2. TECNICA DE IDENTIFICACION 13

    La tecnica de Descripcion informal se presta para la automatizacion,es facil de aplicar y no requiere mucha experiencia, pero es poco rigurosa ydependiente de la redaccion, lo cual la hace poco apta para problemas degran tamano.

    2.2.1. Lista de clases candidatas

    En primera instancia se obtiene una lista de los sustantivos (palabras ofrases cortas que hagan de sustantivos) presentes en la descripcion (Ver laTabla 2.3). Hay que resaltar el hecho que en este punto no importa si dichossustantivos son o no importantes para el sistema que se desea construir.

    CLASES CANDIDATAS

    laboratorio virtual red neuronalneurona neurona de procesamientoneurona de retardo neurona de entradaagrupacion de neuronas monitormonitor de neurona de proceso monitor de neurona de retardomonitor de neurona de entrada entradassalida factorpeso funcion basepotencial de activacion linealfuncion base radical usuariofuncion de activacion valor de activacionfuncion matematica funcion de activacionvalor de salida funcion sigmoidal unipolarfuncion sigmoidal bipolar funcion lineal mixta unipolarfuncion lineal mixta bipolar funcion escalon unipolarfuncion escalon bipolar funcion identidadumbral de activacion senalvalor de entrada forma de conexiontopologa algoritmo de entrenamientoconexiones criterio predefinidored perceptron red perceptron multinivelred adaline red madalinered hopfield red backpropagation

    Tabla 2.3: Lista de clases candidatas

    2.2.2. Eliminacion de algunas clases candidatas

    Ahora se procede a realizar la eliminacion de algunos de los sustantivosde la Tabla 2.3, los cuales se presumen no son importantes para el sistemaque se desea construir (Ver Tabla 2.4).

  • 14 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    SUSTANTIVO RAZON DE ELIMINACION

    agrupacion de neuronas por ser sinonimo de red neuronalentradas por ser un posible atributo

    salida por ser un posible atributofactor por ser un posible atributopeso por ser sinonimo de factor

    potencial de activacion por ser un posible atributousuario por ser un posible actor

    valor de activacion por ser un posible atributovalor de salida por ser un posible atributo

    senal por ser irrelevantevalor de entrada por ser un posible atributo

    forma de conexion por ser sinonimo de topologatopologa por ser irrelevante

    algoritmos de entrenamiento por ser irrelevanteconexiones por ser un posible atributo

    criterio predefinido por ser irrelevanteumbral de activacion por ser un posible atributo

    Tabla 2.4: Eliminacion de algunas clases candidatas

    2.2.3. Lista definitiva de clases candidatas

    En la Tabla 2.5 se puede observar la lista resultante despues de eliminarlos sustantivos citados en la Tabla 2.4.

    La idea ahora es buscar las posibles relaciones que hay entre los sustan-tivos resultantes.

    CLASES CANDIDATAS

    red neuronal laboratorio virtualneurona de procesamiento neurona de retardoneurona de entrada monitormonitor de neurona de proceso monitor de neurona de retardomonitor de neurona de entrada funcion basefuncion base lineal funcion base radicalfuncion de activacion funcion de activacionfuncion matematica funcion sigmoidal unipolarfuncion sigmoidal bipolar funcion lineal mixta unipolarfuncion lineal mixta bipolar funcion escalon unipolarfuncion escalon bipolar funcion identidadred perceptron red perceptron multinivelred adaline red madalinered hopfield red backpropagationneurona

    Tabla 2.5: Lista definitiva de clases candidatas

  • 2.3. MODELO DEL DOMINIO 15

    2.2.4. Relaciones entre las clases candidatas

    Las relaciones a identificar son:

    Las generalizaciones (es un o es una clase de),

    la agregacion (es una parte de o esta compuesto por),

    o cualquier otra relacion (asociaciones).

    Ver Tabla 2.6.

    2.2.5. Lista de verbos

    La idea ahora es tomar la descripcion del problema e identificar losverbos con una pequena frase que le de un contexto de accion, en este caso, sepueden observar estos elementos en la lista de funcionalidades presentadas enla pagina 11. Hay que resaltar el hecho que lo que se identifique se convierteposteriormente en los casos de uso del sistema, ver pagina 40.

    2.3. Modelo del dominio

    El modelo del dominio no es mas que un diagrama de clases sin ninguntipo de detalle (sin atributos, sin metodos, . . .), en el cual se pueden ver grafi-camente todas las relaciones identificadas en la Tabla 2.6. Ver el diagramaresultante en la Figura 2.4.

  • 16 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    CLASES RELACION CLASES

    un laboratorio virtual tiene neuronas de . . .un laboratorio virtual tiene monitor de n. de . . .

    una red neuronal tiene neuronasuna neurona de procesamiento es una neurona

    una neurona de retardo es una neuronauna neurona de entrada es una neuronauna neurona de proceso tiene una f. baseuna neurona de proceso tiene una f. de activacionuna neurona de proceso tiene una f. de transferencia

    una neurona se relaciona con otra neuronauna f. base lineal es una funcion base

    una f. base radical es una funcion baseuna f. de activacion es una funcion matematica

    una f. de transferencia es una funcion matematicauna f. sigmoidal unipolar es una funcion matematicauna f. sigmoidal bipolar es una funcion matematica

    una f. lineal mixta unipolar es una funcion matematicauna f. lineal mixta bipolar es una funcion matematica

    una f. escalon unipolar es una funcion matematicauna f. escalon bipolar es una funcion matematica

    una f. identidad es una funcion matematicaun monitor de n. de proceso es un monitorun monitor de n. de retardo es un monitorun monitor de n. de entrada es un monitorun monitor de n. de proceso monitorea una neurona de procesoun monitor de n. de retardo monitorea una neurona de retardoun monitor de n. de entrada monitorea una neurona de entrada

    una red perceptron es una red neuronaluna red perceptron multinivel es una red neuronal

    una red adaline es una red neuronaluna red madaline es una red neuronaluna red hopfield es una red neuronal

    una red backpropagation es una red neuronal

    Tabla 2.6: Relaciones entre las clases candidatas

  • 2.3. MODELO DEL DOMINIO 17

    Figura 2.4: Modelo del dominio

  • 18 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    2.4. Prototipo de las interfaces graficas

    En la Figura 2.5, se puede observar el prototipo de la Ventana Princi-pal en la cual el usuario debe elegir que accion desea hacer en el sistema,tal y como se explicara mas adelante. Inicialmente todas las opciones delmenu principal permanecen desactivadas, salvo las opciones de Archivo yAcerca de.

    Figura 2.5: Ventana Principal

    En la Figura 2.6, se observan las alternativas de la opcion Archivode la Ventana Principal. Inicialmente la opcion Guardar laboratoriopermanece desactivada.

    Figura 2.6: Ventana Principal opcion -Archivo-

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 19

    En la Figura 2.7, se observa el prototipo de la Ventana Nuevo Labora-torio, la cual se muestra cuando el usuario selecciona la alternativa Iniciarlaboratorio de la opcion Archivo en la Ventana Principal.

    Figura 2.7: Ventana Nuevo Laboratorio

    En la Figura 2.8, se observa el prototipo del dialogo de Cargar archivos,el cual se muestra cuando el usuario selecciona la alternativa Cargar labo-ratorio de la opcion Archivo en la Ventana Principal.

    Figura 2.8: Dialogo de Cargar archivos

  • 20 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    En la Figura 2.9, se observa el prototipo del dialogo de Guardar labo-ratorio, el cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Archivo en la Ventana Principal.

    Figura 2.9: Dialogo de Guardar como

    En la Figura 2.10, se observan las alternativas de la opcion Neurona deEntrada de la Ventana Principal. Por defecto solo las alternativas Crearneurona, Crear monitor y Definir nuevo monitor se encuentran activas.

    Figura 2.10: Ventana Principal opcion -Neurona de Entrada-

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 21

    En la Figura 2.11, se observa el prototipo de la Ventana Crear Neu-rona, la cual se muestra cuando el usuario selecciona la alternativa de igualnombre de la opcion Neurona de entrada en la Ventana Principal.

    Figura 2.11: Ventana Crear Neurona

    En la Figura 2.12, se observa el prototipo de la Ventana Obtener Nom-bre, la cual se muestra cuando el usuario selecciona la alternativa de igualnombre de la opcion Neurona de entrada en la Ventana Principal.

    Figura 2.12: Ventana Obtener Nombre

    En la Figura 2.13, se observa el prototipo de la Ventana Obtener Valorde Salida, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de entrada en la Ventana Principal.

    Figura 2.13: Ventana Obtener Valor de Salida

  • 22 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    En la Figura 2.14, se observa el prototipo de la VentanaAsignar Valorde Salida, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de entrada en la Ventana Principal.

    Figura 2.14: Ventana Asignar Valor de Salida

    En la Figura 2.15, se observa el prototipo de la Ventana Crear Moni-tor, la cual se muestra cuando el usuario selecciona la alternativa de igualnombre de la opcion Neurona de entrada en la Ventana Principal.

    Figura 2.15: Ventana Crear Monitor

    En la Figura 2.16, se observa el prototipo de la Ventana Asignar Moni-tor, la cual se muestra cuando el usuario selecciona la alternativa de igualnombre de la opcion Neurona de entrada en la Ventana Principal.

    Figura 2.16: Ventana Asignar Monitor

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 23

    En la Figura 2.17, se observa el prototipo de la Ventana DesasignarMonitor, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de entrada en la Ventana Principal.

    Figura 2.17: Ventana Desasignar Monitor

    En la Figura 2.18, se observa el prototipo de la Ventana Definir NuevoMonitor, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de entrada en la Ventana Principal.

    Figura 2.18: Ventana Definir Nuevo Monitor

  • 24 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    En la Figura 2.19, se observan las alternativas de la opcion Neurona deRetardo de la Ventana Principal. Por defecto solo las alternativas Crearneurona, Crear monitor y Definir nuevo monitor se encuentran activas.

    Figura 2.19: Ventana Principal opcion -Neurona de Retardo-

    En la Figura 2.20, se observa el prototipo de la Ventana Crear Neuronade Retardo, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de retardo en la Ventana Principal.

    Figura 2.20: Ventana Crear Neurona de Retardo

    En la Figura 2.12, se observa el prototipo de la Ventana Obtener Nom-bre, la cual se muestra cuando el usuario selecciona la alternativa de igualnombre de la opcion Neurona de retardo en la Ventana Principal.

    En la Figura 2.13, se observa el prototipo de la Ventana Obtener Valorde Salida, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de retardo en la Ventana Principal.

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 25

    En la Figura 2.14, se observa el prototipo de la Ventana Asignar Valorde Salida, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de retardo en la Ventana Principal.

    La alternativa Actualizar valor presente utiliza solo un dialogo deinformacion (Figura 2.60).

    En la Figura 2.21, se observa el prototipo de la Ventana ActualizarValor Presente, la cual se muestra cuando el usuario selecciona la alter-nativa de igual nombre de la opcion Neurona de retardo en la VentanaPrincipal.

    Figura 2.21: Ventana Actualizar Valor Presente

    En la Figura 2.22, se observa el prototipo de la Ventana Obtener ValorFuturo, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de retardo en la Ventana Principal.

    En las Figuras 2.12, 2.13, 2.14, 2.60, 2.22 se observan los prototipos delas Ventanas Obtener Nombre, Obtener Valor de Salida, Asignar Valorde Salida, Actualizar valor presente y Obtener Valor Futuro respectiva-mente, las cuales se muestran cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de retardo en la Ventana Principal.

    Figura 2.22: Ventana Obtener Valor Futuro

    En la Figura 2.23, se observa el prototipo de la Ventana Actualizar Va-lor Futuro, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de retardo en la Ventana Principal.

  • 26 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    Figura 2.23: Ventana Actualizar Valor Futuro

    En la Figura 2.24, se observa el prototipo de la Ventana Definir NuevoValor Futuro, la cual se muestra cuando el usuario selecciona la alterna-tiva de igual nombre de la opcion Neurona de retardo en la VentanaPrincipal.

    Figura 2.24: Ventana Definir Nuevo Valor Futuro

    En la Figura 2.25, se observa el prototipo de la Ventana Enlazar Neu-rona, la cual se muestra cuando el usuario selecciona la alternativa de igualnombre de la opcion Neurona de retardo en la Ventana Principal.

    Figura 2.25: Ventana Enlazar Neurona

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 27

    En la Figura 2.26, se observa el prototipo de la Ventana DesenlazarNeurona, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de retardo en la Ventana Principal.

    Figura 2.26: Ventana Desenlazar Neurona

    En la Figura 2.27, se observa el prototipo de la Ventana Obtener Estadodel Enlace, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de retardo en la Ventana Principal.

    Figura 2.27: Ventana Obtener Estado del Enlace

    En la Figura 2.28, se observa el prototipo de la Ventana Obtener conquien se Relaciona, la cual se muestra cuando el usuario selecciona la alter-nativa de igual nombre de la opcion Neurona de retardo en la VentanaPrincipal.

    Figura 2.28: Ventana Obtener con quien se Relaciona

    En la Figura 2.29, se observa el prototipo de la Ventana Obtener Nom-bre de la Neurona Enlazada, la cual se muestra cuando el usuario seleccionala alternativa de igual nombre de la opcion Neurona de retardo en laVentana Principal.

  • 28 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    Figura 2.29: Ventana Obtener Nombre de la Neurona Enlazada

    En las figuras 2.15, 2.16, 2.17 y 2.18, se observan los prototipos de lasventanas relacionadas con los monitores, las cuales se muestran cuando elusuario selecciona la alternativa de igual nombre de la opcion Neurona deretardo en la Ventana Principal.

    En la Figura 2.30, se observan las alternativas de la opcion Neurona deProceso de la Ventana Principal. Por defecto solo las alternativas Crearneurona, Crear monitor y Definir nuevo monitor se encuentran activas.

    Figura 2.30: Ventana Principal opcion -Neurona de Proceso-

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 29

    En la Figura 2.31, se observa el prototipo de la Ventana Crear Neuronade Proceso, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de proceso en la Ventana Principal.

    Figura 2.31: Ventana Crear Neurona de Proceso

    En la Figura 2.12, se observa el prototipo de la Ventana Obtener Nom-bre, la cual se muestra cuando el usuario selecciona la alternativa de igualnombre de la opcion Neurona de proceso en la Ventana Principal.

    En la Figura 2.32, se observa el prototipo de la Ventana ObtenerNumero de Entradas, la cual se muestra cuando el usuario selecciona laalternativa de igual nombre de la opcion Neurona de proceso en la Ven-tana Principal.

    Figura 2.32: Ventana Obtener Numero de Entradas

    En la Figura 2.33, se observa el prototipo de la Ventana Enlazar Neu-rona en una Entrada, la cual se muestra cuando el usuario selecciona laalternativa de igual nombre de la opcion Neurona de proceso en la Ven-tana Principal.

    Figura 2.33: Ventana Enlazar Neurona en una Entrada

  • 30 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    En la Figura 2.34, se observa el prototipo de la Ventana DesenlazarNeurona en una Entrada, la cual se muestra cuando el usuario seleccionala alternativa de igual nombre de la opcion Neurona de proceso en laVentana Principal.

    Figura 2.34: Ventana Desenlazar Neurona en una Entrada

    En la Figura 2.35, se observa el prototipo de la Ventana Obtener Estadode una Entrada, la cual se muestra cuando el usuario selecciona la alter-nativa de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    Figura 2.35: Ventana Obtener Estado de una Entrada

    En la Figura 2.28, se observa el prototipo de la Ventana Obtener conquien se Relaciona, la cual se muestra cuando el usuario selecciona la alter-nativa de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    En la Figura 2.36, se observa el prototipo de la Ventana Obtener Nom-bre de una Neurona Enlazada, la cual se muestra cuando el usuario selec-ciona la alternativa de igual nombre de la opcion Neurona de proceso enla Ventana Principal.

    Figura 2.36: Ventana Obtener Nombre de una Neurona Enlazada

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 31

    En la Figura 2.37, se observa el prototipo de la Ventana Obtener Pesode un Enlace, la cual se muestra cuando el usuario selecciona la alterna-tiva de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    Figura 2.37: Ventana Obtener Peso de un Enlace

    En la Figura 2.38, se observa el prototipo de la Ventana Cambiar Pesode un Enlace, la cual se muestra cuando el usuario selecciona la alterna-tiva de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    Figura 2.38: Ventana Cambiar Peso de un Enlace

    En la Figura 2.39, se observa el prototipo de la Ventana Obtener Fun-cion Base, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de proceso en la Ventana Principal.

    Figura 2.39: Ventana Obtener Funcion Base

  • 32 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    En la Figura 2.40, se observa el prototipo de la Ventana Cambiar Fun-cion Base, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Neurona de proceso en la Ventana Principal.

    Figura 2.40: Ventana Cambiar Funcion Base

    En la Figura 2.41, se observa el prototipo de la Ventana Definir NuevaFuncion Base, la cual se muestra cuando el usuario selecciona la alterna-tiva de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    Figura 2.41: Ventana Definir Nueva Funcion Base

    En la Figura 2.42, se observa el prototipo de la Ventana Obtener Fun-cion de Activacion, la cual se muestra cuando el usuario selecciona la alter-nativa de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    Figura 2.42: Ventana Obtener Funcion de Activacion

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 33

    En la Figura 2.43, se observa el prototipo de la Ventana Cambiar Fun-cion de Activacion, la cual se muestra cuando el usuario selecciona la alter-nativa de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    Figura 2.43: Ventana Cambiar Funcion de Activacion

    En la Figura 2.44, se observa el prototipo de la Ventana Definir NuevaFuncion de Activacion, la cual se muestra cuando el usuario seleccionala alternativa de igual nombre de la opcion Neurona de proceso en laVentana Principal.

    Figura 2.44: Ventana Definir Nueva Funcion de Activacion

    En la Figura 2.45, se observa el prototipo de la Ventana Obtener Fun-cion de Transferencia, la cual se muestra cuando el usuario selecciona laalternativa de igual nombre de la opcion Neurona de proceso en la Ven-tana Principal.

    Figura 2.45: Ventana Obtener Funcion de Transferencia

  • 34 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    En la Figura 2.46, se observa el prototipo de la Ventana Cambiar Fun-cion de Transferencia, la cual se muestra cuando el usuario selecciona laalternativa de igual nombre de la opcion Neurona de proceso en la Ven-tana Principal.

    Figura 2.46: Ventana Cambiar Funcion de Transferencia

    En la Figura 2.47, se observa el prototipo de la Ventana Definir NuevaFuncion de Transferencia, la cual se muestra cuando el usuario seleccionala alternativa de igual nombre de la opcion Neurona de proceso en laVentana Principal.

    Figura 2.47: Ventana Definir Nueva Funcion de Transferencia

    En la Figura 2.48, se observa el prototipo de la Ventana Obtener Um-bral de Activacion, la cual se muestra cuando el usuario selecciona la alter-nativa de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    Figura 2.48: Ventana Obtener Umbral de Activacion

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 35

    En la Figura 2.49, se observa el prototipo de la Ventana Cambiar Um-bral de Activacion, la cual se muestra cuando el usuario selecciona la alter-nativa de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    Figura 2.49: Ventana Cambiar Umbral de Activacion

    En la Figura 2.50, se observa el prototipo de la Ventana Obtener Po-tencial de Activacion, la cual se muestra cuando el usuario selecciona laalternativa de igual nombre de la opcion Neurona de proceso en la Ven-tana Principal.

    Figura 2.50: Ventana Obtener Potencial de Activacion

    En la Figura 2.51, se observa el prototipo de la Ventana Obtener Valorde Activacion, la cual se muestra cuando el usuario selecciona la alterna-tiva de igual nombre de la opcion Neurona de proceso en la VentanaPrincipal.

    Figura 2.51: Ventana Obtener Valor de Activacion

    En las figuras 2.15, 2.16, 2.17 y 2.18, se observan los prototipos de lasventanas relacionadas con los monitores, las cuales se muestran cuando elusuario selecciona la alternativa de igual nombre de la opcion Neurona deproceso en la Ventana Principal.

  • 36 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    En la Figura 2.52, se observan las alternativas de la opcion Red Neu-ronal de la Ventana Principal. Por defecto solo las alternativas Crearred y Definir nueva red neuronal, se encuentran activas.

    Figura 2.52: Ventana Principal opcion -Red Neuronal-

    En la Figura 2.53, se observa el prototipo de la Ventana Crear una RedNeuronal, la cual se muestra cuando el usuario selecciona la alternativa deigual nombre de la opcion Red Neuronal en la Ventana Principal.

    Figura 2.53: Ventana Crear una Red Neuronal

    En la Figura 2.12, se observa el prototipo de la Ventana Obtener Nom-bre, la cual se muestra cuando el usuario selecciona la alternativa de igualnombre de la opcion Red Neuronal en la Ventana Principal.

    En la Figura 2.54, se observa el prototipo de la Ventana Definir NuevaRed Neuronal, la cual se muestra cuando el usuario selecciona la alternativade igual nombre de la opcion Red Neuronal en la Ventana Principal.

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 37

    Figura 2.54: Ventana Definir Nueva Red Neuronal

    En la Figura 2.55, se observan el prototipo de la Ventana EjecutarRed, la cual se muestra cuando el usuario selecciona la alternativa de igualnombre en la Ventana Principal.

    Figura 2.55: Ventana Ejecutar Red

    En la Figura 2.56, se observan el prototipo de la Ventana GenerarAplicacion, la cual se muestra cuando el usuario selecciona la alternativade igual nombre en la Ventana Principal.

    Figura 2.56: Ventana Generar Aplicacion

    En la Figura 2.57, se observan el prototipo de la Ventana Acerda de, lacual se muestra cuando el usuario selecciona la alternativa de igual nombreen la Ventana Principal.

  • 38 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    Figura 2.57: Ventana Acerda de

    Figura 2.58: Ventana Agradecimientos

  • 2.4. PROTOTIPO DE LAS INTERFACES GRAFICAS 39

    Las Figuras 2.59, 2.60, 2.61, 2.62, son los prototipos de los dialogos de:Dialogo de Error, Dialogo de Informacion, Dialogo de Advertencia yDialogo de Pregunta respectivamente.

    Figura 2.59: Dialogo de Error

    Figura 2.60: Dialogo de Informacion

    Figura 2.61: Dialogo de Advertencia

    Figura 2.62: Dialogo de Pregunta

  • 40 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    A C L A R A C I O N

    TODAS LAS INTERFACES GRAFICAS MENCIONADAS SON DIALOGOS,SALVO LA VENTANA PRINCIPAL, SIN EMBARGO PARA EVITAR

    CONFUSIONES, SE LES SEGUIRA DICIENDO VENTANAS.

    2.5. Diagramas de Casos de Uso

    Los casos de uso se organizaron en paquetes para su mejor comprension.Los detalles de cada caso de uso se hacen en el captulo siguiente.

    La Figura 2.63 muestra los casos de uso del paquete archivo.

    Figura 2.63: Casos de uso del paquete archivo

    La Figura 2.64 muestra los casos de uso del paquete neurona de entra-da.

    Figura 2.64: Casos de uso del paquete neurona de entrada

  • 2.5. DIAGRAMAS DE CASOS DE USO 41

    La Figura 2.65 muestra los casos de uso del paquete neurona de retar-do.

    Figura 2.65: Casos de uso del paquete neurona de retardo

    La Figura 2.66 muestra los casos de uso del paquete red neuronal.

    Figura 2.66: Casos de uso del paquete red neuronal

  • 42 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

    La Figura 2.67 muestra los casos de uso del paquete neurona de pro-ceso.

    Figura 2.67: Casos de uso del paquete neurona de proceso

    2.6. Revision de requerimientos (RR)

    Para realizar la revision de requerimientos (RR) hay que tener en cuentalas siguientes consideraciones.

    Asegurarse que los pasos anteriores reflejan los requerimientos fun-cionales.

    Asegurarse que los clientes tengan idea de los requerimientos con loscuales se basara el diseno.

  • 2.6. REVISION DE REQUERIMIENTOS (RR) 43

    Involucre representantes de los clientes y del equipo de desarrollo, bus-cando un acuerdo sobre todo lo hecho hasta ahora.

    Identifique: Cuales son los objetos del mundo real que necesitamosmodelar y como se relacionan entre ellos?

    Desarrolladores y usuarios construyen un prototipo (GUI) que muestrela prueba de concepto.

    No construya el prototipo en codigo, use lapiz y papel o herramientasde dibujo.

    Para este proyecto, toda la revision es satisfactoria.

  • 44 CAPITULO 2. ANALISIS DE REQUERIMIENTOS

  • 3ANALISIS Y DISENO PRELIMINAR

    3.1. Descripcion de los casos de uso

    El texto explicativo de los casos de uso, debe estar escrito en voz activay debe dejar claro el que y no el como. Esta descripcion debe tener almenos dos partes: un curso basico y un curso alterno.

    El curso basico debe describir la interaccion del usuario con el sistemay las respectivas respuestas. Debe dejar claro Quien hace que?, usandoque elementos de la interfaz grafica? y que hace el sistema como respuestaa ello?. Para poder describir la interaccion, deben hacerse referencias a lasdiferentes ventanas, dialogos y elementos que se utilicen de la interfaz graficade usuario.

    Por otro lado, el curso alterno debe describir todas las eventualidades,fallos o errores que pueden pasar mientras se ejecuta el curso basico. Denuevo deben existir referencias a la interfaz grafica de usuario.

    Hay que recordar que es menos costoso los cambios en este punto delproyecto que posteriormente, ya que por ahora son solo descripciones.

    Hay que tener presente que cuando el numero de los casos de uso esgrande, se pueden agrupar en paquetes para su mejor comprension, tal y

  • 46 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    como se hizo en el capitulo anterior. Ademas todas las descripciones debenser claras, concisas y en un lenguaje en el cual los clientes no tecnicos puedaninterpretarlo para que as, ellos puedan participar en su mejoramiento. Deigual manera, debe ser lo mas completo posible pues debe impedirse que loscodificadores o programadores implementen lo que ellos creen que el sistemadebe hacer.

    Es clave identificar cada uno de los siguientes elementos:

    Lmites: Cuando empieza y cuando termina el caso de uso.

    Interacciones: Comportamiento de actores y el sistema. Accion -reaccion dentro del caso de uso.

    Masa: Conjunto de objetos e interfaces que se requieren.

    Indice de escenarios: Flujo principal de eventos y secuencia de varia-ciones

    Tribulaciones: Contingencias probables que pueden afectar al flujode los eventos y son ellas las excepciones del caso de uso.

    3.1.1. Paquete archivo

    Iniciar laboratorio

    Curso basicoEl sistema muestra el mensaje Todos los datos no guardados seperderan si continua! en un Dialogo de Advertencia (ver Figura2.61), el usuario presiona el boton Aceptar de dicho dialogo, el sis-tema cierra el dialogo y abre la ventana Nuevo Laboratorio (verFigura 2.7).

    El usuario escribe el nombre del autor o autores en la ventana NuevoLaboratorio y presiona el boton Aceptar de dicha ventana.

    El sistema verifica que se hayan ingresado datos (se espera uno o variosnombres de personas), luego el sistema cierra la ventana Nuevo La-boratorio y almacena estos datos como los nombre de los autores dellaboratorio, posteriormente borra la zona del reporte de actividadesde la Ventana Principal (ver Figura 2.5) y muestra en dicha zona elmensaje:

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 47

    /*L A B O R A T O R I O V I R T U A L D E R E D E S N E U R O N A L E S

    Autores: listadoDeAutoresFecha: fechaActual

    */

    (listadoDeAutores y fechaActual corresponden respectivamente allistado de los nombre de los autores y a la fecha actual).

    Posteriormente el sistema crea las listas para las neuronas de entrada,neurona de retardo, neurona de proceso, redes neuronales y monitoresdel laboratorio; finalmente el sistema activa la alternativa Guardarlaboratorio de la opcion Archivo de la Ventana Principal, as co-mo tambien activa las opciones Neurona de entrada, Neurona deretardo, Neurona de proceso y la opcion Red Neuronal de dichaventana.

    Curso alternoSi el usuario presiona el boton Cancelar en el Dialogo de Adverten-cia, el sistema cierra el dialogo quedando en la Ventana Principal.

    Si no se han ingresado datos, el sistema muestra el mensaje Debeingresar el nombre del autor o autores del laboratorio, en un Dialo-go de Informacion (ver Figura 2.60), el usuario presiona el botonAceptar de dicho dialogo y el sistema cierra el dialogo quedando enla ventana Nuevo Laboratorio.

    Si se produce una falla en la creacion de alguna de las listas de neuronaso de redes neuronales, el sistema muestra el mensaje Error al crearla lista xxx, en un Dialogo de Error (ver Figura 2.59), el usuariopresiona el boton Aceptar de dicho dialogo y el sistema cierra eldialogo quedando en la ventana Ventana Principal.

    Si el usuario presiona el boton de Cancelar en la ventana NuevoLaboratorio, el sistema cierra la ventana quedando en la VentanaPrincipal.

    Cargar laboratorio

    Curso basicoEl sistema muestra el mensaje Todos los datos no guardados seperderan si continua! en un Dialogo de Advertencia (ver Figura2.61), el usuario presiona el boton Aceptar de dicho dialogo, el sis-tema cierra el dialogo y abre el dialogo Cargar archivos (ver Figura2.8).

  • 48 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    El usuario en el dialogo Cargar archivos selecciona la ubicacion y elnombre del archivo que desea y presiona el boton Cargar de dichodialogo.

    El sistema cierra el dialogo, carga la informacion del laboratorio al-macenado (autores, listas de las neuronas de entrada, neurona de re-tardo, neurona de proceso, redes neuronas y actividades realizadas);luego el sistema activa la alternativa Guardar laboratorio de la op-cion Archivo de la Ventana Principal (ver Figura 2.6), as comotambien activa las opciones Neurona de entrada, Neurona de retar-do, Neurona de proceso y la opcion Red Neuronal de la VentanaPrincipal (ver Figura 2.5). Posteriormente el sistema actualiza la zonade reporte de actividades de la Ventana Principal con las actividadesrealizadas en el laboratorio cargado, y adiciona el siguiente mensaje:

    /*Cargado de: nombreCompletoDelArchivoEn la fecha: fechaYHoraActual*/

    (nombreCompletoDelArchivo y fechaYHoraActual corresponden res-pectivamente al nombre del archivo (includa la ruta) que contiene ellaboratorio cargado y la fecha actual).

    Curso alternoSi el usuario presiona el boton Cancelar en el Dialogo de Adverten-cia, el sistema cierra el dialogo quedando en la Ventana Principal.

    Si el usuario presiona el boton de Cancelar en el dialogo Cargararchivos, el sistema cierra el dialogo quedando en la Ventana Prin-cipal.

    Si falla la carga de la informacion, el sistema muestra el mensaje Erroral cargar el laboratorio almacenado, en un Dialogo de Error (verFigura 2.59), el usuario presiona el boton Aceptar de dicho dialogo,el sistema cierra el dialogo de error quedando en el dialogo VentanaPrincipal.

    Guardar laboratorio

    Curso basicoEl usuario en la dialogo Guardar como (ver Figura 2.9) selec-ciona la ubicacion y escribe el nombre del archivo y presiona el botonGuardar de dicho dialogo.

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 49

    El sistema cierra el dialogo Guardar como, guarda la informacion dellaboratorio actual (autores, listas de las neuronas de entrada, neuronade retardo, neurona de proceso, redes neuronales y demas actividadesrealizadas) en la ubicacion y con el nombre especificado.

    Luego el sistema muestra en la zona del reporte de actividades de laVentana Principal (ver Figura 2.5) el mensaje:

    /*Guardado en: nombreCompletoDelArchivoEn la fecha: fechaYHoraActual*/

    (nombreCompletoDelArchivo y fechaYHoraActual corresponden res-pectivamente a la nombre del archivo (incluido la ruta) que contienelo realizado en el laboratorio hasta el momento y la fecha actual).

    Curso alternoSi falla el proceso de guardar la informacion, el sistema muestra elmensaje Error al guardar el laboratorio, en un Dialogo de Error(ver Figura 2.59), el usuario presiona el boton Aceptar de dichodialogo, el sistema cierra el dialogo quedando en la ventana VentanaPrincipal (ver Figura 2.5).

    Si el usuario presiona el boton de Cancelar en la ventana Guardarcomo, el sistema cierra el dialogo quedando en la Ventana Princi-pal.

    3.1.2. Paquete neurona de entrada

    Crear neurona

    Curso basicoEl usuario en la ventana Crear Neurona (ver Figura 2.11) escribeel nombre de la variable a la que se le asignara la nueva neuronade entrada, luego escribe el nombre que desea para dicha neurona, yfinalmente presiona el boton Aceptar que se encuentra en la mismaventana.

    El sistema verifica que se hayan ingresado los datos (se espera el nom-bre de la variable y el de la neurona), verifica que los nombres tenganel formato de un identificador valido, busca en la lista de variables otravariable con el mismo nombre, busca en la lista de neuronas de entra-da otra neurona con el mismo nombre, crea una neurona de entrada

  • 50 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    (asignandole el nombre especificado), la adiciona a la lista de neuronasde entrada, luego adiciona una nueva entrada a la lista de variables(indicando el nombre, el tipo de variable -neurona de entrada- y unareferencia a la nueva neurona), posteriormente muestra en la zona dereporte de actividades de la Ventana Principal (ver Figura 2.5) elmensaje:

    NeuronaDeEntrada nombreVariable;nombreVariable = new NeuronaDeEntrada ( nombreNeurona );

    (nombreVariable y nombreNeurona corresponden respectivamente alnombre de la variable que referencia a la neurona de entrada y alnombre para dicha neurona).

    Y finalmente el sistema cierra la ventana Crear Neurona y activa lasalternativas Obtener nombre, Asignar Valor de Salida, y ObtenerValor de Salida de la opcion Neurona de Entrada en la VentanaPrincipal.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana Crear Neu-rona, el sistema cierra dicha ventana quedando en la Ventana Prin-cipal.

    Si no se han ingresado datos, el sistema muestra el mensaje Ingreseel nombre de la variable y el de la neurona , en un Dialogo de In-formacion (ver Figura 2.60), el usuario presiona el boton Aceptarde dicho dialogo y el sistema cierra el dialogo quedando en la ventanaCrear neurona.

    Si el formato de alguno de los nombres no es correcto, el sistema mues-tra el mensaje El formato no corresponde al de un identificador vali-do, en un Dialogo de Error (ver Figura 2.59), el usuario presiona elboton Aceptar de dicho dialogo y el sistema cierra el dialogo quedan-do en la ventana Crear Neurona.

    Si en la lista de variables ya existe otra con el mismo nombre, el sistemamuestra el mensaje Ya existe una variable con el mismo nombre, enun Dialogo de Informacion, el usuario presiona el boton Aceptarde dicho dialogo y el sistema cierra el dialogo quedando en la ventanaCrear Neurona.

    Si en la lista de neuronas de entrada ya existe otra con el mismonombre, el sistema muestra el mensaje Ya existe una neurona de

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 51

    entrada con el mismo nombre, en un Dialogo de Informacion, elusuario presiona el boton Aceptar de dicho dialogo y el sistema cierrael dialogo quedando en la ventana Crear Neurona.

    Si falla le creacion de la neurona de entrada, el sistema muestra elmensaje Error al crear la neurona de entrada, en un Dialogo deError, el usuario presiona el boton Aceptar de dicho dialogo y elsistema cierra el dialogo quedando en la ventana Crear Neurona.

    Si falla la adicion de la nueva neurona a la lista de neuronas, el sistemamuestra el mensaje Error al almacenar la nueva neurona, en unDialogo de Error, el usuario presiona el boton Aceptar de dichodialogo y el sistema cierra el dialogo quedando en la ventana CrearNeurona.

    Si falla la adicion de la nueva entrada en la lista de variables, el sistemaelimina la nueva neurona de la lista de neuronas y muestra el mensajeError al almacenar la nueva variable, en un Dialogo de Error,el usuario presiona el boton Aceptar de dicho dialogo y el sistemacierra el dialogo quedando en la ventana Crear Neurona.

    Obtener nombre

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas las vari-ables que hagan referencia a una neurona de entrada. Luego actualizael listado que aparece en la ventana Obtener Nombre (ver Figura2.12).

    El usuario en la ventana Obtener Nombre selecciona el nombre dela variable que referencia la neurona a la cual se le desea obtener elnombre.

    El sistema obtiene el nombre de la neurona de entrada que se encuentrareferenciada por la variable seleccionada y lo muestra en la mismaventana Obtener Nombre.

    El usuario presiona el boton Aceptar que se encuentra en la mismaventana.

    El sistema muestra en la zona de reporte de actividades de la VentanaPrincipal (ver Figura 2.5) el mensaje:

    nombreVariable.obtenerNombre ( );// El nombre es: nombreNeurona

  • 52 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    (nombreVariable y nombreNeurona corresponden respectivamente alnombre de la variable que referencia la neurona de entrada y el nombrede dicha neurona de entrada).

    Finalmente el sistema cierra la ventana Obtener Nombre.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana ObtenerNombre, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

    Obtener valor de salida

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas las vari-ables que hagan referencia a una neurona de entrada. Luego actualizael listado que aparece en la ventana Obtener Valor de Salida (verFigura 2.13).

    El usuario en la ventana Obtener Valor de Salida selecciona el nom-bre de la variable que referencia la neurona a la cual se le desea obtenerel valor de salida.

    El sistema obtiene el valor de salida de la neurona de entrada que seencuentra referenciada por la variable seleccionada y lo muestra en lamisma ventana Obtener Valor de Salida.

    El usuario presiona el boton Aceptar que se encuentra en la mismaventana.

    El sistema muestra en la zona de reporte de actividades de la VentanaPrincipal (ver Figura 2.5) el mensaje:

    nombreVariable.obtenerValorDeSalida ( );// El valor de salida es: valorSalida.

    (nombreVariable y valorSalida corresponden respectivamente al nom-bre de la variable que referencia la neurona de entrada y al valor desalida de dicha neurona de entrada).

    Finalmente el sistema cierra la ventana Obtener Valor de Salida.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana Obtener Va-lor de Salida, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 53

    Asignar valor de salida

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas las vari-ables que hagan referencia a una neurona de entrada. Luego actualizael listado que aparece en la ventana Asignar Valor de Salida (verFigura 2.14).

    El usuario en la ventana Asignar Valor de Salida selecciona el nom-bre de la variable que referencia la neurona a la cual se le desea asignarel valor de salida, escribe el valor a asignar y presiona el boton Acep-tar que se encuentra en la misma ventana.

    El sistema verifica que se hayan ingresado los datos (se espera el nue-vo valor de salida de la neurona de entrada), verifica el formato delvalor de salida y actualiza dicho valor en la neurona de entrada quese encuentra referenciada por la variable seleccionada (ella notifica delcambio a sus monitores, si los tiene). Tambien muestra en la zona dereporte de actividades de la Ventana Principal (ver Figura 2.5) elmensaje:

    nombreVariable.asignarValorDeSalida ( valorSalida );

    (nombreVariable y valorSalida corresponden respectivamente al nom-bre de la variable que referencia la neurona de entrada y al nuevo valorde salida de dicha neurona de entrada).

    Finalmente el sistema cierra la ventana Asignar Valor de Salidaquedando en la Ventana Principal.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana Asignar Va-lor de Salida, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

    Si no se han ingresado datos, el sistema muestra el mensaje Ingreseel nuevo valor de salida para la neurona , en un Dialogo de Infor-macion (ver Figura 2.60), el usuario presiona el boton Aceptar dedicho dialogo y el sistema cierra el dialogo quedando en la ventanaAsignar Valor de Salida.

    Si el formato del valor de salida no es correcto, el sistema muestrael mensaje El formato no corresponde al de un valor numerico, enun Dialogo de Error (ver Figura 2.59), el usuario presiona el boton

  • 54 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    Aceptar de dicho dialogo y el sistema cierra el dialogo quedando enla ventana Asignar Valor de Salida.

    Crear monitor

    Curso basicoEl sistema obtiene del disco, el listado de todos los tipos de monitorespara neuronas de entrada, y actualiza el listado que aparece en laventana Crear Monitor (ver Figura 2.15).

    El usuario en la ventana Crear Monitor selecciona el tipo de monitorpara neuronas de entrada, y escribe el nombre para la variable a la quese le asignara este monitor, posteriormente presiona el boton Aceptarque se encuentra en la misma ventana.

    El sistema verifica que se hayan ingresado datos (se espera el nombrede la variable), verifica que el nombre tengan el formato de un identi-ficador valido, busca en la lista de variables otra variable con el mismonombre, crea un monitor de este tipo, luego adiciona una nueva en-trada a la lista de variables (indicando el nombre, el tipo de variable-monitor de neurona de entrada- y una referencia al nuevo monitor),posteriormente muestra en la zona de reporte de actividades de laVentana Principal (ver Figura 2.5) el mensaje:

    TipoMonitorNeuronaEntrada nombreVariableMonitor;nombreVariableMonitor = new TipoMonitorNeuronaEntrada ( );

    (TipoMonitorNeuronaEntrada y nombreVariableMonitor correspon-den respectivamente al tipo de monitor seleccionado y al nombre definidopor el usuario para la variable que referencia al monitor).

    Y finalmente el sistema cierra la ventana Crear Monitor y activa laalternativa Asignar monitor, de la opcion Neurona de Entrada enla Ventana Principal.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana Crear Mo-nitor, el sistema cierra dicha ventana quedando en la Ventana Prin-cipal.

    Si falla la obtencion del disco del listado de todos los tipos de moni-tores, el sistema cierra la ventana Crear Monitor, muestra el men-saje Error al leer el disco para obtener el listado de monitores, enun Dialogo de Error (ver Figura 2.59), el usuario presiona el boton

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 55

    Aceptar de dicho dialogo y el sistema cierra el dialogo quedando enla ventana Ventana Principal.

    Si en el disco no se encuentran monitores para neuronas de entrada, elsistema cierra la ventana Crear Monitor, y muestra el mensaje Nohay monitores disponibles para neuronas de entrada, en un Dialo-go de Informacion (ver Figura 2.60), el usuario presiona el botonAceptar de dicho dialogo y el sistema cierra el dialogo quedando enla Ventana Principal.

    Si no se han ingresado datos, el sistema muestra el mensaje Ingreseel nombre de la variable, en un Dialogo de Informacion, el usuariopresiona el boton Aceptar de dicho dialogo y el sistema cierra eldialogo quedando en la ventana Crear Monitor.

    Si el formato del nombre del monitor no es correcto, el sistema muestrael mensaje El formato no corresponde al de un identificador valido,en un Dialogo de Error, el usuario presiona el boton Aceptar dedicho dialogo y el sistema cierra el dialogo quedando en la ventanaCrear Monitor.

    Si en la lista de variables ya existe otra con el mismo nombre, el sistemamuestra el mensaje Ya existe una variable con el mismo nombre, enun Dialogo de Informacion, el usuario presiona el boton Aceptarde dicho dialogo y el sistema cierra el dialogo quedando en la ventanaCrear Monitor.

    Si falla la adicion de la nueva entrada en la lista de variables, el sistemamuestra el mensaje Error al almacenar la nueva variable, en unDialogo de Error, el usuario presiona el boton Aceptar de dichodialogo y el sistema cierra el dialogo quedando en la ventana CrearMonitor.

    Asignar monitor

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas lasvariables que hagan referencia a monitores de neurona de entrada ylas que hagan referencia a neuronas de entrada. Luego actualiza loslistados que aparecen en la ventana Asignar Monitor (ver Figura2.16).

    El usuario en la ventana Asignar Monitor selecciona el nombre de lavariable que referencia a un monitor y selecciona el nombre de la vari-able que referencia a una neurona de entrada, posteriormente el usuariopresiona el boton Aceptar de dicha ventana, el sistema le adiciona la

  • 56 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    referencia al monitor (valor de la variable nombreVariableMonitor) ala neurona seleccionada nombreVariableNeuronaEntrada.

    Posteriormente el sistema muestra en la zona de reporte de actividadesde la Ventana Principal (ver Figura 2.5) el mensaje:

    nombreVariableNeurona.asignarMonitor ( nombreVariableMonitor );

    (nombreVariableNeurona y nombreVariableMonitor corresponden alos nombres de las variables que hacen referencia a la neurona de en-trada y al monitor respectivamente).

    Y finalmente el sistema cierra la ventana Asignar Monitor y activa laalternativa Desasignar Monitor de la opcion Neurona de Entradaen la Ventana Principal.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana Asignarmonitor, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

    Si en la lista de variables no se encuentran variables a neuronas deentrada, el sistema cierra la ventana Asignar Monitor, y muestrael mensaje No hay variables disponibles a neuronas de entrada, enun Dialogo de Informacion (ver Figura 2.60), el usuario presiona elboton Aceptar de dicho dialogo y el sistema cierra el dialogo quedan-do en la Ventana Principal.

    Desasignar monitor

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas lasvariables que hagan referencia a monitores de neurona de entrada ylas que hagan referencia a neuronas de entrada. Luego actualiza loslistados que aparecen en la ventana Desasignar Monitor (ver Figura2.17).

    El usuario en la ventana Desasignar Monitor selecciona el nombrede la variable que referencia a un monitor y selecciona el nombre dela variable que referencia a una neurona de entrada, posteriormente elusuario presiona el boton Aceptar de dicha ventana, el sistema retirala referencia al monitor (valor de la variable nombreVariableMonitor)de la neurona referenciada por la variable nombreVariableNeurona.

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 57

    Posteriormente el sistema muestra en la zona de reporte de actividadesde la Ventana Principal (ver Figura 2.5) el mensaje:

    nombreVariableNeurona.desasignarMonitor ( nombreVariableMonitor );

    (nombreVariableNeurona y nombreVariableMonitor corresponden alnombre de las variables que referencian a una neurona de entrada y aun monitor respectivamente).

    Y finalmente el sistema cierra la ventana Desasignar Monitor.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana DesasignarMonitor, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

    No debe provocarse ningun error al intentar retirar un monitor de unaneurona de entrada, aun si este no lo tiene asignado actualmente.

    Definir nuevo monitor

    Curso basicoEl usuario en la ventana Definir Nuevo Monitor (ver Figura 2.18)escribe el nombre del nuevo tipo de monitor, posteriormente escribelos fragmentos de codigo en Java segun sea el caso, luego el usuariopresiona el boton Aceptar de dicha ventana.

    El sistema verifica que se hayan ingresado datos (se espera el nombredel nuevo tipo de monitor y los fragmentos de codigo Java), verifi-ca que el nombre tenga el formato de un identificador valido, buscaen el disco un monitor que tenga el mismo nombre, construye unaclase valida en Java (uniendo los fragmentos dados por el usuario conpartes fijas de codigo predeterminado, y guardandolo en el disco con elnombre de la clase especificada), posteriormente le solicita a Java quecompile la nueva clase. Luego el sistema determina si el compiladordetecto errores de sintaxis en el codigo dado por el usuario, posterior-mente el sistema almacena los fragmentos del nuevo tipo de monitoren el disco y elimina el codigo fuente de la clase compilada. Luegomuestra en la zona de reporte de actividades de la Ventana Princi-pal (ver Figura 2.5) el mensaje:

    // Nuevo monitor nombreTipoMonitor para neuronas de entrada/* fragmentosDeCodigoJava */

  • 58 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    (nombreTipoMonitor y fragmentosDeCodigoJava corresponde respec-tivamente al nombre del nuevo tipo de monitor y a los fragmentosdados por el usuario. Finalmente el sistema cierra la ventana DefinirNuevo Monitor quedando en la Ventana Principal.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana Definir Nue-vo Monitor, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

    Si no se han ingresado datos, el sistema muestra el mensaje Ingreseel nombre del nuevo tipo de monitor y el codigo Java requerido, enun Dialogo de Informacion (ver Figura 2.60), el usuario presiona elboton Aceptar de dicho dialogo y el sistema cierra el dialogo quedan-do en la ventana Definir Nuevo Monitor.

    Si el formato del nombre del nuevo tipo de monitor no es correcto, elsistema muestra el mensaje El formato del nombre no corresponde alde un identificador valido, en un Dialogo de Error (ver Figura 2.59),el usuario presiona el boton Aceptar de dicho dialogo y el sistemacierra el dialogo quedando en la ventana Definir Nuevo Monitor.

    Si no se puede buscar en el disco el nuevo tipo de monitor, el sistemamuestra el mensaje Error al buscar el nuevo tipo de monitor en el dis-co, en un Dialogo de Error, el usuario presiona el boton Aceptarde dicho dialogo y el sistema cierra el dialogo y regresa a la ventanaDefinir Nuevo Monitor.

    Si ya existe otro tipo de monitor con ese nombre, el sistema mues-tra el mensaje Ya existe un tipo de monitor con ese nombre, enun Dialogo de Advertencia (ver Figura 2.61), el usuario presiona elboton Aceptar de dicho dialogo y el sistema cierra el dialogo y con-tinua el proceso normal. Si el usuario presiona el boton Cancelardel dialogo, el sistema cierra el dialogo y regresa a la ventana DefinirNuevo Monitor sin continuar con el proceso normal.

    Si no se puede guardar en el disco el codigo fuente de la clase definida,el sistema muestra el mensaje Error al almacenar la clase del nuevotipo de monitor en el disco, en un Dialogo de Error, el usuariopresiona el boton Aceptar de dicho dialogo y el sistema cierra eldialogo y regresa a la ventana Definir Nuevo Monitor.

    Si no se puede llamar al compilador de Java, el sistema muestra elmensaje Error al ejecutar el compilador de Java, en un Dialogode Error, el usuario presiona el boton Aceptar de dicho dialogo

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 59

    y el sistema cierra el dialogo y regresa a la ventana Definir NuevoMonitor.

    Si se detectaron errores de compilacion, el sistema muestra estos erro-res en un Dialogo de Error, el usuario presiona el boton Aceptarde dicho dialogo y el sistema cierra el dialogo y regresa a la ventanaDefinir Nuevo Monitor.

    Si no se puede almacenar en el disco el nuevo tipo de monitor, el sis-tema muestra el mensaje Error al almacenar el nuevo tipo de monitoren el disco, en un Dialogo de Error, el usuario presiona el botonAceptar de dicho dialogo y el sistema cierra el dialogo y regresa a laventana Definir Nuevo Monitor.

    Si no se puede eliminar del disco el codigo fuente de la clase del nuevotipo de monitor, el sistema muestra el mensaje Error al eliminar laclase del nuevo tipo de monitor del disco, en un Dialogo de Error,el usuario presiona el boton Aceptar de dicho dialogo y el sistemacierra el dialogo y regresa a la ventana Definir Nuevo Monitor.

    Cargar monitor

    Curso basicoEl usuario en la ventana Definir Nuevo Monitor (ver Figura 2.18)presiona el boton Cargar de dicha ventana.

    El sistema abre el dialogo de Cargar archivos (ver Figura 2.8). Elusuario en el dialogo Cargar archivos selecciona la ubicacion y elnombre del archivo que desea y presiona el boton Cargar de dichodialogo. El sistema carga la informacion del nuevo tipo de monitor deldisco, actualiza la ventana Definir Nuevo Monitor y cierra el dialogoquedando en la ventana Definir Nuevo Monitor.

    Curso alternoSi el usuario presiona el boton de Cancelar en el dialogo Cargararchivos, el sistema cierra el dialogo quedando en la ventana DefinirNuevo Monitor.

    Si falla la carga de la informacion del nuevo tipo de monitor, el sistemamuestra el mensaje Error al cargar los datos del nuevo tipo de moni-tor, en un Dialogo de Error (ver Figura 2.59), el usuario presiona elboton Aceptar de dicho dialogo, el sistema cierra el dialogo de errorquedando en el dialogo Cargar archivos.

  • 60 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    3.1.3. Paquete neurona de retardo

    Crear neurona

    Curso basicoEl sistema obtiene del disco, el listado de todos los tipos de neuronasde retardo, y actualiza el listado que aparece en la ventana CrearNeurona de Retardo (ver Figura 2.20), con este listado mas el tipoestandar (Z1) de neurona de retardo.

    El usuario en la ventana Crear Neurona de Retardo selecciona el tipode neurona, escribe el nombre de la variable a la que se le asignara lanueva neurona de retardo, luego escribe el nombre que desea para dichaneurona, y finalmente presiona el boton Aceptar que se encuentraen la misma ventana.

    El sistema verifica que se hayan ingresado los datos (se espera el nom-bre de la variable y el de la neurona), verifica que los nombres tenganel formato de un identificador valido, busca en la lista de variables otravariable con el mismo nombre, busca en la lista de neuronas de retar-do otra neurona con el mismo nombre, crea una neurona de retardo(asignandole el nombre especificado), la adiciona a la lista de neuronasde retardo, luego adiciona una nueva entrada a la lista de variables(indicando el nombre, el tipo de variable -neurona de retardo- y unareferencia a la nueva neurona), posteriormente muestra en la zona dereporte de actividades de la Ventana Principal (ver Figura 2.5) elmensaje:

    TipoNeuronaDeRetardo nombreVariable;nombreVariable = new TipoNeuronaDeRetardo ( nombreNeurona );

    (TipoNeuronaDeRetardo, nombreVariable y nombreNeurona corres-ponden respectivamente al tipo de neurona seleccionada, al nombre dela variable que referencia a la neurona de entrada y al nombre paradicha neurona).

    Y finalmente el sistema cierra la ventana Crear Neurona de Retardoy activa las alternativas

    Obtener Nombre, Obtener Valor de Salida, Asignar Valor de Sal-ida, Actualizar valor presente, Obtener Valor Futuro, ActualizarValor Futuro, Definir Nuevo Valor Futuro, Enlazar Neurona,Obtener Estado del Enlace, Obtener con quien se Relaciona y

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 61

    Obtener Nombre de la Neurona Enlazada de la opcion Neuronade Retardo en la Ventana Principal.

    Curso alternoSi falla la obtencion del disco del listado de todos los tipos de neuronasde retardo, el sistema cierra la ventana Crear Neurona de Retardo,muestra el mensaje Error al leer el disco para obtener el listado detipos de neuronas de retardo, en un Dialogo de Error (ver Figura2.59), el usuario presiona el boton Aceptar de dicho dialogo y elsistema cierra el dialogo quedando en la ventana Ventana Principal.

    Si no hay en el disco nuevos tipos de neuronas de retardo, el sistemadeja solo el tipo estandar (Z1) de neurona de retardo.

    Si el usuario presiona el boton Cancelar en la ventana Crear Neu-rona de Retardo, el sistema cierra dicha ventana quedando en la Ven-tana Principal.

    Si no se han ingresado datos, el sistema muestra el mensaje Ingreseel nombre de la variable y el de la neurona , en un Dialogo de In-formacion (ver Figura 2.60), el usuario presiona el boton Aceptarde dicho dialogo y el sistema cierra el dialogo quedando en la ventanaCrear neurona de Retardo.

    Si el formato de alguno de los nombres no es correcto, el sistema mues-tra el mensaje El formato no corresponde al de un identificador vali-do, en un Dialogo de Error (ver Figura 2.59), el usuario presiona elboton Aceptar de dicho dialogo y el sistema cierra el dialogo quedan-do en la ventana Crear Neurona de Retardo.

    Si en la lista de variables ya existe otra con el mismo nombre, el sistemamuestra el mensaje Ya existe una variable con el mismo nombre, enun Dialogo de Informacion, el usuario presiona el boton Aceptarde dicho dialogo y el sistema cierra el dialogo quedando en la ventanaCrear Neurona de Retardo.

    Si en la lista de neuronas de retardo ya existe otra con el mismo nom-bre, el sistema muestra el mensaje Ya existe una neurona de retardocon el mismo nombre, en un Dialogo de Informacion, el usuariopresiona el boton Aceptar de dicho dialogo y el sistema cierra eldialogo quedando en la ventana Crear Neurona de Retardo.

    Si falla le creacion de la neurona de retardo, el sistema muestra elmensaje Error al crear la neurona de retardo, en un Dialogo deError, el usuario presiona el boton Aceptar de dicho dialogo y el

  • 62 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    sistema cierra el dialogo quedando en la ventana Crear Neurona deRetardo.

    Si falla la adicion de la nueva neurona a la lista de neuronas, el sistemamuestra el mensaje Error al almacenar la nueva neurona, en unDialogo de Error, el usuario presiona el boton Aceptar de dichodialogo y el sistema cierra el dialogo quedando en la ventana CrearNeurona de Retardo.

    Si falla la adicion de la nueva entrada en la lista de variables, el sistemaelimina la nueva neurona de la lista de neuronas y muestra el mensajeError al almacenar la nueva variable, en un Dialogo de Error,el usuario presiona el boton Aceptar de dicho dialogo y el sistemacierra el dialogo quedando en la ventana Crear Neurona de Retardo.

    Obtener nombre

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas las vari-ables que hagan referencia a una neurona de retardo. Luego actualizael listado que aparece en la ventana Obtener Nombre (ver Figura2.12).

    El usuario en la ventana Obtener Nombre selecciona el nombre dela variable que referencia la neurona a la cual se le desea obtener elnombre.

    El sistema obtiene el nombre de la neurona de retardo que se encuentrareferenciada por la variable seleccionada y lo muestra en la mismaventana Obtener Nombre.

    El usuario presiona el boton Aceptar que se encuentra en la mismaventana.

    El sistema muestra en la zona de reporte de actividades de la VentanaPrincipal (ver Figura 2.5) el mensaje:

    nombreVariable.obtenerNombreDeLaNeurona ( );// El nombre es: nombreNeurona.

    (nombreVariable y nombreNeurona corresponden respectivamente alnombre de la variable que referencia a la neurona deseada y al nombrede la neurona de retardo).

    Finalmente el sistema cierra la ventana Obtener Nombre.

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 63

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana ObtenerNombre, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

    Obtener valor de salida

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas las vari-ables que hagan referencia a una neurona de retardo. Luego actualizael listado que aparece en la ventana Obtener Valor de Salida (verFigura 2.13).

    El usuario en la ventana Obtener Valor de Salida selecciona el nom-bre de la variable que referencia la neurona a la cual se le desea obtenerel valor de salida.

    El sistema obtiene el valor de salida de la neurona de retardo que seencuentra referenciada por la variable seleccionada y lo muestra en lamisma ventana Obtener Valor de Salida.

    El usuario presiona el boton Aceptar que se encuentra en la mismaventana.

    El sistema muestra en la zona de reporte de actividades de la VentanaPrincipal (ver Figura 2.5) el mensaje:

    nombreVariable.obtenerValorDeSalida ( );// El valor de salida es: valorSalida.

    (nombreVariable y valorSalida corresponden respectivamente al nom-bre de la variable que referencia a la neurona deseada y al valor desalida de dicha neurona de retardo).

    Finalmente el sistema cierra la ventana Obtener Valor de Salida.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana Obtener Va-lor de Salida, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

    Asignar valor de salida

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas las vari-ables que hagan referencia a una neurona de retardo. Luego actualiza

  • 64 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    el listado que aparece en la ventana Asignar Valor de Salida (verFigura 2.14).

    El usuario en la ventana Asignar Valor de Salida selecciona el nom-bre de la variable que referencia la neurona a la cual se le desea asignarel valor de salida, escribe el valor a asignar y presiona el boton Acep-tar que se encuentra en la misma ventana.

    El sistema verifica que se hayan ingresado los datos (se espera el nuevovalor de salida de la neurona de retardo), verifica el formato del valor desalida y actualiza dicho valor en la neurona de retardo que se encuentrareferenciada por la variable seleccionada (ella notifica del cambio a susmonitores, si los tiene). Tambien muestra en la zona de reporte deactividades de la Ventana Principal (ver Figura 2.5) el mensaje:

    nombreVariable.asignarValorDeSalida ( valorSalida );

    (nombreVariable y valorSalida corresponden respectivamente al nom-bre de la variable que referencia a la neurona deseada y al valor desalida de dicha neurona de retardo).

    Finalmente el sistema cierra la ventana Asignar Valor de Salidaquedando en la Ventana Principal.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana Asignar Va-lor de Salida, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

    Si no se han ingresado datos, el sistema muestra el mensaje Ingreseel nuevo valor de salida para la neurona , en un Dialogo de Infor-macion (ver Figura 2.60), el usuario presiona el boton Aceptar dedicho dialogo y el sistema cierra el dialogo quedando en la ventanaAsignar Valor de Salida.

    Si el formato del valor de salida no es correcto, el sistema muestrael mensaje El formato no corresponde al de un valor numerico, enun Dialogo de Error (ver Figura 2.59), el usuario presiona el botonAceptar de dicho dialogo y el sistema cierra el dialogo quedando enla ventana Asignar Valor de Salida.

    Actualizar valor presente

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas las vari-ables que hagan referencia a una neurona de retardo. Luego actualiza

  • 3.1. DESCRIPCION DE LOS CASOS DE USO 65

    el listado que aparece en la ventana Actualizar Valor Presente (verFigura 2.21).

    El usuario en la ventana Actualizar Valor Presente selecciona elnombre de la variable que referencia la neurona a la cual se le deseaactualizar el valor presente.

    El sistema obtiene el valor futuro (valor candidato a ser proximo valorpresente) de la neurona de retardo que se encuentra referenciada porla variable seleccionada y lo muestra en la misma ventana ActualizarValor Presente.

    El usuario presiona el boton Aceptar que se encuentra en la mismaventana, actualiza el valor presente con el valor futuro (ella notificadel cambio a sus monitores, si los tiene), luego muestra en la zona dereporte de actividades de la Ventana Principal (ver Figura 2.5) elmensaje:

    nombreVariable.actualizarValorPresente ( );// El nuevo valor presente es: valorPresente.

    (nombreVariable y valorPresente corresponden respectivamente alnombre de la variable que referencia a la neurona deseada y al nuevovalor presente de dicha neurona de retardo).

    Finalmente el sistema cierra la ventana Actualizar Valor Presente.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana ActualizarValor Presente, el sistema cierra dicha ventana quedando en la Ven-tana Principal.

    Obtener valor futuro

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas lasvariables que hagan referencia a una neurona de retardo. Luego actu-aliza el listado que aparece en la ventana Obtener Valor Futuro (verFigura 2.22).

    El usuario en la ventana Obtener Valor Futuro selecciona el nombrede la variable que referencia la neurona a la cual se le desea obtener elvalor futuro.

    El sistema obtiene el valor futuro de la neurona de retardo que seencuentra referenciada por la variable seleccionada (preguntando a

  • 66 CAPITULO 3. ANALISIS Y DISENO PRELIMINAR

    la neurona referenciada por su entrada y cuidando de no olverse apreguntar recursivamente o ejecutando algun procedimiento definidopor el usuario) y lo muestra en la misma ventana Obtener ValorFuturo.

    El usuario presiona el boton Aceptar que se encuentra en la mismaventana.

    El sistema muestra en la zona de reporte de actividades de la VentanaPrincipal (ver Figura 2.5) el mensaje:

    nombreVariable.obtenerValorFuturo ( );// El valor futuro es: valorFuturo.

    (nombreVariable y valorFuturo corresponden respectivamente al nom-bre de la variable que referencia a la neurona deseada y al valor futurode dicha neurona de retardo).

    Finalmente el sistema cierra la ventana Obtener Valor Futuro.

    Curso alternoSi el usuario presiona el boton Cancelar en la ventana Obtener Va-lor Futuro, el sistema cierra dicha ventana quedando en la VentanaPrincipal.

    Actualizar valor futuro

    Curso basicoEl sistema obtiene de la lista de variables, el listado de todas las vari-ables que hagan referencia a una neurona de retardo. Luego actualizael listado que aparece en la ventana Actualizar Valor Futuro (verFigura 2.23).

    El usuario en la ventana Actualizar Valor Futuro selecciona el nom-bre de la variable que referencia la neurona a la cual se le desea actu-alizar el valor futuro,

    El sistema obtiene el valor futuro de la neurona de retardo que seencuentra referenciada por la variable seleccionada (preguntando a laneurona referenciada por su entrada o ejecutando algun procedimientodefinido por el usuario) y lo muestra en la misma ventana ActualizarValor Futuro.

    El usuario presiona el boton Aceptar que se encuentra