MODULO WEB FRONT-END PARA EL DESARROLLO DE SIMULACION A · 2018-08-21 · modulo web front-end para...

90
1 MODULO WEB FRONT-END PARA EL DESARROLLO DE SIMULACION A PARTIR DE WEIBULL, JI CUADRADO Y BETA. EDWIN STIP MURCIA PEREZ JULIAN CAMILO MELENDEZ MARTINEZ UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA PROGRAMA DE INGENIERÍA DE SISTEMAS MODALIDAD DE INVESTIGACION BOGOTA D.C. 2013

Transcript of MODULO WEB FRONT-END PARA EL DESARROLLO DE SIMULACION A · 2018-08-21 · modulo web front-end para...

1

MODULO WEB FRONT-END PARA EL DESARROLLO DE SIMULACION A PARTIR DE WEIBULL, JI CUADRADO Y BETA.

EDWIN STIP MURCIA PEREZ JULIAN CAMILO MELENDEZ MARTINEZ

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA

PROGRAMA DE INGENIERÍA DE SISTEMAS MODALIDAD DE INVESTIGACION

BOGOTA D.C. 2013

MODULO WEB FRONT-END PARA EL DESARROLLO DE SIMULACION A PARTIR DE WEIBULL, JI CUADRADO Y BETA.

EDWIN STIP MURCIA PEREZ JULIAN CAMILO MELENDEZ MARTINEZ

Trabajo de Grado

Director HOLMAN BOLIVAR

Ingeniero de Sistemas

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA

PROGRAMA DE INGENIERÍA DE SISTEMAS MODALIDAD DE INVESTIGACION

BOGOTA D.C. 2013

41

Nota de aceptación

Aprobado por el comité de grado en cumplimiento de los requisitos exigidos por la Facultad de Ingeniería y la Universidad Católica de Colombia para optar al título de ingenieros de Sistemas.

________________________________ Ingeniero Holman Diego Bolívar

Director

________________________________

Ingeniero Carlos Alberto Pulido Revisor Metodológico

Bogotá D. C, 19 de noviembre de 2013

5

AGRADECIMIENTOS

En primer lugar, agradecemos a Dios por colmarnos de salud y permitirnos realizar este proyecto, a nuestros padres por todo el apoyo y tiempo incondicional que nos dedicaron en el transcurso de estos años, al director de nuestro proyecto el ingeniero Holman Bolívar por su incalculable ayuda en la realización del trabajo, a la Universidad Católica de Colombia, nuestros compañeros de la facultad de ingeniería de sistemas y por ultimo a todas aquellas personas que de una u otra manera nos colaboraron durante el proceso.

6

CONTENIDO

Pág.

INTRODUCCIÓN 15

1. PLANTEAMIENTO DEL PROBLEMA 16

2. OBJETIVOS DEL PROYECTO 18

2.1. OBJETIVO GENERAL 18

2.2. OBJETIVOS ESPECIFICOS 18

3. MARCO REFERENCIAL 19

3.1. MARCO CONCEPTUAL 19

3.1.1 Probabilidad 19

3.1.2 Variable Aleatoria 19

3.1.3 Proceso Estocástico 20

3.1.4 Simulación 20

3.1.5 Metodo de Simulación Montecarlo 21

3.1.6 Distribuciones de Probabilidad 21

3.1.6.1 Distribución Weibull 22

3.1.6.2 Distribución Ji Cuadrado 22

3.1.6.3 Distribución Beta 23

3.2. MARCO TEORICO 24

3.2.1 Aplicaciones Web 24

3.2.2 Front End 26

3.2.3 Servicio Web 27

3.2.4 Lenguaje de programación PHP 27

4. METODOLOGIA PROPUESTA 29

4.1 PSP (PERSONAL SOFTWARE PROCESS) 29

5. DISEÑO MODULO WEB FRONT END PARA EL DESARROLLO DE

SIMULACION 32

5.1 MODELO DE INTERACCIÓN CON USUARIO 32

5.1.1 Detalle de Casos de Uso 33

5.2 ESPECIFICACION DE REQUERIMIENTOS FUNCIONALES 34

5.3 ESPECIFICACION DE REQUERIMIENTOS NO FUNCIONALES 35

5.4 ARQUITECTURA MODULO WEB FRONT-END 37

7

5.5 MODELO ESTATICO DEL SISTEMA 39

5.6 MODELO DINÁMICO DEL SISTEMA 40

6. MODULO WEB FRON END PARA EL DESARROLLO DE LA SIMULACION 41

6.1 ADMINISTRACION DE PERFILES Y USUARIOS 41

6.2 CONFIGURACION GENERAL 42

6.3 PROCESO DE SIMULACION 43

6.4 CONSULTA DE RESULTADOS 44

6.5 INGRESO AL APLICATIVO 45

7. CONCLUSIONES 46

BIBLIOGRAFIA 47

ANEXOS 49

8

LISTA DE TABLAS

Pág. Tabla 1. Caso de uso “Listar perfil” 34 Tabla 2. Requerimiento funcional Modificar usuarios 35 Tabla 3. Métricas de usabilidad y confiabilidad 37 Tabla 4. Requerimiento funcional “Crear usuarios” 49 Tabla 5. Requerimiento funcional “Gestionar permisos de usuario” 50 Tabla 6. Requerimiento funcional “Consultar usuarios” 51 Tabla 7. Requerimiento funcional “Eliminar usuarios” 52 Tabla 8. Requerimiento funcional “Cargar y editar datos” 53 Tabla 9. Requerimiento funcional “Validar datos” 54 Tabla 10. Requerimiento funcional “Ejecutar simulación” 55 Tabla 11. Requerimiento funcional “Generar informe” 56 Tabla 12. Requerimiento funcional “Graficar simulación” 57 Tabla 13. Requerimiento funcional “Almacenar datos” 58 Tabla 14. Caso de uso “Crear perfil” 59 Tabla 15. Caso de uso “Editar perfil” 60 Tabla 16. Caso de uso “Eliminar perfil” 61 Tabla 17. Caso de uso “Listar usuario” 62 Tabla 18. Caso de uso “Crear usuario” 63 Tabla 19. Caso de uso “Editar usuarios” 64 Tabla 20. Caso de uso “Eliminar usuario” 65 Tabla 21. Caso de uso “Configurar parámetros” 66

9

LISTA DE FIGURAS

Pág. Figura 1. Función de probabilidad Weibull 22 Figura 2. Función de probabilidad Ji cuadrado 23 Figura 3. Función de probabilidad Beta 23 Figura 4. Función de probabilidad Binomial 23 Figura 5. Formula valor esperado y varianza 24 Figura 6. Ejemplo aplicación Web 25 Figura 7. Estructura básica FRONT-END 26 Figura 8. Estructura de PSP 31 Figura 9. Diagrama casos de uso 32 Figura 10. Árbol de utilidad atributo de usabilidad 36 Figura 11. Árbol de utilidad atributo de confiabilidad 36 Figura 12. Esquema de componentes MVC 38 Figura 13. Diagrama de componentes 39 Figura 14. Diagrama de clases 40 Figura 15. Diagrama de secuencia 40 Figura 16. Lista de perfiles 41 Figura 17. Lista de usuarios 42 Figura 18. Configuración general 43 Figura 19. Proceso de simulación 43 Figura 20. Resultados y gráficas 44 Figura 21. Ingreso al sistema 45 Figura 22. Diagrama de secuencia “Crear usuarios” 67 Figura 23. Diagrama de secuencia “Editar usuarios” 68 Figura 24. Diagrama de secuencia “Crear perfiles” 69 Figura 25. Diagrama de secuencia “Editar perfiles” 70

10

LISTA DE ANEXOS

Pág. Anexo A. Especificación requerimientos funcionales 49 Anexo B. Especificación detalle casos de uso 59 Anexo C. Especificación diagramas de secuencia 67 Anexo D. Manual de configuración 71 Anexo E. Manual de usuario 79

11

GLOSARIO

AJAX: acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas. Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, mejorando la interactividad, velocidad y usabilidad en las aplicaciones. APACHE: El servidor HTTP Apache es un servidor HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etcétera), Windows y otras, que implementa el protocolo HTTP/1.1 (RFC2616) y la noción de sitio virtual. BACK-END: Es la parte de la aplicación que permite realizar las tareas de configuración y gestión de la información que viaja desde y hacia el Front-End. CMMI: Capability maturity model integration (CMMI) es un modelo para la mejora y evaluación de procesos para el desarrollo, mantenimiento y operación de sistemas de software. CSS: Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal usado para definir la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un documento de su presentación. FRAMEWORK: Es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto. FRONT-END: Es la parte de la aplicación por medio de la cuál interactúa el usuario. HTML: Acrónimo inglés de HyperText Markup Language (lenguaje de marcado de hipertexto), es un lenguaje de marcación diseñado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estándar de las páginas web. Gracias a Internet y a los navegadores del tipo Internet Explorer, Opera, Firefox o Netscape, el HTML se ha convertido en uno de los formatos más populares que existen para la construcción de documentos.

12

PHP: Lenguaje de programación usado generalmente para la creación de contenido para sitios web. El nombre es el acrónimo recursivo de "PHP: Hypertext Preprocessor" Se trata de un lenguaje interpretado usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios web. PostgreSQL: PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, distribuido bajo licencia BSD y con su código fuente disponible libremente, utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando. PSP: El proceso personal de software Es un conjunto de prácticas disciplinadas para la gestión del tiempo y mejora de la productividad personal de los programadores o ingenieros de software, en tareas de desarrollo y mantenimiento de sistemas. Está alineado y diseñado para emplearse en organizaciones con modelos de procesos CMMI o ISO 15504. UML: Es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad. Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados. XHTML: (Lenguaje de Marcado de Hipertexto Extensible) es una versión más estricta y limpia de HTML, que nace precisamente con el objetivo de remplazar a HTML ante su limitación de uso con las cada vez más abundantes herramientas basadas en XML. XHTML extiende HTML 4.0 combinando la sintaxis de HTML, diseñado para mostrar datos, con la de XML, diseñado para describir los datos. XML: Es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almacenar datos en forma legible. Deriva del lenguaje SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML) para estructurar documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo útil cuando varias aplicaciones se deben comunicar entre sí o integrar información. WEB: La World Wide Web (WWW) o Red informática mundial comúnmente conocida como la web, es un sistema de distribución de documentos de hipertexto o hipermedios interconectados y accesibles vía Internet. Con un navegador web, un usuario visualiza sitios web compuestos de páginas web que pueden contener texto, imágenes, vídeos u otros contenidos multimedia, y navega a través de esas páginas usando hiperenlaces.

13

RESUMEN

El presente trabajo se refiere al diseño de un módulo web front end para la simulación a partir de las distribuciones de probabilidad Weibull, Ji cuadrado y Beta, como técnica cuantitativa que hace uso de la estadística y los procesos a simular mediante modelos matemáticos de sistemas reales para la toma decisiones. El modelo de los procesos se implementó mediante lenguaje unificado de modelado (UML). En la fase de análisis y diseño se elaboró un modelo general de casos de uso mediante diagramas y tablas con los detalles de cada uno, adicionalmente se realizó los diagramas de secuencia y de componentes para identificar los atributos en el desarrollo de la aplicación. El diseño de la base de datos se construyó siguiendo el modelo entidad relación con el cual se estableció la relación entre las entidades involucradas en la aplicación. La parte de la interfaz se diseñó considerando los tipos de usuario que tienen interacción con el sistema, los cuales tendrán acceso a las diferentes funcionalidades y recursos dependiendo de los permisos asignados. Aplicando las distribuciones de probabilidad en la simulación de distintos sistemas productivos, se despliega mediante la aplicación el concepto de números aleatorios en un rango entre cero y uno, y los métodos para generarlos, dando como resultado un aporte novedoso, en conjunto con técnicas de simulación y algoritmos determinísticos que permite con muestras pequeñas de datos, diseñar modelos de sistemas reales complejos y comprender su comportamiento y a partir de esto tomar decisiones óptimas. Por tanto se desea mostrar las ventajas del uso de las distribuciones de probabilidad por medio de una aplicación web front-end, siendo de gran ayuda para la investigación científica, ya que tan solo con un computador y acceso a internet se obtendrían resultados satisfactorios, evitando el costo de tiempo y dinero de las pruebas de laboratorio. Palabras Clave: algoritmos, distribuciones de probabilidad, números aleatorios, simulación.

14

ABSTRACT

This paper concerns the design of a web front end module for simulation from probability distributions Weibull, Ji Square, and Beta, like quantitative technique that uses statistical and processes using mathematical models to simulate real systems for take choices. The process model was implemented using unified modeling language (UML). In the analysis and design process we make a general model use cases thought diagrams and tables with details of each one, further we make the sequence diagrams and component diagrams was performed to identify the attributes in the development of the application. The design of the database was built on the model relation entity with this one create the relationship between the entities involved in the application. The interface was designed considering the user types that have interaction with the system which will have access to different functions and resources depending on the permissions assigned. Applying the probability distributions in a simulation of different production systems it deploy applying the concept of random numbers in a range between zero and one, and the methods for generating them, resulting in a new contribution, in conjunction with simulation techniques and deterministic algorithms that allows with small samples of data, design models of real complex systems and understand their behavior and after this make optimal decisions. So it wish to show the advantages of using the probability distributions through a front-end web application, being helpful for scientific research , as only a computer and internet access it will obtained satisfactory results , avoiding the cost of time and money of testing in a real laboratory. Keywords: algorithms, probability distributions, random numbers, simulation.

15

INTRODUCCIÓN El creciente uso de la web y el considerable interés en el campo de la investigación, se genera la necesidad de desarrollar nuevas herramientas para la toma de decisiones en numerosas disciplinas. En este proyecto se presenta un modulo web front end, que realiza simulaciónes basadas en la generación de números aleatorios con un rango entre 0 y 1, se puede utilizar n funciones de probabilidad para la simulación, pero en este caso específico se presentan tres funciones las cuales son: weibull, ji cuadrado y beta, el objetivo es encontrar el valor más cercano posible a la solución, calculando el promedio de los resultados de la muestra generada, entre más puntos de simulación se generen, más cercana es la estimación, aunque a su vez influyen las condiciones iniciales y la exactitud del modelo implementado. A pesar de nuevas funciones y algoritmos, este proceso es computacionalmente grande y se ha convertido en una herramienta de cálculo esencial, permitiendo considerar modelos experimentales de laboratorio y teóricos variando libremente los parámetros usados, las áreas de aplicación de la simulación son amplias y muy diversas, por ejemplo en la toma de decisiones empresariales de producción industrial, análisis de impacto ambiental, investigación científica, etc. Además es cada vez más amigable para el usuario, sin tener que ser un especialista en computación. Utilizando la metodología PSP (Personal software process), para este proyecto se propuso para el desarrollo de la aplicación el lenguaje para el código PHP con un motor de base de datos PostgreSQL con código de libre distribución, con arquitectura asociada MVC modelo vista controlador, esto con el fin de garantizar la usabilidad y confiabilidad del proceso de simulación por medio de funciones de probabilidad. Teniendo en cuenta los grupos de investigación de la Universidad Católica de Colombia, esta herramienta computacional puede ser provechosa y de ayuda para el desarrollo de futuros proyectos experimentales que necesiten ser llevados a una computadora para analizar su comportamiento en poco tiempo.

16

1. PLANTEAMIENTO DEL PROBLEMA

Las aplicaciones computacionales hoy en día juegan un papel muy importante en nuestra sociedad, la dinámica de las soluciones informáticas exige la disponibilidad de la información en todo momento, convirtiéndose en una herramienta útil para el desarrollo de proyectos en varios ámbitos, en este caso específico el desarrollo de una aplicación web front-end, que permita la simulación a partir de las de las distribuciones de probabilidad Weibull, Ji cuadrado y Beta. Permitiendo la interacción del usuario de forma rápida y simple con la aplicación. Cuando el modelo matemático de un sistema es estudiado usando simulación, se denomina modelo de simulación. El comportamiento del sistema, de acuerdo a valores específicos de variables de entrada, se evalúa corriendo el modelo de simulación por un período de tiempo determinado. Un experimento de simulación se puede definir como una prueba o una serie de pruebas, en las cuales se realizan cambios significativos a las variables de entrada de un modelo de simulación, de tal modo que se pueda observar e identificar las razones de los cambios en las variables de salida. Cuando el número de variables de entrada es grande y el modelo de simulación es complejo, el experimento de simulación puede llegar a ser computacionalmente prohibitivo.1 Así la simulación trata fundamentalmente de construir modelos abstractos en una computadora de tal forma que describan la parte esencial del comportamiento de un sistema de interés, pudiéndose entonces diseñar y realizar experimentos con el modelo y posteriormente extraer conclusiones de sus resultados. Los modelos de simulación tienen su origen en los trabajos de John Von Neumann, pero solo es apreciable su poder cuando se introduce el computador moderno. 2 En consecuencia con la necesidad de herramientas, los programas de aplicación computacional ofrecen la posibilidad de proveer al usuario la capacidad de observación, usualmente mediante la visualización de resultados, modelos que ilustran la naturaleza del problema bajo estudio, al igual que, las interacciones y procesos que tienen lugar en dicho modelo. Las simulaciones computacionales han modificado sustancialmente la relación entre teoría y experimentos, permitiendo que el usuario interactúe con experimentos simulados que en algunos casos son difíciles de realizar en el laboratorio. Por lo tanto, las simulaciones computacionales pueden ayudar a los

1 BUOT RICO, Guillermo, HENRÍQUEZ MARTÍNEZ, Freddy, BAESLER ABUFARDE, Felipe, RAMÍREZ

MONÁRDEZ, Milton. Optimización en simulación vía inteligencia artificial: Aplicación a un problema de manejo de materiales.Theoria [en linea] 2001, Fecha de consulta: 22 de octubre de 2013] Disponible en:<http://www.redalyc.org/articulo.oa?id=29901003> ISSN 0717-196X 2 BARRERA R., Mauricio, TREJOS CARPINTERO, Álvaro, CARVAJAL OLAYA, Patricia. Integración

Montecarlo Scientia Et Technica [en línea] 2006, XII (Diciembre-Sin mes) : [Fecha de consulta: 10 de octubre de 2013] Disponible en:<http://www.redalyc.org/articulo.oa?id=84911652058> ISSN 0122-1701

17

usuarios en la comprensión de conceptos complejos y la interrelación entre lo empírico y lo teórico. 3 El problema radica en que no existe un modulo web front-end, para entender el comportamiento de los modelos planteados en el titulo del proyecto, por medio de simulaciones con distribuciones de probabilidad evaluar el proceso de las funciones, permitiendo la contrastación de los resultados experimentales con los datos simulados en la aplicación. El objetivo es comparar la información obtenida con la simulación de la aplicación con los datos las medidas experimentales y permitir por medio de esta herramienta modelar situaciones reales de ingeniería. Lo cual hace cuestionar ¿De qué manera el desarrollo del módulo web ayudara a facilitar y entender la simulación por medio de distribuciones de probabilidad?

3 SOLOMONIDOU, Christina, STAVRIDOU, Heleni. Education and Information Technologies. 6 ed. Países

Bajos: ,2001.p.5-27.

18

2. OBJETIVOS DEL PROYECTO

2.1. OBJETIVO GENERAL

Construir un módulo web front-end para el desarrollo de simulación de simulación a partir de Weibull, Ji cuadrado y Beta. 2.2. OBJETIVOS ESPECIFICOS

Identificar las entidades, atributos, propiedades y relaciones asociadas a un modulo de usuario de un sistema web de simulación multivariable.

Desarrollar un módulo web front end asociado al objetivo anterior aplicable a la simulación a partir de Weibull, Ji cuadrado y Beta.

Validar la usabilidad y confiablidad del modulo desarrollado a través de métricas de calidad.

19

3. MARCO REFERENCIAL

3.1. MARCO CONCEPTUAL

En esta sección del documento se describirán algunos conceptos relevantes para el análisis de requerimientos, complejidad de los procesos matemáticos que conlleva una simulación y los recursos para el desarrollo de la aplicación. Se divide en tres partes: la primera parte se basa en una breve definición de probabilidad, variable aleatoria, procesos estocásticos y simulación. La segunda parte se describen las tres funciones de probabilidad planteadas, y en la tercera ultima parte se contextualiza lo que es un módulo front-end, adicionalmente la metodología y el lenguaje utilizados para el proyecto. 3.1.1 Probabilidad. La teoría de la probabilidad es la parte de las matemáticas que estudia los fenómenos aleatorios. Estos deben contraponerse a los fenómenos determinísticos, los cuales son resultados únicos y/o previsibles de experimentos realizados bajo las mismas condiciones determinadas, por ejemplo, si se calienta agua a 100 grados Celsius a nivel del mar se obtendrá vapor. Los fenómenos aleatorios, por el contrario, son aquellos que se obtienen como resultado de experimentos realizados, otra vez, bajo las mismas condiciones determinadas pero como resultado posible poseen un conjunto de alternativas, por ejemplo, el lanzamiento de un dado o de un dardo. 4 3.1.2 Variable Aleatoria. Una variable es aleatoria si su valor está determinado por el azar. En gran número de experimentos aleatorios es necesario, para su tratamiento matemático, cuantificar los resultados de modo que se asigne un número real a cada uno de los resultados posibles del experimento. De este modo se establece una relación funcional entre elementos del espacio muestral asociado al experimento y números reales.

Una variable aleatoria (variable aleatoria) X es una función real definida en el espacio muestral asociado a un experimento aleatorio.

Se llama rango de una variable aleatoria X y lo denotaremos RX, al conjunto de los valores reales que ésta puede tomar, según la aplicación X. Dicho de otro modo, el rango de una variable aleatoria es el recorrido de la función por la que ésta queda definida. 5

4REYES, Fredy Alberto, DAZA, Carlos Enrique y RONDON, Hugo Alexander. determinación de las fracciones

sara de asfaltos colombianos envejecidos al medio ambiente empleando cromatografía líquida en columna. En: Revista EIA. Julio 2012, ISSN 1794-1237 Número 17, p. 47-56. 5Ibid., p. 47-56.

20

3.1.3 Proceso Estocástico. En estadística, y específicamente en la teoría de la probabilidad, un proceso estocástico es un concepto matemático que sirve para caracterizar una sucesión de variables aleatorias (estocásticas) que evolucionan en función de otra variable, generalmente el tiempo. Cada una de las variables aleatorias del proceso tiene su propia función de distribución de probabilidad y, entre ellas, pueden estar correlacionadas o no. Cada variable o conjunto de variables sometidas a influencias o impactos aleatorios constituye un proceso estocástico. Un proceso estocástico se puede definir equivalentemente de dos formas diferentes: Como un conjunto de realizaciones temporales y un índice aleatorio que selecciona una de ellas. Como un conjunto de variables aleatorias Xt indexadas por un índice t, dado que t pertenece a T, con t contenido T. 3.1.4 Simulación. La simulación es el proceso de diseñar un modelo de un sistema real y llevar a término experiencias con él, con la finalidad de comprender el comportamiento del sistema o evaluar nuevas estrategias dentro de los límites impuestos por un cierto criterio o un conjunto de ellos para el funcionamiento del sistema.6 Normalmente se acepta que las simulaciones por computador hacen contribuciones particularmente valiosas en la educación científica en los siguientes casos:

Situaciones en las que realizar un experimento convencional es extremadamente difícil o imposible.

Situaciones en las que los aparatos necesarios para llevar a cabo el experimento no se encuentran disponibles fácilmente, o son demasiado caros o complicados para su uso general.

Situaciones en las que el trabajo experimental es peligroso o puede causar daños innecesarios.

Situaciones en las que un experimento convencional tardaría un tiempo inaceptablemente largo.

6SHANNON, Robert; JOHANNES, James D. Systems simulation: the art and science. IEEE Transactions on

Systems, Man and Cybernetics 6(10). pp. 723-724.

21

3.1.5 Método de Simulación Montecarlo. El método de Montecarlo es un método no determinístico estadístico numérico, usado para aproximar expresiones matemáticas complejas y costosas de evaluar con exactitud. El método se llamó así en referencia al Casino de Montecarlo (Principado de Mónaco) por ser “la capitaldel juego de azar”, al ser la ruleta un generador simple denúmeros aleatorios. El nombre y el desarrollo sistemático de los métodos de Montecarlo datan aproximadamente de1944 y se mejoraron enormemente con el desarrollo de la computadora. El uso de los métodos de Montecarlo como herramientade investigación, proviene del trabajo realizado en eldesarrollo de la bomba atómica durante la Segunda Guerra Mundial en el Laboratorio en EE.UU. Este trabajo conllevaba la simulación de problemas probabilísticos de hidrodinámica concernientes a la difusión de neutrones en el material de fisión. Esta difusión posee un comportamiento eminentemente aleatorio. En la actualidad es parte fundamental de los algoritmos de Raytracing para la generación de imágenes 3D. En la primera etapa de estas investigaciones, John vonNeumann y Stanislaw Ulam refinaron esta ruleta rusa y los métodos "de división" de tareas. Sin embargo, el desarrollo sistemático de estas ideas tuvo que esperar al trabajo de Harris y Herman Kahn en1948. Aproximadamente en el mismo año, Enrico Fermi, Nicholas Metropolis y Ulam obtuvieron estimadores paralos valores característicos de la ecuación de Schrödinger para la captura de neutrones a nivel nuclear usando este método. El método de Montecarlo proporciona soluciones aproximadas a una gran variedad de problemas matemáticos posibilitando la realización de experimentos con muestreos de números pseudoaleatorios en una computadora. El método es aplicable a cualquier tipo deproblema, ya sea estocástico o determinista. A diferenciade los métodos numéricos que se basan en evaluaciones en N puntos en un espacio M-dimensional para producir una solución aproximada, el método de Montecarlo tiene un error absoluto de la estimación que decrece como en virtud del teorema del límite central. Hillier y Liberman (1995) sugieren que el primer paso para simular una operación es desarrollar un modelo que represente el sistema a ser analizado. Winston (2003) y Muñoz (2010) también afirman que la forma adecuada para simular una operación como la considerada en este trabajo es a través del desarrollo de un método de simulación de evento discreto utilizando distribuciones de probabilidad conocida como simulación estocástica o método de Monte Carlo. Es relevante añadir que existen otros métodos que también podrían utilizarse para realizar los análisis de los problemas considerados, como la Teoría de las colas. No obstante, la simulación ofrece ciertas ventajas sobre dicha proposición. 7 3.1.6 Distribuciones de Probabilidad. La distribución de probabilidad de una variable aleatoria X, también llamada función de distribución de X es la función FX(x), que asigna a cada evento definido sobre X una probabilidad dada por las siguientes tres condiciones:

7REYES, DAZA y RONDON, Op. cit., p. 47-56.

22

lim(x)-∞ F(x) = 0 y Lim(x)-∞ F(x) = 1.

Es continua por la derecha.

Es monótona no decreciente. La distribución de probabilidad de una variable aleatoria describe teóricamente la forma en que varían los resultados de un experimento aleatorio. Intuitivamente se trataría de una lista de los resultados posibles de un experimento con las probabilidades que se esperarían ver asociadas con cada resultado.8 Para poder realizar las simulaciones de las mesclaz asfálticas, se debe tener en cuenta 3 funciones de probabilidad, las cuales se mencionana a contunuacion: 3.1.6.1 Distribución Weibull. El modelo de Weibull describe el comportamiento de sistemas o eventos que tienen algún grado de variabilidad9. La función de la distribución de probabilidad de Weibull se puede escribir como se muestra en la figura 1.

Figura 1. Función de probabilidad Weibull

Fuente. REDALYC. Evaluación poscosecha y estimación de vida útil de guayaba fresca utilizando el modelo de Weibull [en línea]. Bogotá: La empresa [citado 20 Noviembre, 2013]. Disponible en Internet: <URL: http://www.redalyc.org/articulo.oa?id=169920023010>

Con t igual o mayor a 0, siendo α igual o mayor a 0 el parámetro del modelo. 3.1.6.2 Distribución Ji Cuadrado. La distribución ji cuadrado o chi cuadrado, es una función de probabilidad que toma todas las muestras posibles de una población normal y a cada muestra le calcula la varianza, y a su vez se debe obtener la distribución muestral de las varianzas. Para estimar la varianza poblacional o la desviación estándar, se necesita conocer el estadístico. Si se elige una muestra de tamaño n de una población normal con varianza, el estadístico es:

8VELASQUEZ, Sergio y VELASQUEZ, Ronny. Modelado con variables aleatorias en simulink utilizando

simulación montercarlo. uct [online]. 2012, vol.16, n.64, pp. 203-211. ISSN 1316-4821. 9CORZO, Otoniel y BRACHO, Nelson. Aplicación del modelo de weibull normalizado en la deshidratación

osmótica de láminas de sardina. Rev. Cient. (Maracaibo) [online]. 2009, vol.19, n.4, pp. 400-407. ISSN 0798-2259.

23

Figura 2. Función de probabilidad Ji Cuadrado

Fuente. SCIELO. Factores relacionados con el diagnóstico de la tuberculosis mediante la prueba Chi-cuadrado para Bogotá (Colombia) [en línea]. Bogotá: La empresa [citado 20 Noviembre, 2013]. Disponible en Internet: <URL: http://scielo.sld.cu/scielo.php?pid=S1815-59362012000200003&script=sci_arttext>

Donde: Fij: Frecuencias observadas

Fij: Frecuencia esperada

Esta fórmula implica la distancia al cuadrado (euclidiana) entre las frecuencias observadas y las esperadas, por lo cual la fórmula registra qué tan "distante" está lo observado de lo esperado bajo la hipótesis de independencia. 10 3.1.6.3 Distribución Beta. La función de probabilidad Beta para variables aleatorias, está dada por:

Figura 3. Función de probabilidad Beta

Fuente. SLIDESHARE. Distribución de probabilidad para Gama y Beta [en línea]. Bolivia: Víctor Hugo [citado 20 Noviembre, 2013]. Disponible en Internet: <URL: http://www.slideshare.net/victorhugo2425/distribucin-beta-y-gaamma>

Para valores enteros de α y β está relacionada con la función de probabilidad Binomial. Cuando y=p, se puede demostrar que: Figura 4. Función de probabilidad Binomial

Fuente. SLIDESHARE. Distribución de probabilidad para Gama y Beta [en línea]. Bolivia: Víctor Hugo [citado 20 Noviembre, 2013]. Disponible en Internet: <URL: http://www.slideshare.net/victorhugo2425/distribucin-beta-y-gaamma>

En donde 0< p < 1 y n = α + β – 1. El valor esperado y la varianza de una variable aleatoria con la función de probabilidad Beta son:

10PANTOJA-ROJAS, Liliana María y ROA-VARGAS, Edna Margarita. Factores relacionados con el

diagnóstico de la tuberculosis mediante la prueba Chi-cuadrado para Bogotá (Colombia). Ing. Ind. [online]. 2012, vol.33, n.2, pp. 112-125. ISSN 1815-5936.

24

Figura 5. Formula valor esperado y varianza

Fuente. SLIDESHARE. Distribución de probabilidad para Gama y Beta [en línea]. Bolivia: Víctor Hugo [citado 20 Noviembre, 2013]. Disponible en Internet: <URL: http://www.slideshare.net/victorhugo2425/distribucin-beta-y-gaamma>

3.2. MARCO TEORICO

3.2.1 Aplicaciones Web. Roger Pressman (2010), en su libro La Ingeniería del Software, Un enfoque Práctico, menciona que las aplicaciones web, son poco más que un conjunto de archivos de hipertexto vinculados que presentan información con uso de texto y gráficas limitadas pero la reciente evolución de la web, el aumento de HTML por medio de herramientas de desarrollo permitió la apertura hacia nuevas áreas de conocimiento en el campo de la ingeniería de la web, dando paso a los nuevos sistemas y aplicaciones basados en la web, denominándolas webapps. 11

Actualmente las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar, como HTML o XHTML, soportados por los navegadores web comunes. Según Pressman (2010), la mayoría de las aplicaciones web presentan los siguientes atributos:

Uso intensivo de redes. Una webapp reside en una red y debe atender las necesidades de una comunidad clientes (usuarios).

Concurrencia. A la webapp puede acceder un gran número de usuarios a la vez.

Carga impredecible. El número de usuarios de la webapp puede cambiar de magnitud de un dia para otro.

Rendimiento. Un usuario no debe esperar demasiado por la ejecución de una webapp.

Disponibilidad. Aunque no es razonable esperar una disponibilidad de 100%, es común que los usuarios de la webapp demanden acceso de 24 horas los 365 días del año.

11

PRESSMAN, Roger S.Ingenieria Del Software un enfoque practico.Mc Graw Hill. 2005, Ed.5, pp. 521-541. ISBN: 84-481-3214-9.

25

Orientadas a los datos. La función principal de muchas webapps es el uso de hipermedios para presentar al usuario el contenido.

Contenido sensible. La calidad y naturaleza de la estética del contenido constituye un rasgo importante de la calidad de una webapp.

Evolución continúa. Es común ver como algunas webapps se actualizan minuto a minuto o que su contenido se calcule en cada solicitud.

Seguridad. Para proteger el contenido sensible y brindar modos seguros de transmisión de datos, se deben implementar estrictas medidas de seguridad a través de estructuras de apoyo aplicadas a las webapps.

Estética. El diseño de la apariencia y la percepción de una webapp es parte fundamental de su éxito. 12

En general una aplicación web es la integración de un conjunto de páginas, con varios recursos en un servidor web en este caso especifico Apache. Adicionalmente se podrá realizar consultas a la base de datos, registrar e ingresar información y solicitudes en tiempo real. Estas bases de datos se encuentran formadas por tablas, las cuales contienen filas y columnas donde se encuentran los registros y contenido que previamente ha sido cargado por medio de los formularios que conforman la aplicación web. Figura 6. Ejemplo Aplicación Web

Fuente. EVOIT. Aplicaciones web [en línea]. Córdoba, Argentina: La empresa [citado 22 Noviembre, 2013]. Disponible en Internet: <URL: http://evoit.com/aplicaciones-web.php>

12

PRESSMAN, Roger S.Ingeniería del Software un enfoque practico.Mc Graw Hill. 2005, Ed.5, pp. 521-541. ISBN: 84-481-3214-9.

26

3.2.2. Front-End. En diseño de software el front-end es la parte que interactúa con el o los usuarios. De una manera práctica, el front-end es todos esos formularios que gestionan el ingreso por medio de los navegadores a los sitios y aplicaciones web. De esa manera el back-end es la parte que procesa la entrada de datos realizado por los usuarios desde el front-end es decir, son los procesos que efectúan los respectivos sistemas para resolver las peticiones de los usuarios. De esta manera en manera conjunta el front-end y el back-end interactúan en un sistema web o software para resolver las necesidades de los usuarios. La idea de esta abstracción es mantener separadas las diferentes partes de un sistema web o software con el fin de tener un mejor control. En pocas palabras el objetivo es que el front-end recolecte los datos y el back-end los procese. Figura 7. Estructura Básica FRONT- END

Fuente. BASESDATOS2011. Front End – Back End [en línea]. No cita: La empresa [citado 22 Noviembre, 2013]. Disponible en Internet: <URL:http://basesdatos2011.wikispaces.com/FRONT+END+%E2%80%93+BACK+END>

Lo que realmente se hace al distribuir o diferenciar el fron end del back end en una aplicación web, es que se almacena en una base de datos el contenido ingresado por el usuario previamente el cual es ingresado a través de los formularios. Las aplicaciones que se desarrollan a partir de de estos contenidos son llamadas dinámicas, lo cual no indica que tengan animación, si no que las paginas dinámicas de una aplicación web se generan a partir de una consulta que se realiza por parte del cliente desde su máquina a un servidor web permitiendo a el usuario visualizar su solicitud.

27

3.2.3. Servicio Web. El servicio Web, o simplemente Web, se puede definir como un desarrollado sistema de acceso a diferente información distribuida en toda la red internet en forma de documentos de hipertexto, este servicio surgió en 1990 en el CERN (Centre Européen de Recherche Nucléaire) con el objetivo de facilitar la distribución de información entre equipos investigadores geográficamente dispersos. Se buscaba que los recursos disponibles en formato electrónico fuesen accesibles para cada investigador desde su propia terminal de forma clara y simple, posibilitando el salto entre elementos de información conexos. En definitiva, se trataba de integrar todos los recursos existentes en una red hipertextual.13 Se podría decir que un hipertexto es un documento multimedia, integrado bajo una plataforma informática que incorporan relaciones estructurales entre documentos o recursos. Algunas de las características destacadas de los hipertextos son:

Almacenamiento de un gran volumen de información.

Facilidad de acceso y consulta.

Presentación de una forma más agradable.

Uso de todas las tecnologías de la información.

Permiten una “navegación” individualizada.

Estructuración multidimensional.

Multiplataforma.

Dinamismo e interactividad

En términos generales el concepto de servidor web se sitúa en el año de 1990, pero es en 1991 cuando se abre a internet con el primer navegador web Mosaic. 3.2.4. Lenguaje de programación PHP. PHP es un lenguaje de programación interpretado, diseñado para la elaboración de páginas dinámicas, de uso general y enfocado al desarrollo web. Esto se debe a múltiples factores, entre los cuales podemos citar los siguientes:

13

COBO, Ángel; GOMEZ, Patricia; PEREZ, Daniel and ROCHA, Roció. PHP y MySQL Tecnologías para el desarrollo de aplicaciones web .Ediciones Díaz de Santos. [online]. 2005, pp. 4. ISBN: 84-7978-706-6.

28

Es un lenguaje de código abierto.

Puede ser incrustado en HTML.

Es un lenguaje multiplataforma.

Originalmente diseñado por el programador danés-canadiense Rasmus Lerdorf, en el año 1994 en base a la escritura de un grupo de CGI binarios escritos en el lenguaje C. En un comienzo, PHP sólo estaba compuesto por algunas macros que permitían trabajar más fácilmente en la creación de páginas web. En el año de 1995 Rasmus Lerdorf le añadió el analizador sintáctico y se llamó PHP/F1 Versión 2, sólo reconocía texto HTML y algunas directivas de mySQL. Después de esta fecha la contribución de código es pública.

29

4. METODOLOGIA PROPUESTA

4.1 PSP (PERSONAL SOFTWARE PROCESS) El PSP entrega a los ingenieros un marco de referencia de disciplina personal para mejorar su trabajo y realizarlo con alta calidad14, con el propósito de ayudarlos a aprender y practicar aquellos métodos para producir software que son más efectivos para ellos15. Entendiendo como principio fundamental que con un proceso de calidad los productos derivados de éste serán también de calidad16. El PSP consiste en un conjunto de métodos, formularios y guías (scripts) que muestran a los desarrolladores de software, la forma de planificar, medir y administrar su trabajo. Está diseñado para ser usado con cualquier lenguaje de programación o metodología de diseño y puede ser utilizado en muchos aspectos del desarrollo de software17. Cuando los datos históricos del PSP son recolectados y mantenidos el desarrollador será capaz de comprender en qué gasta su tiempo, dónde y por qué introduce defectos y cuánto le toma encontrarlos, corregirlos y prevenirlos. Se debe tener presente que el PSP no resuelve los problemas que tienen los estudiantes y profesionales en el desarrollo de software, pero los puede ayudar y guiar bastante en el establecimiento de una práctica disciplinada que puede ser analizada y mejorada18. El desarrollo de PSP está basado en parte en los principios de manejo de calidad de W. Edwards Deming y Joseph M. Juran cuyos objetivos son los de analizar y mejorar el trabajo personal19. Después del desarrollo del CMM, Watts S. Humphrey decidió aplicar estos principios para escribir pequeños programas, debido en parte a que mucha gente preguntaba cómo aplicarlo a organizaciones pequeñas o a trabajo de equipos pequeños, comprobando entonces que los principios de Deming y Juran eran totalmente aplicables al trabajo de los ingenieros de software de manera individual como en equipo20.

14

HUMPHREY. W.S., "The Personal Software Process (PSP)". Technical Report. The Software Engineering Institute. 2000, disponible en: http://www.algo.ago.j/kjfñlj.pdf 15

HUMPHREY. W.S., "Why Should You Use A Personal Software Process?". Software Engineering Notes. Vol. 20, Issue 3, pp. 33-36. 1995. 16

HUMPHREY, Op. cit., p. 25. 17

Ibid, p. 30. 18

HILBURN. T.B., "PSP Metrics in Support of Software Engineering Education". Proceedings of the 12th Conference on Software Engineering Education and Training, pp. 135-136. 1999. 19

HUMPHREY. W.S., "The Personal Software Process: Status and Trends". IEEE Software. Vol. 17, Issue 6, pp. 71-75. 2000. 20

Ibid, p.3.

30

El PSP amplía el proceso de mejora a la gente que realiza el trabajo de desarrollo de software, concentrándose en las prácticas de trabajo de los ingenieros en una forma individual, enseñando como manejar la calidad desde el principio de un producto. PSP son métricas, que permiten estructurar y ordenar la aplicación. El resultado del trabajo, además puede ser llevado a un equipo TSP (Team Process Software), el cual es “comandado” por un sistema de gestión de la configuración y por supuesto, un Jefe de Proyecto quien evalúa los resultados y avances de los miembros del equipo. El diseño del PSP se basa en los siguientes principios de planeación y de calidad21 :

Cada ingeniero es esencialmente diferente; para ser más precisos, los ingenieros deben planificar su trabajo y basar sus planes en sus propios datos personales.

Para mejorar constantemente su desempeño, los ingenieros deben utilizar personalmente procesos bien definidos y medidos.

Para desarrollar productos de calidad, los ingenieros deben sentirse personalmente comprometidos con la calidad de sus productos.

Cuesta menos encontrar y arreglar errores en la etapa inicial del proyecto que encontrarlos en las etapas subsecuentes.

Es más eficiente prevenir defectos que encontrarlos y arreglarlos.

La manera correcta de hacer las cosas es siempre la manera más rápida y más barata de hacer un trabajo.

La estructura del PSP comienza a partir de una declaración de los requisitos, luego el primer paso del proceso es el de planificación22, en donde se genera a partir de la respectiva guía, el método de trabajo y el plan para el registro de datos. El PSP es una versión pequeña de CMM donde se preocupa solo por un conjunto de las KPAs (Key Process Areas.

21

HUMPHREY .W.S.., "A Discipline for Software Engineering". First Edition, Addison-Wesley. 1995. 22

HUMPHREY, Op. cit., p. 37.

31

Figura 8. Estructura de PSP

Fuente. JUANJO’S BLOG. PSP (Personal Software Process), un enfoque práctico [en línea]. No cita: La empresa [citado 22 Noviembre, 2013]. Disponible en Internet: <URL: http://jjegonzalezf.wordpress.com/2010/12/14/psp-personal-software-process-un-enfoque-práctico >

La aplicación del modelo CMM en el desarrollo de software a veces ha sido problemática. La aplicación de varios modelos que no están integrados dentro y fuera de una organización puede ser costosa en el entrenamiento, evaluaciones y actividades de mejora. El Capability Maturity Model Integration (CMMI) del proyecto se creó para resolver el problema de la utilización de varios modelos para los procesos de desarrollo de software, por lo que el modelo CMMI ha sustituido el modelo CMM, aunque el modelo CMM sigue siendo un modelo de capacidad de proceso teórico general que se utiliza en el dominio público.

32

5. DISEÑO MODULO WEB FRON END PARA EL DESARROLLO DE SIMULACION

5.1. MODELO DE INTERACCIÓN CON USUARIO Inicialmente se cuenta con el siguiente diagrama de casos de uso, elaborado a partir de la identificación de los requerimientos funcionales identficados con ayuda de los stake holders.

Figura 9. Diagrama Casos de Uso

Fuente. Los Autores

33

5.1.1. Detalle de Casos de Uso. Después de identificar los procesos en el diagrama de caso de uso, se requiere realizar un detalle más específico de los mismos en el cual se pueda identificar los actores involucrados, el flujo natural que debe seguir casos de uso, la relación presente con los otros casos de uso, entre otros, los cuales se lista a continuación:

Listar Perfil

Crear Perfil

Editar Perfil

Eliminar Perfil

Listar Usuario

Crear Usuario

Editar Usuario

Eliminar Usuario

Configurar parámetros

Validar datos a simular

Generar simulación

Ejecutar simulación

Generar informe simulación

Graficar simulación

Guardar simulación

A continuación se pone como ejemplo el caso de uso “Listar perfil” para entender un poco más a fondo la estructura de los mismo. Para consultar los demás detalles de casos de uso diríjase al Anexo B.

34

Tabla 1. Caso de uso “Listar perfil”

Fuente. Los autores

5.2. ESPECIFICACION DE REQUERIMIENTOS FUNCIONALES Son las especificaciones funcionales del sistema donde se describe detalladamente las funciones servicios y restricciones operativas del sistema que se va a implementar, a continuación se muestra la lista de los requerimientos asociados.

Modificar Usuario

Crear Usuario

Gestionar Permisos de Usuario

Consultar Usuarios

Eliminar Usuario

Cargar y editar datos

35

Validar datos

Almacenar datos

Ejecutar simulación

Generar informe

Graficar simulación

La Tabla 2 presenta el requerimiento de Modificar usuarios, para ver todos los requerimientos asociados al diseño del módulo web fron end para el desarrollo de simulación a partir de weibull, ji cuadrado y beta, diríjase al Anexo A. Tabla 2. Requerimiento funcional Modificar usuarios

Fuente. Los autores

5.3. ESPECIFICACION DE REQUERIMIENTOS NO FUNCIONALES En la identificacion de los requerimientos no funcionales o atributos de calidad, se basan en la evaluación de la operación del sistema, en este caso la usabilidad y

36

confiabilidad como se evidencia en las siguientes imágenes de los árboles de calidad de cada atributo. Figura 10. Árbol de utilidad atributo de usabilidad

Fuente. Los autores

Figura 11. Árbol de utilidad atributo de confiabilidad

Fuente. Los autores

El aplicativo debe suministrar de una manera fácil y predictiva la información de las simulaciones realizadas por los usuarios. Adicionalmente la información generada por el mismo debe ser de total confiabilidad, ya que a partir de la misma se tomarán una serie de decisiones. En las métricas de usabilidad y confiabilidad,

37

se detallan las métricas o acciones que ejecuta el programa y valor de respuesta esperado en cada una de ellas. Tabla 3. Métricas de usabilidad y confiabilidad

ATRIBUTO MÉTRICA VALOR ESPERADO

USABILIDAD

% Esperado de ingreso de usuarios sin discapacidad visual

100%

Tiempo en recordar la estructura del sitio. # en segundos que tarda el usuario en dibujar un mapa mental del sitio

10 seg.

Tiempo máximo en segundos para la realización de una simulación

0.01 seg.

% Esperado de ingreso de usuarios sin discapacidad visual

100%

# Máximo de clics para poder realizar una simulación

10

CONFIABILIDAD

% De simulaciones correctamente realizadas

98%

% De replicas correctamente realizadas

98%

% De hipervínculos rotos 0% Fuente. Los Autores

5.4. ARQUITECTURA MODULO WEB FRONT-END La aplicación fue desarrollada con el patron de arquitectura MVC, el cual permite distribuir la aplicacion en tres componentes, el primer componente llamado Modelo contiene las reglas del negocio, en términos generales es donde se encuentran todos los datos almacenados. Un segundo componente llamado vista el cual es el que interactua con los usuarios permitiendo capturar y representar la información y solicitudes de los misimos por ultimo y no me nos importante encontramos el componente controlador, como su nombre lo indica se encarga de controlar el flujo de peticiones y respuestas que se generan entre los otros dos componentes permitiendo que la aplicación sea mas escalable y mantenible, facilitando la manipulación de cada uno de los componentes sin afectar al otro. A continuación, se presenta el esquema de componentes MVC del modulo modulo web front-end para el desarrollo de simulación a partir de weibull, ji cuadrado y beta.

38

Figura 12. Esquema de componentes MVC

Fuente. Los autores

El componente modelo está conformado por el motor de base datos PostgreSQL, donde se almacenara todos los datos ingresados al sistema, en la parte de vista es una serie de desarrllo en lenguaje PHP que herada las caracterisiticas de una plantilla que cumple con los estándares de la W3C de HTML5 y CSS3, por ultimo en el componente controlador es proporcionado un framework que maneja archivos XML donde se especifican el flujo de control de todos los componentes de la aplicación.

39

Figura 13. Diagrama de componentes

Fuente. Los autores

5.5. MODELO ESTATICO DEL SISTEMA

Es la vista arquitectónica del sistema, donde se describen las caracterisiticas de los objetos que interactúan y las posibles relaciones que se pueden dar entre ellos. El diagrama que se presenta, intenta representar los elementos de información del sistema que permiten definir el Modelo Entidad-Relación, apreciando los objetos más relevantes y las funciones o metodoas a realizar dentro del contexto de la aplicación.

40

Figura 14. Diagrama de clases

Fuente. Los autores

5.6 MODELO DINÁMICO DEL SISTEMA Los diagramas de secuencia proporcionan el segumiento de un caso de uso, es decir muestra en forma grafica un escenario en particular del sistema, enfatizandoce en la ejecución del conjunto de objetos a través del tiempo. La siguiente figura, presenta la secuencia del logueo en la aplicación. Figura 15. Diagrama de secuencia

Fuente. Los autores

41

6. MODULO WEB FRONT END PARA EL DESARROLLO DE LA SIMULACION

El programa desarrollado brinda la posibilidad de realizar simulaciones con diferentes distribuciones de probabilidad (en este momento solo con Weibull, Ji cuadrado y Beta, pero el programa quedará abierto para futuras distribuciones que se deseen configurar). El objetivo es que estas simulaciones nos permitan determinar el comportamiento de sistemas reales y complejos a través de largos periodos. Como anteriormente ya se ha mencionado, el aplicativo trabaja con el algoritmo Monte Carlo para generar números aleatorios, dichos números son utilizados para generar x números de simulaciones de acuerdo a lo que el usuario lo considere conveniente. Estas simulaciones dependen de la distribución seleccionada, puesto que los números generados serán utilizados en las fórmulas que componen las simulaciones. Para lograr resultados más acertados el programa permite hacer replicas, que consiste en repetir x veces las simulaciones realizadas. 6.1. ADMINISTRACIÓN DE PERFILES Y USUARIOS El programa cuenta con dos perfiles inicialmente (Administrador e Investigador), pero permite crear más perfiles de ser necesario. Figura 16. Lista de perfiles

Fuente. Los autores

42

Al igual que los perfiles, los usuarios tampoco tienen limite y pueden ser creados tantos se consideren. Estos usuarios deben quedar atados a un perfil. Figura 17. Lista de usuarios

Fuente. Los autores

Tanto perfiles como usuarios pueden ser inactivados en cualquier momento. 6.2. CONFIGURACIÓN GENERAL Es necesario tener cierto control en algunas características o funcionalidades que ofrece la aplicación como el número de simulaciones o el número de réplicas, por ello se crea una opción en la aplicación a la cual solo tiene acceso el administrador en la cual puede hacer las configuraciones pertinentes, como se puede ver en la siguiente figura.

43

Figura 18. Configuración general

Fuente. Los autores

6.3. PROCESO DE SIMULACIÓN Luego de tener la configuración realizada, se puede proceder a realizar simulaciones. Para esto es necesario saber que distribución se va a utilizar y digitar ciertos valores que dependiendo de la distribución seleccionada. Figura 19. Proceso de simulación

Fuente. Los autores

44

Como se observa en la Figura 19, además de digitar los valores de acuerdo a la distribución, se deben digitar cuantas simulación y replicas requiere la simulación. Internamente el programa valido que los valores aquí digitados sean acordes los valores configurados previamente. Luego de realizada la simulación, el programa genera un consecutivo para poder consultar los resultados de dicha simulación en cualquier momento. 6.4. CONSULTA DE RESULTADOS En esta opción se pueden consultar las simulaciones realizadas. Con los consecutivos generados al momento de realizar la simulación, se pueden consultar dichos resultados. Es de aclarar que solo se pueden consultar las simulaciones realizadas por el usuario que en ese momento se encuentre en el sistema, es decir, no se pueden consultar simulaciones realizadas por otros usuarios. Internamente las simulaciones quedan atadas a un usuario, esto con el fin de tener un control de las simulaciones realizadas y seguridad de la información. Figura 20. Resultados y gráficas

Fuente. Los autores

45

Como se observa en la figura x, los resultados que nos arroja la simulación es una serie de datos estadísticos que permiten determinar si el proceso realizado es factible o no y adicionalmente grafica los resultados generados de las réplicas que nos permite una lectura mucho más clara de la simulación. 6.5. INGRESO AL APLICATIVO Con el cliente se definió que cualquier persona puede realizar simulaciones, pero estas simulaciones solo serán temporales. Es posible guardar dichas simulaciones, pero es necesario estar registrado en el sistema y tener un usuario y un password para acceder al aplicativo y así poder guardar y consultar las simulaciones realizadas. Figura 21. Ingreso al sistema

Fuente. Los autores

46

CONCLUSIONES El proyecto se centra en el desarrollo de una herramienta web mediante el proceso de la metodología PSP, para la simulación con el algoritmo de optimización Montecarlo basado en las funciones de probabilidad Weibull, Ji cuadrado y Beta, las cuales se fundamentan en buscar el valor óptimo en cada iteración a partir de la generación de números pseudaleatorios. Se puede evidenciar que en cuanto a usabilidad, la aplicación brinda facilidad de interacción entre el usuario y la interfaz gráfica. Respecto a accesibilidad permite el ingreso a la aplicación independientemente del hardware o software utilizado por el usuario, solo es necesario contar con una conexión a internet y un navegador Web. Finalmente, la disponibilidad de la herramienta es 24/7, el grado de inactividad es realmente bajo (alrededor del 5%), que se puede presentar en caídas del servidor, falla en la conexión de Internet, entre otros aspectos externos al aplicativo. Durante la implementación se presentó un cambio, ya que en un principio se propuso trabajar con el gestor de Base de datos MySQL por su integración con apache y PHP para la realización de aplicaciones web y su contenido dinámico, pero después de realizar pruebas de simulación con más de 10000 registros y 10 réplicas de la misma, su rendimiento y velocidad al arrojar los resultados no fue la esperada, por lo tanto se optó por implementar un gestor de base de datos más potente como lo es PostgreSQL mejorando la velocidad de respuesta y el número de accesos concurrentes en más de un 50%. Por ultimo con la utilización de la aplicación propuesta se obtienen beneficios de carácter investigativo permitiendo asociar los indicadores basados en las métricas de calidad ya mencionadas para representar el grado de satisfacción de usuario. Cabe destacar que por tratarse de un módulo la funcionalidad de la aplicación puede que no sea completa. Muchas ampliaciones quedan fuera del alcance por razones de tiempo, permitiendo que nuevos investigadores realicen mejoras e implementen nuevos módulos extendiendo el campo de acción de la aplicación.

47

BIBLIOGRAFIA AFANASJEVA, Natalia y ALVAREZ CIFUENTES, Mario. Estudio del envejecimiento de los asfaltos colombianos bajo la acción de algunos factores climáticos. Bucaramanga: Editorial y publicaciones UIS universidad Industrial de Santander, 2004.p.15. BARRERA R., Mauricio, TREJOS CARPINTERO, Álvaro, CARVAJAL OLAYA, Patricia. Integración Montecarlo Scientia Et Technica [en línea] 2006, XII (Diciembre-Sin mes): [Fecha de consulta: 10 de octubre de 2013] Disponible en:<http://www.redalyc.org/articulo.oa?id=84911652058> ISSN 0122-1701. BUOT RICO, Guillermo, HENRÍQUEZ MARTÍNEZ, Freddy, BAESLER ABUFARDE, Felipe, RAMÍREZ MONÁRDEZ, Milton. Optimización en simulación vía inteligencia artificial: Aplicación a un problema de manejo de materiales.Theoria [en linea] 2001, Fecha de consulta: 22 de octubre de 2013] Disponible en:<http://www.redalyc.org/articulo.oa?id=29901003> ISSN 0717-196X. CORZO, Otoniel y BRACHO, Nelson. Aplicación del modelo de weibull normalizado en la deshidratación osmótica de láminas de sardina. Rev. Cient. (Maracaibo) [online]. 2009, vol.19, n.4, pp. 400-407. ISSN 0798-2259. DALY, William H, NEGULESCU, Ioan I, MOHAMMAD, Louay N, and CHIPARUS, Ionela. The Use of DMA to Characterize the Aging of Asphalt Binders p.25. HILBURN. T.B., "PSP Metrics in Support of Software Engineering Education". Proceedings of the 12th Conference on Software Engineering Education and Training, pp. 135-136. 1999. HUMPHREY .W.S.., "A Discipline for Software Engineering". First Edition, Addison-Wesley. 1995. -------- .W.S.., "Why Should You Use A Personal Software Process?". Software Engineering Notes. Vol. 20, Issue 3, pp. 33-36. 1995. -------- .W.S.., "The Personal Software Process: Status and Trends". IEEE Software. Vol. 17, Issue 6, pp. 71-75. 2000. -------- .W.S.., "The Personal Software Process (PSP)". Technical Report. The Software Engineering Institute. 2000. MONTEJO, A. Ingeniería de Pavimentos para Carreteras. Universidad Católica de Colombia. Bogotá D.C., 2002, p. 733.

48

MORENO, Luis, MARTÍNEZ, Mario, GUERREO, maría, “estudio mecánico y físico-químico del asfalto modificado con desecho de caucho y cuero mediante análisis experimental y métodos computacionales de búsqueda.” Universidad Católica de Colombia. Bogotá D.C., 2013. REYES, Fredy Alberto, DAZA, Carlos Enrique y RONDON, Hugo Alexander. Determinación de las fracciones sara de asfaltos colombianos envejecidos al medio ambiente empleando cromatografía líquida en columna. En: Revista EIA. Julio 2012, ISSN 1794-1237 Número 17, p. 47-56. SOLOMONIDOU, Christina, STAVRIDOU, Heleni. Education and Information Technologies. 6 ed. Países Bajos, 2001.p.5-27. VELASQUEZ-HENAO, Juan; PULGARIN-AGUDELO, Yeiny and CASTANO-ARIAS, Eliana. Optimización de Monte Carlo usando la distribución beta. Ing. Univ. [online]. 2011, vol.15, n.1, pp. 61-76. ISSN 0123-2126.

49

ANEXO A. ESPECIFICACION REQUERIMIENTOS FUNCIONALES

Tabla 4. Requerimiento funcional “Crear usuarios”

IDENTIFICADOR: NOMBRE:

RF1.1 Crear Usuarios

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

Datos del Usuario.

SALIDA:

Usuario con acceso a la aplicación.

DESCRIPCIÓN:

Precondición: Formulario de ingreso de Datos.

Descripción: El usuario administrador de la aplicación tendrá la opción de administrar los usuarios, permitiéndole crear usuarios.

Poscondición: los datos serán almacenados en la Base de Datos.

MANEJO DE SITUACIONES ANORMALES:

Los campos son obligatorios y no debe haber usuarios repetidos.

Fuente. Los autores

50

Tabla 5. Requerimiento funcional “Gestionar permisos de usuario”

IDENTIFICADOR: NOMBRE:

RF1.1.1 Gestionar permisos de usuario

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

Identificacion del usuario.

SALIDA:

Validacion por pantalla del rol y permisos asignados.

DESCRIPCIÓN:

Precondición: Formulario de ingreso de Datos.

Descripción: El usuario administrador de la aplicación en el momento de ingresar los datos, a su vez podrá dar el rol y los perimiso de cada uno de los

usuarios listados en pantalla.

Poscondición: Rol y permisos de usuario asignados.

MANEJO DE SITUACIONES ANORMALES:

Solo el usuario administrador tendrá habilitada la opción de asignar roles a los distintos usuarios de la aplicación.

Fuente. Los autores

51

Tabla 6. Requerimiento funcional “Consultar usuarios”

IDENTIFICADOR: NOMBRE:

RF1.2 Consultar Usuarios

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

Lista los usuarios y su rol correspondiente

SALIDA:

Muestra el nombre de usuario y rol de c/u.

DESCRIPCIÓN:

Precondición:

Descripción: El usuario administrador podrá consultar todos los usuarios que estén activos.

Poscondición:

MANEJO DE SITUACIONES ANORMALES:

Solo los usuarios registrados tendrán habilitada la opción de ver en pantalla la lista de usuarios registrados.

Fuente. Los autores

52

Tabla 7. Requerimiento funcional “Eliminar usuarios”

IDENTIFICADOR: NOMBRE:

RF1.3 Eliminar Usuarios

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

Identificacion del usuario a eliminar.

SALIDA:

Validacion por pantalla del usuario a eliminar.

DESCRIPCIÓN:

Precondición: lista de usuarios de la aplicación.

Descripción: El usuario administrador podrá listar los usuarios en pantalla, para proceder a eliminar el seleccionado.

Poscondición: El usuario seleccionado será eliminado de la base de Datos.

MANEJO DE SITUACIONES ANORMALES:

El usuario eliminado no puede almacenar datos de la simulación generada.

Fuente. Los autores

53

Tabla 8. Requerimiento funcional “Cargar y editar datos”

IDENTIFICADOR: NOMBRE:

RF2 Cargar y editar datos

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

Seleccionar variables tipo de modificado e ingresar cantidad en

porcentaje.

SALIDA:

Muestra en pantalla la parametrizacion del asfalto.

DESCRIPCIÓN:

Precondición: ingreso a la URL de la aplicación web

Descripción: Es el proceso mediante el modulo realiza el cargue o edicion de los datos por medio de un formulario.

Poscondición: Genera resultados y según el perfil de usuario permite almacenarlos en la BD

MANEJO DE SITUACIONES ANORMALES:

Fuente. Los autores

54

Tabla 9. Requerimiento funcional “Validar datos”

IDENTIFICADOR: NOMBRE:

RF2.1 Validar Datos

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

cantidad de aditivo A cantidad de aditivo B

número de repeticiones deseadas para la simulación

SALIDA:

Ingresa y valida los datos

DESCRIPCIÓN:

Precondición: Los datos ingresados deben ser según la estructura del campo.

Descripción: El sistema verifica el tipo de dato digitado.

Poscondición: La aplicación Inicia la simulación.

MANEJO DE SITUACIONES ANORMALES:

Si los datos ingresados son incorrectos se informará al usuario con un mensaje de error por pantalla.

Fuente. Los autores

55

Tabla 10. Requerimiento funcional “Ejecutar simulación”

IDENTIFICADOR: NOMBRE:

RF2.2 Ejecutar Simulación

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

Después validar los datos ingresados

Inicia el proceso interno de simulación.

SALIDA:

Genera resultados estadísticos de la estructura química interna del asfalto con

los aditivos

DESCRIPCIÓN:

Precondición: Validación de los datos ingresados por el usuario investigador.

Descripción: La aplicación realiza el proceso de simulación con el método de Monte Carlo

Poscondición: Genera resultados estadísticos de los aditivos analizados

MANEJO DE SITUACIONES ANORMALES:

El número de repeticiones de la simulación sea muy alto y la capacidad de hardware no la soporte, bloqueando así La aplicación.

Fuente. Los autores

56

Tabla 11. Requerimiento funcional “Generar informe”

IDENTIFICADOR: NOMBRE:

RF2.2.1 Generar informe

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

Datos almacenados en la BD

SALIDA:

Tabla de de resultados y gráficos generados

DESCRIPCIÓN:

Precondición: Ejecutar simulación.

Descripción: La aplicación genera un reporte con las variables resultado.

Poscondición: entrega el reporte mediante un medio de visualización.

MANEJO DE SITUACIONES ANORMALES:

Fuente. Los autores

57

Tabla 12. Requerimiento funcional “Graficar simulación”

IDENTIFICADOR: NOMBRE:

RF2.2.2 Graficar Simulación

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

Resultado del promedio, la media muestral y de la desviación

estándar.

SALIDA:

Visualiza los datos estadísticos gráficamente.

DESCRIPCIÓN:

Precondición: debe haber terminado el análisis estadístico de los resultados de la simulación

Descripción: Genera una ventana mostrando los gráficos estadísticos.

Poscondición: Obtención del grafico solicitado

MANEJO DE SITUACIONES ANORMALES:

Que los gráficos no muestren claramente la información solicitada de forma veras y concisa.

Fuente. Los autores

58

Tabla 13. Requerimiento funcional “Almacenar datos”

IDENTIFICADOR: NOMBRE:

RF2.3 Almacenar Datos

PRIORIDAD DE

DESARROLLO:

Alta

DOCUMENTOS DE VISUALIZACIÓN ASOCIADOS:

N/A

ENTRADA:

Variables de resultado obtenidas

SALIDA:

Almacenar datos generados después del análisis estadístico en la BD.

DESCRIPCIÓN:

Precondición: debe haber terminado el análisis estadístico de los resultados de la simulación

Descripción: Genera una ventana mostrando los gráficos estadísticos.

Poscondición: Obtención del grafico solicitado

MANEJO DE SITUACIONES ANORMALES:

Que los datos almacenados no sean coherentes Que ocurra una desconexión entre la aplicación y el motor de BD, no

almacenando así la información pertinente.

Fuente. Los autores

59

ANEXO B. ESPECIFICACION DETALLE CASOS DE USO

Tabla 14. Caso de uso “Crear perfil”

Fuente. Los autores

60

Tabla 15. Caso de uso “Editar perfil”

Fuente. Los autores

61

Tabla 16. Caso de uso “Eliminar perfil”

Fuente. Los autores

62

Tabla 17. Caso de uso “Listar usuario”

Fuente. Los autores

63

Tabla 18. Caso de uso “Crear usuario”

Fuente. Los autores

64

Tabla 19. Caso de uso “Editar usuarios”

Fuente. Los autores

65

Tabla 20. Caso de uso “Eliminar usuario”

Fuente. Los autores

66

Tabla 21. Caso de uso “Configurar parámetros”

Fuente. Los autores

67

ANEXO C. ESPECIFICACION DIAGRAMAS DE SECUENCIA

Figura 22. Diagrama de secuencia “Crear usuarios”

Fuente. Los autores

68

Figura 23. Diagrama de secuencia “Editar usuarios”

Fuente. Los autores

69

Figura 24. Diagrama de secuencia “Crear perfiles”

Fuente. Los autores

70

Figura 25. Diagrama de secuencia “Editar perfiles”

Fuente. Los autores

71

ANEXO D. MANUAL DE CONFIGURACION

La aplicación al ser multiplataforma puede ejecutarse en varios sistemas operativos, para este caso se instalará en un sistema operativo Linux, distribución Debian, versión 4.6.3

A continuación se debe instalar el motor de base de datos PostgreSQL (8.0 o superior), el servidor Apache (1.0 o superior) y el lenguaje PHP (4.0 o superior). Se instala todo el paquete de PostgreSQL

72

Luego se instala el PHP (en este caso se instala PHP5, puesto que es el que el sistema operativo tiene disponible por defecto. En las distribuciones actualizadas de Linux siempre pedirá que se instale esta versión de PHP).

Por defecto el sistema instala automáticamente el servidor Apache al instalar el PHP. Luego de la instalación, se verifica que tanto el Apache como el PostgreSQL estén corriendo o se estén ejecutando.

Ahora para verificar que el PHP funciona, se crea un archivo de prueba con el mensaje “Hola Mundo”. Generalmente el path por defecto para trabajar los archivos PHP es /var/www/. Si se desea cambiar este path se debe hacer en el archivo httpd.conf.

73

Ahora para constatar que el motor de base de datos funciona, se crea una base de datos llamada prueba, se verifica que fue creada y se elimina. Generalmente al instalar PostgreSQL, por defecto se crea un usuario en el sistema operativo llamado postgres, se debe ingresar con este usuario para poder trabajar con el motor.

A continuación se procede a mover el proyecto a la ruta /var/www/ (o donde se ejecute el PHP), en este caso la carpeta tiene el nombre PROYECTO (no es necesario que tenga este nombre estrictamente).

74

Dentro de la carpeta PROYECTO se encuentra un archivo llamado scriptInicial.sql el cual contiene la estructura inicial del aplicativo que se debe crear para su correcto funcionamiento. Lo que se debe hacer es ingresar al motor de base de datos (su – postgres), ir a la ruta donde se encuentra la carpeta PROYECTO (cd /var/www/PROYECTO/), crear una base de datos (para este caso se creó la base de datos proyecto), ingresar a la base de datos creada y ejecutar el archivo scriptInicial.sql

El siguiente paso es establecer la conexión entre el aplicativo y la nueva base de datos creada.

75

Lo primero que se debe hacer es verificar si el paquete php5-pgsql (librería que permite la conexión de PHP con PostgreSQL) se instaló. Para esto se ejecuta el comando apt-get install php5-pgsql. Él nos informará si el paquete ya está instalado o instalará ese paquete nuevo. Para este ejercicio el paquete aún no se encontraba instalado.

Estando como usuario root, ir a la ruta /var/www/PROYECTO/. En esta capeta se encuentra un archivo llamado conexion.php. Se debe editar dicho archivo e indicar en el host donde se encuentra hospedado el aplicativo (para esta caso localhost), el usuario de conexión (para esta caso postgres), la clave de dicho usuario (si al momento de instalar PostgreSQL se asignó clave al usuario postgres, se pone esa clave, sino se deja en blanco) y la base de datos a la que se desea conectar (para esta caso proyecto).

76

Es necesario realizar algunas configuraciones al PHP, para que su desempeño sea óptimo, puesto que el aplicativo consume bastantes recursos al realizar simulaciones. Para esto se crea un archivo llamado info.php (por ejemplo) y en él, invocamos la función nativa de PHP phpinfo()

Si todo es correcto, al momento de ejecutar dicho archivo en el navegador debe mostrar lo siguiente:

77

La línea resaltada indica la ruta donde se encuentra el archivo de configuración del PHP. Ahora se debe editar este archivo (como usuario root) y dejar las siguientes variables con los valores que se muestran:

Luego de realizar la anterior configuración, se procede a reiniciar el servicio Apache para que tome los cambios realizados (Al momento de reiniciar el Apache, también toma los paquetes que fueron instalados después de la instalación inicial, como por ejemplo el paquete php5-pgsql):

Para verificar que todo funciona correctamente, ingresamos al aplicativo y generamos una pequeña simulación, puesto que para generar simulaciones, no es necesario estar registrado.

78

79

ANEXO E. MANUAL DE USUARIO

El programa desarrollado brinda la posibilidad de realizar simulaciones con diferentes distribuciones de probabilidad (en este momento solo con Weibull, Ji cuadrado y Beta, pero el programa quedará abierto para futuras distribuciones que se deseen configurar). El aplicativo trabaja con el algoritmo Monte Carlo para generar números aleatorios, dichos números son utilizados para generar x números de simulaciones de acuerdo a lo que el usuario considere conveniente. Estas simulaciones dependen de la distribución seleccionada, puesto que los números generados serán utilizados en las fórmulas que componen las simulaciones. Para lograr resultados más acertados el programa permite hacer replicas, que consiste en repetir x veces las simulaciones realizadas. Luego de realizar la debida configuración descrita en el Manual de Configuración, ya es posible acceder a la aplicación, para esto solo es necesario un navegador (Internet explorer, Google chrome, Firefox, Safari, etc... preferiblemente Firefox) y saber el dominio o dirección IP donde se encuentra alojado el aplicativo. Para este caso la aplicación se encuentra local y el proyecto fue nombrado como PROYECTO. Con esta información es posible acceder a la aplicación de la siguiente manera: http://localhost/PROYECTO/

80

Inicio

Al dar clic en esta opción la aplicación muestra un mensaje de bienvenida.

Este mensaje puede ser configurado por un usuario administrador (más adelante se explicará la forma de configurar el mensaje). Este mensaje inicial como se pudo observar carga automáticamente al ingresar a la aplicación. Generar simulación

Esta opción permite a cualquier persona que acceda al programa a generar cuantas simulaciones deseé. Si el usuario no está registrado, el programa realiza la simulación y muestra los resultados que arroja, pero dichos resultados no son guardados en la base de datos, para esto el usuario debe estar registrado en la aplicación.

81

Resultados de la simulación realizada anteriormente:

82

Como se observa, adicional a la simulación, el programa arroja datos estadísticos como la varianza y la media.

Quiero registrarme Como se menciono anteriormente, las simulaciones generadas no pueden ser guardadas, para eso se crea esta opción donde los usuarios pueden realizar el registro en la aplicación. Al dar clic en dicha opción, aparecerá un formulario como el siguiente:

Al guardar el usuario quedará registrado en la aplicación, pero debe esperar la activación del usuario Administrador para poder ingresar al sistema. En la siguiente pantalla se observa que el usuario qedó registrado, pero se encuentra en estado inactivo:

83

Ahora se activa el usuario y vemos que cambia a color verde:

Ahora el usuario ya puede acceder al aplicativo y puede guardar en el sistema las simulaciones que realice. Mis simulaciones Esta opción solo aparece para aquellos usuarios que se encuentran registrados en el sistema y que tienen perfil Investigador. Al ingresar a esta opción se pueden ver las simulaciones realizadas por el usuario que actualmente se encuentra logueado en la aplicación con la opción de poderlas volver a graficar, con la diferencia de que ya no tomará mucho tiempo, puesto que son valores que ya se encuentran almacenados en la base de datos y que no se deben volver a simular. Para esto ingresamos con el usuario de prueba que se creó anteriormente y que fue habilitado por el administrador.

Ahora el usuario ya se encuentra logueado y aparece la opción Mis simulaciones.

84

Como el usuario es nuevo, no aparece nada al momento de ingresar a esta opción

Por ende procedemos a generar una simulación y luego verificar que aparece en esta opción. (Generamos una simulación de distribución de Weibull, con valor de Alfa 1, valor de Beta 2, realizamos 1000 simulaciones y replicamos 12 veces la simulación realizada como lo muestra la siguiente figura)

85

86

Como se observa, aparece el registro de la simulación anteriormente realizada. En la imagen se puede ver el consecutivo o id generado por el programa, el tipo de distribución seleccionado, la fecha en que se realizó la simulación, entre otros. En la imagen también se puede apreciar que el id de la simulación tiene un hipervínculo, al dar clic en este podemos ver el detalle de la simulación.

Configuración

Las siguientes 3 opciones solo están disponibles para aquellos usuarios que tienen perfil Administrador. Parametrización

87

Como se observa en la anterior figura es posible configurar el número de simulaciones y replicas permitidas. Hay que tener cuidado al colocar valores muy grandes, ya que el rendimiento de la aplicación depende en gran parte de los recursos con los que cuente el servidor en el que se encuentra alojada la aplicación, además al ser una plataforma de libre acceso, la cantidad de usuarios que pueden acceder al programa recurrentemente puede ser considerable, lo cual también afecta dicho rendimiento. Adicionalmente se pueden configurar la cantidad de decimales a los que se redondean los valores, al momento de realizar las simulaciones, cabe anotar que entre mayor sea el número de decimales, mayor será la precisión de las simulaciones realizadas. Finalmente se observa que también es posible configurar el mensaje que aparece al ingresar a la aplicación, es de gran ayuda si se quiere informar de algún acontecimiento importante a los usuarios que acceden a la aplicación. Perfiles La aplicación actualmente cuenta con 3 perfiles los cuales se describen a continuación: Administrador: El cual se encarga de realizar la configuración para el correcto funcionamiento de la aplicación, es decir los usuarios que pertenecen a este perfil son los únicos que pueden acceder a las 3 opciones de configuración.

88

Investigador: Los usuarios pertenecientes a este perfil pueden generar simulaciones y guardar sus simulaciones. Aquellos usuarios que solicitan ser ingresados al sistema quedan ligados a este perfil. Común: Las simulaciones que son realizadas por personas que no se encuentran registradas en el sistema, son registradas en el sistema y quedan atadas a un usuario Genérico creado por defecto en el sistema. Dicho usuario queda ligado a este perfil (Común). Estas simulaciones solo pueden ser vistas por el usuario administrador.

En la figura se observa que la acción de editar no se encuentra disponible para el registro Administrador, esto con el fin de preveer que dicho perfil sea inactivado por error y luego no se pueda acceder a la aplicación con ninguno de los usuarios ligados a este perfil. Usuarios

En esta opción el Administrador puede ver aquellos usuarios que se encuentran registrados en el aplicativo.

89

Al dar clic en la opción editar, se observa que el Administrador puede cambiar la información del estado en el que se encuentra y el perfil al que pertenece. La demás información se restringe de ser cambiada, puesto que se trata de información personal del usuario.

90

En esta opción también es posible agregar un nuevo usuario. Al dar clic en dicha opción se observa que el formulario es similar al momento de editar un usuario, con la diferencia que omite el campo fecha de registro, el cual se asigna automáticamente al crear el usuario y a cambio solicita dos campos adicionales, el password y la confirmación del password.

Como se observa en la figura anterior, todos los campos son requeridos. Si el usuario es creado correctamente aparecerá en el listado de usuarios y dependiendo del estado y perfil al que fué asignado, podrá ingresar a la aplicación.