550 likes | 686 Views
PWA – Prototyping of Web Applications. Una Herramienta de Soporte a la Ingeniería de Requerimientos. Universidad Nacional de Asunción Facultad Politécnica. PWA – Prototyping of Web Applications. Una Herramienta de Soporte a la Ingeniería de Requerimientos. TRABAJO DE FIN DE GRADO Autores.
E N D
PWA – Prototyping of Web Applications Una Herramienta de Soporte a la Ingeniería de Requerimientos Universidad Nacional de Asunción Facultad Politécnica
PWA – Prototyping of Web Applications Una Herramienta de Soporte a la Ingeniería de Requerimientos TRABAJO DE FIN DE GRADO Autores DANIEL EDUARDO RIVAS LÓPEZ. LEPOLDO ARSENIO POLETTI OJEDA. Tutor: Prof. M.Sc. LUIS GILBERTO SALINAS. ASUNCIÓN - 2011 PWA – Prototyping of Web Applications 2
Agenda Justificación. Objetivos. Introducción a la Ingeniería del Software. Ingeniería Web. Ingeniería de Requerimientos. Prototipado. Propuesta. PWA. Prototipo Generado. Caso de Estudio. Conclusiones y Trabajos Futuros. PWA – Prototyping of Web Applications 3
Justificación 1 PWA – Prototyping of Web Applications 4
La primera etapa dentro de la concepción de un sistema consiste en entender y representar de un modo apropiado los requerimientos que presenta el usuario. Sin embargo, uno de los desafíos más importantes con el que se encuentra el ingeniero de software es comprender las verdaderas necesidades de los clientes. Ocurren problemas a causa de especificaciones incompletas, mal estructuradas, escasa participación de usuarios, etc. Las aplicaciones web no escapan a estos problemas, siendo una de las más desarrolladas, hoy en día, y con escasas herramientas enfocadas a la especificación de requerimientos. Todo esto hace que se pierda una gran cantidad de tiempo y dinero durante el proceso de desarrollo de software. Justificación Introducción PWA – Prototyping of Web Applications 5
La ingeniería de requerimientos nace de manera tal a ofrecer una posible solución a estos problemas. Una opción propuesta por la ingeniería de requerimientos es mediante el prototipado de aplicaciones. El prototipo de un producto software es una versión inicial que permite llegar de manera eficaz al entendimiento de los requisitos, reducir la complejidad del problema y ofrecer una pronta validación del diseño del sistema. Una herramienta que permita generar estos prototipos, permitiría a los desarrolladores optimizar el tiempo, capturando y validando requerimientos de manera tal a entregar el producto final con una mayor calidad y dentro de los plazos establecidos. Justificación Justificación PWA – Prototyping of Web Applications 6
Objetivos 2 PWA – Prototyping of Web Applications 7
Objetivos Objetivos Objetivo General • Desarrollar una herramienta, basada en modelos de proceso de la ingeniería web, que permita la generación automática de prototipos de manera a satisfacer los objetivos propuestos por la ingeniería de requerimientos. Objetivos Específicos • Mejorar la obtención y el análisis de los requerimientos. • Facilitar la validación de los requerimientos. • Automatizar el proceso del prototipado de manera a agilizar las etapas iníciales del desarrollo de software. PWA – Prototyping of Web Applications 8
Ingeniería del Software 3 PWA – Prototyping of Web Applications 9
La Ingeniería del Software es una disciplina de la ingeniería o área de la informáticaque concierne a todos los aspectos de la producción de software. Concierne a teorías, métodos y herramientas para el desarrollo profesional de software. Ingeniería del Software Conceptos Básicos • Entre las metas que se propone podemos citar: • Obtener un producto exitoso. • Aumentar la productividad. • Realizar el proceso de desarrollo de manera eficiente. • Definimos como Proceso del Software a un conjunto estructurado de actividades requeridas para desarrollar un sistema de software. • Las actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse. PWA – Prototyping of Web Applications 10
Ingeniería del Software Modelos de Proceso Metodologías Tradicionales • Modelo en Cascada. • Modelo Evolutivo. • Prototipado. • Modelo en Espiral. Metodologías Ágiles • SCRUM. • Programación Extrema (XP). PWA – Prototyping of Web Applications 11
Ingeniería Web 4 PWA – Prototyping of Web Applications 12
Ingeniería Web Ingeniería Web • La ingeniería web podría definirse como el proceso utilizado para crear, implantar y mantener aplicaciones web de alta calidad [Murugesan2001]. Metodologías Web • Object Oriented Hypermedia Design Method - OOHDM. • UML-Based Web Engineering - UWE. • Agile Web Applications - AWA. PWA – Prototyping of Web Applications 13
Ingeniería Web Metodologías Web OOHDM - Object Oriented Hypermedia Design Method • Diseño Conceptual. • Diseño Navegacional. • Diseño de Interfaz Abstracto. • Implementación. UWE - UML-Based Web Engineering • Análisis de Requerimientos. • Modelado Conceptual. • Diseño Navegacional. • Modelado de Presentación. PWA – Prototyping of Web Applications 14
Ingeniería Web Metodologías Web AWA – Agile Web Applications • Requerimientos. • Planificación. • Modelado. • Implementación. • Evaluación y Retroalimentación. PWA – Prototyping of Web Applications 15
Ingeniería de Requerimientos 5 PWA – Prototyping of Web Applications 16
Se denomina Ingeniería de Requerimientos al conjunto de todas las actividades involucradas al descubrimiento, análisis, documentación y mantenimiento de los requerimientos para un producto. Las actividades del Proceso de la Ingeniería de Requerimientos incluyen la extracción de requerimientos, el análisis, la negociación y la validación. El objetivo principal es entregar una especificación de requisitos de software correcta y completa. El costo de detección de errores tiene un aumento exponencial a medida que el desarrollo avanza en sus etapas [Boehm1981]. Ingeniería de Requerimientos Conceptos Básicos PWA – Prototyping of Web Applications 17
Ingeniería de Requerimientos Costo de detección de errores Costo Tiempo Requerimientos Implementación Diseño Validación Evolución PWA – Prototyping of Web Applications 18
Ingeniería de Requerimientos Procesos Principales PWA – Prototyping of Web Applications 19
Prototipado 6 PWA – Prototyping of Web Applications 20
Para muchos usuarios resulta difícil imaginar cómo se verá el sistema a partir de solamente la especificación de requerimientos. Una manera de visualizar y entender mejor estas especificaciones de requerimientos es desarrollando un prototipo del sistema. Prototipado Conceptos Básicos • Algunos beneficios que se obtienen al desarrollar un prototipo son: • Los mal entendidos son detectados tan pronto como las funciones del prototipo son demostradas. • Servicios que el usuario olvida mencionar son detectados rápidamente. • El prototipo sirve como una base para escribir las especificaciones de manera a garantizar la calidad del sistema. PWA – Prototyping of Web Applications 21
Prototipado Prototipo de Software Propósito • El propósito principal del prototipado es capturar y validar los requerimientos del software. Enfoque de Desarrollo • Enfoque cerrado o prototipo desechable. • Enfoque abierto o prototipo evolutivo. PWA – Prototyping of Web Applications 22
Propuesta 7 PWA – Prototyping of Web Applications 23
Basado en la investigación del estado del arte. En este trabajo se propone una herramienta de soporte a la Ingeniería de Requerimientos que permita mejorar la calidad del software. Basado exclusivamente en técnicas, notaciones y mecanismos de extensión UML (Unified Modeling Lenguage) y la metodología UWE. Prototyping of Web Applications - PWA Propuesta Propuesta PWA – Prototyping of Web Applications 24
Mejorar la obtención y el análisis de los requerimientos. Facilitar la validación de los requerimientos. Utilización de un lenguaje sencillo. Mejorar la calidad del software. Disminuir los costos y retrasos del proyecto. Evitar rechazos de usuarios finales. Soporte para el proceso de prototipado evolutivo. Generación de un sistema robusto. Diseñado con una arquitectura actual y muy competente en el mercado mundial. Propuesta Características de la Herramienta Propuesta PWA fue diseñada enfatizando los siguientes puntos: PWA – Prototyping of Web Applications 25
Propuesta Proceso de Desarrollo PWA PWA – Prototyping of Web Applications 26
Propuesta Proceso de Desarrollo PWA • Se obtienen los requerimientos a grandes rasgos. • Se van definiendo mejor a medida que avance el ciclo de vida. PWA – Prototyping of Web Applications 27
Propuesta Proceso de Desarrollo PWA • Modelo de Datos. • Modelo de Navegación. • Modelo de Presentación. PWA – Prototyping of Web Applications 28
Propuesta Proceso de Desarrollo PWA PWA – Prototyping of Web Applications 29
Propuesta Salida Entrada Prototipo del Sistema PWA Modelado Conceptual Navegación Presentación Proceso de Desarrollo PWA Generación de Prototipo: PWA – Prototyping of Web Applications 30
Propuesta Proceso de Desarrollo PWA PWA – Prototyping of Web Applications 31
Caso de Estudio 10 PWA – Prototyping of Web Applications 32
A continuación se presenta el proceso de desarrollo de una aplicación web utilizando la herramienta PWA y la metodología AWA. El proyecto consiste en el desarrollo de un sistema web para una cooperativa. La cooperativa se encuentra compuesta por socios de la familia Viveros, que desean una mejor forma de administrar su capital construyendo su propia cooperativa familiar. Los usuarios del sistema son básicamente los socios y funcionarios de la misma. Los funcionarios pueden realizar aperturas de libretas de ahorro, operaciones de depósitos, extracciones, créditos, aportes y solidaridad. Los socios pueden acceder a verificar el estado de sus cuentas y realizar operaciones sobre las mismas. Caso de Estudio Caso de Estudio PWA – Prototyping of Web Applications 33
Caso de Estudio Desarrollo del Caso de Estudio CoFaVi Equipo Cliente • Lic. Ramón Rojas: Director de la cooperativa. • Lic. Carmelo Ramírez: encargado de la sección de informática. Equipo de Desarrollo • Leopoldo Poletti. • Eduardo Rivas. PWA – Prototyping of Web Applications 34
Caso de Estudio Desarrollo del Caso de Estudio CoFaVi Herramientas de Desarrollo • Sistema Operativo: Windows XP, Vista y Seven. • Entorno de Desarrollo: Netbeans 6.7. • Herramienta de Diseño y Modelado: ArgoUML 0.28. • Servidor de Aplicaciones: Glassfish v2.1 y Tomcat 6.0.18. • Base de Datos: PostgreSQL 8.1.4. • Controlador de Versiones: Subversion. PWA – Prototyping of Web Applications 35
Caso de Estudio Desarrollo del Caso de Estudio CoFaVi Requerimientos Iniciales • Administración de Usuarios: crear, editar, visualizar, listar, borrar. • Administración de Socios, Familiares y Funcionarios: crear, editar, visualizar, listar, borrar. • Administración de Roles: crear, editar, visualizar, listar, borrar. • Control de Acceso. • Apertura de libretas de ahorro. • Realizar operaciones de depósito y extracción (ahorros). • Realizar operaciones de créditos. • Registro de aporte y solidaridad. • Realizar operaciones de préstamos. PWA – Prototyping of Web Applications 36
Caso de Estudio Iteración Nº 1 Fecha de Inicio de la Iteración: 05/03/2011 • Administración de Usuarios: crear, editar, listar, visualizar, borrar. • Administración de Socios y Funcionarios: crear, editar, listar, visualizar, borrar. • Administración de Roles: crear, editar, listar, visualizar, borrar. • Control de Acceso. • Apertura de libretas de ahorro. • Realizar operaciones de depósito y extracción (ahorros). • Realizar operaciones de créditos. Funcionalidades Implementadas PWA – Prototyping of Web Applications 37
Caso de Estudio Resumen de la Iteración Nº 1 Fecha de Fin de la Iteración: 19/03/2011 Resumen de Tiempo PWA – Prototyping of Web Applications 38
Caso de Estudio Iteración Nº 2 Fecha de Inicio de la Iteración: 21/03/2011 • Administración de Aportes: crear, editar, visualizar, listar, borrar. • Administración de Solidaridad: crear, editar, visualizar, listar, borrar. • Administración de Tipos de Ahorros: crear, editar, visualizar, listar, borrar. • Consulta de Cuentas por Socios. Funcionalidades Implementadas PWA – Prototyping of Web Applications 39
Caso de Estudio Resumen de la Iteración Nº 2 Fecha de Fin de la Iteración: 02/04/2011 Resumen de Tiempo PWA – Prototyping of Web Applications 40
Caso de Estudio Iteración Nº 3 Fecha de Inicio de la Iteración: 04/04/2011 • Administración de Familiares de Socios: crear, editar, visualizar, listar, borrar. • Proyección de Préstamos para Socios. Funcionalidades Implementadas PWA – Prototyping of Web Applications 41
Caso de Estudio Resumen de la Iteración Nº 3 Fecha de Fin de la Iteración: 16/04/2011 Resumen de Tiempo PWA – Prototyping of Web Applications 42
Caso de Estudio Resumen de la Iteración Nº 4 Fecha de Inicio de la Iteración: 18/04/2011 Fecha de Fin de la Iteración: 30/04/2011 Resumen de Tiempo PWA – Prototyping of Web Applications 43
Caso de Estudio Análisis Final del Desarrollo del Proyecto Total de Funcionalidades Implementadas: 29. Tiempo Total Utilizado: 90 Hs. 20 min. Estimación del Tamaño del Proyecto con CMMI • S: Salidas. • T: Tecnología Utilizada. • O: Optimización. • R: Reusabilidad. • D: Dominio del Problema. En donde: • C: Clasificación. • AV: Actor Visual. • ASW: Actores de Software. • AHW: Actores de Hardware. PWA – Prototyping of Web Applications 44
Caso de Estudio Estimación del Tamaño del Proyecto con CMMI PWA – Prototyping of Web Applications 45
Caso de Estudio Estimación del Tiempo con CMMI PWA – Prototyping of Web Applications 46
Caso de Estudio Estimación del Tiempo Ahorrado • Total de horas sin implementación con AWA: 90 hs. • Total de horas de implementación estimada: 426 hs. • Total de horas necesarias con AWA puro: 90 + 426 = 516 hs. • Total de horas con CMMI: 1044 hs. • Total de horas con PWA + AWA: 90.33 hs. PWA permite ahorrar las horas de implementación con cualquier metodología utilizada. Para este caso: 426 hs. PWA – Prototyping of Web Applications 47
Caso de Estudio Estimación del Tiempo Ahorrado PWA – Prototyping of Web Applications 48
Conclusiones y Trabajos Futuros 11 PWA – Prototyping of Web Applications 49
No se encontró ninguna herramienta enfocada directamente a la obtención de requerimientos y el prototipado de aplicaciones web. Entre las distintas metodologías estudiadas se encontró que el UWE se ajustaba más a las características deseadas debido a las notaciones UML utilizadas. PWA nace en base a los estudios y metodologías expuestos. La arquitectura propuesta por PWA ha demostrado ser bastante aceptable, actual y eficiente en cuanto a las arquitecturas utilizadas hoy en día para el desarrollo de aplicaciones web. PWA y la metodología AWA han demostrado ser una propuesta adecuada y válida para el prototipado de aplicaciones web. PWA permite ahorrar un alto porcentaje de tiempo en comparación a otras metodologías tradicionales. Conclusiones y Trabajos Futuros Conclusiones PWA – Prototyping of Web Applications 50