View
4
Download
0
Category
Preview:
Citation preview
Análisis Sistematizado de la Usabilidad en el Desarrollo del Software
Juan Marcelo Ferreira Aranda
Laurent Gianina Díaz Molas
Luis Gilberto Salinas
Facultad Politécnica, Universidad Nacional de AsunciónMontevideo, 2013
Resumen
Facultad Politécnica, UNA
• Introducción: objetivos, problema
• Usabilidad: mecanismos y patrones
• Usabilidad en el proceso de desarrollo
– Requisitos del Sistema
– Análisis y Diseño
– Implementación
• Análisis de impacto de la usabilidad
• Conclusiones
2 de 34
Facultad Politécnica, UNA
Introducción
3 de 34
Introducción
Facultad Politécnica, UNA
La usabilidad en el desarrollo
Calidad del software
Comunidad HCIVs
Ingeniería del Software
Usabilidad como RNF
Usabilidad como UI
http://sixrevisions.com
4 de 34
Introducción
Facultad Politécnica, UNA
• El problema de la usabilidad
http://www.adrformacion.com
5 de 34
•Desarrollar un sistema dentro de un dominio real de aplicación
Desarrollo
• Incorporar la usabilidad en las diferentes etapas de desarrollo
Incorporación•Evaluar el impacto
de incorporar la usabilidad
Evaluación
IntroducciónObjetivo
Facultad Politécnica, UNA
• Analizar la incorporación de tres mecanismos de usabilidad formalizados como patrones de programación de usabilidad en el proceso de desarrollo de software .
6 de 34
Facultad Politécnica, UNA
Usabilidad
7 de 34
UsabilidadCaracterísticas Funcionales de Usabilidad (CFUs)
Facultad Politécnica, UNA
Feedback
System Status
Interaction
Warning
Progress
Feedback
Undo-Cancel
Global Undo
Object-Specific Undo
Abort
Operation
Go back
User Input Error
Prevention/ Correction
Structured Text Entry
Wizard
Step-by-Step Execution
User Profile
Preferences
Personal Object Space
Favourites
Help
Multilevel Help
Command Aggregation
Command Aggregation
8 de 34
Pautas de Desarrollo de Mecanismos de Usabilidad o PDMUs
Facultad Politécnica, UNA
Educción y Especificación de Requisitos
Análisis y Diseño
Implementación
IDENTIFICATION
Name: Abort Operation
Family: UNDO/CANCEL
Alias: Emergency Exit [9]
Go Back to a Safe Place [7]
Go Back [7]
Cancellability [8]
PROBLEM
Which information needs to be elicited and specified in order to provide users with Abort Operation information.
USABILITY CONTEXT
When the user needs to exit an application or a command quickly.
SOLUTION
Usability Configuration Guide
HCI Recommendation Issues to be discussed with stakeholders
1. Users who use a number of applications in the course of their
work may need rapidly to exit a program when a higher priority
task demands the system resources, or when the program has
been launched by mistake [9]. So, at application level, at all
times ensure that the option to quit a program is immediately
and obviously available (if possible even during the initial
loading of the program) and modal dialogues do not mask the
access to the option. If the option to quit is exercised after work
on data manipulated by the program has been completed, the
option to “save the work” done so far should be presented.
1.1 Will the user need an exit option for the application
to be built? If so, where and how should this option be
presented to the user?
2. At operation level, if the user gets into a space or state that
they don’t want to be in, they will want to get out of it in a safe
and predictable way. Also, backtracking out of a long
navigation path can be very tedious [7]. So, in window-based
GUI applications, it is standard to have a Cancel buttom that
closes any dialog box and discards any change the user may
have made within the dialog box.
2.1. Which actions may require a cancel option? Pay
special attention to actions that may require several
steps. Notice also that all actions en las que el usuario
es preguntado o se le solicita información deben ser
potencialmente cancelables.
2.2. For the previous actions, how should this cancel
option be presented to the user (remember that in
dialog boxes it is standard to have a cancel buttom),
and which will be the state where the system will go
when the cancel option is chosen?
3. At command level, if it takes longer than 10 seconds to
finish the processing of the command, provide a Cancel option,
along with the feedback information (see Feedback pattern), to
interrupt the processing and go back to the previous state [5].
Label it with the word Stop or Cancel. Tell the user that the
Cancel worled and show a status message on the interface [8].
3.1.Which actions will take more than 10 seconds to
finish?
3.2.Refer to the Long Feedback Pattern for details
about information to provide for them.
Usability Feature Specification Guide
The following information will need to be instantiated in the requirements document:
• The application will need an exit button that ……
• 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
Salir de Aplicación
Página autenticación usuarios
No existen cambios
Existen cambios
No guardarcambios
Guardar cambios
Página autenticación usuarios
Guarda con éxito
Mensaje de guardado
exitoso
Página autenticación usuarios
Errores de validación
Marca Errores
Errores en guardado BD
Mensaje de Error
Permanece en la misma página o dialogo
Permanece en la misma página o dialogo
SalirAppSinCambios
SalirAppSinGuardar
SalirAppGuardando
SalirAppGuardaErrVal
SalirAppGuardaErrBD
NOMBRE MU Abortar Operación (JAVA)
PROBLEMA Implementar el patrón MU Abortar Operación para aplicaciones Web en Java,
utilizando JSF y Jquery, para asegurar que un usuario puede salir de la aplicación, o una
operación o comando de forma inmediata y rápida.
CONTEXTO Aplicaciones Web con alta interacción persona ordenador
SOLUCIÓN
1. Crear una clase CFUUndoCancel como un Singleton.
2. Crear una clase CheckerChanges que mantenga y proporcione información de si existen cambios en la aplicación.
3. Crear una clase HistorySteps que mantenga y proporcione información sobre el último estado del sistema.
4. Crear una clase CancelHandle que conozca como guardar operaciones, limpiar campos, cerrar diálogos relacionados con el estado actual
del sistema y cuál es el estado siguiente del sistema después de abortar una operación.
5. Implementar los métodos de la clase CFUUndoCancel para que funcione como fachada para las clases CancelHandle, HistorySteps,
CheckerChanges.
6. Implementar la funcionalidad adecuada en cada parte de la aplicación en la que se puedan realizar cambios (los controladores en el caso
MVC) para que en el evento en que se modifique algo en la aplicación se actualice el estado de CheckerChanges.
7. Implementar la funcionalidad adecuada para que el sistema siempre sepa qué método o acción debe seguir para salvar un cambio en caso
que se inicie una operación de cancelación, esto se puede hacer con la clase CancelHandle.
8. Implementar la funcionalidad adecuada para que el sistema siempre sepa qué método o acción debe seguir para cerrar un cuadro de
dialogo en el caso de que exista, esto se puede hacer con la clase CancelHandle
9. Implementar la funcionalidad adecuada en el sistema para que al navegar por la aplicación se vaya guardando el último estado, para tener
este dato en caso de que requiera regresar al estado anterior, esto se puede almacenar en la clase HistorySteps.
EJEMPLO
1. Crear una clase CFUUndoCancel como un Singleton.
//Class: CFUUndoCancel
//Description: Mantiene la lógica para la familia de Undo-Cancel
function CFUUndoCancel()
{
this.changes = new CheckerChanges();
this.cancel = new CancelHandle();
this.history = new HistorySteps();
}
//los métodos se muestran más adelante.
//Para que funcione como Singleton, se crea una instancia al momento de cargar el fichero .js, con la siguiente instrucción,
(que se coloca final del mismo):
var cfuUndoCancel = new CFUUndoCancel();
2. Crear una clase CheckerChanges que mantenga y proporcione información de si existen cambios en la aplicación.
function CheckerChanges()
{
//Existe cambios
this.ExistChanges = false;
}
CheckerChanges.prototype.Changed = function() {
this.ExistChanges = true;
}
CheckerChanges.prototype.Reset = function() {
this.ExistChanges = false;
}
CheckerChanges.prototype.GetExistChanges = function() {
return this.ExistChanges;
}
Análisis Sistematizado
Juristo N, Moreno AM, Sánchez-Segura, MI. IEEE Transactions on SE. 2007
Rodríguez, F. Programming Patterns for usability functionalities. Tesis Doctoral – Universidad Politécnica de Madrid. 2012
9 de 34
Proceso de desarrollo y usabilidadEtapa de Requisitos
Facultad Politécnica, UNA 10 de 34
Proceso de Incorporación de MUs
Facultad Politécnica, UNA
Educción y Especificación de Requisitos
Análisis y Diseño
Implementación
Etapa: Educción y Especificación de Requisitos
A B
11 de 34
Educción de Requisitos
Facultad Politécnica, UNA
IDENTIFICATION
Name: Abort Operation
Family: UNDO/CANCEL
Alias: Emergency Exit [9]
Go Back to a Safe Place [7]
Go Back [7]
Cancellability [8]
PROBLEM
Which information needs to be elicited and specified in order to provide users with Abort Operation information.
USABILITY CONTEXT
When the user needs to exit an application or a command quickly.
SOLUTION
Usability Configuration Guide
HCI Recommendation Issues to be discussed with stakeholders
1. Users who use a number of applications in the course of their
work may need rapidly to exit a program when a higher priority
task demands the system resources, or when the program has
been launched by mistake [9]. So, at application level, at all
times ensure that the option to quit a program is immediately
and obviously available (if possible even during the initial
loading of the program) and modal dialogues do not mask the
access to the option. If the option to quit is exercised after work
on data manipulated by the program has been completed, the
option to “save the work” done so far should be presented.
1.1 Will the user need an exit option for the application
to be built? If so, where and how should this option be
presented to the user?
2. At operation level, if the user gets into a space or state that
they don’t want to be in, they will want to get out of it in a safe
and predictable way. Also, backtracking out of a long
navigation path can be very tedious [7]. So, in window-based
GUI applications, it is standard to have a Cancel buttom that
closes any dialog box and discards any change the user may
have made within the dialog box.
2.1. Which actions may require a cancel option? Pay
special attention to actions that may require several
steps. Notice also that all actions en las que el usuario
es preguntado o se le solicita información deben ser
potencialmente cancelables.
2.2. For the previous actions, how should this cancel
option be presented to the user (remember that in
dialog boxes it is standard to have a cancel buttom),
and which will be the state where the system will go
when the cancel option is chosen?
3. At command level, if it takes longer than 10 seconds to
finish the processing of the command, provide a Cancel option,
along with the feedback information (see Feedback pattern), to
interrupt the processing and go back to the previous state [5].
Label it with the word Stop or Cancel. Tell the user that the
Cancel worled and show a status message on the interface [8].
3.1.Which actions will take more than 10 seconds to
finish?
3.2.Refer to the Long Feedback Pattern for details
about information to provide for them.
Usability Feature Specification Guide
The following information will need to be instantiated in the requirements document:
• The application will need an exit button that ……
• 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
Caso de Uso: Derivar Proyecto
Resumen: Derivar el estudio de un proyecto a las comisiones.
Pre-condiciones:
El usuario ha ingresado en el sistema y está en Asuntos Entrados.
Post-condiciones:
El Proyecto queda pendiente en las comisiones donde fue derivado y desaparece de la lista de tareas pendientes del usuario Asuntos Entrados.
Flujo Básico de Eventos
Usuario Sistema
1. El usuario ingresa al listado de pendientes. 2. El sistema lista los proyectos pendientes del usuario. Se muestra el nro. de expediente, acápite, etapa, subetapa y fecha. Mientras se procesa la consulta se muestra una barra de progreso indicando la tarea activa y finaliza con un mensaje indicando la cantidad de registros recuperados.
3. El usuario selecciona un proyecto para derivar a la/s comisión/es.
4. El sistema despliega la lista de comisiones.
5. El usuario selecciona la/s comisión/es. 6. El sistema valida la selección de la/s comisión/es, almacena la información asignando la etapa y la subetapa de la siguiente tramitación. Además, saca el proyecto de los pendientes del usuario.
7. El sistema informa al usuario que la operación se realizó de manera satisfactoria y muestra el listado de pendiente.
Flujos Alternativos
3.1. El usuario selecciona el proyecto para visualizar su detalle y el sistema despliega la información del proyecto a ser derivado. 5.1. El usuario selecciona una comisión y
selecciona otra opción de menú. El sistema detecta el cambio de estado y solicita confirmación al usuario para guardar los cambios:
o Si se aceptan los cambios, el sistema almacena los cambios y dirige la acción al menú seleccionado. Si ocurre algún error durante la actualización de los datos, el sistema emitirá un mensaje indicando el error y permanecerá en el formulario actual.
o Si se ignoran los cambios, el sistema dirige la acción al menú seleccionado.
oprime el botón cancelar del formulario actual. El sistema detecta el cambio de estado y solicita confirmación al usuario para guardar los cambios:
o Si se aceptan los cambios, el sistema almacena los cambios y regresa al formulario de listado. Si ocurre algún error durante la actualización de los datos, el sistema emitirá un mensaje indicando el error y permanecerá en el formulario actual.
o Si se ignoran los cambios, el sistema limpia y regresa al formulario de listado.
Flujos de Excepción
6.1. Si no se selecciona al menos una comisión, el sistema debe mostrar un mensaje indicando el error. 7.1 El sistema falla guardando la información notificando al usuario del error ocurrido y permanece en el formulario actual.
Borrador de interfaz gráfica
A
12 de 34
Educción de Requisitos
Facultad Politécnica, UNA
B
13 de 34
Análisis de Impacto: Requisitos
Facultad Politécnica, UNA
0%
33%
66%
99%
Desarrollador A Desarrollador B
75%
64%
46%
33%
4% 3%% r
eq
uis
ito
s af
ect
ado
sImpacto de la Usabilidad en Requisitos
Abort Operation Progress Feedback Preferences
Bajo
Medio
Alto
Juristo et al., 2007. Analysing the impact of usability on software design. Journal of Systems and Software 14 de 34
Análisis de Impacto: Requisitos
Facultad Politécnica, UNA
Desarrollador A Desarrollador B
80% 75%
20% 25%
% t
iem
po
inve
rtid
oTiempo invertido en Requisitos
Requisitos Usabilidad
15 de 34
Proceso de desarrollo y usabilidadEtapa de Análisis y Diseño
Facultad Politécnica, UNA 16 de 34
Proceso de Incorporación de MUs
Facultad Politécnica, UNA
Educción y Especificación de Requisitos
Análisis y Diseño
Implementación
Etapa: Análisis y Diseño
A B
17 de 34
Incorporación en el Diseño
Facultad Politécnica, UNA
Salir de Aplicación
Página autenticación usuarios
No existen cambios
Existen cambios
No guardarcambios
Guardar cambios
Página autenticación usuarios
Guarda con éxito
Mensaje de guardado
exitoso
Página autenticación usuarios
Errores de validación
Marca Errores
Errores en guardado BD
Mensaje de Error
Permanece en la misma página o dialogo
Permanece en la misma página o dialogo
SalirAppSinCambios
SalirAppSinGuardar
SalirAppGuardando
SalirAppGuardaErrVal
SalirAppGuardaErrBD
18 de 34
Incorporación en el Diseño
Facultad Politécnica, UNA
ControllerModelo/Persistencia
Proyecto
-idProyecto: Integer-identificacionUsuario: Usuario-idSubetapaPorEtapa: SubEtapaPorEtapa-expedienteCamara: String-acapite: String-idIniciativa: TipoIniciativa-origenCamara: Camara<<Date>>-fechaIngreso-rolTramitador: Rol-resideCamara: Camara-estadoProyecto: String-tipoProyecto: TipoProyecto-proyectoResideComision: Camara-esPublico: Boolean-seleccionado: EstadoTramitacion<<List>>-Autor: Parlamentario<<List>>-Ministerio: Ministerio
+setter()+getter()
Usuario
-idUsuario-idRol: Rol-nombres: String-apellidos: String-camara: String-contrasenha: String-esActivo: Boolean
+setter()+getter()
Rol
-idRol: Integer-descripcionRol: String
+setter()+getter()
SubEtapaPorEtapa
-idSubEtapaPorEtapa: Integer-idEtapa: Etapa-idSubEtapa: SubEtapa-formularioTramitacion: String-funcionTramitacion: String
+setter()+getter()
Etapa
-idEtapa: Integer-descripcionEtapa: String-idCamara: Camara
+setter()+getter()
SubEtapa
-idSubetapa: Integer-descripcionSubEtapa: String-idRol: Rol
+setter()+getter()
Camara
-idCamara: Integer-descripcionCamara: String
+setter()+getter()
TipoIniciativa
+getTipoIniciativa()
TablaMenor
-id: Integer-descripcionTipo: String
+setter()+getter()
TipoProyecto
+getTipoProyecto()
Partido
+getPartido()
Parlamentario
-idParlamentario: Integer-nombres: String-apellidos: String-camara: Camara-partidoPolitico: Partido-departamento: Departamento-email: String-telefono: String<<blob>>-foto
+setter()+getter()
Departamento
+getDepartamento()
Ministerio
+getMinisterio()
Tramitacion
-idTramitacion: Integer-idProyecto: Proyecto-identificacionUsuario: Usuario-idComision: Comision-idSubEtapaPorEtapa: SubEtapaPorEtapa-idSesion: Sesion<<Date>>-fechaTramite-descripcionTramitacion: String-resultadoTramitacion: Integer-idInfo: DictamenComision-idResolucion: ResolucionSecretaria<<List>>-comisionesGiradas: GiradosComision
+setter()+getter()
Comision
-idComision: Integer-nombreComision: String-idCamara: Camara-numeroComision: Integer-tipoComision: TipoComision-emailComision: String-esActiva: Boolean-idPeriodoParlamentario: PeriodoParlamentario<<List>>-miembrosComision: Parlamentario
+setter()+getter()
TipoComision
+getTipoComision()
Sesion
-idSesion: Integer-numeroSesion: Integer-idPeriodoParlamentario: PeriodoParlamentario<<Date>>-fechaSesion-camaraSesion: Camara-tipoSesion: TipoSesion<<blob>>-diarioSesion<<blob>>-asuntosEntrados<<blob>>-ordenDia
+setter()+getter()TipoSesion
+getTipoSesion()
TipoPeriodo
+getTipoPeriodo()
PeriodoParlamentario
-idPeriodoParlamentario: Integer-descripcionPeriodoParlamentario: String<<Date>>-fechaInicio<<Date>>-fechaFin
+setter()+getter()
GiradosComision
-idGiradosComision: Integer-idProyecto: Proyecto-idComision: Comision-idSubEtapaPorEtapa: SubEtapaPorEtapa-esPendiente: Boolean-observacion: String<<List>>-dictamenes: DictamenComision
+setter()+getter()
DictamenComision
-idDictamenComision: Integer-idGiradosComision: GiradosComision-idProyecto: Proyecto-idComision: Comision-identificacionUsuario: Usuario-idSubEtapaPorEtapa: SubEtapaPorEtapa<<blob>>-adjuntoDictamen<<Date>>-fechaDictamen-esPublico: Boolean-idSesion: Sesion-sentidoDictamen: SentidoDictamen-idProximaSubEtapaPorEtapa: SubEtapaPorEtapa<<List>>-firmantesDictamen: FirmantesDictamen
+setter()+getter()
SentidoDictamen
+getSentidoDictamen()
FirmantesDictamen
+idFirmantesDictamen+idDictamenComision+idParlamentario
+setter()+getter()
ResolucionSecretaria
-idResolucion: Integer-idSesion: Sesion-identificacionUsuario: Usuario-idProyecto: Proyecto-numeroResolucion: String-fechaResolucion<<blob>>-adjuntoResolucion-esPublico: Boolean-idCamara: Camara-tipoResolucion: TipoResolucion-idComision: Comision-descripcionResolucion: String<<Date>>-fechaMensaje-numeroMensaje: String
+setter()+getter()
TipoResolucion
+getTipoResolucion()
Vencimiento
-idVencimiento: Integer-idProyecto: Proyecto-idEtapa: Etapa-idTramitacion: Tramitacion
MiembroComision
-idMiembroComision: Integer-idParlamentario: Parlamentario-idSecretario: Usuario-idCargo: Cargo
+setter()+getter()
Cargo
+getCargo()
PeriodoLegislativo
-idPeriodoLegislativo-descripcionPeriodoLegislativo: String<<Date>>-fechaInicio<<Date>>-fechaFin<<List>>-periodosP: PeriodoParlamentario
+setter()+getter()
Ley
-idLey: Integer-idProyecto: Proyecto<<Date>>-fechaSancion<<Date>>-fechaPublicacion<<Date>>-fechaPromulgacion-numeroLey: String-tipoPromulgacion: TipoPromulgacion
+setter()+getter()
TipoPromulgacion
+getTipoPromulgacion()
EstadoTramitacion
+getEstado()
MenuController
+seleccionarOpcion()+cambiarPreferencia()
Pre ferencesContro lle r
-setPreferences
-user
+applySetPreferences()
+showActualPreferences()
+changePreferences()
+changeSetPreferences()
+changeLanguage()
UsuarioController
+ingresarSistema()+cambiarContrasenha()+salirSistema()
ProyectoController
+usuario: Usuario+etapa: SubEtapaPorEtapa
+ingresarExpediente()+imprimirInformeExpediente()+actualizarVersionProyecto()
TramitacionController
-resolucionSecretaria: ResolucionSecretaria-vencimiento: Vencimiento-giradosComision: GiradosComision-sesion: Sesion
+listarExpedientesPendientes()()+derivarExpediente()+ingresarDictamenPleno()+procesarSancionAutomatica()+registrarResultadoPlenaria()+aprobarProyecto()+rechazarProyecto()+postergarProyecto()+devolverProyectoAcomision()+modificarProyecto()+ratificarProyecto()+noRatificarProyecto()+registrarResolucion()+retirarProyecto()
SesionController
+registrarSesion()
ResolucionSecretariaController
+agregarResolucion()+enviarExpedienteOtraCamara()+archivarExpediente()
ComisionController
+agregarExpedienteComision()+listadoPendientesComision()+agregarMiembros()+registrarDictamen()+agregarFirmantesDictamen()
TablaMenorController
+crearRegistro()+actualizarRegistro()+eliminarRegistro()+recuperarRegistro()
Pre ferences
-id_set: Integer
-id_preference_type: PreferencesType
-name: String
-is_default: Boolean
-value: String
+setter()
+getter()
Pre fe rencesType
-id: Integer
-name: String
+setter()
+getter()
Vista
CancelHandle
-saveInstruction
-closeInstruction
+executeCancel()
+executeClean()
+executeClose()
+setter()
+getter()
CFUUndoCancel
+executeCancel()
+executeClean()
+changed()
+resetChanges()
+setter()
+getter()
CheckerChanges
-existChanges
+changed()
+reset()
+getExistChanges()
HistorySteps
-currentStep
-lastStep
+setCurrentStep()
+getLastStep()
CFUFeedBack
+handler
+create()+setParam()+close()+deactivate()+show()+hide()+isActive()+error()
CheckerProcess
-active
+activate()+deactivate()+isActive()
ProgressFeedBackHandler
-ui-checker-processId-type
+setParam()+close()+execute()+show()+hide()+abort()+close()
ProgressFeedBackUI
-name-labelTop-labelBottom-labelMin-labelMax-labelValue-value-modal-align-viewCancel
+setOptions()+setPosition()+create()+init()+destroy()+setShowValue()+enabledButtonClose()
Facade
+processRequest()
ProgressResult
-value-processId-description-state
+progressResult()+execute()+buildXml()+create()+get()+abort()+StateProcess()+stateError()+stateSuccess()+stateAborted()+setter()+getter()
PaginaWeb
A
19 de 34
Incorporación en el Diseño
Facultad Politécnica, UNA
B
20 de 34
Análisis de Impacto: Análisis y Diseño
Facultad Politécnica, UNA
Desarrollador A Desarrollador B
76% 82%
7%6%
11% 8%
6% 3%
% In
cre
me
nto
en
cla
ses
Impacto en el Diagrama de Clases
Sistema Abort Operation
Progress Feedback Preferences
0%
33%
66%
99%
Desarrollador A Desarrollador B
35%47%
9%18%
2% 1%%
Incr
em
en
to e
n in
tera
ccio
ne
s
Impacto en el Diagrama de Secuencia
Abort Operation Progress Feedback Preferences
Bajo
Medio
AltoBajo
21 de 34
Análisis de Impacto: Análisis y Diseño
Facultad Politécnica, UNA
Desarrollador A Desarrollador B
77% 72%
23% 28%
Tiempo invertido
Incorporación de MUs en eldiseño
Diseño del sistema
% T
iem
po
Inve
rtid
o
22 de 34
Proceso de desarrollo y usabilidadEtapa de Implementación
Facultad Politécnica, UNA 23 de 34
Proceso de Incorporación de MUs
Facultad Politécnica, UNA
Educción y Especificación de Requisitos
Análisis y Diseño
Implementación
Etapa: Implementación
A B
24 de 34
Incorporación: Implementación
Facultad Politécnica, UNA
Patrón de Programación de Usabilidad
25 de 34
Implementación de MUs
Facultad Politécnica, UNA
A
26 de 34
Facultad Politécnica, UNA
AImplementación de MUs
27 de 34
Facultad Politécnica, UNA
Implementación de MUs B
28 de 34
Incorporación: Preferences
Facultad Politécnica, UNA
B
29 de 34
Análisis de Impacto: Implementación
Facultad Politécnica, UNA
Desarrollador A Desarrollador B
92%88%
1%1%
2%1%
5% 10%
Incremento en Clases
Clases Abort Operation
Progress Feedback Preferences
Desarrollador A Desarrollador B
93%88%
2%4%
2%2%
3% 6%
Incremento en Métodos
Metodos Abort Operation
Progress Feedback Preferences
JavaNCSS . 2011. Clemens, C.- A Source Measurement Suite for Java. 30 de 34
Análisis de Impacto: Implementación
Facultad Politécnica, UNA
Sistema73%
Abort Operation10%
Progress Feedback6% Preferences
11%MUs27%
Tiempo invertido - Desarrollador A
Sistema66% Abort Operation
14%
Progress Feedback4% Preferences
16%Otros34%
Tiempo Invertido - Desarrollado B
31 de 34
Conclusiones
Facultad Politécnica, UNA 32 de 34
Conclusiones
Facultad Politécnica, UNA
Reducción de impacto de la usabilidad durante el desarrollo.
Documentación asociada al producto software más completa y con menos errores.
Reducida intervención de profesionales HCI.
Mejora esperada en Productividad, Entrenamiento y Soporte.
33 de 34
Muchas gracias…
Facultad Politécnica, UNA 34 de 34
Recommended