UNIVERSIDAD POLITECNICA DE MADRID FACULTAD DE INFORMATICA TESIS DE MASTER EN INGENIERIA DEL SOFTWARE USABILIDAD EN METODOLOGÍAS ÁGILES Autor: JOSE GERMÁN NÚÑEZ MORI Dirigida por: ANA MORENO Noviembre, 2010 Agradecimiento Agradezco a mis padres por apoyarme a seguir mis estudios Contenido I. Introducción 2 II. Metodologías Ágiles 1 1. Introducción 14 3. Manifiesto Ágil 15 4. Principales metodologías ágiles 16 4.1 Programación Extrema (XP) 16 4.1.1 Principios básicos .................................................................................. 17 4.1.2 Proceso de desarrollo ............................................................................ 18 4.2 Proceso Unificado Ágil (AUP) 20 4.2.1 Descripción............................................................................................ 20 4.2.2 Principio básicos ................................................................................... 20 4.2.3 Proceso de desarrollo ............................................................................ 22 4.3 Agile model driven development (AMDD) 23 4.3.1 Descripción............................................................................................ 23 4.3.2 Principio básicos ................................................................................... 23 4.3.3 Proceso de desarrollo ............................................................................ 24 4.4 Scrum 25 4.4.1 Descripción............................................................................................ 25 4.4.2 Principio básicos ................................................................................... 26 4.4.3 Proceso de desarrollo ............................................................................ 27 4.5 Dynamic Systems Development Method (DSDM) 27 4.5.1 Descripción............................................................................................ 28 4.5.2 Principios básicos .................................................................................. 28 4.5.3 Proceso de desarrollo ............................................................................ 29 4.6 Feature Driven Development (FDD) 31 4.6.1 Descripción............................................................................................ 31 4.6.2 Principios básicos .................................................................................. 31 4.6.3 Proceso de desarrollo ............................................................................ 33 5 Comparativa entre metodologías ágiles 34 5.1 Criterios de comparación 35 5.1.1 Ciclo de vida del proyecto ..................................................................... 35 5.1.2 Estado Actual ........................................................................................ 37 5.1.3 Calidad .................................................................................................. 37 5.1.4 Herramientas ......................................................................................... 38 5.2 Conclusiones de la comparativa 40 5.3 Adopción de metodologías 40 III. Marco Ágil de trabajo 42 1. Introducción 44 2. Planteamiento metodológico 44 3. Estructura Metodológica 45 3.1 Fases del marco ágil de trabajo 47 3.1.1 Inicio (Inception) ................................................................................... 47 3.1.2 Historias de Usuarios ............................................................................ 48 3.1.3 Pruebas de Aceptación .......................................................................... 49 3.1.4 Product Backlog .................................................................................... 50 3.1.5 Elaboración............................................................................................ 51 3.1.6 Prototipo de la arquitectura del sistema ................................................ 52 3.1.7 Estándar MDA (Model Driven Architecture)........................................ 54 3.1.7.1.1.1Usando MDA .................................................................................... 56 3.1.7.1.1.2Mapas de Transformación MDA ....................................................... 57 3.1.7.1.1.3Transformaciones de modelos MDA ................................................ 59 3.1.7.1.2AndroMDA .......................................................................................... 61 3.1.7.1.2.1MDA en la generación de código de AndroMDA ............................ 61 3.1.7.1.2.2Arquitectura del marco ágil de trabajo según AndroMDA ............... 63 3.1.7.1.2.3Modelado de AndroMDA y el prototipo de Arquitectura del marco ágil de trabajo ..................................................................................................... 65 3.1.7.1.2.4Herramientas y tecnologías en el ciclo de generación AndroMDA .. 69 3.1.7.2 Plan de ejecución de la primera iteración de construcción .................... 70 3.1.8 Fase de Desarrollo ................................................................................. 73 IV. Fase de Inicio del Marco Ágil de Trabajo 74 1. Introducción 76 2. Desarrollo de la fase de Inicio 77 2.1 Product Backlog 77 2.2 Historias de usuarios 77 2.3 Pruebas de aceptación 87 V. Fase de Elaboración del Marco Ágil de Trabajo 95 1. Introducción 97 2. Desarrollo de la fase de Elaboración 97 2.1 Planificación de la Primera Iteración 97 2.2 Prototipo de Arquitectura 101 2.2.1 Tarea de Implementación de la Funcionalidad .................................... 101 2.2.1.1 Diseño de la capa de datos .................................................................. 102 2.2.1.2 Diseño de la capa de negocio .............................................................. 103 2.2.1.3 Diseño de la capa de presentación ....................................................... 104 2.2.1.4 Resultado de Tarea .............................................................................. 106 2.2.2 Integración del patrón de usabilidad Warning..................................... 109 2.2.2.1 Integración del patrón de usabilidad Warning en la capa de presentación y capa de negocio ............................................................................................. 111 2.2.2.2 Flujo de trabajo según el patrón de usabilidad Warning ..................... 112 2.2.2.3 Resultados de la Integración del patrón de usabilidad Warning ......... 113 2.2.3 Integración del patrón de usabilidad System Status Feedback ............ 115 2.2.3.1 Integración del patrón de usabilidad SSF a la capa de presentación y capa de negocio ................................................................................................ 117 2.2.3.2 Flujo de trabajo según el patrón de usabilidad SSF ............................ 118 2.2.3.3 Resultados de la integración del patrón de usabilidad SSF ................. 119 2.2.4 Integración del patrón de usabilidad Global Undo .............................. 121 2.2.4.1 Integración del patrón de usabilidad GU a la capa de presentación y capa de negocio122 2.2.4.2 Flujo de trabajo según el patrón de usabilidad GU ............................. 125 2.2.4.3 Resultados de la integración del patrón de usabilidad GU .................. 126 2.2.5 Integración del patrón de usabilidad Abort Operation ........................ 127 2.2.5.1 Integración del patrón de usabilidad AO a la capa de presentación y capa de negocio129 2.2.5.2 Flujo de trabajo según el patrón de usabilidad AO ............................. 132 2.2.5.3 Resultados de la integración del patrón de usabilidad AO .................. 133 2.2.6 Integración del patrón de usabilidad System Progress Feedback ........ 135 2.2.6.1 Integración del patrón de usabilidad SPF a la capa de presentación y capa de negocio ................................................................................................ 136 2.2.6.2 Flujo de trabajo según el patrón de usabilidad SPF ............................ 139 2.2.6.3 Resultados de la integración del patrón de usabilidad SPF ................. 141 2.2.7 Integración del patrón de usabilidad Abort Command ........................ 143 2.2.7.1 Integración del patrón de usabilidad AC a la capa de presentación y capa de negocio. ....................................................................................................... 145 2.2.7.2 Flujo de trabajo según el patrón de usabilidad AC.............................. 147 2.2.7.3 Resultados de la integración del patrón de usabilidad SPF ................. 148 2.3 Planificación tras la primera iteración 151 VI. Conclusiones 152 VII. Referencias Bibliográficas 153 VIII. Anexos 155 Anexo 01: Especificación Patrón de Usabilidad Warning 156 Anexo 02: Especificación Patrón de Usabilidad System Status Feedback 166 Anexo 03: Especificación Patrón de Usabilidad Global Undo 177 Anexo 04: Especificación Patrón de Usabilidad Abort 190 Anexo 05: Especificación Patrón de Usabilidad System Progress Feedback 204 Anexo 06: Patrones de Usabilidad en la Elicitación 213 Índice de Figuras Figura 1: Iteraciones AUP ..................................................................................................................... 23 Figura 2: Ciclo de vida de un proyecto AMDD ..................................................................................... 24 Figura 3: Ciclo de vida de un proyecto AMDD ..................................................................................... 29 Figura 4: Ciclo de vida de un proyecto FDD. ....................................................................................... 33 Figura 5: Ciclo de vida AUP ................................................................................................................. 45 Figura 6: Ciclo de vida del marco ágil de trabajo ................................................................................ 46 Figura 7: Hito de la fase de Inicio. ........................................................................................................ 48 Figura 8: Formato de Historias de usuarios según XP ......................................................................... 48 Figura 9: Formato de Historias de usuarios según el marco ágil. ........................................................ 49 Figura 10: Formato de Pruebas de Aceptación. .................................................................................... 50 Figura 11: Formato del Product Backlog .............................................................................................. 51 Figura 12 : Hito de la fase de Elaboración ........................................................................................... 52 Figura 13: Trazabilidad de Modelos MDA ............................................................................................ 57 Figura 14: Transformación de metamodelos bajo MDA. ...................................................................... 58 Figura 15: Marcado de un modelo bajo MDA ....................................................................................... 58 Figura 16: Patrones de transformación en los modelos MDA............................................................... 59 Figura 17: Ciclo AndroMDA de generación de código ......................................................................... 62 Figura 18: Arquitectura de Aplicación base del marco ágil de trabajo ................................................ 63 Figura 19: Estructura de Aplicación empresarial AndroMDA .............................................................. 64 Figura 20: Diagrama de Actividad en AndroMDA ................................................................................ 66 Figura 21: Componente controlador en AndroMDA ............................................................................. 67 Figura 22: Casos de Uso AndroMDA .................................................................................................... 67 Figura 23: Modelado de servicios en AndroMDA ................................................................................. 68 Figura 24: Modelado de entidades de datos en AndroMDA .................................................................. 68 Figura 25: Dependencia entre componentes de capa en AndroMDA .................................................... 69 Figura 26: Herramienta de gestión Sprintometer .................................................................................. 71 Figura 27: Sección de registro de Sprint en Sprintometer ..................................................................... 72 Figura 28. Sección de control de avance de tareas en el Sprint bajo Sprintometer .............................. 72 Figura 29: Vista de la planificación en días .......................................................................................... 98 Figura 30: Sprint y tareas de la primera Iteración en Spritometer ...................................................... 99 Figura 31: Modelo de entidades de la capa de datos .......................................................................... 103 Figura 32: Modelado de la capa de negocio ....................................................................................... 103 Figura 33: Dependencias de servicios con las entidades de datos ...................................................... 104 Figura 34: Caso de uso asociado a la funcionalidad de Relacionar Personas ................................... 104 Figura 35: Modelado de la clase controladora ................................................................................... 105 Figura 36: Diagrama de actividad asociado a la capa de presentación ............................................. 106 Figura 37: Búsqueda de personas – Página principal de la aplicación .............................................. 107 Figura 38: Relacionar Personas – Criterio de selección de personas a relacionar ............................ 107 Figura 39: Relacionar Personas – Adición de relaciones a la persona seleccionada ......................... 108 Figura 40 – Diagrama de clases de la especificación del patrón de usabilidad Warning................... 110 Figura 41: Diagrama de secuencia de la especificación del patrón de usabilidad Warning .............. 110 Figura 42: Modelado de la clase controladora con el Patrón de usabilidad Warning ....................... 111 Figura 43: Confirmación de adición de nueva relación según el patrón de usabilidad Warning ...... 114 Figura 44: Resultados tras la confirmación de la adición de una nueva relación .............................. 114 Figura 45: Diagrama de clases de la especificación del patrón de usabilidad SSF ............................ 116 Figura 46: Diagrama de secuencia de la especificación del patrón de usabilidad SSF ...................... 116 Figura 47: Integración del patrón de usabilidad SSF en el diseño de la funcionalidad Relacionar Personas ....................................................................................................................................... 117 Figura 48: Resultados tras la adición satisfactoria de una nueva relación ........................................ 120 Figura 49: Resultados de error tras la adición de una nueva relación ............................................... 120 Figura 50: Diagrama de clases de la especificación del patrón de usabilidad GU ............................ 122 Figura 51: Diagrama de secuencias de la especificación del patrón de usabilidad GU ..................... 122 Figura 52: Integración del patrón de usabilidad GU en la capa de negocio y capa de diseño ........... 123 Figura 53: Integración del patrón de usabilidad GU en el diagrama de actividades de la página de Adición de relaciones ................................................................................................................... 124 Figura 54: Adición de nuevas relaciones considerando el patrón GU ................................................ 126 Figura 55: La adición de relaciones tras en el evento de deshacer (Undo) ........................................ 127 Figura 56: Diagrama de clases de la especificación del patrón de usabilidad AO ............................. 128 Figura 57: Diagrama de secuencia de la especificación del patrón de usabilidad AO ....................... 129 Figura 58: Integración del patrón de usabilidad AO en la capa de negocio y capa de presentación . 130 Figura 59: Integración del patrón de usabilidad AO en el diagrama de actividades de la página de Adición de relaciones ................................................................................................................... 131 Figura 60: Adición de nuevas relaciones considerando el patrón AO ................................................ 133 Figura 61: Home de la aplicación tras el evento Cancelar ................................................................. 134 Figura 62: Consulta de relaciones tras el evento de cancelar ............................................................. 134 Figura 63: Diagrama de clases de la especificación del patrón de usabilidad SPF ........................... 135 Figura 64: Diagrama de secuencia de la especificación del patrón de usabilidad SPF ..................... 136 Figura 65: Integración del patrón de usabilidad SPF en la capa de negocio y capa de diseño .......... 137 Figura 66: Integración del patrón de usabilidad SPF en el diagrama de actividades de la página Web de Adición de relaciones .............................................................................................................. 138 Figura 67: Esquema de trabajo del objeto XMLHttpRequest .............................................................. 140 Figura 68: Adición de distintas relaciones a la persona seleccionada ................................................ 142 Figura 69: Barra de progreso mientras se aplica la operación de Undo a las relaciones adicionadas ...................................................................................................................................................... 142 Figura 70: Diagrama de secuencia de la especificación del patrón de usabilidad AC ....................... 144 Figura 71: Integración del patrón de usabilidad AC en la capa de negocio y capa de diseño ........... 145 Figura 72: Integración del patrón de usabilidad AC en el diagrama de actividades de la página Web de Adición de relaciones .............................................................................................................. 146 Figura 73: Adición de distintas relaciones a la persona seleccionada ................................................ 149 Figura 74: Barra de progreso con opción de cancelar, ante la operativa de Undo de las relaciones adicionadas .................................................................................................................................. 149 Figura 75: Tras el evento de cancelar el comando de Undo de relaciones ......................................... 150 Figura 76: Carga de trabajo a lo largo de la planificación ................................................................ 151 Índice de Tablas Tabla 1: Ciclo de vida tradicional de un proyecto software en las metodologías ágiles. ..................... 36 Tabla 2: Estado actual de las metodologías ágiles ............................................................................... 37 Tabla 3: Comparativa de calidad en las metodologías ágiles .............................................................. 38 Tabla 4: Herramientas de libre distribución para metodologías ágiles. ............................................... 39 Tabla 5 : Detalle de secciones del Sprintometer .................................................................................... 72 Tabla 6: Product backlog ....................................................................................................................... 77 Tabla 7: Historia de usuario – Relacionar personas ............................................................................. 79 Tabla 8: Historia de usuario – Gestionar fusión de personas ............................................................... 81 Tabla 9: Historia de usuario – Buscar personas fusionadas ................................................................. 84 Tabla 10: Historia de usuario – Recuperar datos entidad financiera ................................................... 85 Tabla 11: Historia de usuario – Gestionar Situación familiar de la persona ........................................ 87 Tabla 12 : Prueba de aceptación – Relacionar personas ...................................................................... 88 Tabla 13: Prueba de aceptación – Gestionar fusión de personas .......................................................... 90 Tabla 14: Prueba de aceptación – Buscar personas fusionadas ........................................................... 91 Tabla 15: Prueba de aceptación – Recuperar datos entidad financiera ................................................ 93 Tabla 16: Prueba de aceptación – Gestionar situación familiar ........................................................... 94 Tabla 17: Product backlog ..................................................................................................................... 98 Tabla 18: Planificación del Sprint – Relacionar Personas .................................................................. 100 Tabla 19: Planificación inicial de la tarea de implementación de la funcionalidad ........................... 102 Tabla 20: Actualización de la planificación de la tarea de implementación de la funcionalidad ....... 108 Tabla 21: Planificación inicial de la tarea de integración del patrón de usabilidad Warning ........... 109 Tabla 22: Correspondencia de componentes del patrón de usabilidad Warning y los componentes de la funcionalidad................................................................................................................................ 112 Tabla 23- Planificación actualizada de la tarea de integración del patrón de usabilidad Warning ... 115 Tabla 24: Planificación inicial de la tarea de integración del patrón de usabilidad SSF ................... 115 Tabla 25: Correspondencia de componentes del patrón de usabilidad SSF y los componentes de la funcionalidad................................................................................................................................ 118 Tabla 26: Planificación actualizada de la tarea de integración del patrón de usabilidad SSF ........... 121 Tabla 27: Planificación inicial de la tarea de integración del patrón de usabilidad GU .................... 121 Tabla 28: Correspondencia de componentes del patrón de usabilidad GU y los componentes de la funcionalidad................................................................................................................................ 124 Tabla 29: Planificación actualizada de la tarea de integración del patrón de usabilidad GU .......... 127 Tabla 30: Planificación inicial de la tarea de integración del patrón de usabilidad AO .................... 129 Tabla 31: Correspondencia de componentes del patrón de usabilidad AO y los componentes de la integración ................................................................................................................................... 131 Tabla 32: Planificación actualizada de la tarea de integración del patrón de usabilidad AO ............ 135 Tabla 33: Planificación inicial de la tarea de integración del patrón de usabilidad SPF................... 136 Tabla 34: Correspondencia de componentes del patrón de usabilidad SPF y los componentes de la Integración ................................................................................................................................... 139 Tabla 35: Planificación actualizada de la tarea de integración del patrón de usabilidad SPF .......... 143 Tabla 36: Planificación inicial de tarea de integración del patrón de usabilidad AC ........................ 144 Tabla 37: Correspondencia de componentes del patrón de usabilidad AC y los componentes de la integración ................................................................................................................................... 147 Tabla 38: Planificación actualizada de la tarea de integración del patrón de usabilidad AC ............ 150 I. Introducción La usabilidad se refiere a la capacidad de un software de ser comprendido, aprendido, usado y ser atractivo para el usuario, en condiciones específicas de uso. Es considerada la usabilidad también, como la medida en que un producto puede ser usado por usuarios específicos, para lograr los objetivos especificados con efectividad, eficiencia y satisfacción en un contexto específico de uso. En el campo de la Ingeniería de software, hablar de usabilidad hoy en día, es relacionar con la interfaz de usuario, por lo tanto, la usabilidad afectaría a la UI y no a la funcionalidad básica del sistema. De acuerdo a esto, la usabilidad debe ser tratada al final del desarrollo del sistema, como un atributo más de calidad y que no necesita demasiadas pruebas (Hipótesis de la separación). En contraposición, a la idea que se tiene hoy en día de la usabilidad, existen investigaciones en el campo de la ingeniería de Software, donde, se describe que las Isuues de usabilidad son limitaciones estáticas y dinámicas a los componentes de software y que la separación de la interfaz de usuario de la funcionalidad básica, no garantiza que se entregue un producto usable al cliente final. Confirmada la relación entre diseño de software y usabilidad, la revisión del costo para alcanzar un nivel aceptable de usabilidad debería ser mayor que lo planteado por la hipótesis de separación, por lo tanto, la facilidad de uso debe ser tratada con anterioridad al proceso de desarrollo, con el fin de evaluar su impacto en el diseño tan pronto como sea posible. Esto es una estrategia ya aplicada con anterioridad a algunos de los atributos de calidad como por ejemplo: fiabilidad, disponibilidad y mantenibilidad, donde, algunos autores propusieron en su momentos, técnicas para hacer frente a estos atributos en tiempo de diseño arquitectónico. La literatura HCI (Human Computer Interaction), analiza el impacto que tiene la usabilidad en el desarrollo del Software, con lo cual, presenta recomendaciones, considerando tres diferentes categorías de impacto:
Description: