Desarrollo de IUs basado en modelos
José A. Gallud
Grupo LoUISE-UCLM
Contenido
Motivación Concepto de interfaz, HCI y calidad El proceso de diseño de la interfaz de
usuario El modelo y los modelos de interfaz Desarrollo basado en modelos (entornos)
Motivación
Actualmente existe un gran interés por el estudio de los diversos aspectos que caracterizan la interacción persona-ordenador (HCI). Concretamente el ámbito de generación de interfaces de usuario como medio principal de interacción.
Especialmente en el caso de los sistemas interactivos que implican un gran nivel de interacción con el usuario y requieren, por tanto, conceder gran importancia a la interfaz de usuario.
La mayoría de las aproximaciones no proporcionan los mecanismos adecuados para identificar y especificar las necesidades y requisitos de los usuarios, así como la validación de esos requisitos durante todo el proceso de desarrollo del software, desde el principio hasta el final.
El 80% de los costes de mantenimiento (lo cual, a su vez, representa el 80% del coste total de desarrollo) son debidos a problemas de interacción entre el usuario y el sistema, no a problemas técnicos. [Landauer, 1995]
Concepto de interfaz, HCI y calidad Concepto de interfaz
Aquellos aspectos del sistema con los que el usuario entra en contacto.
Un lenguaje de entrada para el usuario, un lenguaje de salida para el ordenador y un protocolo para la interacción
La totalidad de los aspectos superficiales del sistema, tales como: sus dispositivos de entrada y salida, la información presentada al usuario o la requerida por éste, el comportamiento del sistema, su documentación y cursos de entrenamiento y las acciones del usuario con respecto a estos aspectos.
…
La interfaz ofrece una visión de lo que el usuario percibe y de las operaciones que puede realizar sobre el sistema informático.
Operación: Ejecución de una cosa Requisitos funcionales Cómo llevarlas a cabo (interacción)
Percibir: Recibir por uno de los sentidos
las características o impresiones del objeto.
Comprender o conocer una cosa.
Algo más amplio que una
GUI(Graphical User Interface)
…
La interfaz es una parte muy importante del éxito o fracaso de una aplicación La interfaz es del 47% al 60% de las líneas de
código McIntyre, 90
Un 48% del código de la aplicación está dedicado al desarrollo de la interfaz. Myers, 92
Las interfaces tienen que ser usables y accesibles
Interfaces::captación intuitiva Concepto técnico que se refiere a las propiedades
de los objetos – qué tipos de operaciones y manipulaciones se pueden hacer a un objeto en particular
Hace las cosas visibles Proporciona indicaciones de cómo se puede usar
algo Proporciona indicaciones de para que es una cosa Objetivo: el uso de un objeto es evidente
simplemente mirándolo Visual, instrucciones incluidas El objeto no necesita instrucciones para su uso, él mismo
son las instrucciones
interfaz
Objetos de la vida cotidiana
interfaz
Objetos de la vida cotidiana
EvidenciaCognición
Interfaces::calidad
¿Qué es la calidad?
ISO 9000 [ISO87], asocia la calidad con la certeza de que el producto a desarrollar o producir satisfará los requisitos establecidos.
ISO 8402 [ISO94], define calidad como la totalidad de las características de una entidad que afectarán a su habilidad para satisfacer necesidades establecidas e implícitas.
ISO 9126 [ISO91], describe las características que permiten describir la calidad de un producto software como: funcionalidad, eficiencia, usabilidad, fiabilidad, mantenibilidad y portabilidad.
…usabilidad
Calidad de uso o usabilidad Asociada a la evaluación de las
necesidades que tienen los usuarios para alcanzar una meta determinada, con efectividad, productividad, seguridad y satisfacción en un contexto de uso específico.
La medida en la que un producto se puede usar por determinados usuarios para conseguir objetivos específicos con efectividad, eficiencia y satisfacción en un contexto de uso especificado
HCI
Diseño de sistemas interactivos Diseño centrado en el usuario
Características generales
Diferentes propuestas
MB-UID
Diseño centrado en el usuario En la literatura podemos encontrar varias propuestas para
solucionar este problema que básicamente se fundamentan en la integración de factores humanos en el proceso de desarrollo de software, es decir, tener en cuenta las necesidades del usuario final desde las primeras fases del desarrollo e incorporar estos aspectos en un modelo de usuario como parte del proceso de desarrollo.
Así pues, la solución a este problema consiste en adoptar una aproximación de desarrollo orientada al usuario que se caracteriza por [ISO-13407]:
…desarrollo centrado en el usuario
La participación activa del usuario así como una clara comprensión del contexto de uso y de las tareas y requisitos del usuario final.
Una distribución apropiada de funciones entre los usuarios y la tecnología, especificando qué funciones deben ser llevadas a cabo por los usuarios y cuáles son de índole tecnológica.
La iteración de las soluciones de diseño en las que la retroalimentación del usuario es esencial como fuente de información.
Una perspectiva de diseño multidisciplinar que requiere de gran variedad de especialidades o disciplinas (desarrolladores de software, expertos en usabilidad, especialistas en ergonomía, etc.)
El proceso de diseño de IU
El diseño de IU es un proceso iterativo en el que hay una estrecha relación entre usuarios y diseñadores
Las 3 actividades principales de este proceso son: Análisis del usuario. Comprender lo que harán los usuarios
con el sistema; Prototipado del sistema. Desarrollar una serie de prototipos
para experimentar; Evaluación de la interfaz. Experimentar los prototipos con
los usuarios.
…
Executableprototype
Designprototype
Produce paper-based design
prototype
Producedynamic design
prototype
Evaluate designwith end-users
Implementfinal userinterface
Evaluate designwith end-users
Analyse andunderstand
user activities
© Ian Sommerville 2004
Actividades
Trabajo 1: identificar problemas de usabilidad de objetos cotidianos
Trabajo 2: búsqueda de nuevos dispositivos de interacción
Desarrollo basado en modelos MB-UID
Desarrollo de la IU Modelo de proceso, metodologías, herramientas Automatizar el desarrollo
Basado en modelos
Desarrollo basado en modelos Necesitamos modelos pero… ¿Qué es un modelo?
Una abstracción de algún proceso del mundo real (reconocimiento del lenguaje natural, cognición, etc.)
A menudo expresado mediante una representación concreta
Desarrollo basado en modelos Clasificación de herramientas software de IU:
Herramientas basadas en lenguajes: Requieren que se programe en un lenguaje de propósito especial.
Herramientas de especificación gráfica interactiva: Permiten un diseño interactivo de la IU.
Herramientas de generación basadas en modelos: Hacen uso de un modelo o especificación de alto nivel para generar la IU de forma automática.
Las dos primeras permiten la especificación tanto del comportamiento dinámico como de la estructura de la IU de forma sencilla, pero no ambas partes a la vez.
Y, al igual que la mayoría de las herramientas actuales, soportan solamente la fase final de desarrollo del ciclo de vida de la IU, y las abstracciones que proporcionan no tienen una conexión directa con los resultados finales.
…MB-UID
IDEA PRINCIPAL: Toda la información de la interfaz de usuario necesaria para su desarrollo está explícitamente representada en Modelos Declarativos.
Todos los aspectos del diseño de IU se representan utilizando modelos declarativos
La conveniencia de los entornos basados en modelos radica principalmente en la expresividad que pueden aportar dichos modelos declarativos.
Modelo: Especificación declarativa de la estructura y comportamiento de un componente software.
Declarativos porque no contienen código sino descripciones a alto nivel de abstracción.
…
Características principales de los entornos basados en Modelos: Utilización de Modelos Declarativos para representar todos los
aspectos relativos a la interacción usuario-sistema. Generación Automática de la IU a partir de estos modelos.
Criterios para que una herramienta de IU se considere un Entorno de Desarrollo Basado en Modelos:
(1) Debe incluir un modelo de alto nivel, abstracto y explícitamente representado (declarativo) acerca del sistema a desarrollar.
(2) Debe establecer de forma clara, una relación tecnológicamente bien soportada entre (1) y la IU final.
Generaciones de MB-UIDE
Se distinguen dos generaciones de MB-UIDEs que surgieron como mejoras a los primeros User Interface Management Systems (UIMSs).
La Primera Generación enfatiza la generación automática de la interfaz en lugar del seguimiento de un proceso de diseño de interfaces de usuario.
La Segunda Generación de MB-UIDEs enfatiza la implicación de los usuarios en el proceso de desarrollo de interfaces. Las herramientas de esta generación soportan el diseño incremental de IUs.
…arquitecturaModelo de Interfaz de Usuario
Modelos de tareas, dominio,
usuario
Modelos de Presentacion , Diálogo
Especificación de Interfaz de Usuario Abstracta y Concreta
Desarrollo Interactivo
Herramientas de Modelado
Proceso de Diseño
Herramienta de Generación Automática
Desarrollo Automatizado
Base de Conocimiento
Repositorio de Diseño
Guias de Estilo
Código de la Aplicación
Compilador/Linker
Código GUI Ejecutable
Aplicación Final
Desarrollador de la GUI
Desarrollador de la Aplicación
Herramienta de Generación Automática
Herramienta de Generación Automática
Modelos declarativos Modelo de Tareas
Describe las tareas que el usuario puede ejecutar con el sistema, incluyendo sub-tareas, sus objetivos y los procedimientos utilizados para alcanzar los objetivos.
Modelo de Aplicación Especifica la información acerca de una aplicación que es independiente de
cómo los objetos son mostrados y cómo serán invocadas las operaciones. Normalmente se corresponde con los diagramas de clases.
Modelo de Usuario Describe los posibles usuarios del sistema en términos de sus habilidades,
conocimientos y estilos de procesar la información. Modelo de Presentación:
Describe los aspectos visuales de la interfaz. Se divide en Modelo de Presentación Abstracta y Modelo de Presentación Concreta. Modelo de Presentación Abstracto: proporciona una vista abstracta de una
interfaz que es independiente del modelo concreto subyacente. Modelo de Presentación Concreto: es la instancia concreta de una interfaz que
puede ser presentada al usuario. Puede haber muchas instancias concretas de un modelo de presentación abstracto
Modelo de Diálogo Define las características procesales del diálogo persona-ordenador en un
modelo de interfaz.
…modelos MODELO DE TAREAS:
Una Tarea es un objetivo junto con el conjunto ordenado de acciones y subtareas que se tendrían que realizar en el contexto adecuado.
Esta definición explica la naturaleza inherentemente interrelacionada de tareas y objetivos. Las acciones son necesarias para satisfacer los objetivos.
La descripción de una tarea debe incluir: Un objetivo. Un conjunto no vacío de acciones u otras tareas necesarias
para lograr el objetivo. Un plan de cómo seleccionar acciones o tareas, y Un modelo del artefacto que está involucrado en el desarrollo
de una tarea.
…modelos MODELO DE DOMINIO:
En su forma más básica, los modelos de dominio deberían representar las entidades importantes junto con sus atributos, métodos y relaciones.
Similares a los modelos utilizados por los métodos de Ingeniería del Software, especialmente los métodos orientados a objetos.
Esta clase de modelo de dominio se corresponde con el modelo de objetos de los tradicionales métodos de desarrollo de software orientado a objetos.
…modelos MODELO DE USUARIO:
Describe las características del usuario final de la aplicación. El propósito es soportar la creación de interfaces de usuario individualizadas.
La personalización de una interfaz de usuario se puede llevar a cabo o bien durante el diseño o bien en tiempo de ejecución.
La personalización durante la etapa de diseño viene soportada normalmente por un modelo de usuario que representa los diferentes roles que el usuario puede desempeñar (desarrollo de interfaces de usuario adaptadas),
Mientras que la personalización en tiempo de ejecución requiere un modelo de usuario para cada tipo de usuario (soporte de interfaces de usuario adaptativas).
MODELO DE USUARIO:
Las características del usuario se pueden clasificar como independientes de la aplicación o dependientes de la aplicación.
Las características independientes de la aplicación incluyen aspectos personales como las preferencias, las capacidades, habilidades psicomotrices, etc.
Mientras que las características dependientes de la aplicación incluyen objetivos, conocimiento del sistema y de la aplicación, etc.
Además, un modelo de usuario incluye una serie de reglas para tomar una decisión de diseño de la interfaz de usuario (por ejemplo, la selección de los objetos de interacción) a partir de una determinada característica del usuario.
MODELO DE DIÁLOGO: Se utiliza para describir la “conversación” hombre-
máquina. Describe cuando el usuario final puede invocar comandos, seleccionar o especificar entradas de información y cuando el ordenador puede requerir información del usuario y presentar la información de salida.
El modelo de diálogo describe la secuencia de entradas, salidas y su interrelación. El propósito principal es describir la estructura sintáctica de la interacción hombre-máquina.
Para su modelado se utilizan AIOs (Abstract Interaction Objects).
MODELO DE PRESENTACIÓN: Describe las componentes que pueden aparecer en la pantalla
del usuario final, sus características de diseño y las dependencias visuales existentes entre ellas.
Las pantallas de la mayoría de las aplicaciones constan de una parte estática y otra dinámica.
La parte estática incluye la presentación de los elementos (widgets) estándar tales como botones, menús, cajas de diálogo, etc. Normalmente la parte estática permanece fija durante la ejecución de la aplicación excepto los cambios de estado como habilitado/deshabilitado, visible/invisible.
Por otro lado, la parte dinámica muestra los datos dependientes de la aplicación que típicamente cambian en tiempo de ejecución, por ejemplo, la información de salida que genera la aplicación, los datos de entrada específicos de la aplicación que proporciona el usuario, etc.
Para su modelado se utilizan CIOs (Concrete Interaction Objects)
Modelos de diseño de interfazHay cuatro modelos diferentes en el diseño de HCI
(visión complementaria):
1. El modelo de diseño expresa el diseño del software
2. El modelo de usuario describe el perfil de los usuarios finales (noveles o expertos, con formación cultural o sin ella,…)
3. El modelo del usuario es la percepción del sistema que tiene el usuario final.
4. La imagen del sistema es la manifestación externa del sistema (apariencia, documentación, etc.)
MB-UIDE Un MB-UIDE se compone de:
Modelos declarativos que describen interfaces de usuario (IUs);
Herramientas para construir y ejecutar un modelo de interfaz de usuario (MIU)
Beneficios de los MB-UIDE
Proporciona descripciones más abstractas de IU comparadas con otras herramientas de desarrollo de IU
Facilita la creación de métodos de diseño e implementación de IU de forma sistemática
Proporciona infraestructura para automatizar tareas relacionadas con el diseño de IU
EjemplosCasos
de Uso Tareas Dominio Usuario Diálogo Presentación
UIDE Clases C++
AME Modelo OO
JANUS Modelo OO
GENIUS Modelo E-R
ADEPT
MASTERMIND CORBA IDL
MECANO Modelo OO
MOBI-D
ModeloObjetualMIMIC
TRIDENT Modelo E-R
FUSE
EspecificaciónAlgebraica
TADEUS Modelo OO
OVID Modelo OO
IDEAS Modelo OO
Comparación de entornosModel Constructor
ClassAttributeOperationRelationshipTaskGoalActionSequencingTask pre-conditionTask post-conditionViewAbstract interaction objectWindowConcrete interaction objectLayout
Application model (AM)
Task-dialogue model (TDM)
Abstract presentation model (APM)
Concrete presentation model (CPM)
Notaciones
Los modelos se basan en diferentes notaciones: LOTOS (TDM of ADEPT) OMT (AM of AME, AM of TADEUS) algebraic specification (AM of FUSE) extended CORBA IDL (AM of JANUS, AM of
MASTERMIND) style rule (all models of ITS) MIMIC (all models of MOBI-D) ER (AM of TRIDENT)
Algunas conclusiones (modelos) Modelo de Dominio y Modelo de Aplicación se usan con el
mismo significado y de la misma forma.
La mayoría de los MB-UIDEs incluyen modelos de tareas, dominio y presentación. Las herramientas de primera generación no incluían demasiados modelos.
Todos los MB-UIDEs usan o bien el modelo de diálogo o el de presentación o ambos.
Los modelos de usuario, implementación y contexto son referenciados en la literatura, pero nunca realmente aplicados para la implementación de la interfaz.
Alguna conclusiones (notaciones) Algunos MB-UIDEs utilizan la misma notación para describir
todos los modelos (MIMIC), mientras que otros utilizan notaciones diferentes para modelos diferentes
Algunos MB-UIDEs crean su propia notación y otros usan notaciones existentes o extensiones de ellas (CORBA IDL, CTT, UML, UAN, HIT, ACG, y redes de Petri)
La mayoría de las herramientas de segunda generación tienden a usar mas de una notación
¿Y en el mundo real?
Existen productos comerciales que utilizan la tecnología MB-UIDE
Sin embargo, hay aspectos de la tecnología MB-UIDE que deben ser estudiados para aumentar el grado de aceptación de esos entornos:
Utilizar notaciones estándar de los modelos de IU
Resolver el mapeo entre modelos
Resolver el problema de la post edición de los
modelos de IU