ESTUDIO DE LA RELACIÓN ENTRE ARQUITECTURA DE SOFTWARE Y USABILIDAD El Proceso Unificado de Rational (RUP) y su relación con las técnicas y métodos de la ingeniería de usabilidad del software Autor: Directoras: Pedro Hernández Valverde Dra. Natalia Juristo Juzgado Dra. Ana Mª Moreno–Sánchez Capuchino RESUMEN Durante más de 40 años las técnicas de desarrollo de software han ido evolucionando, en pro de mejorar la calidad de los productos obtenidos, y de disminuir el esfuerzo, los tiempos y costos de los proyectos que las utilizan. Así han surgido y se han documentado y puesto en práctica diversos paradigmas y metodologías, de forma especialmente vertiginosa en las últimas dos décadas, yendo desde el clásico y conocido método de Cascada (Waterfall) hasta los más recientes, que han devenido proceso y producto a la vez, como lo es el Proceso Unificado desarrollado por Rational Software Corporation. Paralelamente a esta metodología, se han desarrollado por parte de varios investigadores y desarrolladores de software y de especialistas en Interacción Persona-Ordenador –IPO– (más conocida por sus siglas en inglés, HCI) diversas técnicas y métodos para mejorar la usabilidad de los sistemas, de manera que aumente la productividad y los beneficios de su utilización por parte de los usuarios. En ocasiones se reduce erróneamente la interacción antes referida, solamente a la mejora del diseño de la interfaz, pero realmente va mucho más allá, a la mejora de la usabilidad de todo el sistema, lo cual implica –como es de esperarse– a la arquitectura del mismo. Y ahí es donde se percibe uno de los puntos de encuentro entre ambas líneas de investigación. Este trabajo pretende establecer las condiciones iniciales para asociar las técnicas de usabilidad a emplear, basado en el modelo de ciclo de vida de la Ingeniería de Usabilidad del Software, en una metodología de desarrollo de software como el Proceso Unificado de Rational (RUP) de manera que se puedan asociar los productos del RUP y de la IPO. En principio este trabajo se ha centrado en el RUP, determinando los diferentes productos de información que se van desarrollando a medida que avanza el proyecto, y la madurez que alcanza cada uno en cada una de las fases del mismo. También se establece el papel que juega cada uno de estos productos de información en el desarrollo del producto software final. Se hace también una comparativa de los diferentes productos producibles (valga la redundancia) en el proceso del RUP, las ventajas y desventajas de cada uno, y en qué casos podría ser factible la decisión de utilizar un producto u otro en el proceso. También se busca analizar el aporte (si lo hubiese) de cada producto de información a los productos que se Resumen del Trabajo de Investigación Tutelado –– 2004 – 2005 1 obtienen previamente en el proceso, o a las versiones anteriores del mismo u otros productos. El Proceso Unificado de Rational es un proceso de ingeniería del software, bien definido y estructurado; a la vez que es un producto que provee un marco de proceso adaptable a las necesidades y características de cada proyecto específico. Según Booch, Rumbaugh y Jacobson –llamados “los tres amigos”, creadores de este Proceso Unificado de Desarrollo de Software– su definición viene dada por tres características fundamentales: ¾ está dirigido por casos de uso ¾ es un proceso centrado en la arquitectura ¾ es iterativo e incremental. Que el RUP esté dirigido por casos de uso significa que el proceso de desarrollo sigue una trayectoria que avanza a través de los flujos de trabajo generados por los casos de uso. Los casos de uso se especifican y diseñan en el principio de cada iteración, y son la fuente a partir de la cual los ingenieros de prueba construyen sus casos de prueba. Los casos de uso describen la funcionalidad total del sistema, pensada en términos de la importancia de la misma para el usuario (no sólo de la funcionalidad en sí) Pero esto no significa que se desarrollen aisladamente respecto de la arquitectura, sino que se desarrollan a la vez, madurando ambos según avanza el ciclo de desarrollo. Los casos de uso guían a la arquitectura del sistema (como parte del proceso) y ésta influye en la selección de los casos de uso. La arquitectura involucra los elementos más significativos del sistema y está influenciada entre otros por las plataformas software, los sistemas operativos, los sistemas de gestión de bases de datos, además de otros como sistemas heredados y requerimientos no funcionales. Por esta razón ese dice que el RUP está centrado en la arquitectura, lo que invoca más la relación con los principios de la usabilidad. Desde que se planteó por primera vez el modelo incremental de desarrollo de software, y se establecieron sus ventajas con respecto al modelo de cascada, siempre se ha recomendado dividir los proyectos en pequeños ciclos o iteraciones a través de cada una de las fases por las que pase. En el RUP sucede esto mismo, con el plus de que se establecen claramente sus fases, cada una desarrollada en una o más iteraciones que ejecutan actividades definidas para cada flujo de trabajo de los conocidos de cualquier proceso de desarrollo. Concretamente, RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y las cuales se definen de acuerdo al nivel de madurez que alcanzan los productos que se van obteniendo con cada actividad ejecutada. La terminación de cada fase ocurre en el hito correspondiente a cada una, donde se evalúa que se hayan cumplido los objetivos de la fase en cuestión. Y desde la terminación de la fase de inicio se puede ya determinar la factibilidad tanto operativa como económica del proyecto, lo cuál nos lleva a tomar la decisión de continuarlo o no realizarlo. En este trabajo se ha descrito cada una de las fases, y cada uno de lo productos que se obtiene y/o la madurez que alcanzan en cada fase. Resumen del Trabajo de Investigación Tutelado –– 2004 – 2005 2 Inicio Hito Objetivo del Ciclo de Vida Elaboración Construcción Hito Arquitectura a desarrollar en el Ciclo de Vida Transición Hito Capacidad Operacional Inicial Hito Sacar producto final Figura 1. Las fases del RUP y sus hitos Figura 2. Los flujos de trabajo en cada una de las fases e iteraciones del RUP Por otro lado, se puede definir a la USABILIDAD como la FACILIDAD DE USO de cualquier producto, ya sea una cafetera, un automóvil, una máquina de venta de billetes de Metro, una aplicación informática, una página Web o cualquier sistema que interactúe con un usuario. En las técnicas que se han desarrollado, se ha seguido el principio de enfocar la funcionalidad de acuerdo a la importancia para el usuario (a la que también se refiere el que RUP sea dirigido por casos de uso) o sea, de la aceptabilidad de ese sistema. Resumen del Trabajo de Investigación Tutelado –– 2004 – 2005 3 Aceptabilidad del sistema Aceptabilidad práctica Aceptabilidad social Coste Fiabilidad Compatibilidad Utilidad (Usefullness) Soporte, etc. Usabilidad Funcionalidad de la Utilidad (Utility) Agradable (subjetivamente) De uso eficaz Fácil de aprender Fácil de recordar Pocos errores Figura 3. Atributos de la aceptabilidad de un sistema La usabilidad, o sea, qué tan bien los usuarios pueden usar la funcionalidad del sistema, sin depender de la experiencia o del tiempo de uso, es algo que interesa cada vez más a los desarrolladores de sistemas computacionales. Entre los beneficios que se citan de un nivel alto de usabilidad de cualquier producto sen encuentran –entre otros– los siguientes: Para los usuarios Para la organización Aumento de la productividad Mayores ingresos por productos y/o servicios más competitivos Disminución del tiempo y coste de la formación / entrenamiento Disminución de los costes generales por desarrollo y mantenimiento. Disminución del número de errores de usuario Disminución de los costes de atención al cliente. Aumento de la exactitud en la entrada y entendimiento de los datos Más oportunidades de negocio debido a la satisfacción y, por tanto, recomendación de los clientes. Disminución de la necesidad de soporte técnico continuo En el avance del estudio de la Ingeniería de Usabilidad del Software (cada vez más desarrollada como disciplina en los últimos años) se ha coincidido en el criterio de que no se limita al diseño de la interfaz de usuario (cómo lo han planteado varios autores), sino que éste sólo es parte de todo el proceso. En general «está relacionada con cómo el sistema interactúa con el usuario», recordando que en el ámbito de la informática el sistema es el «todo» donde el software es una de las partes integrantes. Resumen del Trabajo de Investigación Tutelado –– 2004 – 2005 4 En general, todos los paradigmas planteados y/o desarrollados a lo largo de estos años «coinciden hasta cierto punto con el núcleo de la ingeniería de usabilidad: la evaluación de la usabilidad del sistema con los usuarios reales desde las primeras etapas del desarrollo», lo que nos lleva a la relación con un paradigma específico: el RUP. Así entonces, en este trabajo el enfoque ha sido dirigido al software y su evolución a través de la metodología RUP, centrándonos fundamentalmente en los flujos de trabajo y los productos que se generan en el mismo, para después establecer su asociación o relación con los productos y técnicas de la ingeniería de usabilidad. La bibliografía utilizada incluye tanto libros publicados en ambos temas, como artículos publicados en los diferentes eventos y revistas relacionados con la usabilidad y la ingeniería de software. Como trabajo inmediato futuro se propone dirigir el trabajo hacia la obtención de una metodología específica que involucre al RUP y a las técnicas de usabilidad, orientada a los administradores de proyectos. Es una propuesta inicial que se espera que dé los resultados necesarios para establecer el objetivo de la tesis doctoral. Este trabajo se pretende enviar al Doctoral Symposium of the 28th International Conference on Software Engineering, ICSE 2006, a celebrarse en Shanghai, China, del 20 al 28 de Mayo de 2006. Resumen del Trabajo de Investigación Tutelado –– 2004 – 2005 5