Soporte web para la herramienta de modelación computacional FCM EXPERIMENTER
Texto completo
(2) Hago constar que el presente trabajo de diploma fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería en Informática, autorizando a que el mismo sea utilizado por la Institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicados sin autorización de la Universidad.. Firma del Autor. Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. Firma del Autor. Firma del Jefe de Departamento donde se defiende el trabajo. Firma del Responsable de Información Científico-Técnica.
(3) Dedicatoria A mis padres por su amor incondicional, sus consejos y apoyo en cada etapa de mi vida. Por estar siempre a mi lado, por confiar en mí y motivarme a luchar por mis sueños. Son los que me motivan a ser mejor cada día, para que estén orgullosos de mi como yo lo estoy de ellos..
(4) Agradecimientos A mis padres por su amor y apoyo incondicional, por ser los principales motivadores de mi vida y por inspirarme cada instante de mi vida. A mi familia por todo el cariño, por estar siempre al tanto. A mi abuelita por su apoyo en todo momento. A Carlos por los regaños y los consejos. A mi novio y tutor Eniel, que jugó los dos papeles a la perfección, por sus consejos, ayuda, cariño, y por estar pendiente todo el tiempo. A mi tutora Isel y a Gonzalo por su amistad y su ayuda en la realización de la tesis. A mis amigos en general, por las rizas, las horas de estudio. A Maura principalmente por estar siempre al tanto de mí, por las horas de conversaciones sin sentido. A los profesores que contribuyeron en mi formación y me mostraron que para lograr las cosas hay que esforzarse. A todos aquellos que de una forma u otra forman parte de mi vida.. Gracias.
(5) Resumen La creación de la herramienta FCM Experimenter orientada al trabajo con Mapas Cognitivos Difusos (MCD), única de su tipo hasta donde se conoce, se mostró, desde el primer momento, de gran utilidad para aquellos expertos que la probaron. Se buscó la forma de divulgarla entre la comunidad científica, esta tarea no se logró en su totalidad debido a la ausencia de un sitio web. Este proyecto se realizó con el objetivo de desarrollar un sitio web no solo para la divulgación de la herramienta, sino también para asistir a los usuarios en el trabajo con la misma. Mediante el estudio y análisis de diversos sistemas que brindan soporte a otras herramientas se obtuvieron ideas para la creación del sitio. Entre las funcionalidades más relevantes que se desarrollaron se encuentran: la descarga de la herramienta, un fórum para el intercambio de experiencias y conocimientos, un blog para la publicación de artículos relacionados con el tema e información sobre los trabajos más recientes. El desarrollo del proyecto se realizó utilizando la metodología RUP y en la fase de implementación, el framework PHP Symfony2 y el framework Bootstrap para el diseño del sitio..
(6) Abstract The creation of the FCM Experimenter tool, working with Diffuse Cognitive Maps (MCD), the only one of its kind as far as it is known, was, from the outset, very useful for those experts who tried it. It was sought the way of disseminating it among the scientific community, this task was not achieved in its entirety due to the absence of a website. This project was carried out with the aim of developing a website, not only for the dissemination of the tool, but also to assist users in working with it. Through the study and analysis of various systems that support other tools, ideas were obtained for the creation of the site. Among the most relevant functionalities that were developed are: the download of the tool, a forum for the exchange of experiences and knowledge, a blog for the publication of articles related to the topic and information on the most recent works. The development of the project was done using the RUP methodology and in the implementation phase, the PHP Symfony2 framework and the Bootstrap framework for site design..
(7) Tabla de Contenidos Introducción .................................................................................................................................. 1 Capítulo 1. Fundamentación teórica ............................................................................................. 1 Potencialidades de la herramienta FCM Experimenter ............................................................ 1 Flujo Actual de Procesos ........................................................................................................... 1 Proceso Divulgación de Información..................................................................................... 1 Proceso Solicitar la Herramienta ........................................................................................... 2 Proceso Dar soporte a la herramienta .................................................................................. 3 Análisis crítico de la ejecución de procesos .............................................................................. 4 Proceso de divulgar herramienta .......................................................................................... 4 Proceso de solicitar herramienta .......................................................................................... 4 Proceso de dar soporte ......................................................................................................... 4 Procesos objeto de automatización y/o informatización ......................................................... 5 ¿Por qué hacer un sitio web? .................................................................................................... 5 Propuesta de solución a la problemática. Sitio Web FCM Experimenter. ................................ 5 Sistemas informatizados vinculados al campo de acción ......................................................... 7 Fundamentación de los objetivos ............................................................................................. 7 Tendencias y tecnologías actuales ............................................................................................ 7 Fundamentación de la metodología utilizada ....................................................................... 7 Fundamentación del Entorno de Desarrollo ......................................................................... 8 Lenguaje de Programación .................................................................................................... 8 Fundamentación del Gestor de Bases de Datos ................................................................. 10 Tecnologías.......................................................................................................................... 11 Conclusiones ........................................................................................................................... 16 Capítulo 2. Modelo del Negocio y Requisitos ............................................................................. 17 Modelo del negocio actual .......................................................................................................... 17 Reglas del negocio a considerar .............................................................................................. 17 Actores del negocio ................................................................................................................. 18 Diagrama de caso de uso del negocio ..................................................................................... 18 Actores del sistema ................................................................................................................. 19 Definición de los requisitos funcionales.................................................................................. 19 Definición de los requisitos no funcionales ............................................................................ 21 Paquetes y sus Relaciones....................................................................................................... 22 Diagrama de los casos de uso del Sistema .............................................................................. 26 Diagrama de casos de uso del Sistema por partes .............................................................. 26.
(8) Diagrama de los Casos de Uso del Sistema más significativos ................................................ 27 Capítulo 3. Descripción de la propuesta de solución .................................................................... 0 Arquitectura del Sistema........................................................................................................... 0 Diagrama de clases del sistema ................................................................................................ 1 Diagrama de clases de diseño (CU Significativos) ..................................................................... 1 Diagrama de secuencia (CU Significativos) ............................................................................... 2 Diseño de la base de datos........................................................................................................ 4 Modelo físico de datos .......................................................................................................... 4 Capítulo 4. Análisis de factibilidad y Pruebas................................................................................ 6 Planificación basada en uno de los métodos de estimación .................................................... 6 Cálculo de Puntos de Casos de Uso sin ajustar ..................................................................... 6 Cálculo de Puntos de Casos de Uso ajustados ...................................................................... 8 Cálculo del tiempo de desarrollo ............................................................................................ 13 Cálculo del costo ..................................................................................................................... 14 Casos de Pruebas .................................................................................................................... 15 Conclusiones ............................................................................................................................... 21 Recomendaciones ....................................................................................................................... 22 Bibliografía .................................................................................................................................. 23 Anexos ......................................................................................................................................... 24 Manual de Usuarios ................................................................................................................ 24.
(9) Tabla de Figuras Figure 1 Diagrama de procesos: divulgar información de la herramienta .................................... 2 Figure 2 Diagrama de proceso: solicitar la herramienta ............................................................... 3 Figure 3 Diagrama de proceso: Dar soporte a la herramienta ..................................................... 4 Figure 4 Visual Studio Code........................................................................................................... 8 Figure 5 Lenguaje de programación PHP ...................................................................................... 9 Figure 6 Gestor de Base de datos MySql..................................................................................... 11 Figure 7 Framework Laravel ........................................................................................................ 12 Figure 8 Framework CakePHP ..................................................................................................... 12 Figure 9 Framework Zend ........................................................................................................... 13 Figure 10 Framewrok Yii.............................................................................................................. 13 Figure 11 Framewrok Symfony ................................................................................................... 13 Figure 12 Framewrok Bootstrap ................................................................................................. 15 Figure 13 Diagrama de CU del negocio ....................................................................................... 18 Figure 14 Actores del sistema a automatizar .............................................................................. 19 Figure 15 Diagrama de paquetes. ............................................................................................... 22 Figure 16 Estructura de directorios general................................................................................ 23 Figure 17 Diagrama de paquetes parte src ................................................................................. 24 Figure 18 Diagrama de paquetes parte app ................................................................................ 25 Figure 19 Diagrama de caso de uso del sistema general ............................................................ 26 Figure 20 Diagrama de casos de uso del sistema parte: actor registrado .................................. 26 Figure 21 Diagrama de casos de uso del sistema parte administrador ...................................... 27 Figure 22 Diagrama de casos de uso del sistema parte invitado ................................................ 27 Figure 23 Diagrama de casos de uso del sistema Significativos .................................................. 28 Figure 24 Modelo-Vista-Controlador ............................................................................................ 0 Figure 25 Diagrama de clases del sistema .................................................................................... 1 Figure 26 Diagrama de clases CU Gestionar Herramienta ............................................................ 1 Figure 27 Diagrama de clases CU Descargar Herramienta ............................................................ 2 Figure 28 Diagrama de CU Contactar ............................................................................................ 2 Figure 29 Diagrama de secuencia Insertar Información ............................................................... 3 Figure 30 Diagrama de secuencia Modificar Información ............................................................ 3 Figure 31 Diagrama de secuencia Eliminar Información .............................................................. 3 Figure 32 Diagrama de secuencia Descargar Herramienta .......................................................... 4 Figure 33 Diagrama de secuencia Contactar................................................................................. 4 Figure 34 Modelo Físico de la base de datos ................................................................................ 5 Figure 35 Diagrama de despliegue ................................................................................................ 6 Figure 36 Caso correo incorrecto ................................................................................................ 16 Figure 37 Caso correo correcto ................................................................................................... 17 Figure 38 Caso elementos vacíos ................................................................................................ 17 Figure 39 Caso campos correctos................................................................................................ 17 Figure 40 Datos del usuario incorrectos ..................................................................................... 18 Figure 41 Datos del usuario correctos ........................................................................................ 18 Figure 42 Sitio actualizado con datos del usuario ....................................................................... 19.
(10) Introducción En el Centro de Estudios Informáticos (CEI) de la Universidad Central “Marta Abreu” de las Villas se realizan, desde hace varios años, estudios relacionados con los MCD. Como resultado tangible de estas investigaciones, ha sido desarrollada la herramienta de Modelación Computacional FCM Experimenter. Presentación del contexto Los MCD se pueden definir como redes neuronales, donde cada nodo representa una característica del sistema, y las interacciones entre ellos representan la dinámica de dicho sistema. Las características dinámicas de estos modelos y su capacidad de aprendizaje hacen que sean adecuados para diversas tareas como modelado, análisis, toma de decisiones y pronóstico. Los MCD se pueden aplicar en diversos campos, tales como: ciencias de la computación, ingenierías, ciencias ambientales, medicina, negocios, educación, sistemas de información y tecnología de la información (Papageorgiou, Member, & Salmeron, 2013). A pesar de los avances teóricos en este campo, la falta de un marco computacional adecuado para el manejo de los modelos basados en MCD sigue siendo un problema abierto. Motivado por esta problemática, un grupo de investigadores presentaron la herramienta FCM Experimenter para diseñar y simular MCD, y que reúne varios algoritmos de aprendizaje orientados a tareas de predicción. Antecedentes En la actualidad existen sitios web que brindan soporte a herramientas relacionadas con otros temas, pero no existe documentación referente a la creación de las mismas o código fuente que pueda usarse en otros proyectos, pero sirven de referencia para tener en cuenta las funcionalidades que se pueden tener en este caso. Problema de investigación La herramienta de modelación computacional FCM Experimenter no cuenta con un sitio web que permita la interacción e intercambio de información entre los usuarios y los creadores de la herramienta. Por otra parte, el acceso a la herramienta, tutoriales y casos de estudio que expliquen cómo realizar el trabajo. 1.
(11) en ella es difícil por lo que imposibilita su amplia utilización por parte de la comunidad científica. Objetivo general Desarrollar un sitio web que permita divulgar y dar soporte a la herramienta de modelación computacional FCM Experimenter. Objetivos específicos 1. Definir las funcionalidades del sistema. 2. Diseñar una base de datos que permita la gestión de la información. 3. Implementar el sistema según las funcionalidades definidas. 4. Realizar pruebas al sistema. 5. Confeccionar un manual de usuario para la administración del sitio. Preguntas de investigación 1. ¿Qué funcionalidades debe tener el sitio para garantizar un soporte adecuado a la herramienta FCM Experimenter? 2. ¿Qué tecnologías se deben utilizar para el desarrollo del sitio web?. Justificación En los últimos años, el laboratorio de Inteligencia Artificial de la Universidad Central Marta Abreu de las Villas ha alcanzado un gran prestigio dentro de la comunidad internacional por sus aportes teóricos referentes a los MCD, como parte de la colaboración entre dicha institución y la universidad de Hasselt, Bélgica. Estos aportes incluyen la introducción de una herramienta de simulación y experimentación para MCD, única de su tipo hasta donde se conoce. Sin embargo, la ausencia de un soporte web para dicha herramienta limita la usabilidad de la misma y la visibilidad de las investigaciones que se realizan. Estructura preliminar En el primer capítulo se realiza una descripción de los conceptos y definiciones necesarios para el mejor entendimiento de este trabajo, el flujo actual de procesos, los procesos objeto de automatización y se define la metodología utilizada. Se fundamentan el entorno de desarrollo, el lenguaje, el gestor de base de datos y la tecnología utilizada.. 2.
(12) En el segundo capítulo se desarrolla la modelación del negocio actual y del sistema, se definen los actores y trabajadores, se determinan las reglas de negocio y los requisitos funcionales y no funcionales, se definen los paquetes y sus relaciones, se crea el diagrama de casos de uso del sistema y una descripción de los más significativos. En el tercer capítulo se realiza una descripción de la propuesta de solución, se define la arquitectura del sistema, los diagramas de clases de diseño y de secuencia de los casos de uso más significativos, se diseña la base de datos teniendo en cuenta el modelo conceptual y físico de datos. Se crea además el modelo de componentes y el diagrama de despliegue. En el cuarto capítulo se realizan las pruebas y análisis de factibilidad, teniendo en cuenta los casos de prueba y la planificación basada en uno de los métodos de estimación(“TesisEniel,” n.d.).. 3.
(13) Capítulo 1. Fundamentación teórica En este capítulo se abordan definiciones y conceptos importantes para un mejor entendimiento del problema de investigación planteado. Se realiza una revisión bibliográfica para adquirir información relevante relacionada con nuestra problemática, y así definir las características y funcionalidades de la solución. También se exponen argumentos sobre la selección de las tecnologías relevantes para el desarrollo del sitio web.. Potencialidades de la herramienta FCM Experimenter Los. MCD. se. pueden. aplicar. en. diversos. campos. como:. ciencias. delcomportamiento, como apoyo a la toma de decisiones médicas, en las ingenierías, en negocios y administración, en telecomunicaciones, etc. FCM Experimenter es una herramienta de modelación computacional que permite crear, simular y experimentar con MCD. El software incluye algoritmos de aprendizaje supervisados y no supervisados (Nápoles, 2016) para calcular los pesos causales, algoritmos para optimizar la topología de la red sin perder información relevante y métodos para mejorar la continua convergencia de MCD(Leonardo & Concepción, 2016). Debe destacarse que estos algoritmos están orientados a problemas de reconocimiento de patrones(Nava, 2006), pero que podrían extenderse fácilmente a otros campos. La herramienta incluye tres optimizadores de inteligencia de enjambre (Muñoz & López, 2008)y tres procedimientos evolutivos y los métodos de búsqueda que posee generan vectores binarios que codifican si un concepto será eliminado o preservado.. Flujo Actual de Procesos Los diagramas de procesos que se muestran describen las tareas o actividades que se llevan a cabo en el negocio actual (diagrama As is). El análisis de los diagramas “Tal como están” (As is) facilita la obtención de los procesos que se deben automatizar (To Be). Proceso Divulgación de Información El proceso de divulgación de información es iniciado por el desarrollador, el cual debe elegir un medio (físico o no) por el cual va a poder distribuir la información referente a la herramienta. La divulgación por medios físicos se puede hacer 1.
(14) mediante dispositivos USB, discos externos, o CD’s, por lo que el usuario debe interactuar personalmente con el desarrollador. También se puede hacer por medios que no sean físicos, como: conferencias, artículos, participación en revistas científicas, redes sociales (Facebook, Twitter, YouTube, ResearchGate para personas que realizan ciencia), por correo electrónico, y compartiendo la información en la nube. Una vez elegido el medio, entrega la información y culmina el proceso.. Figure 1 Diagrama de procesos: divulgar información de la herramienta. Proceso Solicitar la Herramienta A partir del resultado obtenido de la divulgación de la herramienta, los usuarios solicitan la adquisición de la misma, iniciando de esta forma el proceso. El desarrollador debe pedir los motivos por los que el usuario desea adquirir la herramienta; si está de acuerdo la solicitud es aceptada, la entrega al mismo y termina el proceso. En otro caso la solicitud es denegada y termina el proceso.. 2.
(15) Figure 2 Diagrama de proceso: solicitar la herramienta. Proceso Dar soporte a la herramienta El proceso comienza cuando el usuario solicita alguna funcionalidad y/o reporta errores en la herramienta; el desarrollador debe analizar las peticiones del usuario y decide si procede. En caso de que la solicitud sea aceptada, agrega los cambios a una lista de funcionalidades o correcciones por implementar. Teniendo en cuenta el orden de las peticiones, el desarrollador implementa las funcionalidades y actualiza la herramienta, y de esta forma termina el proceso. En caso contrario, comunica al usuario que no procede su petición y finaliza el proceso.. 3.
(16) Figure 3 Diagrama de proceso: Dar soporte a la herramienta. Análisis crítico de la ejecución de procesos Proceso de divulgar herramienta Se le puede incorporar el uso de otras redes sociales, ya sea Facebook, Twitter, etc., con el objetivo de mejorar el posicionamiento en los buscadores. Proceso de solicitar herramienta Se realiza a través de medios que pueden ser físicos o no, esto dificulta la adquisición de la herramienta por parte de los usuarios. El almacenamiento en la nube, hace necesaria la búsqueda de un medio para compartir el enlace al usuario, lo que hace difícil el control de las descargas de la herramienta, esto se debe a que una vez compartida no se conoce la cantidad de usuarios que pueden haberla adquirido. A este proceso se le puede incorporar un control de usuarios, para que el desarrollador de la herramienta pueda conocer y realizar estadísticas sobre la cantidad de personas que adquirieron la herramienta. Proceso de dar soporte Se puede realizar haciendo más accesible la información a los usuarios, la cual es indirectamente centralizada a través de un sitio web. De forma, pueden 4.
(17) encontrar todo lo que necesiten para trabajar con ella en un solo lugar y realizar propuestas de funcionalidades o reportar problemas y errores.. Procesos objeto de automatización y/o informatización Se ha determinado que todos los procesos son objeto de automatización y/o informatización. Como proceso fundamental objeto de automatización, se encuentra el proceso de distribución de la herramienta, para el cual se crea un nuevo espacio que agrupa la información referente a la misma.. ¿Por qué hacer un sitio web? Actualmente, Internet es una herramienta utilizada en todo el mundo, que permite acceder y divulgar información con gran facilidad. Teniendo en cuenta las necesidades planteadas por los clientes, la solución deseada se puede clasificar como informativa. Por tanto, se propone desarrollar un sitio web que brinde las funcionalidades necesarias. para. dar. soporte. a. la. herramienta. FCM. Experimenter, su divulgación, y la colaboración entre usuarios. Una solución web trae consigo diversas ventajas, dentro de las cuales se pueden destacar: Publicidad constante: la información sobre la herramienta, sus potencialidades y servicios se encuentran disponibles para cualquier usuario, a cualquier hora del día, y puede ser accedida desde cualquier parte del mundo. Imagen y prestigio: permite mostrar a los visitantes que la herramienta y la información que se muestra se encuentra a la vanguardia. Permite además que los usuarios tengan una idea más completa de los servicios que se ofrecen. Presencia a nivel local, nacional y mundial: permite que usuarios más potenciales conozcan la herramienta y sus características con gran facilidad. Ahorro de recursos económicos y tiempo: permite la centralización de la información y dar a conocer a los usuarios las potencialidades que posee sin necesidad de hacerlo manualmente.. Propuesta de solución a la problemática. Sitio Web FCM Experimenter. La herramienta FCM Experimenter ha sido de importancia para la comunidad científica. Al ser de difícil acceso para la comunidad, disminuye su aplicabilidad. El sitio web pretende agrupar la información referente a la misma, permitiendo su divulgación, la interacción entre usuarios, y brindándole soporte. De esta forma, se logra que los usuarios se mantengan al día con las novedades de la 5.
(18) herramienta, y un mejor aprendizaje a partir de tutoriales, documentos o por el intercambio con expertos en el tema. El estudio de la bibliografía encontrada, llevó al análisis de sitios web que brindan soporte a diferentes herramientas, que, aunque no se encontraban vinculadas al tema, poseían componentes que ayudaron a definir las funcionalidades que debíamos crear en el sitio. Al unir las ideas obtenidas anteriormente con los desarrolladores de la herramienta, se logró estructurar y conformar el sitio web para el soporte a la herramienta de modelación computacional FCM Experimenter. Ha sido definida como propuesta de solución la siguiente: Página inicial del sitio web, que cuenta con la opción de descarga (download). Ésta se dirige a la página de descarga y muestra una tabla con diferentes versiones de la herramienta, fecha en que ha sido subido el archivo, un registro de cambios (changelog) y una opción de descarga para cada versión. FCM Experimenter cuenta con un breve texto informativo y video descriptivo de la herramienta. Funcionalidades (Features) contiene breve descripción sobre las funcionalidades más relevante que posee la herramienta que la hacen diferente. Documentos (Documents), opción de descarga en el menú para los dataset y el manual de usuario de la herramienta. Tutoriales (Tutorials) va a la página que le corresponde y muestra diversos tutoriales, y la opción de descarga de los mismos. Posee documentos que el usuario pueda descargar y que sirvan para explicar paso a paso como operar la herramienta. Contacto (Contact Us) muestra formulario para llenar los datos que se desean enviar al administrador. Blog va a la página que le corresponde y muestra entradas resumidas del blog, tiene la opción de leer más, que muestra el blog completo. La publicación comentarios en el Blog, están restringidas a los usuarios registrados, para que el administrador tenga constancia de los cambios y/o usuarios. 6.
(19) Registro de usuarios muestra un formulario con campos como: correo, usuario y contraseña, para que los usuarios se registren y puedan hacer comentarios. Inicio de sesión de los usuarios, este se encarga del control de usuarios a las diferentes secciones en dependencia de los permisos que poseen. Trabajos recientes posee un listado con los trabajos recientes que han sido realizados utilizando la herramienta.. Sistemas informatizados vinculados al campo de acción La herramienta de modelación computacional FCM Experimenter no cuenta con sistemas informatizados vinculados.. Fundamentación de los objetivos El objetivo principal definido es: desarrollar un sitio web que permita divulgar y dar soporte a la herramienta de modelación computacional FCM Experimenter. Éste, surge a partir de la necesidad de tener un espacio que agrupe la información referente a la herramienta, que permita su descarga y la interacción entre usuarios. En cuanto a los objetivos específicos, es necesario definir las funcionalidades del sistema que se deben implementar; diseñar una base de datos que permita la gestión de la información, donde a partir de la captura de los datos, surge una relación lógica que facilita el trabajo con la base de datos; implementar el sistema según las funcionalidades definidas; realizar pruebas al sistema, para estimar los resultados que tendrá el proyecto, el costo, tiempo, esfuerzo y recursos que va a necesitar y confeccionar un manual de usuario para la administración del sitio, lo que facilitará el trabajo el mismo.. Tendencias y tecnologías actuales Para lograr un correcto desarrollo del sitio web que dará soporte a la herramienta FCM Experimenter, es de gran importancia definir la metodología, entorno de desarrollo, lenguajes de programación, gestor de base de datos y otras tecnologías que se van a utilizar. Fundamentación de la metodología utilizada En el desarrollo del software se requiere de diversos elementos que lo hacen exitoso o no. La metodología de desarrollo es uno de ellos. Existen varias, con diferentes propósitos: para equipos de mayor o menor tamaño, para proyectos 7.
(20) con alta o baja variabilidad en el tiempo, etc. Es probable que ninguna se ajuste perfectamente y sea necesario seleccionar las más adecuada, y adaptarla al contexto del proyecto, teniendo en cuenta los recursos técnicos y humanos, tiempo de desarrollo y tipo de sistema. Las metodologías tradicionales han intentado abordar un amplio panorama, con el consiguiente esfuerzo para ser adaptadas en caso de cambio, especialmente en proyectos pequeños y cambiantes. Por otro parte, las metodologías ágiles se destacan por su sencillez, tanto en su aprendizaje como en su aplicación, reduciendo así los costos de implantación en un equipo de desarrollo. Teniendo en cuenta las características que posee este proyecto de software, se debe utilizar una metodología de desarrollo ágil. Sin embargo, la falta de experiencia con metodologías ágiles y el poco tiempo disponible, obligan a utilizar RUP, la cual ha sido utilizada por el equipo de desarrollo en múltiples ocasiones. Fundamentación del Entorno de Desarrollo El entorno de desarrollo es conocido como aquella aplicación informática que posee diversos servicios que le facilitan al desarrollador o programador la implementación del software, maximizando su productividad. Teniendo en cuenta las características que poseen diversas aplicaciones guiadas a facilitar el trabajo de programador, se ha seleccionado Visual Studio Code como entorno de desarrollo.. Figure 4 Visual Studio Code. Visual Studio Code es un editor de código, libre, ligero. La incorporación de extensiones permite ampliar sus funcionalidades, asemejándose a un IDE. Lenguaje de Programación La búsqueda bibliográfica sobre los lenguajes existentes permite conocer las características y ventajas que poseen, y a partir de ello tomar una decisión estratégica respecto a qué lenguaje se debe utilizar para la construcción del sistema. 8.
(21) Dentro de los lenguajes más populares existentes para el desarrollo de sitios web podemos encontrar: PHP, Java, Python, tecnologías .net y Java Script (node.js). Se conoce por entrevistas al cliente que el proyecto no tiene requisitos especiales de rendimiento, ni de otra índole, que obliguen a realizar un proceso de selección del lenguaje riguroso. Por tanto, se seleccionó PHP, teniendo en cuenta la amplia disponibilidad de servidores que lo soportan, menores costos, mayor documentación, etc. A continuación se exponen algunas de sus características y ventajas.. Figure 5 Lenguaje de programación PHP. El lenguaje de programación PHP ha sido creado con la intención de contar con un conjunto de herramientas para el mantenimiento de las páginas web. Es un lenguaje de código abierto muy popular, adecuado para el desarrollo web del lado del servidor. Es de fácil acceso para nuevos programadores, y a su vez ofrece a los más experimentados muchas posibilidades. El código es ejecutado en el servidor, generando HTML y enviándolo al cliente. Permite recopilar datos de formularios, generar páginas con contenidos dinámicos, o enviar y recibir cookies, etc. Puede utilizarse en todos los sistemas operativos principales, incluyendo Linux, Microsoft Windows Mac OS X y RISC OS , y admite la mayoría de servidores web de la actualidad, incluyendo Apache e IIS. Además, cuenta con soporte para comunicarse con otros servicios usando protocolos tales como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (en Windows) y muchos otros. Una de sus características más destacables es el soporte para un amplio abanico de bases de datos.(“PHP ¿Qué puede hacer PHP - Manual,” n.d.). 9.
(22) Fundamentación del Gestor de Bases de Datos ¿Qué es un Gestor de Base de Datos?. Un sistema Gestor de Base de Datos es una colección de datos relacionados entre sí, estructurados y organizados, y un conjunto de programas que acceden y gestionan esos datos. La colección de esos datos se denomina Base de Datos. Algunos Gestores de Bases de Datos existentes Oracle: es un sistema de Gestión de base de datos relacional, desarrollado por Oracle Corporation. Se considera como uno de los sistemas de base de datos más. completos,. destacando:. soporte. de. transacciones,. estabilidad,. escalabilidad, soporte multiplataforma. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux. Firebird: es un sistema de administración de base de datos relacional de código abierto, basado en la versión 6 de Interbase, cuyo código fue liberado por Borland EN 2000. Su código fue reescrito de C a C++. SQL Server 2008: es una plataforma de base de datos que se utiliza en el procesamiento de transacciones en línea a gran escala, el almacenamiento de datos y las aplicaciones de comercio electrónico, es también una plataforma de Bussiness Intelligence para soluciones de Integración, análisis y creación de informes de datos. PostgreSQL: es un sistema de gestión de base de datos objeto-relacional, distribuido bajo licencia BSD y su código fuente se encuentra disponible libremente. Es un SGBD muy potente, sus últimas versiones están a la altura de sistemas comerciales. Utiliza un modelo cliente/servidor y usa multiprocesos en lugar de multihilos para garantizar la estabilidad del sistema. MySQL: Es un software de base de datos muy popular entre desarrolladores de sitios web, donde el acceso a los datos se hace mediante SQL, conociendo su estándar, permite manejar los datos mandando instrucciones en SQL. 10.
(23) ¿Por qué utilizar MySQL como Gestor de Base de Datos?. Figure 6 Gestor de Base de datos MySql. Además de las características mencionadas anteriormente, MySQL es: Multiplataforma, para S.O. como Windows, Linux y Mac se dispone de un servidor para instalarlo. Al ser una base de datos que se utiliza en multitud de aplicaciones web existen multitud de tutoriales, foros, etc. en la red en los que podemos encontrar la información que necesitamos. MySQL es una base de datos ampliamente probada por distintos usuarios y empresas con alto éxito. Son necesarios menos mantenimientos, lo que nos da la ventaja para que un programador cualquiera pueda aprender rápidamente como debe mantener la base de datos para sus aplicaciones. Permite crear tantos servidores MySQL como necesitemos sin incurrir en ningún coste alto. MySQL es el gestor de base de datos más utilizado en soluciones web con PHP. Ha sido utilizado por el desarrollador en otros proyectos, por lo que se hace más fácil su trabajo. Además, los hostings web para PHP predominan con este gestor de base de datos, para tecnologías diferentes los costos son elevados. Tecnologías ¿En qué consiste un Framework? Un framework es una estructura real o conceptual que sirve de soporte o guía en la construcción de un software. Al poseer un conjunto de componentes de software prefabricados e integrados permite al desarrollador escribir menos código, lo que implica un menor riesgo de error. Esto también significa una mayor productividad y la capacidad de dedicar más tiempo a hacer aquellas cosas que aportan mayor valor añadido. Si lo vemos como una metodología es: un "diagrama de montaje" para las aplicaciones, ya que posibilita que el trabajo de los desarrolladores sea más eficiente y eficaz en los aspectos más complejos de una tarea; el uso de Best Practices garantiza la estabilidad, la capacidad de mantenimiento y la capacidad de actualización de las aplicaciones que desarrolle.(“Frameworks PHP,” n.d.) 11.
(24) Frameworks PHP más populares:. Figure 7 Framework Laravel. Laravel es un framework de código abierto para desarrollar aplicaciones y servicios web con PHP 5. Su filosofía es desarrollar código PHP de forma elegante y simple. Fue creado en 2011 y tiene una gran influencia de frameworks como Ruby on Rails, Sinatra y ASP.NET MVC. Gran parte de Laravel está formado por dependencias, especialmente de Symfony, esto implica que el desarrollo de Laravel dependa también del desarrollo de sus dependencias.. Figure 8 Framework CakePHP. CakePHP es un framework o marco de trabajo que facilita el desarrollo de aplicaciones web, utilizando el patrón de diseño MVC (Modelo Vista Controlador). Esta creado sobre los conceptos de Ruby on Rails. Es de código abierto y se distribuye bajo licencia MIT.. 12.
(25) Figure 9 Framework Zend. Zend Framework (ZF) es un framework de código abierto para desarrollar aplicaciones web y con servicios web PHP5. ZF es una implementación que usa código 100% orientado a objetos. En la estructura de los componentes de ZF; cada componente está construido con una baja dependencia de otros componentes.. Esta. arquitectura. débilmente. acoplada. permite. a. los. desarrolladores utilizar los componentes por separado. A menudo se refiere a este tipo de diseño como "use-at-will" (uso a voluntad).. Figure 10 Framewrok Yii. Yii es un framework orientado a objetos, software libre, de alto rendimiento basado en componentes, PHP y framework para aplicaciones web. Está basado en el patrón de diseño Modelo Vista Controlador (MVC).. Figure 11 Framewrok Symfony. Symfony se proyecta como Symfony Components y Symfony Framework. El primero es un conjunto de bibliotecas PHP desacopladas e independientes. El segundo está desarrollado sobre estas bibliotecas. Como otros frameworks, 13.
(26) reduce el tiempo de creación de una aplicación ya que implementa las funcionalidades más comunes de un proyecto web. Posee componentes que se encargan de administrar las rutas de la misma, ORMs, migraciones de bases de datos, validación de formularios, administración de sesiones, autorización y autenticación, serializadores, procesadores de correo electrónico, barra de depuración e interfaz gráfica para analizar el desempeño de la aplicación. (“Symfony es el mejor framework de PHP _ Freelancing y Programación,” n.d.) Utiliza programación orientada a objetos y el patrón de Modelo Vista Controlador (MVC). Ha sido diseñado para interferir lo menos posible en el flujo natural de las peticiones HTTP, por lo que no es muy intrusivo. No obliga al programador a trabajar de una forma específica. Posee muchas innovaciones únicas en el mundo PHP. Symfony, en su versión 2, posee bundles (un bundle es un paquete similar a una extensión) que agregan funcionalidades a un proyecto, existen miles de estos paquetes para disimiles funcionalidades, que disminuyen considerablemente el tiempo de desarrollo. Posee una gran comunidad que lo respalda por lo que el soporte es muy bueno y posee numerosos tutoriales y bibliografía para un mejor aprendizaje. Soporta además un mayor número de bases de datos con respecto a los demás frameworks.(“The Book,” 2016) Selección del framework para el servidor Con base en las características expuestas, se ha elegido el framework Symfony en su versión 2 para la realización del proyecto. Otro argumento, de mayor peso, es el dominio de este framework por el desarrollador, al haber sido utilizado en trabajos anteriores. Lo que suprime la necesidad de consumir tiempo en el aprendizaje del mismo.. 14.
(27) Tecnologías para el cliente. Figure 12 Framewrok Bootstrap. Bootstrap Es un framework que permite el desarrollo de aplicaciones web y el diseño adaptativo de las vistas del sitio web de acuerdo al dispositivo en que se visualice; se ha hecho muy popular sobre todo por la gran cantidad de plantillas disponibles que posee, lo que reduce el tiempo de desarrollo considerablemente. Utiliza Sass como preprocesador, lo que nos da la ventaja para trabajar de forma modular cada uno de los componentes .scss en caso de ser necesario, personalizando así nuestro proyecto al máximo.(“Bootstrap 4 Alpha todas las novedades y ejemplos,” n.d.) jQuery jQuery es una biblioteca multiplataforma de JavaScript, permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web.. 15.
(28) Conclusiones Este capítulo expone los resultados de la búsqueda bibliográfica para dar solución a la problemática planteada. Se muestran las potencialidades que posee la herramienta FCM Experimenter y la necesidad de sus desarrolladores de aumentar la accesibilidad de la información que se refiere a la misma, se definen los procesos fundamentales, la metodología a utilizar, el entorno de desarrollo, lenguaje, gestor de base de datos y las tecnologías necesarias para realizar correctamente la aplicación.. 16.
(29) Capítulo 2. Modelo del Negocio y Requisitos En este capítulo se realiza un estudio con el objetivo de definir los casos de uso del negocio y del sistema, sus actores, requisitos funcionales y no funcionales, los paquetes y sus relaciones. Estas tareas parten de los procesos descritos y modelados al inicio del capítulo anterior, lo que hace más sencillo el trabajo.. Modelo del negocio actual El modelo de negocio es una representación de la lógica del negocio, mediante el cual, se puede describir la forma en la que los mismos ofrecen sus productos o servicios a los clientes, como llega a estos, su relación con ellos y, en caso que corresponda, cómo la empresa gana dinero. En fin, describe la forma en que una organización crea, captura y entrega la información. El modelo de negocio actual posee dos procesos fundamentales: Proceso Divulgar Información: lo inicia el desarrollador de la herramienta, este proceso de divulgación se realiza mediante redes sociales, impartiendo conferencias, mediante la participación en eventos, la publicación de artículos, y a través del intercambio científico en Researchgate.com. Proceso Adquirir Herramienta: este proceso lo inicia el usuario, se realiza contactando directamente con el desarrollador, entiéndase correo electrónico, personalmente después de una presentación, o cualquier otra vía de comunicación.. Reglas del negocio a considerar Las reglas del negocio son aquellas restricciones que existen en el negocio dado, son acciones no válidas que la aplicación debe controlar para que el negocio no colapse. Indican la forma en que debe operar el negocio, pueden ser regulaciones, leyes o artículos impuestos en el negocio, expresan además el estilo de negocio y la arquitectura seleccionadas. RN1: El usuario debe contactar con el desarrollador para adquirir la herramienta. RN2: El usuario debe explicar al desarrollador el uso y destino que le dará a la herramienta.. 17.
(30) RN3: Los desarrolladores de la herramienta son los únicos capacitados para dar soporte.. Actores del negocio Los actores del negocio pueden ser cualquier grupo, individuo, organización o máquina que interactúe con el negocio. En el negocio actual fueron identificados los actores: usuario y desarrollador. El desarrollador es el encargado de divulgar la herramienta y sus potencialidades, así como distribuirlas, mientras que el usuario es el que solicita la adquisición de la misma.. Diagrama de caso de uso del negocio Los procesos de negocio describen una secuencia de acciones que darán un resultado a un actor específico del negocio. Cada caso de uso indica lo que debe suceder cuando este se realiza, o sea, lo que desea hacer el usuario en el negocio, por tanto, representan un flujo de trabajo en el negocio. El diagrama indica que: los actores desarrollador y usuario inician los procesos, y a su vez los casos de uso que les corresponden. El desarrollador va a iniciar los casos de uso del negocio Divulgar Información y Dar soporte a la herramienta. El usuario va a iniciar el caso de uso del negocio: solicitar adquisición de la herramienta.. Figure 13 Diagrama de CU del negocio. 18.
(31) Actores del sistema Dentro de los actores del sistema a automatizar podemos encontrar a Desarrollador.. Figure 14 Actores del sistema a automatizar. Usuario Registrado: todo usuario que se encuentre registrado en el sitio, independientemente del rol que tenga tiene permiso para publicar entradas en el fórum o realizar comentarios, además puede hacer comentarios en el blog. Invitado: este tipo de actor solo tiene permisos de lectura, por lo que solo puede consultar la información existente en el sitio web. Administrador: no solo puede leer la información, sino que va a tener permisos para realizar cualquier operación que estime conveniente en el sistema.. Definición de los requisitos funcionales Los requisitos funcionales componen el área de funcionalidad que el sistema debe soportar, se basa en los casos de uso del sistema, por lo que se pueden definir una vez definidos los mismos. Requisitos funcionales definidos: RF1: Autentificación Existen áreas restringidas a las que no puede acceder cualquier usuario. Se debe brindar un mecanismo para el registro, autentificación y control de acceso de usuarios.. 19.
(32) RF2: Gestionar Tutoriales El administrador puede realizar operaciones de inserción, modificación o eliminación de los tutoriales, para mantener actualizados a los usuarios sobre la información referente a la herramienta. En dependencia de la operación que el usuario decida realizar, se obtienen como resultado los tutoriales actualizados. RF3: Gestionar Blog Teniendo en cuenta el rol que posea el usuario va a realizar diferentes operaciones; en caso de ser administrador puede realizar operaciones de inserción, modificación o eliminación en el blog, ya sea en las publicaciones o entradas como en los comentarios realizados, artículos, etc. En caso de poseer un rol específico para el blog, va a poder tener acceso a diferentes secciones del mismo y realizar operaciones de inserción, modificación o eliminación en las mismas. RF4: Gestionar Trabajos Recientes El administrador puede realizar operaciones de inserción, modificación o eliminación en los trabajos recientes, para mantener actualizados a los usuarios sobre las publicaciones de los desarrolladores referentes a la herramienta. Como resultado se obtienen los trabajos actualizados en dependencia de la operación que el usuario decidida realizar. RF5: Gestionar Fórum El administrador puede realizar operaciones de inserción, modificación o eliminación en el fórum. Teniendo en cuenta la operación que decida hacer el usuario, se obtiene como resultado el fórum actualizado. El usuario registrado tiene permisos de inserción en el fórum ya sea para realizar entradas o para comentar. RF6: Gestionar Usuarios El administrador es el encargado de realizar las operaciones de inserción, modificación o eliminación de usuarios del sistema. Teniendo en cuenta la operación que decida realizar el usuario, se obtienen como resultado los usuarios actualizados.. 20.
(33) RF7: Comentar en el Blog Los usuarios que hayan iniciado sesión en el sitio pueden hacer comentarios en el blog. El objetivo del inicio de sesión es saber quién realizó el comentario, para poder moderar el blog. RF8: Publicar información Cualquier usuario que haya iniciado sesión previamente en el sitio puede publicar en el fórum o hacer comentarios. Como resultado se obtiene una nueva entrada en el fórum. RF9: Consultar información Los usuarios no tienen que iniciar sesión para tener acceso a la información que brinda el sitio, este requisito funcional es para los usuarios que solo desean consultar información. RF10: Contactar con el equipo de trabajo Los usuarios pueden contactar con el equipo de trabajo de FCM Experimenter, esta solicitud de contacto debe llegar por correo electrónico a los administradores.. Definición de los requisitos no funcionales Los requisitos no funcionales especifican las propiedades que va a tener el sistema, o sea, las restricciones que posee en cuanto a rendimiento, fiabilidad, mantenimiento, etc. RNF1: Usabilidad Debe ser de fácil para los usuarios o administradores cuando utilicen el sistema. RNF2: Privacidad La información personal de los usuarios, como es el correo, no va a ser pública para ningún otro usuario. RNF3: Acceso Teniendo en cuenta el tipo de usuario, se garantiza el control de acceso a la información correspondiente. 21.
(34) RNF4: Tiempo de espera El tiempo de espera para que sea ejecute el sistema debe ser mínimo. RNF5: Requerimiento de software Navegador web (Ej. Mozilla Firefox) para acceder al sitio. RNF6: Requerimiento de hardware Dispositivo con acceso a internet para ver el sitio online.. Paquetes y sus Relaciones El diagrama de paquetes agrupa de forma lógica los paquetes en los que se ha dividido el sistema, en este caso se ha tenido en cuenta las agrupaciones que realiza Symfony 2. Diagrama de paquetes. Figure 15 Diagrama de paquetes.. 22.
(35) Estructura de directorios. Figure 16 Estructura de directorios general.. Agrupaciones lógicas en las que ha sido dividido el sistema de forma general: app: en el paquete config que posee se pueden encontrar las rutas, configuraciones, servicios y seguridad que va a tener el sitio, además cuenta con el paquete Resources que tiene las vistas que se van a editar de los bundles que se está utilizando (Ej. SonataAdminBundle, EDBlogBundle, FOSUserBundle) y la vista base de la que todas las demás heredan. src: posee las vistas, entidades, las clases que se convertirán en formularios, los repositorios y controladores con los que va a trabajar el sistema. vendors: posee los bundles instalados, estos permiten el trabajo más cómodo mediante la programación y configuración de las clases que tiene definidas. En este proyecto se utilizaron bundles de terceros. Su uso facilitó el trabajo de los desarrolladores debido a que poseen funcionalidades definidas. La complejidad que posee, es que deben ser programadas clases PHP para un correcto uso. Un bundle es un conjunto estructurado de archivos dentro de un directorio, que implementan funcionalidades lógicas (Ej. Bundle para la Gestión de Usuarios 23.
(36) (login, register, profile, add, update, delete)). Se pueden crear bundles para Blog, para Fórums o un bundle para la administración de entidades (muchos de ellos ya existen como bundles de código abierto). Cada directorio contiene todo lo relacionado con esa característica, incluyendo archivos PHP, plantillas, hojas de estilo, archivos JavaScript, etc. Symfony está formado básicamente por un conjunto de bundles. Se utilizaron tres bundles de terceros: SonataAdminBundle, FOSUserBundle y EDBlogBundle. SonataAdminBundle es un bundle que permite la administración del sitio web. Una vez instalado y teniendo en cuenta las entidades que se quieren administrar, se programa una clase php donde se indican los campos que va a tener el formulario tanto para crear como para editar, los campos por los que se va a poder filtrar y los campos que se van a listar. Posteriormente, se debe modificar la configuración para indicarle al Bundle las entidades y la clase programada que se va a utilizar para conformar el menú de administración. Para modificar las vistas se debe crear una carpeta en app con el nombre del bundle, se crea una carpeta views y se copia el archivo que se quiere modificar, esto se hace respetando el orden de carpetas que posee el bundle.. Figure 17 Diagrama de paquetes parte src. 24.
(37) Agrupaciones lógicas del paquete src: Entity: contiene las clases que representan las tablas que se van a encontrar en la base de datos. En el caso del sitio se encuentran las clases: UserGeneric, Tutorials, Tool, Term, Comment, Category, BlogPost, Article, etc. Form: contiene las clases que se convertirán en formularios, en este caso se encuentran: ContactType y UserType. Controller: se encuentran las clases encargadas de que se relacionen las vistas de la aplicación con los modelos, o sea, posee las clases que van a controlar toda la lógica del sistema. Podemos encontrar en el sitio: HomeController y ForumController. Repository: posee las clases que realizan las consultas a la base de datos. Podemos encontrar a: ToolRepository, TutorialsRepository, UserRepository, etc. Resources: posee las vistas del sistema y la de los bundles que se van a utilizar y las rutas sistema.. Figure 18 Diagrama de paquetes parte app. Agrupaciones lógicas del paquete app: config: posee las configuraciones, rutas, servicios y seguridad que va a tener el sistema.. 25.
(38) Resources: contiene paquetes específicos para las vistas definidas para el sitio y las que se editan al usar los diferentes bundles.. Diagrama de los casos de uso del Sistema El diagrama de casos de uso del sistema se elabora a partir de la descripción y el modelado del sistema, como parte del proceso de captura de los requisitos. Se identifican y definen los actores y los casos de uso del sistema.. Figure 19 Diagrama de caso de uso del sistema general. Diagrama de casos de uso del Sistema por partes. Figure 20 Diagrama de casos de uso del sistema parte: actor registrado. 26.
(39) Figure 21 Diagrama de casos de uso del sistema parte administrador. Figure 22 Diagrama de casos de uso del sistema parte invitado. Diagrama de los Casos de Uso del Sistema más significativos A continuación, se muestra en el diagrama los casos de uso más significativos para el desarrollo de la aplicación y los de mayor relevancia para el cliente.. 27.
(40) Figure 23 Diagrama de casos de uso del sistema Significativos. ¿Por qué son importantes estos casos de uso? Gestionar Herramienta: posee gran importancia debido a que va a permitir que el administrador agregue nueva información sobre la herramienta y se mantenga actualizada en el sitio, de esta forma los usuarios se mantienen al día sobre las novedades de la herramienta. Descargar herramienta: posee gran importancia ya que va a permitir que el usuario pueda descargar la versión más reciente de la herramienta. Contactar con administradores: permite contactar con los administradores del sitio web, de esta forma el usuario puede reportar errores, pedir nuevas funcionalidades o preguntar dudas de forma privada. Descripción del caso de uso Gestionar Herramienta (Insertar) Caso de uso del sistema Actores Propósito. Insertar Información Administrador Es necesario para que el administrador pueda insertar información sobre la herramienta y los usuarios accedan a la herramienta actualizada y a la información referente a ella.. Resumen. El caso de uso se inicia cuando el Administrador debe insertar información de la herramienta, ya sea el archivo ejecutable para que el usuario trabaje o los datos de los cambios que se le han hecho. Como resultado se obtiene la información de la herramienta insertada en el sistema.. 28.
(41) Gestionar Herramienta.. Responsabilidades. No tiene requisitos especiales... Requisitos especiales Precondiciones. Que el administrador haya iniciado sesión y seleccione Admin en el menú.. Descripción. Acción del actor 1. El. usuario. Respuesta del sistema inicia. sesión 2. El sistema comprueba si el rol del usuario tiene rol administrador. 3. Habilita en el menú enlace a administración 4. Seleccionar Admin 5. Mostrar interfaz de administración 6. Selecciona Herramienta (Tool) 7. Seleccionar Insertar 8. Muestra interfaz de inserción 9. Entra los datos. 10. Actualiza base de datos con la información. 11. Actualiza listado Flujos Alternativos 2. Detecta que el rol entrado por el usuario no tiene rol administrador. 3. Manda notificación de error.. 29.
(42) 4. Entra. los. datos. nuevamente 5. Actualiza el listado y la base de datos. Post condiciones. Se actualiza el sistema. Descripción del caso de uso Gestionar Herramienta (Modificar) Caso de uso del sistema Actores Propósito. Modificar Información Administrador Es necesario para que si existe algún error en los datos insertados, se puedan modificar, se cargan los datos del usuario insertado y se modifican los elementos deseados, para que luego se actualice el sistema con la nueva información.. Resumen. El caso de uso se inicia cuando el Administrador debe modificar los datos de una herramienta insertados previamente en el sistema, se modifican los datos deseados y se selecciona aceptar. Como resultado se obtiene la información modificada en el sistema.. Responsabilidades. Gestionar Herramienta.. Requisitos especiales. No tiene requisitos especiales.. Precondiciones. Que el administrador haya iniciado sesión y haya seleccionado la opción Admin.. Descripción. Acción del actor. Respuesta del sistema. 30.
(43) 1. El. usuario. inicia. sesión. 2. El sistema comprueba si el rol del usuario tiene rol administrador. 3. Habilita en el menú enlace a administración 4. Seleccionar Admin 5. Mostrar interfaz de administración 6. Selecciona Herramienta (Tool) 7. Seleccionar Modificar 8. Muestra interfaz de modificación 9. Introduce los datos 10. Actualiza el sistema y la base de datos con la información Post condiciones. Se actualiza el sistema. Descripción del caso de uso Gestionar Herramienta (Eliminar) Caso de uso del sistema Actores Propósito. Eliminar Información Administrador Es necesario para que el administrador pueda eliminar información de la herramienta en el sistema.. Resumen. El caso de uso se inicia cuando el Administrador desea eliminar un usuario del sistema, el mismo debe haberse insertado previamente. Como resultado se obtiene el usuario eliminado del sistema, por lo que ya no va a tener acceso a entrar.. Responsabilidades. Gestionar Herramienta.. Requisitos especiales. No tiene requisitos especiales. 31.
(44) Precondiciones. Que el administrador inicie sesión y haya seleccionado la opción Admin que se habilita en el menú.. Descripción. Acción del actor 1. El. usuario. Respuesta del sistema inicia. sesión 2. El sistema comprueba si el rol del usuario tiene rol administrador. 3. Habilita en el menú enlace a administración 4. Seleccionar Admin 5. Mostrar interfaz de administración 6. Selecciona Herramienta (Tool) 7. Seleccionar Eliminar 8. Elimina el elemento seleccionado y actualiza el sistema Post condiciones. Se actualiza el sistema. Descripción del caso de uso Contactar con administradores Caso de uso del sistema Actores Propósito. Contactar Usuario Es necesario para que el usuario pueda contactar con los administradores para reportar errores, sugerir funcionalidades o hacer consultas de forma privada.. Resumen. El caso de uso se inicia cuando el Usuario desea contactar con los administradores del sitio. Como resultado obtiene una respuesta de los administradores. Responsabilidades. Contactar.. 32.
(45) Requisitos especiales. No tiene requisitos especiales.. Precondiciones. No tiene precondiciones.. Descripción. Acción del actor. Respuesta del sistema. 1. Ir a la sección de contacto 2. Mostrar formulario de la sección 3. Llenar. campos. del. formulario. .. y. seleccionar enviar 4. Comprobar que los campos están llenos y correctos. 5. Enviar información del formulario a correos definidos. 6. Enviar respuesta del administrador. 7. Recibir respuesta Flujos Alternos 1 4.. Existen campos vacíos o incorrectos.. 5. Envía notificación al usuario. 6. Revisa Notificación 7. Llenar campos del formulario correctamente y seleccionar enviar. 8. Comprobar que los campos están llenos y correctos. 9. Enviar información del formulario a correos definidos. 10. Enviar respuesta del administrador 11. Recibir respuesta Post condiciones. Se actualiza el sistema. 33.
(46) Descripción del caso de uso Descargar Herramienta. Caso de uso del sistema Actores Propósito. Descargar Herramienta Usuario Es necesario para que los usuarios puedan descargar la herramienta.. Resumen. El caso de uso se inicia cuando el usuario desea descargar la herramienta. Como resultado se obtiene la herramienta descargada en el directorio definido por el usuario.. Responsabilidades. Descargar Herramienta.. Requisitos especiales. No tiene requisitos especiales. Precondiciones. No tiene precondiciones.. Descripción. Acción del actor. Respuesta del sistema. 1. Ir al home del sitio. 2. Seleccionar Descargar (Download). 3. Mostrar interfaz para seleccionar directorio de destino donde se va a descargar la herramienta. 4. Seleccionar directorio y seleccionar aceptar. 5. Descargar herramienta en el directorio definido.. 34.
(47) Post condiciones. Se actualiza el sistema. Conclusiones En este capítulo se realiza el análisis del negocio, se definen las reglas del negocio que se deben considerar, los actores del negocio y el diagrama de caso de uso del negocio. Se definen además los actores del sistema a automatizar, los requisitos funcionales y no funcionales, el diagrama de paquetes y sus relaciones, el diagrama de casos de uso del sistema y el diagrama de casos de uso del sistema (Significativos).. 35.
(48) Capítulo 3. Descripción de la propuesta de solución En este capítulo se abordan elementos de importancia para la correcta implementación de la aplicación web, como son: la arquitectura del sistema, el diagrama de clases del diseño y el diagrama de secuencia, ambos de los casos de uso más significativos, el modelo de componentes, tratamiento de errores y el diagrama de despliegue.. Arquitectura del Sistema La arquitectura del sistema está definida por el framework que se va a utilizar. Symfony2 está desarrollado sobre una arquitectura Modelo Vista Controlador (MVC). Tiene su propia forma de trabajo en este punto, con variantes del MVC clásico, como la capa de abstracción de la base de datos (comúnmente el ORM Doctrine), un controlador frontal y las acciones en los controladores.. Figure 24 Modelo-Vista-Controlador. Este patrón de arquitectura permite separar la lógica de negocio de la interfaz de usuario. De esta forma Symfony2 permite que cuando se hace la solicitud de una vista del sitio web, las rutas definidas determinen el controlador que responderá, éste solicita los datos que se necesiten y finalmente el controlador retorna la vista.. 0.
(49) Diagrama de clases del sistema Este esquema es de forma general y es determinado por prácticas sugeridas por los desarrolladores de symfony2. Se encuentra estrechamente relacionado con la arquitectura.. Figure 25 Diagrama de clases del sistema. Diagrama de clases de diseño (CU Significativos) Este tipo de diagrama, muestra las definiciones de las clases de software en lugar de los conceptos del mundo real. Indica las diferentes clases que componen un sistema, cómo se relacionan con otras; de cada una de ellas, muestra los métodos y atributos que las componen.. Figure 26 Diagrama de clases CU Gestionar Herramienta. 1.
(50) Figure 27 Diagrama de clases CU Descargar Herramienta. Figure 28 Diagrama de CU Contactar. En el desarrollo del software han sido utilizados bundles de terceros que poseen funcionalidades que ya se encuentran implementadas, hacer la ingeniería inversa de estos bundles tiene un alto grado de dificultad, lo que implica más tiempo para el desarrollo del proyecto. Los diagramas se confeccionaron pensando en la implementación propia. Sin embargo, algunas funcionalidades serán implementadas mediante bundles de terceros, por lo que en ocasiones no va a existir una relación directa entre los diagramas y la implementación.. Diagrama de secuencia (CU Significativos) Un diagrama de secuencias muestra la interacción de un conjunto de objetos interrelacionados a través del tiempo, en el cual se indicarán los módulos y clases que formaran parte del programa y las llamadas que se hacen cada uno de ellos para realizar una tarea determinada. Esto permite observar la perspectiva cronológica de las interacciones. Se realiza a partir de la descripción de un caso de uso. Los diagramas de secuencia que se realizaron son los de los casos de uso más significativos. Éstos, fueron creados teniendo en cuenta que el usuario con permisos de administración ha iniciado sesión previamente. 2.
(51) Caso de Uso Gestionar Herramienta (Insertar). Figure 29 Diagrama de secuencia Insertar Información. Caso de uso Gestionar Herramienta (Modificar). Figure 30 Diagrama de secuencia Modificar Información. Caso de uso Gestionar Herramienta (Eliminar). Figure 31 Diagrama de secuencia Eliminar Información. 3.
(52) Caso de Uso Descargar Herramienta. Figure 32 Diagrama de secuencia Descargar Herramienta. Caso de Uso Contactar con administrador. Figure 33 Diagrama de secuencia Contactar. Diseño de la base de datos Las bases de datos son representaciones de objetos y situaciones del mundo real. El objetivo fundamental del diseño de a base de datos es obtener un conjunto de datos y un conjunto de operaciones sobre ellos, que permitan satisfacer las necesidades de la organización. Modelo físico de datos Este modelo permite mostrar los detalles de representación física. Permite ver cómo va a quedar la base de datos, con las relaciones entre las tablas. El modelo solo no nos da información sobre la eficiencia que existirá cuando esté funcionando la aplicación, nos puede indicar que el rendimiento va a estar. 4.
(53) afectado, pero realmente no se va a saber hasta implementar el modelo y probarlo.. Figure 34 Modelo Físico de la base de datos. Diagrama de despliegue Éste es un tipo de diagrama del Lenguaje Unificado de Modelado (UML). Es un diagrama estructurado que se utiliza para modelar la disposición física de los artefactos de software en nodos.. 5.
(54) Figure 35 Diagrama de despliegue. Capítulo 4. Análisis de factibilidad y Pruebas En este capítulo se hace un análisis del costo, tiempo y recursos requeridos para el desarrollo de la aplicación y se describen las pruebas de software que han sido realizadas.. Planificación basada en uno de los métodos de estimación La planificación tiene como objetivo fundamental trazar estrategias que permitan dar una correcta respuesta en dependencia de los cambios que existan en el desarrollo de los proyectos del Software. Permite estimar los resultados que tendrá el proyecto, el costo, tiempo, esfuerzo y recursos que va a necesitar. Se pueden utilizar dos técnicas de estimación: 1. Planificar tareas, asignando recursos y determinando puntos de control. 2. Diagrama de Grantt para planificar tareas y tiempos. En este caso, ha sido utilizada la primera técnica de estimación. Ésta, estima el tiempo y costos necesarios para el desarrollo del software. Cálculo de Puntos de Casos de Uso sin ajustar Permite calcular el esfuerzo que llevará el desarrollo del software a partir de los actores y casos de usos que posee. Ecuación: UUCP=UAW+UUCW 6.
Documento similar
El Programa de Mecenazgo organiza un concurso para "Amigos del IAC" en el cual podrán realizar una propuesta de observación para un telescopio robótico 1. Aquellas que
A partir de los resultados de este análisis en los que la entrevistadora es la protagonista frente a los entrevistados, la información política veraz, que se supone que
If certification of devices under the MDR has not been finalised before expiry of the Directive’s certificate, and where the device does not present an unacceptable risk to health
In addition to the requirements set out in Chapter VII MDR, also other MDR requirements should apply to ‘legacy devices’, provided that those requirements
The notified body that issued the AIMDD or MDD certificate may confirm in writing (after having reviewed manufacturer’s description of the (proposed) change) that the
Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre
(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,
[r]