Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tesis MarcoAgilTrabajo
Tesis MarcoAgilTrabajo
FACULTAD DE INFORMATICA
TESIS DE MASTER EN
INGENIERIA DEL SOFTWARE
Noviembre, 2010
Agradecimiento
Agradezco a mis padres por
apoyarme a seguir mis estudios
Contenido
I.
Introduccin
II.
Metodologas giles
1.
Introduccin
14
3.
Manifiesto gil
15
4.
16
4.1
16
4.2
4.3
4.4
4.5
4.6
4.1.2
20
4.2.1
Descripcin............................................................................................ 20
4.2.2
4.2.3
23
4.3.1
Descripcin............................................................................................ 23
4.3.2
4.3.3
Scrum
25
4.4.1
Descripcin............................................................................................ 25
4.4.2
4.4.3
27
4.5.1
Descripcin............................................................................................ 28
4.5.2
4.5.3
31
4.6.1
Descripcin............................................................................................ 31
4.6.2
4.6.3
34
5.1
35
5.2
Criterios de comparacin
5.1.1
5.1.2
5.1.3
Calidad .................................................................................................. 37
5.1.4
Herramientas ......................................................................................... 38
Conclusiones de la comparativa
40
5.3
Adopcin de metodologas
40
III.
42
1.
Introduccin
44
2.
Planteamiento metodolgico
44
3.
Estructura Metodolgica
45
3.1
47
3.1.2
3.1.3
3.1.4
3.1.5
Elaboracin............................................................................................ 51
3.1.6
3.1.7
IV.
74
1.
Introduccin
76
2.
77
2.1
Product Backlog
77
2.2
Historias de usuarios
77
2.3
Pruebas de aceptacin
87
V.
95
1.
Introduccin
97
2.
97
2.1
97
2.2
Prototipo de Arquitectura
2.2.1
101
Conclusiones
151
152
153
VIII. Anexos
155
156
166
177
190
204
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 segn XP .........................................................................48
Figura 9: Formato de Historias de usuarios segn el marco gil. ........................................................49
Figura 10: Formato de Pruebas de Aceptacin. ....................................................................................50
Figura 11: Formato del Product Backlog ..............................................................................................51
Figura 12 : Hito de la fase de Elaboracin ...........................................................................................52
Figura 13: Trazabilidad de Modelos MDA ............................................................................................57
Figura 14: Transformacin de metamodelos bajo MDA. ......................................................................58
Figura 15: Marcado de un modelo bajo MDA .......................................................................................58
Figura 16: Patrones de transformacin en los modelos MDA...............................................................59
Figura 17: Ciclo AndroMDA de generacin de cdigo .........................................................................62
Figura 18: Arquitectura de Aplicacin base del marco gil de trabajo ................................................63
Figura 19: Estructura de Aplicacin 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 gestin Sprintometer ..................................................................................71
Figura 27: Seccin de registro de Sprint en Sprintometer .....................................................................72
Figura 28. Seccin de control de avance de tareas en el Sprint bajo Sprintometer ..............................72
Figura 29: Vista de la planificacin en das ..........................................................................................98
Figura 30: Sprint y tareas de la primera Iteracin 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 presentacin .............................................106
Figura 37: Bsqueda de personas Pgina principal de la aplicacin ..............................................107
Figura 38: Relacionar Personas Criterio de seleccin de personas a relacionar ............................107
Figura 39: Relacionar Personas Adicin de relaciones a la persona seleccionada.........................108
Figura 40 Diagrama de clases de la especificacin del patrn de usabilidad Warning...................110
Figura 41: Diagrama de secuencia de la especificacin del patrn de usabilidad Warning ..............110
Figura 42: Modelado de la clase controladora con el Patrn de usabilidad Warning .......................111
Figura 43: Confirmacin de adicin de nueva relacin segn el patrn de usabilidad Warning ......114
Figura 44: Resultados tras la confirmacin de la adicin de una nueva relacin ..............................114
Figura 45: Diagrama de clases de la especificacin del patrn de usabilidad SSF............................116
Figura 46: Diagrama de secuencia de la especificacin del patrn de usabilidad SSF ......................116
Figura 47: Integracin del patrn de usabilidad SSF en el diseo de la funcionalidad Relacionar
Personas .......................................................................................................................................117
Figura 48: Resultados tras la adicin satisfactoria de una nueva relacin ........................................120
Figura 49: Resultados de error tras la adicin de una nueva relacin ...............................................120
Figura 50: Diagrama de clases de la especificacin del patrn de usabilidad GU ............................122
Figura 51: Diagrama de secuencias de la especificacin del patrn de usabilidad GU .....................122
Figura 52: Integracin del patrn de usabilidad GU en la capa de negocio y capa de diseo ...........123
Figura 53: Integracin del patrn de usabilidad GU en el diagrama de actividades de la pgina de
Adicin de relaciones ...................................................................................................................124
ndice de Tablas
Tabla 1: Ciclo de vida tradicional de un proyecto software en las metodologas giles. .....................36
Tabla 2: Estado actual de las metodologas giles ...............................................................................37
Tabla 3: Comparativa de calidad en las metodologas giles ..............................................................38
Tabla 4: Herramientas de libre distribucin para metodologas 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 fusin 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 Situacin familiar de la persona........................................87
Tabla 12 : Prueba de aceptacin Relacionar personas ......................................................................88
Tabla 13: Prueba de aceptacin Gestionar fusin de personas..........................................................90
Tabla 14: Prueba de aceptacin Buscar personas fusionadas ...........................................................91
Tabla 15: Prueba de aceptacin Recuperar datos entidad financiera................................................93
Tabla 16: Prueba de aceptacin Gestionar situacin familiar ...........................................................94
Tabla 17: Product backlog.....................................................................................................................98
Tabla 18: Planificacin del Sprint Relacionar Personas ..................................................................100
Tabla 19: Planificacin inicial de la tarea de implementacin de la funcionalidad ...........................102
Tabla 20: Actualizacin de la planificacin de la tarea de implementacin de la funcionalidad .......108
Tabla 21: Planificacin inicial de la tarea de integracin del patrn de usabilidad Warning ...........109
Tabla 22: Correspondencia de componentes del patrn de usabilidad Warning y los componentes de la
funcionalidad................................................................................................................................112
Tabla 23- Planificacin actualizada de la tarea de integracin del patrn de usabilidad Warning ...115
Tabla 24: Planificacin inicial de la tarea de integracin del patrn de usabilidad SSF ...................115
Tabla 25: Correspondencia de componentes del patrn de usabilidad SSF y los componentes de la
funcionalidad................................................................................................................................118
Tabla 26: Planificacin actualizada de la tarea de integracin del patrn de usabilidad SSF...........121
Tabla 27: Planificacin inicial de la tarea de integracin del patrn de usabilidad GU....................121
Tabla 28: Correspondencia de componentes del patrn de usabilidad GU y los componentes de la
funcionalidad................................................................................................................................124
Tabla 29: Planificacin actualizada de la tarea de integracin del patrn de usabilidad GU ..........127
Tabla 30: Planificacin inicial de la tarea de integracin del patrn de usabilidad AO ....................129
Tabla 31: Correspondencia de componentes del patrn de usabilidad AO y los componentes de la
integracin ...................................................................................................................................131
Tabla 32: Planificacin actualizada de la tarea de integracin del patrn de usabilidad AO ............135
Tabla 33: Planificacin inicial de la tarea de integracin del patrn de usabilidad SPF...................136
Tabla 34: Correspondencia de componentes del patrn de usabilidad SPF y los componentes de la
Integracin ...................................................................................................................................139
Tabla 35: Planificacin actualizada de la tarea de integracin del patrn de usabilidad SPF ..........143
Tabla 36: Planificacin inicial de tarea de integracin del patrn de usabilidad AC ........................144
Tabla 37: Correspondencia de componentes del patrn de usabilidad AC y los componentes de la
integracin ...................................................................................................................................147
Tabla 38: Planificacin actualizada de la tarea de integracin del patrn de usabilidad AC ............150
I. Introduccin
La usabilidad se refiere a la capacidad de un software de ser comprendido, aprendido, usado y
ser atractivo para el usuario, en condiciones especficas de uso.
Es considerada la usabilidad tambin, como la medida en que un producto puede ser usado
por usuarios especficos, para lograr los objetivos especificados con efectividad, eficiencia y
satisfaccin en un contexto especfico de uso.
Confirmada la relacin entre diseo de software y usabilidad, la revisin del costo para
alcanzar un nivel aceptable de usabilidad debera ser mayor que lo planteado por la hiptesis
de separacin, 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 diseo 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, tcnicas para hacer frente a estos atributos en tiempo de diseo
arquitectnico.
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 categoras de impacto:
Usabilidad con impacto en la UI, esto afecta a la presentacin del sistema, como puede
ser botones, color de fondo, etc. Para dar solucin a esto, solo se realizan cambios en el
diseo detallado de la UI y no en el Funcionalidad bsica del sistema.
Usabilidad con impacto en el diseo, estas son recomendaciones que implican actividades
de construccin de funcionalidades en el Software, para mejorar la actividad usuario
sistema, por ejemplo funcionalidades como: Cancelar una tarea en curso.
Segn las recomendaciones dadas por la literatura HCI, hoy en da se han realizado estudios
enfocados, ms que todo en el impacto de la usabilidad en el diseo (Ver anexos), buscando
as, mecanismos para tratar la usabilidad en esta etapa.
Es de acuerdo a esta premisa, que el presente trabajo tiene como objetivo principal, la
inclusin de los principios de usabilidad, en proyectos Software, que se desarrollen en base a
metodologas giles.
Para cumplir con este objetivo, el presente trabajo de fin de Master, se basar en estudios
previos, donde se detallan mecanismo para considerar la usabilidad antes del proceso de
desarrollo, es decir, en las etapas, de toma de requisitos y de diseo (ver anexos).
El presente trabajo, tendr la siguiente estructura, para abordar el objetivo principal del
mismo:
Ya en capitulo III (Fase de inicio del marco gil de trabajo) y IV (Fase de elaboracin
del marco gil de trabajo), es donde, se describir el desarrollo del sistema, siguiendo los
lineamientos del marco gil de trabajo.
Versin 3.0
Junio 2009
Version 3.0
VERSION
DESCRIPCIN
AUTOR
08/05/2009
1.0
Metodologas giles
25/05/2009
2.0
Metodologas giles
15/06/2009
3.0
Metodologas giles
Pgina 13 de 237
Junio 2009
Version 3.0
Metodologas giles
1.
Introduccin
A principios de las dcada del 90 surgi un enfoque que era revolucionario para su momento ya
que iba en contra de la creencia de que mediante procesos altamente definidos se iba a lograr
obtener software de alta calidad en un tiempo y costo determinado. El enfoque fue planteado por
primera vez en 1991 por James Martin [MART91], que consista en un entorno de desarrollo
altamente productivo, en el que participaban grupos pequeos de programadores utilizando
herramientas que generaban cdigo de forma automtica tomando como entrada sintaxis de alto
nivel. En general se considera que este fue uno de los primeros hitos en pos de la agilidad en
los procesos de desarrollo [SMHR04].
Tras pasar cierto tiempo despus de este primer enfoque de agilidad en los procesos de
desarrollo, en febrero del 2001 se reunieron miembros prominentes de la comunidad Software y
adoptaron el nombre de metodologas giles, poco despus formando la Alianza gil, que es
una organizacin sin fines de lucro, que promueve el desarrollo gil de aplicaciones [CLEP09].
Las metodologas giles nacen como una reaccin contra los mtodos de peso pesado, muy
estructurados y estrictos, extrados del modelo de desarrollo en cascada. El proceso originado
del uso del modelo en cascada era visto como burocrtico, lento degradante e inconsistente con
las formas de desarrollo de software que realmente realizaban un trabajo eficiente [WDAS09].
2.
Descripcin
Las metodologas giles son un marco conceptual de la Ingeniera de Software que promueve
iteraciones en el desarrollo a lo largo de todo el ciclo de vida del proyecto, considerando una
iteracin como una unidad de tiempo que dura de uno a cuatro semanas. Donde cada iteracin
del ciclo de vida incluye planificacin anlisis, diseo, codificacin, revisin y documentacin
[WDAS09]. Una iteracin no debe agregar demasiada funcionalidad para justificar el
lanzamiento del producto al mercado, pero la meta es tener un producto parcial o una parte del
todo al final de cada iteracin.
Pgina 14 de 237
Junio 2009
Version 3.0
3.
Manifiesto gil
En esta seccin se detalla los principios bsicos del Manifiesto gil, inspirando en base a lo
expuesto en: Manifiesto for Agile Software Development [MFAS01].
Como consecuencia de la reunin donde se acuo el trmino Metodologas giles (febrero
2001), se establecieron los principios de estas metodologas agrupndoles en cuatro postulados,
quedando esta agrupacin denominada como Manifiesto gil. A continuacin se mencionan los
cuatro postulados de este manifiesto:
Valorar ms a los individuos y su interaccin que a los procesos y las herramientas, es decir,
la gente es el principal factor de xito de un proyecto software. Es ms importante construir
un buen equipo que construir el entorno.
Los postulados anteriores inspiran los doce principios del manifiesto, donde estos principios
representan las caractersticas que diferencian un proceso gil de uno tradicional A continuacin
se detallarn los doce principios del manifiesto, donde, los dos primeros principios son
generales y resumen gran parte del espritu gil, el resto tienen que ver con el proceso a seguir y
Jos Germn Nez Mori
Pgina 15 de 237
Junio 2009
Version 3.0
Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo. Los
procesos giles se doblegan al cambio como ventaja competitiva para el cliente.
Entregar con frecuencia software que funcione, en periodos de un par de semanas hasta un
par de meses, con preferencia en los periodos breves.
Las personas del negocio y los desarrolladores deben trabajar juntos de forma cotidiana a
travs del proyecto.
4.
En esta seccin se describirn las principales metodologas giles destacadas hasta el momento.
Pgina 16 de 237
Junio 2009
Version 3.0
la que se da prioridad a los trabajos que dan un resultado directo y que reducen la burocracia
que hay alrededor de la programacin
Pgina 17 de 237
Junio 2009
Version 3.0
a) Diseo simple, se basa en la filosofa de que el mayor valor de negocio es entregado por el
programa ms sencillo que cumpla los requerimientos. Se enfoca en proporcionar un
sistema que cubra las necesidades inmediatas del cliente.
b) Metfora, desarrollada por los programadores al inicio del proyecto, define una historia de
como funciona el sistema completo. XP estimula historias, que son breves descripciones de
un trabajo de un sistema en lugar de los tradicionales diagramas y modelos UML (Unified
Modeling Language). La metfora expresa la visin evolutiva del proyecto que define el
alcance y propsito del sistema
c) Propiedad colectiva del cdigo, la metodologa XP promueve la filosofa de un cdigo con
propiedad compartida, donde, nadie es propietario de nada y que todos son propietarios de
todo
d) Estndar de codificacin, define la propiedad del cdigo compartido as como las reglas
para escribir y documentar el cdigo y la comunicacin entre diferentes piezas de cdigo
desarrolladas por diferentes equipos. Los programadores las han de seguir de tal manera que
el cdigo en el sistema se vea como si hubiera estado escrito por una sola persona.
Pgina 18 de 237
Junio 2009
Version 3.0
la que hay diferentes roles: un equipo de gestin (o diseo), uno de desarrollo y los clientes
finales. El proceso conlleva las siguientes actividades:
Pgina 19 de 237
Junio 2009
Version 3.0
Con estas normas se obtiene un cdigo simple y funcional de manera bastante rpida. Por esto
es importante pasar las pruebas al 100%.
Otra peculiaridad de XP es que cada programador puede trabajar en cualquier parte del
programa. De esta manera se evita que haya partes "propietarias de cada programador". Por esto
es tan importante la integracin diaria.
4.2
4.2.1 Descripcin
El Proceso Unificado gil (en adelante, AUP), se describe como una metodologa fcil de
entender para el desarrollo de aplicaciones software de negocio, utilizando tcnicas giles y
conceptos aun fieles a las de RUP, por lo tanto, es una versin simplificada del Rational Unified
Process (RUP).
AUP, es una metodologa que tiene la adopcin de muchas de las tcnicas giles de la
metodologa XP (Extreme Programming) y de las formalidades de RUP, teniendo como
filosofa adaptarse a las necesidades del proyecto y no al contrario como lo planteado en las
metodologas tradicionales. Esta metodologa, plantea un ciclo de vida iterativo, que se basa en
la ampliacin y refinamiento sucesivo del sistema, mediante mltiples iteraciones con
retroalimentacin cclica y adaptacin como elementos principales que dirigen para converger
hacia un sistema adecuado.
4.2.2
Principio bsicos
Como parte de esta metodologa, en la presente seccin se detalla, tanto las fases y disciplinas
de su planteamiento:
Jos Germn Nez Mori
Pgina 20 de 237
Junio 2009
Version 3.0
a) Fases
Al igual que RUP, AUP tiene las 4 fases clsicas consecutivas y que acaban cada uno de estas,
con hitos claros alcanzados:
Inception (Concepcin): El objetivo de esta fase es obtener una comprensin comn clienteequipo de desarrollo, del alcance del nuevo sistema y definir una o varias arquitecturas
candidatas para el mismo.
b) Disciplinas
El proceso AUP, establece un modelo ms simple que el planteado en RUP, por lo que rene en
una nica disciplina: el modelado de negocio, requisitos y anlisis y diseo. El resto de
disciplinas coinciden con las restantes de RUP, a continuacin se describe las disciplinas
consideradas por AUP:
Pruebas: Se busca realizar una evaluacin objetiva para garantizar la calidad. Esto incluye la
bsqueda de defectos, validar que el sistema funciona tal como est establecido, y
verificando que se cumplan los requisitos.
Administracin del Proyecto: Consiste en dirigir las actividades que se llevan a cabo dentro
del proyecto. Esto incluye la gestin de riesgos, la direccin de personas (la asignacin de
tareas, el seguimiento de los progresos, etc), y de coordinacin con el personal y los
sistemas fuera del alcance del proyecto para asegurarse de que el software final sea
Pgina 21 de 237
Junio 2009
Version 3.0
Entorno: Es un soporte para el resto de los esfuerzos para garantizar un proceso adecuado,
orientacin (normas y directrices), y herramientas (hardware, software, etc) estn
disponibles para el equipo segn sea necesario.
Las fases que platea la metodologa no constituye el antiguo ciclo de vida secuencial o en
cascada, si no ms bien, es planteado de la siguiente manera:
La fase de Inicio (Inception), no es una fase de requisitos, si no mas bien una especia de
fase de viabilidad, donde se lleva acabo el estudio suficiente, para decidir si continuar o
no el proyecto.
Por cada una de las fases e iteraciones planteadas en las mismas, se puede hacer uso de la
totalidad de las disciplinas o solo de algunas, esto depender de la iteracin en la que se
encuentre, debido a que el esfuerzo relativo en las disciplinas disminuye de iteracin en
iteracin.
AUP, plantea que en lugar del big bang en la entrega del software, una liberacin del
producto en partes, por ejemplo versin 1, luego versin 2 del software en produccin y as
sucesivamente hasta tener el producto completado. De acuerdo a este planteamiento AUP
distingue dos tipos de iteraciones:
Pgina 22 de 237
Junio 2009
Version 3.0
AUP, se preocupa principalmente de la gestin de riesgos. Propone que aquellos elementos con
alto riesgo obtengan prioridad en el proceso de desarrollo y sean abordados en etapas tempranas
del mismo. Especialmente relevante en este sentido es el desarrollo de prototipos ejecutables
durante la fase de elaboracin del producto, donde se demuestre la validez de la arquitectura
para los requisitos clave del producto y que determinan los riesgos tcnicos.
4.3
4.3.1 Descripcin
Agile model driven development (en adelante, AMDD), es una versin gil del Model driven
development (MDD), donde MDD es un enfoque amplio de desarrollo de software donde se
crean modelos antes del cdigo fuente. Un ejemplo de MDD es el estndar MDA (Arquitectura
dirigida por modelos)
La diferencia entre MDD y AMDD, es que este ltimo en lugar de crear una amplia gama de
modelos antes de escribir cdigo fuente, crea modelos giles que son solo apenas los
suficientemente buenos. AMDD es una estrategia fundamental en la escalabilidad de los
desarrollos giles del software.
Pgina 23 de 237
Junio 2009
Version 3.0
Ambas sub actividades, son recomendadas por la metodologa que se realicen en periodos
diarios, durante el tiempo que dure la iteracin 0.
Desarrollo (Development), iteracin que ser repetida hasta alcanzar un producto de calidad,
consta de sub actividades a mencionar:
o
Pgina 24 de 237
Junio 2009
Version 3.0
las relaciones entre ellas, y un modelo de interfaz de usuario que explore UI y cuestiones de
usabilidad.
AMDD, plantea que a final de cada construccin se realice pruebas unitarias del cdigo
desarrollado y la refactorizacin si fuese necesario, todo esto basado en el Test Driven
Development (TDD).
4.4
Scrum
4.4.1 Descripcin
Scrum, plantea un proceso de desarrollo de software iterativo y creciente, utilizado
Pgina 25 de 237
Junio 2009
Version 3.0
Aunque Scrum estaba enfocado a la gestin de procesos de desarrollo de software, puede ser
utilizado en equipos de mantenimiento de software, o en una aproximacin de gestin de
programas: Scrum de Scrums.
Scrum, por sus caractersticas no es vlido para cualquier proyecto persona o equipos de
personas, es optimo para equipos de trabajo de hasta 8 personas, auque existen empresas que
han utilizado con xito scrum con equipos mas grandes.
Usuarios o Cliente, son los beneficiarios finales del producto, y son quienes viendo los
progresos, pueden aportar ideas, sugerencias o necesidades.
Las acciones de Scrum forman parte de un ciclo iterativo repetitivo, por lo que el mecanismo y
forma de trabajar que a continuacin se indica, tiene como objetivo minimizar el esfuerzo y
maximizar el rendimiento en el desarrollo:
Sprint backlog, corresponde con una o mas tareas que provienen de la lista de tareas
(Product backlog), donde estas tareas se deben acometer en unas 2 semanas o 4 semanas.
Existe una norma fundamental que mientras un Sprint backlog se inicia no debe ser alterado
o modificado, hay que esperar a que concluya para hacerlo.
Dayli scrum meeting, es una tarea iterativa que se realiza todos los das que dure el Sprint
backlog con el equipo de desarrollo, con lo cual se busca identificar obstculos o riesgos
que impidan el normal avance, verificar el avance de las tareas y la planificaciones de las
mimas para el da.
Pgina 26 de 237
Junio 2009
Version 3.0
Sprint planning meeting, son reuniones cuyo objetivo es planificar el Sprint Backlog a partir
del Product Backlog, suelen participar el Scrum master, Scrum team y el Product owner.
Sprint review, una vez finalizado un Sprint backlog, se revisa en aproximadamente dos
horas si se ha obtenido un producto que pueda ver y tocar el Cliente o usuario, donde un
Scrum team es quien muestra los avances.
Sprint retrospective, el Product owner revisar con el equipo los objetivos marcados
inicialmente en el Sprint backlog concluido, se aplicarn los cambios y ajustes si son
necesarios, y se marcarn los aspectos positivos (para repetirlos) y los aspectos negativos
(para evitar que se repitan) del Sprint backlog.
Cada da de una iteracin debe realizarse una reunin con los integrantes del equipo con el
objetivo de obtener de primera mano los avances de las tareas y los obstculos que se van
presentando a lo largo del desarrollo de la iteracin
Una vez finalizado un Sprint backlog, se revisan con el usuario o cliente los productos
obtenidos (Sprint review) y si cumplen con las necesidades plasmadas por el usuario al inicio de
la iteracin. Cada fin de un Sprint Backlog, se debe revisar los aspectos positivos y negativos
del mismo con el objetivo de poder utilizar estos para una mejor planificacin de la siguiente
iteracin a realizar.
4.5
Pgina 27 de 237
Junio 2009
Version 3.0
4.5.1 Descripcin
La metodologa Dynamic system development Method (en adelante DSDM), es una metodologa
que surgi de un consorcio formado por 17 miembros fundadores en enero del 1994. El objetivo
de este consorcio era producir una metodologa de dominio pblico que fuera independiente de
las herramientas y que pudiera ser utilizada en proyectos de tipo RAD (desarrollo de
aplicaciones rpidas).
La conformidad con los propsitos del negocio es el criterio esencial para la aceptacin de
los entregables.
El desarrollo iterativo e incremental es necesario para converger hacia una correcta solucin
del negocio.
DSDM tiene las bases sentadas para el anlisis sobre su aplicabilidad a un grupo bien definido
de proyectos software, los cuales debern tener las siguientes caractersticas:
Acotados en el tiempo.
Estudio de factibilidad.
Pgina 28 de 237
Implementacin.
Junio 2009
Version 3.0
Pgina 29 de 237
Junio 2009
Version 3.0
Durante el estudio del negocio, se involucra al cliente de forma temprana, para tratar de
entender la operativa que el sistema deber automatizar. Este estudio sienta las bases para
iniciar el desarrollo, definiendo las caractersticas de alto nivel que deber contener el software
y las prioridades de las mismas.
Cabe destacar que tanto la fase de estudio de factibilidad, como de estudio del negocio, son
tareas secuenciales y se realizan una nica vez al principio del proyecto y las dems fases siguen
el modelo iterativo incremental integrado con la retroalimentacin (feedback) del cliente y las
entregas frecuentes del producto.
Se han dejado sin implementar funcionalidades crticas, por lo tanto se vuelve a la fase de
modelo funcional.
Existen problemas tcnicos que no se han podido resolver debido a la falta de tiempo, por lo
tanto, se corregirn realizando las iteraciones que hagan falta desde la fase de diseo y
construccin.
DSDM, no tiene ninguna prescripcin respecto a las tcnicas a ser usadas en el proyecto, ni
Jos Germn Nez Mori
Pgina 30 de 237
Junio 2009
Version 3.0
siquiera impone el desarrollo bajo un paradigma especfico, funciona tanto para el modelo
orientado a objetos como para el modelo estructurado.
En la metodologa DSDM, se incluye un nuevo trmino llamado timebox, que no es ms que las
iteraciones a lo largo del ciclo de vida del proyecto. Debido a que cada timebox esta relacionado
con entregables al final de los mismos y de los feedback por parte de los clientes, constan de
tres fases:
Investigacin, donde se verifica que las actividades del timebox coincidan con la
arquitectura del sistema.
4.6
4.6.1 Descripcin
La metodologa Feature driven development (en adelante FDD), se estructura alrededor de la
definicin de features que representan las funcionalidades que debe contener el sistema a
desarrollar y tiene un alcance lo suficientemente corto como para ser implementado en un par de
semanas.
Una de las ventajas de centrarse en las features del software es el poder formar un vocabulario
comn que fomente,
Pgina 31 de 237
Junio 2009
Version 3.0
Ejemplos de esto:
FDD, propone un ciclo de vida del software que consta de cinco procesos:
Plan by feature.
Design by feature.
Build by feature.
Donde las dos ltimas fases se realizan tantas veces como iteraciones se planifiquen en el
desarrollo.
Pgina 32 de 237
Junio 2009
Version 3.0
Pgina 33 de 237
Junio 2009
Version 3.0
La tercera actividad (Plan by features), toma como input la lista priorizada de la fase anterior y
establece los tiempos de las futuras iteraciones. En esta actividad participan el lder de proyecto,
el lder de desarrollo y el programador jefe. A medida que se realiza la planificacin se delinean
los hitos de finalizacin de las iteraciones, dejando asentado cuales son los features y features
sets que estarn construidos en dichos hitos, en esta etapa tambin se incluye la delegacin de
responsabilidades.
Las dos ltimas actividades, Disear por features y construir por features, estn relacionadas
con la parte productiva del proceso en que se construye la aplicacin de manera incremental.
Para la iteracin del diseo, el Jefe de programadores junto con un grupo de Programadores
expertos identifica las clases, atributos y mtodos que necesita la funcionalidad requerida en un
feature. Mediante la utilizacin de diagramas UML se verifica que el diseo pueda ser
implementado.
La metodologa recomienda reuniones semanales entre el Lder del proyecto y el Jefe de los
programadores, donde, se permita revisar el estado de los features que se estn desarrollando.
En esta seccin se realizar una comparativa entre cada unas de las metodologas mencionadas
en la seccin cuatro, tomando como base la referencia: [JCCA08].
Esta comparativa se basa en una serie de criterios relevantes, con los cuales se busca obtener las
Pgina 34 de 237
Junio 2009
Version 3.0
Ciclo de vida del proyecto, donde tomaremos como base el ciclo de vida estndar de un
proyecto.
Soporte a la gestin en cada unas de las etapas del ciclo de vida del proyecto.
Buenas prcticas, actividades y artefactos producidos en las distintas etapas planteadas por
la metodologa.
5.1
Criterios de comparacin
En esta seccin se detallar cada uno de los criterios necesarios para la comparativa entre las
metodologas giles en estudio.
Especificacin de requisitos.
Anlisis y Diseo.
Codificacin
Pruebas unitarias.
Pruebas de integracin.
Pruebas de sistemas.
Pruebas de aceptacin.
En base a las etapas mencionadas anteriormente, se analizar si cada una de las metodologas en
estudio contempla estas etapas, si describe buenas prcticas y/o actividades y si sugiere
artefactos de salida por etapa, de acuerdo a esto, el resultado se muestra en la siguiente tabla
(ver tabla 1 Ciclo de vida tradicional de un proyecto software en las metodologas giles):
Pgina 35 de 237
Junio 2009
Version 3.0
Principio del
Espec.
Anlis y
Pruebas
Pruebas de Pruebas de Pruebas de
Codificacin
Mantenimiento
Proyecto
Requisitos
Diseo
Unitarias Integracin
Sistemas
Aceptacin
SG PD BA SG PD BA SG PD BA SG PD BA SG PD BA SG PD BA SG PD BA SG PD BA SG PD BA
Metodologa
Programacin
Extrema (XP)
Scrum
Dynamic Systems
Development
Method (DSDM)
X
Proceso Unificado
gil (AUP)
X
Agile Model Driven
(AMDD)
Feature
Driven
Development
(FDD)
X
X
X
X
X
X
X
X
X
X
Pgina 36 de 237
X
X
Junio 2009
Version 3.0
A continuacin una tabla (ver tabla 2 Estado actual de las metodologas giles), que informan
el estado actual de cada una de las metodologas en estudio:
Metodologa
Estado a la fecha
Activa
Scrum
Activa
Activa
Actica
Activa
Activa
5.1.3 Calidad
Con este criterio se busca analizar si las metodologas en estudio contemplan ciertos parmetros
de calidad en su enunciado metodolgico.
Dentro de los parmetros a considerar en el anlisis tenemos:
Fiabilidad, la cual viene determinada por los siguientes atributos:
Simplicidad, simplicidad de los diseos, en la implementacin y en el desarrollo del
Pgina 37 de 237
Junio 2009
Version 3.0
software en general.
Trazabilidad, entre los artefactos producidos en las distintas etapas del ciclo de vida del
software.
Usabilidad, esta parmetro viene determinado por los siguientes atributos:
A continuacin una tabla (ver tabla 3 Comparativa de calidad en las metodologas giles), que
informan, los criterios de calidad asociados a cada unas de las metodologas en estudio:
Metodologa
Programacin
Extrema (XP)
Scrum
Dynamic Systems
Development Method
(DSDM)
Proceso Unificado
gil (AUP)
Agile Model Driven
(AMDD)
Feature Driven
Development (FDD)
X
X
5.1.4 Herramientas
Con este criterio se busca dar a conocer las distintas herramientas que las metodologas en
estudio requieren para cumplir cada unas de las tareas que especifica su enunciado. Para esto se
enfatiz la bsqueda de herramientas de libre distribucin.
Pgina 38 de 237
Junio 2009
Version 3.0
A continuacin, se presenta una tabla (ver tabla 4 Herramientas de libre distribucin para
metodologas giles), donde se detalla alguna de las herramientas de libre distribucin, con las
cuales se puede ejecutar cada una de las metodologas en estudio:
Metodologa
Herramientas
o
o
Programacin
Extrema (XP)
o
o
o
o
Scrum
Proceso Unificado
gil (AUP)
Dynamic Systems
Development Method No especifica ninguna prctica concreta que necesite de
(DSDM)
una herramienta especfica.
Desarroollo rpido de
o Herramientas que en base a prototipos genere
aplicaciones (RAD)
cdigo: IDEs como NetBeans y eclipse.
o Herramientas de modelado como Visual Paradigm.
o Herramientas ofimticas.
Feature Driven
o Herramientas de refactorizacin: IDEs como
Development (FDD)
eclipse y NetBeans.
Pgina 39 de 237
5.2
Junio 2009
Version 3.0
Conclusiones de la comparativa
No todas las metodologas giles contemplan todo el ciclo de vida tal y como lo hemos visto
tradicionalmente, como se puede apreciar en la Tabla 1, presentada en la comparativa de
ciclo de vida de un proyecto, la metodologa que contempla todas las etapas es la
metodologa AUP, esto debido a que es una metodologa que se basa en RUP, pero a la vez
esta metodologa sugiere que solo se utilice las etapas que sean necesarias para el proyecto,
con lo cual pude que se cumpla con toda o parte de las etapas tradicionales.
El estado actual de las metodologas giles es activo y va ganando cada vez ms adeptos.
Las metodologas giles estn orientadas a la productividad, es por este motivo que en la
comparativa de calidad solo algunas de las metodologas cumple con la gran parte de los
parmetros de calidad.
Con relacin a las herramientas de distribucin libre, como se ha podido apreciar hoy en da
existen muchas herramientas que ayudan ya en el proceso de las metodologas giles (ver
Tabla 4).
5.3
Adopcin de metodologas
Los criterios de comparacin utilizados en esta seccin son solo algunos de los criterios por los
cuales se puede llevar a cabo una comparativa entre metodologas giles y nos da una idea de
cual es el enfoque de la metodologa en cuestin que nos permitir decidir por una de las
metodologas presentadas.
La adopcin de una o varias metodologas, en vez de otras, tan solo tiene sentido si
establecemos un caso lo suficientemente concreto, invalidando cualquier tipo de generalizacin
y por ende una metodologa se hace necesaria para cada solucin.
En base a lo expuesto a lo largo de esta seccin, concluimos que las metodologas giles son un
conjunto de prcticas y mtodos que surgen de la experiencia y el estudio de muchos proyectos
software, de acuerdo a esto, la eleccin de una u otra metodologa ser en base a las necesidades
que tenga un proyecto por ejemplo:
Pgina 40 de 237
Junio 2009
Version 3.0
Para el caso de estudio que se llevar a cabo, y tomando como premisa que es un caso concreto
de investigacin, donde se busca adaptar en la metodologa o metodologas seleccionadas el
principio de Usabilidad, se ha visto conveniente combinar tres de las metodologas, con el
objetivo de dar una cobertura gil a un mbito ms amplio del ciclo de vida del software. Las
metodologas seleccionadas son:
XP, por ser una metodologa que cubre las actividades que desde el plano completo de la
ISO 12207, perteneciente al desarrollo de software.
AUP, por ser una metodologa que contiene a XP y tiene las formalidades de RUP.
Pgina 41 de 237
Versin 1.2
Mayo 2010
Version 1.2
Version
1.0
Descripcin
Marco gil de trabajo
Autor
Jos Germn Nez
Mori
06/06/2010
1.1
12/10/2010
1.2
Pgina 43 de 237
Mayo 2010
Version 1.2
1. Introduccin
De acuerdo a lo expuesto en el captulo de Metodologas giles, se llego a la conclusin, de
seleccionar tres de las metodologas giles planteadas a lo largo del captulo. Esta seleccin, se
realiza despus de analizar que las metodologas giles son prcticas focalizadas sobre un rea
de conocimiento, ms o menos delimitada, de la Ingeniera del Software [JPAL02].
Con las metodologas giles seleccionadas, se busca combinar varias de las prcticas de cada
una de estas metodologas, para dar una mayor cobertura gil a un mbito ms amplio del ciclo
de vida del software [JPAL02].
En el presente captulo, se planteara un marco gil de trabajo, que contenga ciertas prcticas y
actividades de cada unas de las metodologa seleccionadas en el capitulo anterior (AUP, XP y
Scrum), todo esto, con el objetivo de obtener lineamientos a seguir a lo largo de los siguientes
captulos, y en los cuales se pueda aadir los principios de Usabilidad.
2. Planteamiento metodolgico
En la presente seccin, se dar a conocer el planteamiento de este marco de trabajo gil, que
busca combinar, practicas y actividades, de cada una la metodologas seleccionadas, que en
conjunto, se adapten a los requerimientos o necesidades del presente trabajo.
Las actividades y prcticas seleccionadas, tanto de las metodologas Scrum como AUP,
formarn la carrocera del marco gil de trabajo. Esto debido, al enfoque que tienen estas
metodologas, consiguiendo de esta manera, los lineamientos para la gestin (plateada por
Scrum) y las formalidades del Proceso Unificado (planteada por AUP) en la ejecucin del ciclo
de vida del software, con lo cual, se dejar a la metodologa XP enfocada directamente en el
plano de desarrollo.
La metodologa AUP, sugiere optar por un conjunto pequeo de actividades y artefactos del
Jos Germn Nez Mori
Pgina 44 de 237
Mayo 2010
Version 1.2
Proceso Unificado [CRLA02] [JOKR05]. Siguiendo esta idea, se ha optado por utilizar ciertas
fases y actividades que plantea AUP, las cuales sern gestionadas por los lineamientos de
SCRUM. Consiguiendo de esta manera tambin incluir prcticas de XP en este marco gil de
trabajo [SABL06] [KEBE02].
Bajo los lineamientos de este marco de trabajo gil, se ira incluyendo los principios de
usabilidad, es decir, se buscar en todo momento mejorar la usabilidad como un atributo de
calidad, tomando en cuenta as, estos patrones desde la etapa inicial del marco gil (requisitos),
luego trasmitindose a las etapas siguientes como son diseo e implementacin.
3. Estructura Metodolgica
En la presente seccin, se describir cual es la estructura que tendr el marco gil de trabajo y
en base al cual, se desarrollarn los siguientes captulos.
El marco gil de trabajo, se basar en el ciclo de vida del software plateando por AUP, a la cual
se le aadir actividades y prcticas, tanto de la metodologa Scrum como XP, es decir, se
tendr como base el siguiente modelo [SABL06]:
Pgina 45 de 237
Mayo 2010
Version 1.2
[KINT07].
El marco gil de trabajo, tal cual se describe en lneas anteriores, seguir la estructura planteada
por AUP, con la salvedad, de solo incluir ciertas disciplinas, como son: Modelo,
Implementacin, Prueba, Despliegue y gestin de proyecto. De esta manera, el ciclo de vida que
plantea el marco gil de trabajo, se muestra en la siguiente figura 6:
El modelo presentado en la figura 6 (Ciclo de vida del marco gil de trabajo), es un modelo ms
reducido que el plateado por AUP, esto debido, a que es un ciclo de vida que se adapta a las
necesidades, que el marco gil, solventar a lo largo del presente trabajo. Adems esta
formalidad que se asume, permitir que en cada una de las fases y disciplinas, de este ciclo de
vida planteado, se pueda realizar el estudio de la viabilidad de incluir los principios de
usabilidad.
En la figura 6, se aprecia adems, que en cada fase se manejan iteraciones, esto debido, a que el
marco gil de trabajo, tendr un enfoque de desarrollo iterativo, el cual se organizar en una
serie de mini proyectos de duracin fija, llamado iteraciones. Donde el resultado de cada
iteracin ser una parte del sistema que pueda ser probada, integrada y ejecutada.
Estas fases plateadas por el marco gil, no constituyen el antiguo ciclo de vida secuencial, si no
mas bien, la fase de inicio no es solo una fase de requisitos si una especia de fase de viabilidad,
donde se lleva a cabo solo el estudio suficiente para decidir si continuar. La fase de elaboracin
no es la fase de requisitos o de diseo, si no que es una fase donde se implementa de manera
iterativa la arquitectura que constituye el ncleo central donde se mitigan las cuestiones de alto
riesgo y en la fase de construccin se implementan de manera iterativa el resto de requisitos de
Pgina 46 de 237
Mayo 2010
Version 1.2
De acuerdo a esta estructura, a lo largo de esta seccin se detallar, el planteamiento del marco
gil de trabajo sobre cada una de las fases y disciplinas mencionadas anteriormente.
Adicionalmente al planteamiento, el marco gil describir el mecanismo a seguir para cumplir
con lo planteando, sugiriendo as, herramientas y formatos que ayudarn a cumplir este
objetivo.
En base a estos puntos, se tendr un hito de fase, el cual representar los artefactos que esta fase
producir al final de la misma. De acuerdo a esto, los artefactos considerados como hito de fase
son los siguientes:
Historias de Usuarios
Esta primera fase se resume en el siguiente diagrama (figura 7), donde se muestra tanto el
planteamiento como los hitos de la misma [SABL06]:
Pgina 47 de 237
Mayo 2010
Version 1.2
: <<Descripcin abreviada>>
Nombre:
Prioridad:
Descripcin
Usuario de Creacin
Estimacin.
Fecha Alta:
Dependencia:
Pgina 48 de 237
Mayo 2010
Version 1.2
: <<Descripcin abreviada>>
Nombre:
Prioridad:
Descripcin
Usuario de Creacin
Estimacin.
Requisito
System Status Feedback
Interaction feddback
Progress feedback
Warning
Globall Undo
Object Specific undo
Fecha Alta:
Dependencia:
Requisitos de Usabibilidad Asociados
Apicacin
Comentarios
El marco gil de trabajo, sugiere que este formato se debe plasmar o en cartillas o en un
documento electrnico, el cual debe entregarse al usuario para ser rellenado con la informacin
de las funcionalidades a contemplarse y sus respectivos principios de usabilidad asociados, no
siendo estrictamente, un documento a ser rellenado por los usuarios, si no tambin por los
encargados de la elicitacin de requisitos.
Pgina 49 de 237
Mayo 2010
Version 1.2
En esta fase de Inicio, las pruebas de aceptacin, segn el marco gil de trabajo, consistirn en
la redaccin de pruebas mnimas para la validacin de los requisitos de usabilidad, las cuales se
basarn estrictamente en las historias de usuarios asociados. De acuerdo a esto, el proceso de
aceptacin tendr el siguiente formato, mostrado en la figura 10:
Id
Historia
Criterio de validacin
de los Requisitos de Usabilidad
Este artefacto una vez culminado, deber de ser entregado al equipo de pruebas, con el objetivo,
de tomar futuras previsiones en las pruebas generales del sistema.
Esta manera de llevar el control de cada historia de usuario es simplemente, con el objetivo de
tener a primera vista y de manera muy resumida, las funcionalidades que se espera del producto.
Adems a este artefacto tendrn acceso todos los integrantes del equipo. Por lo tanto, el Product
Backlog seguir el siguiente formato [JPAL02]:
Jos Germn Nez Mori
Pgina 50 de 237
Id. Historia
Descripcin
Mayo 2010
Version 1.2
Prioridad
Estimacin
Observaciones
Responsable
El marco gil de trabajo, sugiere que este formato sea plasmado en un documento electrnico y
sea rellenado y gestionado por el encargado de llevar a cabo el producto, garantizando de esta
manera que este accesible a todas las personas que participan en el desarrollo del sistema.
3.1.5 Elaboracin
En esta fase el marco gil de trabajo, basar su enfoque en lo que plantea la metodologa AUP
(Agile Unified Process), tomando en cuenta as las disciplinas y prcticas sugeridas.
Es importante sealar que los requisitos no se especifican por completo en este punto. Se
detallan slo lo suficiente para entender los riesgos de la arquitectura a plantear y para asegurar
que hay un entendimiento del alcance de cada requisito, todo esto, con el objetivo de la futura
planificacin a llevarse a cabo y de identificar y priorizar los riesgos de la arquitectura, donde,
los mas significativos sern tratados en esta fase de elaboracin [SABL06].
Como se muestra en la figura 6 (Ciclo de vida del marco gil de trabajo), la disciplina de
modelo (Model) que se ejecuta tanto en la fase de inicio como la de elaboracin, sugiere que,
para esta ltima, se inicie con el diseo, especficamente como se describe en lneas anteriores,
Jos Germn Nez Mori
Pgina 51 de 237
Mayo 2010
Version 1.2
con el modelado de la arquitectura del sistema. Todo esto basado en que la arquitectura es un
aspecto importante de los esfuerzos de desarrollo del software gil.
De acuerdo a estos puntos la fase de elaboracin cuenta con un hito de fase, que representa los
artefactos que esta fase producir al final de la misma. Estos son los siguientes:
Esta fase se resume en el siguiente diagrama (ver figura 12), donde se muestra tanto el
planteamiento como los hitos de la misma [SABL06]:
Pgina 52 de 237
Mayo 2010
Version 1.2
componentes de este sistema, haciendo uso de conexiones especificas y sobre los que se basarn
las posteriores modificaciones en implementaciones a realizar.
En base a esta premisa, el marco gil de trabajo, basado en las distintas metodologas de su
planteamiento, buscar un enfoque de metodologa, que permita obtener este primer modelo de
arquitectura y que esta sirva como estructura principal para las futuras iteraciones de desarrollo.
AUP (Agile Unified Process) incluye en su planteamiento una metodologa que ayudar en las
tareas de modelado de la arquitectura. Esta metodologa es conocida como Agile model driven
development (AMDD), que en su enfoque principal sugiere que el desarrollo de un sistema sea
dirigido por modelos lo suficientemente necesarios para obtener el producto final [SABL06].
Para tener mayor detalle de la metodologa AMDD, se puede revisar el capitulo de
Metodologas giles.
El marco gil de trabajo, basado en AUP, har uso del planteamiento de AMDD para desarrollar
su enfoque de prototipo de Arquitectura y sus futuras iteraciones de desarrollo, especficamente
utilizando el estndar sugerido por esta metodloga, siendo este, el estndar MDA (Model
Driven Architecture).
MDA es un estndar, que potencia el uso de modelos en el desarrollo, debido a que usa los
modelos para dirigir el mbito de desarrollo, el de diseo, el de despliegue, el de la operacin, el
de mantenimiento y el de la modificacin de los sistemas.
En el marco gil de trabajo, MDA pretende ser utilizado para dirigir tanto el mbito desarrollo
como el de diseo. Bajo este estndar el marco gil, en esta fase de elaboracin, tendr como
objetivo realizar una primera iteracin que permita obtener una parte del sistema que pueda ser
probada, integrada y ejecutada.
Esta primera iteracin, contemplar la ejecucin del prototipo de arquitectura, que consistir en
obtener tanto el diseo de este prototipo como el desarrollo del mismo. De esta manera se
cumplir con el objetivo de esta fase, que es la implementacin de la arquitectura que constituye
el ncleo central donde se mitigan las cuestiones de alto riesgo y cuyo propsito ser ayudado
por el estndar MDA.
Para este prototipo de arquitectura, el marco gil, sugiere que se selecciona un requisito donde
se pueda evaluar los riesgos de la arquitectura y a su vez tenga asociado los requisitos de
usabilidad de mayor complejidad, como por ejemplo: Progress Bar.
Jos Germn Nez Mori
Pgina 53 de 237
Mayo 2010
Version 1.2
Todo esto proporciona finalmente una independencia entre la capa de negocio, y la tecnologa
empleada. De esta manera es mucho ms simple la incorporacin de nuevas funcionalidades, o
cambios en los procedimientos de negocio sin tener que llevar a cabo los cambios en todos los
niveles del sistema. Bajo este enfoque el marco gil de trabajo buscar incluir en tiempo de
diseo los patrones de usabilidad.
Pgina 54 de 237
Mayo 2010
Version 1.2
MDA se apoya sobre los siguientes estndares para llevar a cabo su funcin:
MOF (MetaObjet Facility): establece un marco comn de trabajo para las especificaciones
del OMG, a la vez que provee de un repositorio de modelos y metamodelos [OMGWB10].
XMI (XML Metada Interchange): define una traza que permite transformar modelos UML
en XML para poder ser tratados automticamente por otras aplicaciones.
El estndar MDA, establece tres puntos de vista que se emplearn a lo largo de su proceso de
ingeniera:
En base a estos puntos de vista, MDA plantea diferentes estados de modelado para lograr
obtener el producto final. Estos modelos son los siguientes:
Modelo independiente de la computacin (CIM), es una vista del un sistema desde el punto
de vista independiente de la computacin. En algunos casos, nos referimos a este modelo
como el modelo de dominio y se usa vocabulario propio de los expertos en el dominio para
la especificacin.
Modelo independiente de la plataforma (PIM), es una vista del sistema del punto de vista
independiente de la plataforma, exponiendo as un carcter independiente de la plataforma
Pgina 55 de 237
Mayo 2010
Version 1.2
sobre la que se desplegar. Con esto se logra un modelo que puede ser empleado en
diferentes plataformas de carcter similar.
Modelo especfico de la plataforma (PSM), es una vista del sistema (producto final) desde el
punto de vista especfico de la plataforma, combinando as el modelo independiente de la
plataforma con los detalles especficos de la plataforma del sistema.
El CIM, puede consistir en un par de modelos UML que muestren tanto la distribucin de los
procesos (ODP, Open Distributed Processing) como la informacin a tratar. Tambin puede
contener algunos modelos UML ms que especifiquen en mayor detalle los anteriores.
A partir del CIM, se construye un PIM, que muestra una descripcin del sistema, sin hacer
referencia a ningn detalle de la plataforma. Debe presentar especificaciones desde el punto de
vista de la empresa, informacin y ODP. Un PIM se puede ajustar a un determinado estilo de
arquitectura, o a varios.
Despus de la elaboracin del PIM, el arquitecto debe escoger una plataforma (o varias) que
satisfagan los requisitos de calidad y en base a la trazabilidad obtener el PSM. La figura 13,
resume el planteamiento de estos modelos:
Pgina 56 de 237
Mayo 2010
Version 1.2
Pgina 57 de 237
Mayo 2010
Version 1.2
Pgina 58 de 237
Mayo 2010
Version 1.2
modelo.
Las marcas pueden definir tipos del modelo, especificacin de clases, asociaciones, roles,
estereotipos, etc. Las marcas tambin pueden especificar caractersticas cualitativas que despus
en la transformacin se convertir en el objetivo apropiado para el cumplimiento de los
requisitos.
Los mapas de transformacin pueden mantener tambin plantillas, que son modelos
parametrizados que especifican tipos concretos de transformaciones. Podemos asociar un
conjunto de marcas a una plantilla para identificar instancias en un modelo que deben ser
transformados de acuerdo a las indicaciones de la plantilla.
Existe la posibilidad de incluir informacin relativa a patrones que extienda las caractersticas y
tipos de los metamodelos y el lenguaje de la plataforma especfica elegida para el despliegue.
Como muestra la figura 16, el uso de informacin adicional para la transformacin implica la
necesidad de informacin de los patrones para la transformacin, que sern especficos para la
plataforma de destino.
Pgina 59 de 237
Mayo 2010
Version 1.2
La transformacin, es el proceso que toma como entrada el PIM marcado y da como resultado el
PSM del sistema y el registro de transformacin.
Algunas herramientas, pueden hacer una transformacin del PIM directamente a cdigo
desplegable en la plataforma de destino o incluso, conceptos como MDR (Model-Driven
Runtime Environment), que propone el uso de un entorno de ejecucin para los PIM,
directamente, sin generacin de PSM ni cdigo para la plataforma. En cualquier caso el OMG
sostiene que la transformacin debe emitir un PSM para ayudar al entendimiento del cdigo y la
depuracin del mismo.
El registro de transformacin incluye una traza desde cada elemento del PIM a los elementos
correspondientes en el PSM, especificando que parte de los mapas de transformacin fueron
empleados para derivar los elementos del PSM desde los elementos del PIM. Una herramienta
que mantenga los registros de transformacin debe ser capaz de sincronizar de forma automtica
los cambios producidos en un modelo al otro.
El PSM producido por una transformacin es un modelo del mismo sistema que ha sido
especificado en el PIM. Tambin especifica como el sistema hace uso de una determinada
plataforma.
Un PSM, ser una implementacin del sistema si proporciona toda la informacin necesaria
para construir el sistema y ponerlo en marcha.
Una vez descrita y explicada la estrategia del estndar MDA, el marco de gil de trabajo,
siguiendo lo descrito por este estndar, sugiere que todo este mecanismo de planteamiento
MDA, sea dirigido de manera automtica y asistida por algn Framework (marco de trabajo),
que permita contemplar gran parte de este especificacin y cuya curva de aprendizaje sea
minima para los desarrolladores.
El Framework que se ajusta a las necesidades del presente trabajo, al planteamiento del estndar
MDA y lo que requiere el marco gil de trabajo es el Framework AndroMDA.
Como paso siguiente en el planteamiento del prototipo de arquitectura del sistema, se describir
el Framework seleccionado (AndroMDA), que permitir realizar las labores de modelado que se
ajusten a lo planteado por el estndar MDA y a su vez ayuden al marco gil de trabajo a cumplir
con el hito de esta fase de elaboracin.
Pgina 60 de 237
Mayo 2010
Version 1.2
3.1.7.1.2 AndroMDA
En esta seccin se detallar en que consiste este Framework y de cmo ser utilizado por el
marco gil de trabajo, detallando as, las distintas utilidades de este Framework y de cmo estas
ayudarn a cumplir con el objetivo de este trabajo. La explicacin de esta seccin se ha basado
en la siguiente referencia: [AMDA10].
Esta herramienta, es un marco de generacin extensible que se adhiere al paradigma MDA y que
toma cualquier nmero de modelos (usualmente modelos UML guardados en formato XMI
producidos por alguna herramienta case), que en combinacin con plugins de la propia
herramienta (Plantillas y bibliotecas de traduccin), produce componentes personalizados, es
decir, se puede generar componentes en un gran nmero de lenguajes entre los que se encuentra:
Java, .Net, HTML, PHP, etc.
Pgina 61 de 237
Mayo 2010
Version 1.2
PIM (Modelo independiente de la plataforma), puede ser re-utilizado luego. No est acotado
a la plataforma actual.
El prximo paso es encontrar la manera para transformar el PIM hacia el cdigo. La forma
MDA de lograr esto es, ir individualmente refinando el modelo hasta llegar al modelo especifico
de la plataforma a utilizar (PSM) y pasar de este modelo a cdigo escrito manualmente
Este es el punto en el cual AndroMDA acta, pues posee diferentes cartuchos o Cartridges
(plugins), que analizaran el PIM dado y construirn el PSM. Luego, de construido ste se usaran
plantillas para producir el cdigo, donde, el cdigo generado es un lenguaje que nunca
necesitar ser modificado manualmente, sin embargo de ocurrir el caso, existen formas
elegantes para resolver este tipo de problemas.
Una vez interpretado tanto las condiciones o marcas en el modelado, estos cartuchos, cuentan
con diferentes plantillas de los recursos necesarios para la generacin de cdigo de un lenguaje
o tecnologa determinada.
Pgina 62 de 237
Mayo 2010
Version 1.2
Capa de presentacin (Presentation layer), que contiene los elementos necesarios para
interactuar con el usuario de la aplicacin
Capa de acceso a datos (Data Access layer), contiene los elementos necesarios para acceder
Pgina 63 de 237
Mayo 2010
Version 1.2
AndroMDA, toma como entrada un modelo de negocio especificado en UML y generar una
parte significativa de las capas o niveles necesarios para construir una aplicacin Java, esto
debido a que este Framework, tiene la capacidad de traducir de manera automtica
especificaciones de alto nivel empresarial, en cdigo de calidad ahorrando as un tiempo
significativo para el desarrollo de aplicaciones.
Pgina 64 de 237
Mayo 2010
Version 1.2
Como se pude apreciar en la figura 19, por cada nivel que presenta la arquitectura se muestran
las tecnologas Java soportadas por este Framework. A continuacin se describe la seleccin de
las tecnologas por capa que ha optado utilizar el marco gil de trabajo, en base a la estructura
presentada por AndroMDA:
Capa de presentacin (Presentation layer), se ha optado por utilizar la tecnologa Struts, que
ayudara a generar componentes Web.
Capa de negocio (Business layer), en esta capa se utilizar una tecnologa que siga el
modelo POJO (Plain Old Java Object) y que sea del tipo no intrusivo. Ante esto, se ha
optado por utilizar el Framework Spring.
Capa de acceso a datos (Data Access layer), se utilizar una tecnologa de mapeo relacional
de objetos llamada Hibernate.
Almacn de datos (Data Store), se puede utilizar cualquiera base de datos, para este trabajo
se utilizar la base de datos Hypersonic.
En secciones de este apartado, se ha ido detallando el planteamiento del marco gil de trabajo
para conseguir este hito de fase (Prototipo de Arquitectura), que en resumen, es un
planteamiento basado en el diseo de modelos para conseguir los componentes necesarios de
una funcionalidad determinada.
Ya en esta seccin, es donde, se detallar cada uno de los tipos de modelos y sus componentes,
que AndroMDA sugiere utilizar para el diseo y que permitirn obtener los recursos necesarios,
para el prototipo de arquitectura.
Pgina 65 de 237
Mayo 2010
Version 1.2
Este nivel como se comenta en secciones anteriores permite la interaccin con el usuario, es por
esta razn que AndroMDA por medio de ciertos modelos UML llegar a obtener los recursos
necesarios para el funcionamiento de esta capa.
Con el objetivo de plasmar los diferentes eventos y cambios de estado que se generan en esta
capa de presentacin, AndroMDA, plantea modelar este comportamiento en base a diagramas
de actividad y estereotipos UML
El proyecto ser ejecutado en base a servicios Web (bajo plataforma J2EE), lo cual implica que
la interaccin del usuario con el sistema, ser llevada por medio de pginas JSP (basadas en
tecnologa Struts).
El diseo mostrado en la figura 20, representa las transiciones (flechas) y estados (cajas) que
tendr una pgina JSP, para procesar una determinada peticin de usuario y su respectiva
respuesta.
Jos Germn Nez Mori
Pgina 66 de 237
Mayo 2010
Version 1.2
Para modelar las clases controladoras asociados a las pginas JSP, ser necesario modelar un
diagrama de clase, en donde, la clase que haga de controlador, tenga referencia al diagrama de
actividad y las operaciones necesarias para resolver cada uno de los estados asociados al sistema.
La figura 21 muestra el diseo de una clase controladora:
AndroMDA, con el objetivo de modelar las funcionalidades que tendr el sistema, sugiere
modelar estas en funcin de diagramas de casos de uso (ver figura 22).
Pgina 67 de 237
Mayo 2010
Version 1.2
En este nivel, como se ha ido detallando en secciones anteriores, se pretende modelar el ncleo
de una aplicacin. AndroMDA, sugiere para esta capa modelar componentes de tipo servicio,
que representen cada una de las clases necesarias para resolver las funcionalidades del sistema
Estos tipos de servicio, representarn fachadas que ocultan la lgica de negocio que se pretende
plasmar a este nivel, permitiendo as de esta manera menos acoplamiento tanto con la capa de
presentacin, como con la capa de Datos. La figura 23 muestra este diseo:
En esta capa se modelar las distintas entidades de datos, con las que contar el sistema. Todo
esto siguiendo lo sugerido por AndroMDA, que plantea plasmar un mapeo relacional de objetos,
que se ajuste a la tecnologa usada en este nivel (Hibernate). La figura 24 muestra este diseo:
Pgina 68 de 237
Mayo 2010
Version 1.2
Una vez mostrado todos los componentes a modelar en cada una de las capas, nos preguntamos,
como se representa la interaccin de estos componentes entre un nivel y otro? Para esto
AndroMDA, sugiere utilizar flechas de dependencias entre componentes, ver la figura 25:
Para el modelado se utilizar la herramienta MagicDraw UML 9.5, que permitir plasmar
los diseos en formato XMI [MGDU10].
Para transformar los modeles en formato XMI, hacia cdigo, se utilizar la herramienta
Apache Maven en su versin 2.2.1 [AMVN10]
En base a todos estos modelos, tecnologas y herramientas que se ha ido detallando a lo largo de
Jos Germn Nez Mori
Pgina 69 de 237
Mayo 2010
Version 1.2
Scrum, cuenta con un elemento llamado Sprint backlog, que consiste en descomponer las
funcionalidades del Product backlog, en tareas necesarias para construir un incremento (una
parte completa y operativa del sistema) [JPAL02].
Este enfoque, es til porque permite descomponer el proyecto en tareas de tamao adecuado
para determinar el avance diario e identificar riesgos y problemas sin necesidad de procesos
complejos de gestin [JPAL02]. Adems tomar en cuenta que en Scrum un Sprint es
equivalente a una iteracin del marco gil de trabajo.
Deber de realizarse de forma conjunta con todos los miembros del equipo.
Deber de tomarse en cuenta todas las tareas identificadas por el equipo para conseguir el
objetivo del Sprint.
Tiene que ser visible para todo el equipo. Idealmente en una pizarra o pared en el mismo
espacio fsico donde trabaja el equipo.
Para el Sprint backlog, Scrum sugiere los siguientes formatos en los que se puede realizar esta
tarea:
Hoja de Calculo.
Pgina 70 de 237
Mayo 2010
Version 1.2
El marco gil de trabajo, opta por realizar esta labor en base a una herramienta colaborativa, que
permita registrar los Sprint y que este a la vez accesible para todo el equipo de trabajo.
Sprintomer, fue creado originalmente por la gente que trabaja en proyectos giles para sus
propios fines y ahora esta disponible como producto Freeware.
Pgina 71 de 237
Mayo 2010
Version 1.2
a
b
c
Comentarios
En esta seccin es donde se realiza el registro de los Sprint que gestionara el proyecto.
Como se puede ver en la figura 23, donde se desglosa la seccin del registro de los
Sprint, existen niveles de registro:
a. Nivel Sprint, a este nivel es donde se registra los Sprint (iteraciones) que
contendr el proyecto.
b. Nivel de Historias de usuario o funcionalidades, a ese nivel se registrar las
funcionalidades que se pretende gestionar en un Sprint.
c. Nivel de tarea, a este nivel ya se habla de una mayor granularidad de un
Sprint, debido a que en este nivel se registra las tareas a realizar por cada
funcionalidad registrada.
Pgina 72 de 237
Mayo 2010
Version 1.2
Esta forma de gestionar el proyecto deber de ser aplicada tambin en futuras iteraciones, es
decir, que se deber de seguir esta estructura de planificacin para las iteraciones de la fase de
desarrollo.
De acuerdo a esta premisa, esta fase de desarrollo seguir el planteamiento dado en la fase de
elaboracin para la implementacin de cada una de las funcionalidades del sistema.
Pgina 73 de 237
Versin 1.1
Junio 2009
Version 1.1
VERSION
1.0
DESCRIPCIN
Fase de Inicio del marco gil de
AUTOR
Jos Germn Nez Mori
trabajo.
120/10/2010
1.1
trabajo.
Page 75 of 237
Junio 2009
Version 1.1
La metodologa AUP (Agile Unified Process), que es una de las metodologas referentes del
presente trabajo, plantea una serie de actividades a realizar en la fase de inicio, como por
ejemplo: definicin de riesgos del proyecto, estimacin de costes, etc. En esta primera fase, el
marco gil, realiza su planteamiento basado en dos de las actividades que sugiere realizar en
esta fase la metodologa AUP, las cuales son: Definicin del alcance y la planificacin del
proyecto.
Esta primera fase, tal cual se describe en el capitulo anterior, es una fase de inicio de la
metodologa que plantea este marco gil de trabajo, donde, se definir a un nivel alto lo que el
sistema va hacer y lo que no es suficiente a realizar, estableciendo as, los lmites dentro de los
cuales el equipo de desarrollo ira a operar, es decir, se determinar el alcance del proyecto
[SABL06].
En cuanto a la planificacin del proyecto, el marco gil de trabajo, plantea la gestin de las
funcionalidades del sistema en base a lo descrito en la metodologa Scrum, que es bsicamente,
un inventario de caractersticas que el propietario del producto desea obtener. Donde, por ser
una metodologa gil, no debe interpretarse en el sentido de que todo el proyecto esta previsto
en este punto [JPAL02].
Tal cual define el marco gil de trabajo, esta fase tiene un objetivo de fase llamado hito, que
consiste, en producir al final de la misma una serie de artefactos, que corresponde con cada una
de las actividades consideradas en esta fase. Por lo tanto, el presente capitulo, se basar en el
desarrollo de cada uno de estos artefactos planteados.
Cabe comentar, que el presente trabajo basar su anlisis en las funcionalidades de un sistema
relacionado con el mercado de seguros de vida, es decir, un sistema que gestiona, productos que
incluyen seguros de vida, riesgo, rentas, planes individuales de ahorro y asegurados en general.
Page 76 of 237
Junio 2009
Version 1.1
En esta rama de seguros de vida, uno de los activos importantes, son las personas a las cuales se
brindan los productos de vida, es por este motivo que un sistema asociado a este negocio debe
contemplar una gestin de las personas aseguradas y sus vnculos referentes.
De acuerdo a estas premisas, el presente trabajo, opta por ejecutar su planteamiento, sobre las
funcionalidades mnimas referentes a la gestin de personas aseguradas. Es as, que estas
funcionalidades sern desarrolladas a lo largo de este capitulo, en base al ciclo de vida del
software planteado por el marco gil de trabajo
Id. Historia
PER001
PER002
PER003
PER005
Descripcin
Relacionar Personas
Gestionar Fusin de Personas
Buscar Personas Fusionadas
Gestionar Situacin Familiar de la
Persona (alta)
PER004
Prioridad Estimacin
10
9
9
8
Observaciones
JGNuez
Esta funcionalidad deber de
empezar a desarrollarse una vez
publicado los servicios de la
JGNuez
Entidaed Financiera
Responsable
JGNuez
JGNuez
JGNuez
Page 77 of 237
Junio 2009
Version 1.1
: PER0001
Prioridad:
Relacionar Personas
Esta funcionalidad permitir crear relaciones entre las personas dadas de alta en el sistema y
que sean de la misma red comercial, para lo cual, es necesario que se tenga como parmetros
de entrada, tanto el cdigo de la persona gestionada, como la red comercial a la que pertenece.
Para generar las relaciones de la persona gestionada, esta funcionalidad debe permitir
buscar las personas a relacionar por los siguientes criterios:
Tipo Vinculo, Vinculo, cdigo de la persona, tipo de persona, sin
identificacin, fiscalmente aplicable.
Una vez ubicada la persona, se dar de alta en la relacin y se adicionar a las
relaciones existentes de la persona gestionada.
Usuario de Creacin:
Estimacin:
Fecha Alta:
01/04/2010
Dependencia:
Aplicacin
Comentarios
Interaction Feedback
Progress feedback
Page 78 of 237
Junio 2009
Version 1.1
Progress feedback
Warning
Global Undo
Abort Operation
Go back
Page 79 of 237
Junio 2009
Version 1.1
: PER0002
Nombre :
Prioridad:
Gestionar Fusin de Personas
De s cripcin: Esta funcionalidad permitir la fusin o no fusin de personas candidatas a fusionarse, donde
la persona principal de la fusin, tendr la referencia a los contratos, direcciones de correo
electrnico del grupo de personas fusionadas y ser la persona visible ante cualquier bsqueda
en el sistema.
Para esta funcionalidad, previamente se tiene que haber seleccionado de la lista de personas
candidatas a fusionarse, la personas que ser la principal de la fusin. Una vez hecho esta
seleccin, se debe mostrar un listado con la persona seleccionada anteriormente y las personas
candidatas a la fusin, esta lista debe tener la siguiente informacin:
De este listado, el usuario selecciona las personas a fusionar o no fusionar, adems esta
funcionalidad debe permitir adicionalmente, adicionar al listado de candidatos a fusionar,
cualquier persona del sistema (fusin manual)
A plicacin
Progress feedback
W arning
Com entarios
Page 80 of 237
Junio 2009
Version 1.1
Global Undo
Object Specific Undo
Abort Operation
Go back
Page 81 of 237
Junio 2009
Version 1.1
: PER0003
Nombre:
Prioridad:
Buscar Personas Fusionadas
El sistema permitir la bsqueda de personas que han pasado por un proceso de fusin
(tanto de las personas principales o fusionadas).
Se debe permitir, tanto la bsqueda de personas fsicas como jurdicas, cada bsqueda con
criterios particulares
Bsqueda de personas fsicas:
El sistema muestra los siguientes criterios de bsqueda:
Descripcin:
Una vez ingresado los datos necesarios, se mostrar el listado con las personas fusionadas
coincidentes. Esta lista mostrar la siguiente informacin:
Una vez ingresado los datos necesarios se mostrar el listado con las personas fusionadas
coincidentes. Esta lista mostrar la siguiente informacin:
Usuario de Creacin:
Estimacin:
Aplicacin
Comentarios
Global Undo
Page 82 of 237
Junio 2009
Version 1.1
Abort Operation
Go back
Page 83 of 237
Junio 2009
Version 1.1
Step by Step
P referentes
P ersonal Object Space
Favourite
Multilevel Help
Commands Aggregation
Historia de Usuario N
: PER0004
Nombre:
Prioridad:
Usuario de Creacin:
Estimacin:
Aplicacin
Comentarios
Progress feedback
Page 84 of 237
Warning
Junio 2009
Version 1.1
Global Undo
Object Specific Undo
Abort Operation
Go back
Page 85 of 237
Junio 2009
Version 1.1
: PER0005
Nombre :
Prioridad:
Gestionar Situacin Familiar de la
Persona (alta)
De s cripcin: Esta funcionalidad permitir la gestin (Alta) de la situacin familiar asociada a un persona
fsica.
Esta funcionalidad, deber presentar la siguiente informacin a cumplimentar:
Datos Asegurado:
Situacin familiar, NIF del cnyuge, % de retencin del IRPF, fecha de movilidad
geogrfica, prolongacin de la actividad laboral (valor SI /NO), pensin compensatoria a
favor de cnyuge (importe anual), anualidades por alimentos a favor de los hijos.
Esta seccin, permitir adicionar o eliminar los datos de hijos o descendiente de un listado
mostrado en la parte inferior de esta seccin.
Datos de Ascendientes mayores de 65 aos o discapacitados que viven con el perceptor:
Esta seccin, permitir adicionar o eliminar los datos de los ascendientes de un listado
mostrado en la parte inferior de esta seccin.
A plicacin
Com entarios
W arning
Global Undo
Object Specific Undo
Page 86 of 237
Junio 2009
Version 1.1
Step by Step
Preferentes
Personal Object Space
Favourite
Multilevel Help
Commands Aggregation
Abort Operation
Go back
Structured Text Entry,
Id
Historia
Criterio de validacin
de los Requisitos de Usabilidad
PER0001
Relacionar
Personas
Page 87 of 237
Junio 2009
Version 1.1
Dar de alta nuevas relaciones asociadas a la
persona gestionada y luego confirmar esta
operacin. Ante esto el sistema deber
mostrar el siguiente mensaje en formato de
notificacin: "Se va a gurdar los cambios en
las relaciones de la persona gestionada,
Warning
Page 88 of 237
Junio 2009
Version 1.1
Criterio de validacin
de los Requisitos de Usabilidad
Historia
P ER0002
Gestionar Fusin
de Personas
Progress feedback
W arning
Abort Operation
Page 89 of 237
Junio 2009
Version 1.1
Realizar una fusin, y validar las siguientes
casusticas tras el evento de aceptar la fusin:
PER0003
Criterio de validacin
de los Requisitos de Usabilidad
Historia
Buscar personas
fusionadas
Abort Operation
Page 90 of 237
Junio 2009
Version 1.1
Validar los formatos de los campos de la
bsqueda:
Cdigo de persona, alfanumrico de 6
caracteres (Campo obligatorio), Tipo
identificacin, alfanumrico, siendo
este un listado a seleccionar (Campo
obligatorio), Nmero de identificacin,
alfanumrico de 6 caracteres, Sin
identificacin, listado de seleccin ( Si
/ No). Estado de la persona en el
sistema,
listado
de
seleccin
(Habilitada / Inhabilitada), Cdigo
externo de la persona, alfanumrico de
8 caracteres (Campo obligatorio), Red
comercial, listado a seleccionar
Bsqueda de personas fsicas:
Primer y segundo apellido, primer y
segundo nombre, alfanumricos de 50
caracteres, Fecha de nacimiento, con el
formato DD/MM/AAAA, Nmero de
tarjeta sanitaria, alfanumrico de
caracteres.
segundo
lo siguientes
Page 91 of 237
PER0004
Junio 2009
Version 1.1
Criterio de validacin
de los Requisitos de Usabilidad
Historia
Recuperar Datos
Entidad Finaciera
Progress feedback
Warning
Abort Operation
Go back
Page 92 of 237
Junio 2009
Version 1.1
Validar los formatos de los campos del criterio:
Realizar
siguiente
PER0005
Criterio de validacin
de los Requisitos de Usabilidad
Historia
Gestionar
Situacin Familiar
de la Persona
(alta)
Warning
Abort Operation
Go back
Page 93 of 237
Step by Step
Multilevel Help
Commands Aggregation
Junio 2009
Version 1.1
Verificar que la funcionalidad se encuentra
dividida en tres pasos a cuplimentar, claramente
informados al usuario del sistema
Verificar que en cada uno de los pasos a
cumplimentar, existe un icono de ayuda donde
tras ejecutar el mismo se muestre una ventana
informativa del paso en el que se encuentre
Validar que tras ejecutar las teclas ctrl+z, en el
paso en que se encuentre, se muestre la
respectiva ventana de ayuda del paso.
Page 94 of 237
Versin 1.0
VERSION
1.0
DESCRIPCIN
Fase de Elaboracin del marco gil
AUTOR
Jos Germn Nez Mori
de trabajo.
Pgina 96 de 237
Estas actividades han de ser ejecutadas sobre alguna de las historias de usuarios antes expuestas
(ver capitulo Fase de inicio del marco gil de trabajo), que segn sugiere la metodologa AUP
(Agile Unified Process), deber ser alguna historia o historias que permitan implementar de
manera iterativa la arquitectura del sistema que constituir el ncleo central, donde se mitigan
las cuestiones de alto riesgo [SABL06].
De acuerdo a este enfoque y siguiendo el objetivo del presente trabajo se seleccionar una de las
historias de usuario de las antes expuestas, que represente el ncleo central del sistema, es decir,
una historia de usuario que contemple la gran mayora de requisitos de usabilidad. Donde, la
funcionalidad seleccionada, sirva como estructura base a la implementaciones de las dems
historias de usuario.
Cabe mencionar, que la manera de trabajo ejecutada en esta fase servir como gua para las
iteraciones de desarrollo de la fase de construccin.
Pgina 97 de 237
Descripcin
Relacionar Personas
Gestionar Fusin de Personas
Buscar Personas Fusionadas
Gestionar Situacin Familiar de la
Persona (alta)
PER004
Prioridad Estimacin
10
9
9
8
Observaciones
Responsable
JGNuez
JGNuez
JGNuez
JGNuez
Esta funcionalidad deber de
empezar a desarrollarse una vez
publicado los servicios de la
JGNuez
Entidaed Financiera
La herramienta a utilizar, como se comenta, en el capitulo del Planteamiento del marco gil de
trabajo, es la herramienta Sprintometer, donde se registrar como Sprint principal la historia de
usuario seleccionada y como sub-tareas, cada uno de los patrones de usabilidad asociados al
diseo.
Pgina 98 de 237
Pgina 99 de 237
apreciar en esta planificacin, que cada uno los patrones de usabilidad han sido considerados
como tareas, los cuales a su vez se han dividido en tareas pequeas, que en conjunto permitirn
la integracin de un patrn de usabilidad determinado al diseo de la funcionalidad en curso.
Con la planificacin presentada, se pretende cumplir con el desarrollo del hito de Prototipo de
Arquitectura. De acuerdo a esto, en la siguiente seccin, se seguir con lo planificado,
desarrollando as, cada una de las tareas pactadas en este Sprint.
Como se puede apreciar en la tabla 18, como primera tarea de planificacin se encuentra la
implementacin de la funcionalidad en si (Relacionar Personas), esto debido, a que es una
estrategia a seguir para el desarrollo de este prototipo de arquitectura.
Para esta tarea se ha contemplado las siguientes sub-tareas, registradas en la planificacin del
Sprint, ver la siguiente tabla 19:
En el modelado planteado por AndroMDA (ver capitulo Marco gil de trabajo), un caso de uso
representar una funcionalidad especifica del sistema y para dar a entender esto en el momento
de la generacin de cdigo se estereotipa al caso de uso con: FrontEndUseCase.
Estos resultados, consisten en presentar cada una de las pantallas de la aplicacin, generadas en
base a AndroMDA y detallar brevemente el funcionamiento de las mismas.
Una vez presentado los resultados de esta primera tarea, se actualizar el Sprint con los avances
realizados en esta tarea:
Siguiendo lo planteado por el presente Sprint, la tarea de integracin del patrn de usabilidad
Warning, presenta la siguiente planificacin, mostrada en la tabla 21:
Tabla 21: Planificacin inicial de la tarea de integracin del patrn de usabilidad Warning
Como se pude apreciar en la tabla 21, se presentan las sub-tareas asociadas a esta integracin,
las cuales son la continuacin de la tarea de implementacin de la funcionalidad (ver tabla 20Actualizacin de la planificacin de la tarea de implementacin de la funcionalidad).
Para la integracin de este patrn de usabilidad, al diseo de la funcionalidad de Relacionar
Personas, el presente trabajo, tomara como base lo especificado en la gua del patrn de
usabilidad Warning (ver anexo 01 Especificacin Patrn de usabilidad Warning). De esta gua,
se toma los siguientes diagramas base para la integracin:
adicionado
dos
nuevos
componentes
de
tipo
servicio
(RelacionSession
View
RelacionarPerController
Controller
RelacionarPerController
DomainClassWrapper
RelacionesWrapperService
DomainClass
RelacionesService
RelacionSession
Tabla 22: Correspondencia de componentes del patrn de usabilidad Warning y los
componentes de la funcionalidad
A continuacin, el detalle de este flujo de trabajo, donde para tener relacin de los componentes
que se describen, se podr revisar la figura 42 (Modelado de la clase controladora con el Patrn
de usabilidad Warning):
Una vez realizada la peticin de adicionar una nueva relacin, la clase controladora
(RelacionarPerController), recibe los datos necesarios para el procesamiento y verifica si el
flujo de trabajo necesita de una confirmacin del usuario.
Una vez confirmado esta operacin, por medio del usuario, esta peticin es enviada a la
clase
controladora
(RelacionarPerController),
la
cual,
solicita
al
componente
Figura 43: Confirmacin de adicin de nueva relacin segn el patrn de usabilidad Warning
Como se puede apreciar en la figura 44, ante el evento de adicin de una nueva relacin a la
persona seleccionada, se muestra una alerta del tipo confirmacin, donde se advierte al usuario
que los datos que ha seleccionado estn a punto de persistirse, de confirmarse esta alerta, se
enviar la peticin al sistema, el cual se encargar de guardar la informacin en la base de datos
y actualizar la pantalla con la nueva adicin.
Esta Integracin del patrn de usabilidad SSF, se realizar tanto en el diseo como en la
implementacin de la funcionalidad Relacionar Personas.
Tabla 24: Planificacin inicial de la tarea de integracin del patrn de usabilidad SSF
Siguiendo lo especificacin del patrn de usabilidad SSF (ver anexo 02 - Especificacin Patrn
Jos Germn Nez Mori
Para esta integracin se adicionan 4 nuevos componente que interactuarn entre la capa de
negocio y la capa de presentacin, estos componentes son: AdministradorEstados,
EstadoErrorService, EstadoExitoService, EstadoAdvertenciaService. De acuerdo a esto el
diseo de la funcionalidad de Relacionar Personas, queda de la siguiente manera:
De acuerdo esto, y buscando entender los detalles de esta integracin, se presenta una tabla
(tabla 25) de correspondencias entre componentes de diseo de la especificacin de este patrn
(ver figura 46) y el diseo de la integracin a la funcionalidad en curso (ver figura 48):
View
RelacionarPerController
Controller
RelacionarPerController
StatusManager
AdministradorEstados
ConcreteStatus
EstadoErrorService
ConcreteStatus
EstadoExitoService
ConcreteStatus
EstadoAdvertenciaService
DomainClass
RelacionesService
Tabla 25: Correspondencia de componentes del patrn de usabilidad SSF y los componentes de
la funcionalidad
Estos nuevos componentes de la integracin de este patrn de usabilidad (ver figura 19),
gestionarn los estados, ante la operativa de Adicin de una nueva Relacin, permitiendo de
esta manera, mantener informado al usuario ante cualquier cambio de estado, relacionado con la
operativa en curso.
El detalle de este flujo, tiene como base el diagrama de secuencias planteado por la
especificacin de este patrn (ver figura 47).
A continuacin, el detalle de este flujo de trabajo, donde para tener relacin de los componentes
que se describen, se podr revisar la figura 48 (Integracin del patrn de usabilidad SSF en el
diseo de la funcionalidad Relacionar Personas):
Una vez determinado, el tipo de estado que se ha producido en la capa de negocio, este
componente administrador (AdministradorEstados), enviar la informacin para su
tratamiento al componente respectivo, es decir, si se ha producido un error se enviar los
datos necesarios al componente EstadoErrorService.
La clase controladora RelacionarPerController, una vez que enva los datos para su
persistencia a la capa de negocio, consultar a cada uno de los componentes de gestin de
estados (EstadoErrorService, EstadoExitoService, EstadoAdvertenciaService), si se ha
producido algn cambio de estado en la operativa en curso (Adicin de una relacin).
De haberse producido algn cambio de estado, la clase controladora, recoger los datos
necesarios del componente de gestin de estados respectivo y proceder a informar de esto a
la vista, por medio de mecanismos del Framework Struts utilizado en la capa de
presentacin.
usabilidad SSF:
Tabla 26: Planificacin actualizada de la tarea de integracin del patrn de usabilidad SSF
Figura 52: Integracin del patrn de usabilidad GU en la capa de negocio y capa de diseo
Adicional a estos cambios, se modifica tambin el flujo de actividades de la pgina Web, de la
funcionalidad en curso. Con estos modificaciones en el flujo de actividad, se busca adicionar un
nuevo evento a la misma, que haga referencia a la operativa de deshacer (Undo) y que esta tenga
su operacin de soporte en el lado del sistema, es decir, una operacin en su clase controladora
relacionada (ver figura 53). De acuerdo a esto el diagrama de actividades de la pgina Web
queda de la siguiente manera:
View
RelacionarPerController
Controller
RelacionarPerController
HistoryList
RelacionesHistorySessin
Command
RelacionesServiceBase
ConcreteCommand
RelacionesService
DomainClass
Relacion
HistoryException
El detalle de este flujo, tiene como base el diagrama de secuencias planteado por la
especificacin de este patrn (ver figura 53).
De acuerdo a esto, a continuacin, se presenta el detalle de este flujo de trabajo, donde para
tener relacin de los componentes que se describen, se podr revisar la figura 54 (Integracin
del patrn de usabilidad GU en la capa de negocio y capa de diseo):
De este objeto que se enva a la capa de negocio, su referencia ser guardada por el
componente: RelacionesHistorySessin, con lo cual se estara clonando el comando que
se esta ejecutando (Adicin de una nueva relacin).
Detalle del flujo ante el evento de deshacer (Undo), las nuevas relaciones:
Con este listado de objetos clonados, la clase controladora realiza una peticin de deshacer
las relaciones asociadas a estos objetos. Esta peticin se ejecuta contra la operacin
undoRelaciones del componente de la capa de negocio RelacionesService.
El patrn Abort Operation, en adelante AO, pertenece a la familia del patrn de usabilidad
Abort, siendo este patrn AO, una rama especifica, es decir, una especificacin concreta para
ciertas tareas de usabilidad, que en este caso puntual, es aplicar este patrn para cancelar una
operacin en curso.
Este patrn de usabilidad AO, basa mucho su planteamiento en el patrn de usabilidad Global
Undo (detallado en la anterior seccin 2.2.4 del presente capitulo), es por este motivo, que la
integracin de este patrn tomar como base el diseo y la implementacin del patrn Global
Undo.
permitir atender las peticiones de los usuarios ante el evento de cancelar la operacin en curso
(adicionar una nueva relacin).
Este nuevo flujo, que hace referencia al evento de Cancelar, deber indicar, que una vez
ejecutado esta operativa, se debe de regresar al home de la aplicacin, es decir, a la pgina de
bsqueda de personas. Por tal motivo, este flujo deber de tener un estado de fin, que haga
referencia a la funcionalidad de Bsqueda de Personas.
Segn estas premisas el diseo de actividades asociadas a la pgina de Adicin de una nueva
relacin, queda de la siguiente manera:
La modificaciones necesarias para esta integracin, han seguido lo planteado por el patrn AO
(ver figura 59), por tal motivo, se presenta a continuacin una tabla de correspondencias de
componentes, tanto de la especificacin, como de la integracin (ver figura 61):
View
RelacionarPerController
Controller
RelacionarPerController
HistoryList
RelacionesHistorySessin
Command
RelacionesServiceBase
ConcreteCommand
RelacionesService
DomainClass
Relacion
HistoryException
ProgressIndicator
A continuacin, el detalle de este flujo de trabajo, donde para tener relacin de los componentes
que se describen, se podr revisar la figura 61 (Integracin del patrn de usabilidad AO en la
capa de negocio y capa de presentacin):
De este objeto que se enva a la capa de negocio, su referencia ser guardada por el
componente: RelacionesHistorySessin, con lo cual se estara clonando el comando que
se esta ejecutando (Adicin de una nueva relacin).
Con este listado de objetos clonados, la clase controladora realiza una peticin de deshacer
las relaciones asociadas a estos objetos. Esta peticin, se ejecuta sobre la operacin
undoRelaciones del componente de la capa de negocio RelacionesService.
Relacin, y solicita por cada una de ellos, se elimine su registro persistido en Base de datos.
Una vez terminada, la operativa de eliminar los registros asociados a la clonacin, la clase
controladora (RelacionarPerController), redirecciona la response hacia la funcionalidad de
Bsqueda de Personas, que es para esta aplicacin el home de la misma.
Se adiciona una nueva relacin a la persona seleccionada (PER003), ver la siguiente figura:
Tras el evento de Cancelar, el sistema, elimina los registros asociados a las ltimas adiciones,
es decir, aquellos que han sido clonados y luego redirige el flujo hacia el home de la aplicacin
(funcionalidad de bsqueda de personas).
Tabla 33: Planificacin inicial de la tarea de integracin del patrn de usabilidad SPF
usuario Relacionar Personas (ver capitulo de Fase de inicio del marco gil de trabajo). Debido,
a que estamos en una iteracin que tiene como objetivo, construir el prototipo de la arquitectura
que mitigue las cuestiones de alto riesgo, el presente trabajo ha decidido incluirlo este patrn en
la arquitectura inicial.
Esta patrn de usabilidad SPF, ser aplicado, sobre la funcionalidad dada por el patrn de
usabilidad Global Undo (ver seccin 2.2.4 Integracin del patrn de usabilidad Global Undo),
es decir, que ira informando el progreso de la operacin de deshacer (Undo) las adiciones de
nuevas relaciones.
De acuerdo a las modificaciones comentadas lneas arriba, se muestra el diseo tanto de la capa
de negocio como la de presentacin:
Figura 65: Integracin del patrn de usabilidad SPF en la capa de negocio y capa de diseo
View
RelacionarPerController
Controller
RelacionarPerController
DomainClass
RelacionesService
DomainClass
Relacion
ProgressIndicator
IndicadorProgresoService
Monitor
Tabla 34: Correspondencia de componentes del patrn de usabilidad SPF y los componentes de
la Integracin
A continuacin, el detalle de este flujo de trabajo, donde para tener relacin de los componentes
que se describen, se podr revisar la figura 68 (Integracin del patrn de usabilidad SPF en la
capa de negocio y capa de diseo):
Solicitada la peticin de deshacer las nuevas relaciones adicionadas (Undo), la vista enviar
dicha peticin para ser resuelta en su controlador relacionado (RelacionarPerController) y a
su vez, esta peticin activar un timer en el objeto de monitorizacin, que pasado un
determinado tiempo, ejecutar determinadas acciones.
Esta operacin undoRelaciones, recibir como parmetro un listado de las relaciones que
deber de solicitar a la capa de datos que se elimine de base de datos, donde, por cada
relacin eliminada deber de contabilizarse el progreso que lleva respecto al total de
relaciones a eliminar, he informar de esto a los escuchadores suscritos.
Figura 69: Barra de progreso mientras se aplica la operacin de Undo a las relaciones
adicionadas
Una vez finalizada la operacin, de deshacer las adiciones de relaciones, la barra de progreso
desaparecer actualizando la pgina Web y mostrar las relaciones iniciales que tena antes de
estas adiciones.
Jos Germn Nez Mori
Tabla 35: Planificacin actualizada de la tarea de integracin del patrn de usabilidad SPF
Al igual, que el patrn de usabilidad System Progress Feedback, el patrn AC, no fue
considerado como parte de los requisitos de usabilidad asociados a la historia de usuario
Relacionar Personas (ver capitulo de Fase de inicio del marco gil de trabajo). Debido, a que
estamos en una iteracin que tiene como objetivo construir el prototipo de la arquitectura, que
mitigue las cuestiones de alto riesgo, el presente trabajo ha decidido incluirlo este patrn en la
arquitectura inicial.
Mencionar, que esta integracin del patrn de usabilidad AC, basar su diseo en los modelos
base de la especificacin del patrn Abort, teniendo ciertos matices propios del patrn de
Jos Germn Nez Mori
usabilidad AC, por tal motivo, se utilizar el mismo diagrama de clases base utilizado por el
patrn Abort Operation (ver Figura 59).
La diferencia en los enfoques de integracin entre el patrn Abort Operation y el AC, reside en
el diseo base de la interaccin de los componentes que intervienen en el planteamiento de uno
u otro patrn. Por tal motivo la integracin del patrn de usabilidad AC, utilizar como base el
siguiente diagrama de secuencias:
Figura 71: Integracin del patrn de usabilidad AC en la capa de negocio y capa de diseo
Como se puede ver en la figura 74, se adiciona nuevas operaciones al componente de servicio
IndicadorProgresoService y a la clase controladora, las cuales permitirn, que se ejecuten las
tareas necesarias de este patrn de usabilidad AC, sobre el comando del patrn System Progress
Feedback.
Adicional a estos cambios, se modifica tambin el flujo de actividades asociadas la pgina Web,
de adicin de nuevas relaciones. Esta modificacin, consiste en adicionar un nuevo evento
llamado cancelarComando y su respectivo estado de accin en el lado del sistema (operacin
en la clase controladora), que permite las peticiones de cancelar un comando determinado, en
este caso en concreto, el comando de informacin de progreso de la operativa de deshacer
(Undo).
View
RelacionarPerController
Controller
RelacionarPerController
HistoryList
Command
RelacionesServiceBase
ConcreteCommand
RelacionesService
DomainClass
Relacion
HistoryException
ProgressIndicator
IndicadorProgresoService
Que alguno de ellos, no son requeridos por esta patrn AC, si no mas bien, por el patrn de
usabilidad Abort Operation, siendo este el componente HistoryList.
Este flujo de trabajo, es una secuencia de actividades que se expone en esta seccin, con el
objetivo, de proporcionar un mayor detalle del funcionamiento de este patrn de usabilidad AC,
integrado a la funcionalidad respectiva. Esta secuencia de actividades, se basa en la
especificacin del patrn de usabilidad Abort, especficamente, en su diagrama de secuencia
(ver figura 73).
A continuacin, el detalle de este flujo de trabajo, donde para tener relacin de los componentes
que se describen, se podr revisar la figura 74 (Integracin del patrn de usabilidad AC en la
capa de negocio y capa de diseo):
Esta barra de progreso informativa, contar con la opcin de cancelar, la cual permitir
abortar el progreso del comando en curso. Esta cancelacin del comando en curso, implicar
abortar la barra de progreso y cancelar las acciones respectivas de la operacin Undo.
Una vez realizada la peticin de cancelar el comando, la clase controladora, recibir esta
peticin para su tratamiento en la operacin cancelarComando.
del
estado
de
cancelacin
de
comando
al
componente
Figura 74: Barra de progreso con opcin de cancelar, ante la operativa de Undo de las
relaciones adicionadas
Mientras se va informando del progreso de la operativa de Undo de las relaciones adicionadas,
se pude cancelar este progreso, implicando esto, que se aborta la operacin hasta el punto de
Jos Germn Nez Mori
progreso que se tena, es decir, que eliminan aquellas relaciones antes de abortar la operacin.
Para el caso presentado en la figura 51 (Barra de progreso con opcin de cancelar, ante la
operativa de Undo de las relaciones adicionadas), si se cancela la operativa en curso al 20 por
ciento de su avance, implicar que solo elimine una relacin de las adicionas, esta relacin sera
la asociada a la persona PER001.
VI. Conclusiones
En el presente capitulo, se presenta las conclusiones obtenidas tras la realizacin de esta Tesis
de fin de Master.
Este trabajo fue desarrollado siguiendo los lineamientos de las metodologas giles: Scrum,
Agile Unified Process (AUP) y Extreme Programming (XP), que en conjunto con los principios
y patrones de usabilidad, conformaron el marco gil de trabajo y tal cual se esperaba,
contribuyeron como una gua para la inclusin de los principios de usabilidad en el desarrollo
del sistema.
Desde el punto de vista metodolgico, el marco gil de trabajo planteado, fue utilizado como
base para la aplicacin del paradigma orientado a objetos, demostrando de esta manera su
amplia adecuacin y alto grado de utilidad en el desarrollo de sistemas que sigan esta estructura.
De acuerdo a todo lo que se describe a lo largo de este trabajo de Tesis de fin Master, queda
demostrado, la compatibilidad de la usabilidad con las metodologas giles, debido a que, cada
uno de sus patrones y principios de usabilidad han sido engranados apropiadamente al
planteamiento del marco gil de trabajo y todo esto justifica:
Que no solo la usabilidad se limita a la interfaz del sistema, si no, que tambin afecta al
ncleo del sistema
Jos Germn Nez Mori
[MART91] Martin, J., Rapid Application Development, Macmillan Inc., New York,
1991.
[MFAS01] Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham,
Martin Fowler, Jim Highsmith, Andrew Hunt, Ron Jeffries, Brian Marick, Robert C.
Martin, Ken Schwaber, Jeff Sutherland, Dave Thomas, Manifiesto for Agile Software
[LECCO09] Luis Enrique Corredera de Colsa, Arquitectura dirigida por modelos para
J2ME, 2009
[SABL08] Scott Ambler, Agile Model Driven Development (AMDD): The Key to
Scaling Agile Software Development,
http://www.agilemodeling.com/essays/amdd.htm, 2008.
VIII. Anexos
USABILITY-ENABLING GUIDELINE
Identification
Name
Warning
Family
Feedback
Aliases
Intent
Providing different alert types upon execution of potentially damaging actions
Problem
Certain application tasks have potential serious consequences (that, for example, may not be undoable) so the application might need to verify with the user one last time before actually executing the task,
to prevent them from calling said tasks by mistake, or to allow them to reconsider if needed.
Context
Applications where user tasks may have potentially damaging effects, including permanent changes or loss of data
Required Mechanisms
Abort: Certain types of warnings require a cancel button. See cancel operation section in Abort Mechanism
Elaboration
Stakeholder should know that the more damaging the action (for
irreversible actions) the higher the level of warning. (and viceversa). Be careful not to over-do.
Actions of little damage can be left open as to not overload the
user with notifications.
Use notifications only when actually useful (the user will do
something with the information provided)
Warnings are considered preemptive, so notification that an
error has occurred falls outside of the scope of this pattern (See
Status Feedback).
W_EX-1: Notification
Remember that during or before
execution of an action. It does not
interrupt nor does it expect user feedback
W_EX-2: Confirmation:
Authorization
W_EX-3: Authorization
W_SR-2 Notify
Once the Warning is issued, if it is of the kind Notification, it must reach the UI Component, after which the invocation automatically returns to the Wrapping
Component for execution. Since it is now safe to invoke the action in the DomainClass, the Wrapping Component does so.
If the issued Warning is a Confirmation, it must also reach the UI Component but in this case it must wait for the user to OK. Once s/he does so, the invocation
returns to the Wrapping Component for execution. Since it is now safe to invoke the action in the DomainClass, the Wrapping Component does so.
Finally, if the issued Warning is an Authentication, it must reach the UI Component, which will then go through all the necesary steps (outside of the scope of this
pattern) to perform the necessary credential cross-checking. Once the user has been authenticated in this manner, the invokation will return to the Wrapping
Component for execution. Since it is now safe to invoke the action in the DomainClass, the Wrapping Component does so.
The UI Component is responsible for displaying the Warning information and for receiving and processing the necessary user input to satisfy the given Warning
(if applicable)
W_SR-1 Be aware of
damaging
actions
Objects
View
Controller
DomainClassWrap
DomainClass
6a. DomainClass
executes the
invoked method,
doAction().
W_SR-2 Notify
W_SR-3 Request
confirmation
Fig
3,
4
6. DomainClass
executes the
invoked method,
doAction().
1. The new
Warning issued
in W_SR-1 (in
this case a
Notification) is
forwarded
onto the View
3,
4
6. DomainClass
executes the
invoked method,
doAction().
1. The new
Warning issued
in W_SR-1 (in
this case a
Confirmation)
is forwarded
onto the View
3,
4
Warning
Objects
View
W_SR-4 Request
authorization
W_SR-5 Display
warning
Controller
Fig
DomainClassWrap
Warning
6. DomainClass
executes the
invoked method,
doAction().
1. The new
Warning issued
in W_SR-1 (in
this case an
Authentication)
is forwarded
onto the View
3,
4
3,
4
DomainClass
Figure 4: Warning. Usability-enabling design pattern. Sequence Diagram Warn (W_SR-1, W_SR-2, W_SR-3, W_SR-4 and W_SR-5)
USABILITY-ENABLING GUIDELINE
Identification
Name
Family
Feedback
Aliases
Intent
Providing the user with information on the different statuses the system might be in at any given time
Problem
An application can be in one or more statuses at once, so the user needs to be visually aware of all of them continuously.
Context
When changes that are important to the user occur or
When failures that are important to the user occur:
-
Examples of status feedback can be found in status bars on windows applications; train, bus or airline schedule systems; VCR displays; etc.
Required Mechanisms
Abort: Certain types of status feedbacks may need a cancel option
Elaboration
W_ELAB-2:
Status types
W_ELAB-3:
Elaboration
Status placement
W_ELAB-4:
Ask about the users reading direction and whether or not the
system will need to accommodate more than one direction.
Display areas that are prominent in one culture will be less so in
others of different writing direction.
The component responsible for handling user events (UI) listen for user actions and order their execution
The component in charge of delegating actions (if any) is responsible for ordering the appropriate Domain Component to execute said action.
Upon execution of actions that are status-changing, each Domain Component is responsible for notifying any interested parties (specifically the Status Manager
Component, in this case)
The StatusManager component then forwards the updated information onto the appropriate Status Component.
Said Status Component is then responsible for determining the effect, if any, that the received information will have on its current active status value. It will, when
applicable, change said value and notify any interested parties (specifically the UI Component in this case)
The UI Component will update the status display for every notification of status change received.
Upon execution of actions that are status-changing--invoked by any other class in the system or an external source--each Domain Component is responsible for
notifying any interested parties (specifically the Status Manager Component, in this case), as is the case when such an action is invoked by the user through the
UI (See W_SR-7)
The StatusManager component then forwards the updated information onto the appropriate Status Component.
Said Status Component is then responsible for determining the effect, if any, that the received information will have on its current active status value. It will, when
applicable, change said value and notify any interested parties (specifically the UI Component in this case)
The UI Component will update the status display for every notification of status change received.
The UI Component is responsible for knowing how and where each status (and its possible values) are displayed within the interface, and thus update it
accordingly upon reception of notifications of status value change.
Objects
View
Controller
StatusManager
Status
DomainClass
2. The DomainClass
represents the domain
object(s) responsible for
executing actions that lead to
system state changes. It must
notify all subscribers
(StatusManager) of any
changes.
1. Upon system
initialization, the
StateManager subscribes to
each DomainClass which it
knows can execute statuschanging actions.
Fig
3,
5
3,
5
4. The StatusManager
determines the
corresponding Status object
to update and does so with
the information sent forth
by the DomainClasses
3,
4
2. The StatusManager
determines the
corresponding Status object
to update and does so with
the information sent forth
by the DomainClasses
3,
4
3,
4
Figure 8: System Status Feedback. Usability-enabling design pattern. Sequence Diagram Change Status (W_SR-11, W_SR-12 and W_SR-13)
Figure 9: System Status Feedback. Usability-enabling design pattern. Sequence Diagrams Be aware of system statuses (and their changes) (W_SR-6)
USABILITY-ENABLING GUIDELINE
Identification
Name
Undo
Family
Undo/Cancel
Aliases
Multi-Level Undo [Tidwell, 2002]; Undo [Welie, 2003]; Global Undo / Object-Specific Undo [Laasko, 2003]; Allow Undo [Brighton, 1998]
Intent
Undo provides a way for the user to revert the effects of a previously executed action or series of actions within an application.
Problem
Users may need to undo certain actions they perform for a variety of reasons: They could have been exploring new functionality, have made a mistake or simply have changed their minds about what they
have just done.
Context
Undo should be considered when developing highly interactive applications where users may perform sequences of steps, or execute actions that have tangible consequences.
Elaboration
Undo
Redo
Elaboration
History
W_ELAB-10:
Object
Global Undo
Specific
Undo
&
The UI Component is responsible for providing the mean(s) through which a user can invoke the undo feature. The Undo action should only be available when at
least one undoable action has been executed during application up-time
The UI Component must listen for calls to the Redo action (if available) and order its execution
The History Component must then retrieve the current** Command, without discarding it, and order it to redo itself.
The Command, in turn, executes the necessary actions, using the stored state information, to return the system to the state that follows its execution
The UI Component is responsible for providing the mean(s) through which a user can invoke the redo feature. The Redo action should only be available when the
Undo action has been executed at least once before during application up-time.
When only one-level undo is supported, the History component holds only the last-executed action. However, when multi-level undo is supported, History
supports an ordered collection of said actions in the form of Commands, as described in W_SR-14
The History Component is also responsible for updating (or ordering the update of) the UI every time a new Command is added to the collection or whenever the
next undoable/re-doable action changes, as described in W_SR-19
Whenever the Undo and/or Redo actions are available, the UI Component is responsible for showing the actions expected results (smart menus)
The UI Component must listen for calls to the Undo/Redo action over a particular object (if available) and order its execution.
The UI gets this information from the History Component, which must notify it of the current undoable/re-doable action upon every change.
The History Component must then retrieve the last*/current** Command executed over that object, without discarding it, and order it to Undo/Redo itself.
The Command, in turn, executes the necessary actions, using the stored state information, to return the object to the state preceding/following its execution.
Objects
View
Controller
2. The Controller must determine if
the invoked action is undoable. In
such case it must call the
execute() method of the
corresponding ConcreteCommand
object (otherwise invocation goes
directly to the DomainClass).
3. The Controller must then
clone() said ConcreteCommand
and add() it to the HistoryList.
Fig
ConcreteCommand
HistoryList
DomainClass
5a. The
DomainClass
executes the
appropriate
method to carry
out what was
originally invoked
by the user through
the View.
3,
4
5. The DomainClass
executes the
methods invoked
by
ConcreteCommand.
3,
5
3,
5
5. The DomainClass
executes the
methods invoked
by
ConcreteCommand.
3,
6
3,
6
Objects
View
Controller
ConcreteCommand
Fig
HistoryList
DomainClass
3,
4,
5,
6
3,
5,
6
5. The DomainClass
executes the
methods invoked
by
ConcreteCommand.
3,
5,
6
Figure 13: Undo. Usability-enabling design pattern. Sequence Diagram Execute Action (W_SR-1)
Figure 14: Undo. Usability-enabling design pattern. Sequence Diagram Undo Action (W_SR-1, W_SR-22, W_SR-24, W_SR-26 and W_SR-27)
Figure 15: Undo. Usability-enabling design pattern. Sequence Diagram Redo Action (W_SR-23, W_SR-24, W_SR-25, W_SR-26 and W_SR-27)
USABILITY-ENABLING GUIDELINE
Identification
Name
Abort
Family
Undo/Cancel
Aliases
Emergency Exit [Brighton, 1998]; Go Back to a Safe Place [Tidwell, 1999]; Go Back [Tidwell, 1999]; Prominent Cancel [Tidwell, 02]
Intent
Providing the means to cancel an on-going command or operation, or to allow for exiting the application altogether
Problem
Certain commands or operations might take a long time to execute. In such cases, the user will need to be at the liberty to cancel them. S/he must also be allowed to exit an application at all times, regardless
of any tasks that may be being executed.
Context
When the user needs to exit an application or a command quickly.
Elaboration
Cancelling Commands
W_ELAB-11:
Si un comando tarda ms de 10
segundos (**Ha desaparecido de la
referencia y contradice referencias
nuevas del progress (gnome) donde
ponen opcion de cancel para todos los
progress.**) en ejecutarse, proveer
opcin de Cancelar (adems de la
informacin sugerida por el
mecanismo Progress Feedback) para
permitir la interrupcin de su
procesamiento y el regreso al estado
anterior [Nielsen, 93].
Identificacin/Seleccin
Presentacin
Elaboration
Cancelling Operations
W_ELAB-13:
Identificacin/Seleccin
W_EX-14:
W_EX-15:
W_EX-16:
Presentacin
W_ELAB-15:
Elaboration
W_ELAB-16:
Manejo de Cambios
W_EX-17:
W_EX-18:
W_EX-19:
System Responsibility
W_SR-28 Identify cancellable
commands
A software component, preferably that responsible for handling user events (UI), must know of all the commands that are cancellable. By being in charge of this
responsibility, it will be able to display the necessary interface components to provide the user with the means to cancel said command.
A software component, preferably that responsible for handling user events (UI), must know of all the operations that are cancellable. By being in charge of this
responsibility, it will be able to display the necessary interface components to provide the user with the means to cancel said command.
At any point during operation execution, the user must be allowed to cancel (exit it). When doing so, any actions saved to History (if applicable) during
operation execution, must be undone by the same component regularly in charge of saving/undoing operations--the delegating component (if any)--and the
UI components for the wizard discarded. (See Step-by-Step Cancel Wizard)
When exiting the application, any on-going commands and/or operations must be dealt with.
The UI must listen for calls to exit the application
If there are no on-going commands or operations, the application will exit immediately
If there are on-going commands and/or operations, but the UI does not need to prompt the user for the type of exit s/hed like to make, the UI must order all
commands and/or operations to be dealt with in one of three ways (through an invoking component, if any):
A) All on-going commands and/or operations will be cancelled immediately in the same manner (re: state retrieval) in which they are cancelled by users
B) All on-going commands and/or operations will be allowed to finish execution, in which case the UI will wait until the last one notifies it has finished
C) All on-going commands and/or operations will be terminated immediately (disregarding state) and the application closed.
It is the UIs responsibility to know whether or not to prompt the user for an exit type. If no prompt is made, it is also the UIs responsibility to be aware of
which type of exit it needs to make (i.e. the way in which commands and operations will be dealt with upon exiting).
When the UI receives a call to exit the application, the component in charge of delegating actions (if any) should first ask a SaveComponent (see below) if there
exist any pending changes before exiting
A SaveComponent is responsible for determining whether there are changes to be saved and to order such saves.
If there are changes pending to be saved, the delegating component will inform the UI, which in turn should prompt the user to save said changes
These changes will be saved by the SaveComponent if requested
Objects
View
W_SR-34 Identify
cancellable
commands
W_SR-35 Cancel
commands
and handle
application
state
Controller
Fig
ConcreteCommand
HistoryList
DomainClass
3,
4
3. The HistoryList
determines the
ConcreteCommand
to undo and calls
its undo()
method.
5. The DomainClass
executes the methods
invoked by
ConcreteCommand.
3,
4,
5
W_SR-36 Identify
cancellable
operations
Objects
View
W_SR-37 Cancel
operations
and handle
application
state
W_SR-38 Exit
application
handling
potential
on-going
commands/
operations
ConcreteCommand
HistoryList
DomainClass
3,
sbs
3,
6
Controller
Fig
3,
6
Figure 19: Abort. Usability-enabling design pattern. Sequence Diagram Execute command (W_SR-34)
Figure 20: Abort. Usability-enabling design pattern. Sequence Diagrams Cancel command (W_SR-32)
Figure 21: Abort. Usability-enabling design pattern. Sequence Diagrams Cancel operation (W_SR-38 and W_SR-39)
USABILITY-ENABLING GUIDELINE
Identification
Name
Family
Feedback
Aliases
Alias: Progress Indicator [Tidwell, 99] [Tidwell, 02]; Progress [Welie, 03]; Show Computer is Thinking,;Time to Do Something Else [Brighton, 98]; Modelling Feedback Area [Coram, 96]
Intent
Provide the user with accurate visual feedback on the progress of the current task
Problem
Certain system tasks will take a long time to execute. The user needs to be informed of how much time remains in said tasks to s/he can make informed decisions in terms of whether to wait for the task to
finish, cancel it, etc.
Context
When a time-consuming process interrupts the UI for longer than two seconds or so: [Tidwell, 02]
205
Elaboration
W_Q-22
W_Q-23
W_Q-24
W_Q-25
W_Q-26
W_Q-27
Units processed
W_Q-28
Percentage completed
W_Q-29
W_Q-30
W_Q-31
W_Q-32
206
207
The component responsible for displaying the progress (be it the UI or an alternate Progress Component) must provide a cancel option for the actions it knows to
require one (> 10s)
The component responsible for displaying progress must also know of and display any needed textual information along with the progress details.
When the UI component (or alternate Progress Component) first displays the progress, it must do so indeterminately until it receives the first real progress update
from the Domain Component.
209
Objects
View
ProgressIndicator
Fig
Monitor
Controller
3b. The
Controller
invokes the
action, calling the
appropriate
class.
DomainClass
4. The DomainClass
starts executing the
invoked action
3,
4
7. The DomainClass
notifies its
subscribers (namely
the
ProgressIndicator) of
its progress
10. When the action
is completed,
DomainClass sends
out a notification
3,
4
3,
4
3,
4
210
Figure 24: System Progress Feedback. Usability-enabling design pattern. Class diagram
211
Figure 25: System Progress Feedback. Usability-enabling design pattern. Sequence Diagram Display progress (W_SR-40, W_SR-41, W_SR-42, W_SR-43)
212
213
August 2006
Usability
Feature
Feedback
Undo
Cancel
User Input
Errors
Prevention/
Correction
Wizard
User Profile
Usability
Mechanism
System Status
Interaction
Warning
Long Action
Feedback
Global Undo
ObjectSpecific Undo
Abort
Operation
Go Back
Structured
Text Entry
Goal
To inform users about the internal status of the system
To inform users that the system has registered a user interaction,
i.e., that the system has heard users
To inform users of any action with important consequences
To inform users that the system is processing an action that will
take some time to complete
To undo system actions at several levels
To undo several actions on an object
To cancel the execution of an action or the whole application
To go back to a particular state in a command execution sequence
To help prevent the user from making data input errors
Step-by-Step
Execution
To help do tasks that require different steps with user input and
correct such input
Preferences
Personal
Object Space
Favourites
Help
Commands
Aggregation
Multilevel
Help
Commands
Aggregation
We have used HCI literature as a source of information. Then we have analysed the information provided
from a development perspective. Finally, we have elaborated this information to get a set of issues to be
discussed with stakeholders.
USEP for the System Status Feedback mechanism
IDENTIFICATION:
Name: System Status Feedback
Family: Feedback
Alias: Status Display [7]
Modelling Feedback Area [2]
PROBLEM
Which information needs to be elicited and specified para que la aplicacin provide users with system status
information.
CONTEXT
When changes that are important to the user occur or
When failures that are important to the user occur:
During task execution
Because there are not enough system resources
Because external resources are not working properly.
Examples of status feedback can be found in status bars on windows applications; train, bus or airline
schedule systems; VCR displays; etc.
SOLUTION
Usability Mechanism Elicitation Guide:
HCI Recommendation
1. HCI experts argue that the user wants to be notified
when a change of status occurs [7]
215
user?
2.2. Which of this information will have to be
displayed obtrusively because it is related to
a critical situation? Represented by a
salience in the main display area that
prevents the user from continuing until the
salient information is closed.
2.3. Which of this information will have to be
highlighted because it is related to an
important but not critical situation? Using
different colours and sound or motion, sizes,
etc.
2.4. Which of this information will be simply
displayed in the status area? Locating some
kind of salience in the system status area.
For each piece of system status information to be
displayed according to its importance, the range
will be from obtrusive things (for example, a
window in the main display area which prevents
the user from continuing until it has been closed),
through highlighting (with different colours,
sound, motion or sizes) to the least eye-catching
things (like a status-identifying icon placed in the
system status area). Note that during the
requirements elicitation process, the discussion of
the exact response type can be left until interface
design time, but the importance of the different
situations about which status information is to be
provided and, therefore, the general type of
salience (obtrusive, highlighted or standard) that
will be provided does need to be discussed at this
stage.
216
related to failures III, IV, etc , must be shown in highlighted format. The information related to failures V, VI,
etc , must be shown in obtrusive format.
The software system provides feedback about resources D, E, F when failures IV, I and VI, respectively,
occur. The information to be presented about those resources is O, P, Q. The information related to failures I,
II, etc.must be shown in the status area..... The information related to failures III, IV, etc , must be shown in
highlighted format. The information related to failures V, VI, etc , must be shown in obtrusive format.
The software system will need to provide feedback about the external resources G, J, K, when failures VII,
VIII and IX, respectively, occur. The information to be presented about those resources is R, S, T. The
information related to failures I, II, etc.must be shown in the status area..... The information related to
failures III, IV, etc , must be shown in highlighted format. The information related to failures V, VI, etc ,
must be shown in obtrusive format.
IDENTIFICATION
Name: Interaction Feedback
Family: Feedback
Alias:
PROBLEM
Which information needs to be elicited and specified in order to acknowledge the user that the system heard his/her
request
CONTEXT
When the user perform an interaction event, such us mouse click, mouse movement, arrow movement, keyboard press,
etc. the system must inform the user that the interaction has been accepted [2]
SOLUTION
Usability Mechanism Elicitation Guide
HCI Recommendation
1.
217
When a time-consuming process interrups the UI for longer than two seconds or so.
SOLUTION
Usability Mechanism Elicitation Guide
HCI Recommendation
1.
2.
218
RELATED PATTERNS
Abort Operation: for actions that take time to complete a Cancel option should be provided with the feedback
information
219
When an action that has serious consequences has been required by the user [10] [9].
SOLUTION
Usability Mechanism Elicitation Guide
HCI Recommendation
1.
2.
RELATED PATTERNS
Abort Operation: One of the alternatives of the warning message should be to Cancel the action
220
221
1.
222
2.
3.
223
IDENTIFICATION
Name. Object Specific Undo
Family: Undo/Cancel
Alias: Object-specific undo [3]
PROBLEM
Which information needs to be elicited and specified in order to provide users with object specific undo
information.
USABILITY CONTEXT
When building a highly interactive system with multiple and complex functionalities on specific objects of the
system
SOLUTION
Usability Feature Configuration Guide
HCI Recommendation
1.
224
2.
3.
225
Actions A, B, C require several steps to be taken and a cancel mechanisms will be needed to abort them.
Action W will take more than 10 seconds to finish so be sure that a cancel button is provided to abort it.
RELATED PATTERN
Long Action Feedback: for actions that take time to complete a Cancel option should be provided with the feedback
information
Go Back: If an action has a Cancel option, it might also have a Go Back option.
Step by Step Execution: In each step from a step by step execution action a Cancel option should be provided.
226
IDENTIFICATION
Name: Go back
Family: UNDO/CANCEL
Alias: Go back to a safe place [7]
Go Back One Step [7];
PROBLEM
Which information needs to be elicited and specified in order to provide users with Go Back information.
USABILITY CONTEXT
When there are interactive applications with multiple steps
SOLUTION
Usability Configuration Guide
HCI Recommendation
1.
RELATED PATTERNS
Step by Step Execution: Go back (to a safe place and one step) are usually incorporated in the wizard mechanism
Abort Operation: In such actions were a Go back option is provided a Cancel option may also be needed.
227
Data M and N will be entered by the user in format P and Q, respectively, so the software system will provide
the user with guidance for presenting this format in A and B ways, respectively.
228
IDENTIFICATION
Name: Step by Step
Family: Wizard
Alias: Wizard [10] [8]
Step by step [7]
PROBLEM
Which information needs to be elicited and specified in order to provide users with the step by step mechanism
CONTEXT
When a non-expert user needs to perform an infrequent complex task consisting of several subtasks where
decisions need to be made in each subtask.
SOLUTION
Usability Mechanism Configuration Guide
HCI Recommendation
1.
2.
3.
Actions A, B, C require several steps to be taken. The steps for A are U, V, R and information to be provided in
each step is R, S, T respectively. These steps will be represented in format J. The procedure is similar for
actions B and C.
RELATED PATTERNS
Go Back: Go back (to a safe place and one step) are usually incorporated in the wizard mechanism
229
Abort Operation: In such actions were a Go back option is provided a Cancel option may also be needed.
230
The application is very complex and many of its functions can be tuned to the users preference, and;
the system will be used by people with different abilities, cultures and tastes, and
not enough is known about the users preferences in order to assume defaults that will suit all users.
SOLUTION
Usability Configuration Guide
HCI Recommendation
1.
2.
Options A, B, C will be able to be arranged for each user. These options will be presented in format F.
231
IDENTIFICATION
Name: Personal Object Space
Family: User Profile
Alias: Personal Object Space [7]
PROBLEM
Which information needs to be elicited and specified in order to provide users with the personal object space
mechanism.
CONTEXT
When the application interface is complex and has many icons that can be organized in different ways
SOLUTION
Usability Configuration Guide
HCI Recommendation
1.
Options A, B, C will be able to be arranged for each user. These options will be presented in format F.
232
1.
2.
The system will allow each user to record X places he or she has visited. They will be presented in format F to
the user.
233
o
o
234
..
IDENTIFICATION
Provide a way for the user to record a sequence of 1.1 Which actions will be able to be aggregated?
actions [8]. The parts and syntax rules should be easy to
Which will be the syntax used for such aggregation?
learn, and should generate concise commands whose
Remember to use a clear syntax easy to learn.
meaning is obvious [7]. The user should be able to
How will the aggregated be referred to?
give the macro the name of her choice. Let also
How the macro content will be edited?
Provide a way to the user to play back the sequence at 2.1. How the aggregated command will be play backed?
any time. The play back should be as easy as giving a
single command, pressing a single button, or dragging
and dropping an object [8] even by speech it [7].
Feedback on the validity of the command or its result
should be as immediate as is practical [7][8].
235
References
[1] L. Constantine, L. Lockwood. Software for Use: A Practical Guide to the Models and Methods of Usage-Centered Design.
Addison-Wesley, 1999.
[2] T. Coram, L. Lee. Experiences: A Pattern Language for User Interface Design. 1996.
http://www.maplefish.com/todd/papers/experiences/Experiences.html
[3] S.A. Laasko. User Interface Designing Patterns, 2003. http://www.cs.helsinki.fi/u/salaakso/patterns/index_tree.html
[4] T. Jokela. Guiding Designers to the World of Usability: Determining Usability Requirements through Teamwork. In
Human-Centered Software Engineering. A.Seffah, J. Gulliksen and M. Desmarais, Kluwer 2005
[5] J. Nielsen. Usability Engineering. John Wiley & Sons, 1993.
[6] J. Nielsen. Heuristic Evaluation. In Usability Inspection Methods J. Nielsen and R.L. Mack (eds.). J. Wiley & Sons, 1994.
[7] J. Tidwell. The Case for HCI Design Patterns. Http://www.mit.edu/jdidwell/common_ground_onefile.htm.
[8] J. Tidwell. Designing Interfaces. Patterns for Effective Interaction Design. OReilly, 2005.
[9] Usability Pattern Collection. http://www.cmis.brighton.ac.uk/research/patterns/home.html.
[10] M. van Welie. The Amsterdam Collection of Patterns in User Interface Design.. http://www.welie.com
[11] C. Benson, A. Elman, S. Nickell, C. Robertson. GNOME Human Interface Guidelines.
http://developer.gnome.org/projects/gup/hig/1.0/index.html
236