Desarrollo por el Usuario Final

Anuncio
Desarrollo por el Usuario Final
José Antonio Macías Iglesias
Departamento de Ingeniería Informática
Universidad Autónoma de Madrid
Ctra. De Colmenar Km. 15
28049 Madrid
[email protected]
Resumen
Este artículo trata sobre lo que en los últimos años
se ha denominado Desarrollo por el Usuario
Final (End-User Development). El contenido
fundamental que encierra este término no es en sí
novedoso, sino que está formado por una serie de
paradigmas consensuadas años atrás, re-enfocados
esta vez a partir de la tecnología y los
requerimientos actuales de la nueva era de la
computación. En este artículo se describirá en qué
consiste este nuevo paradigma, sus principales
objetivos, así como los sistemas y aplicaciones
más recientes diseñados bajo esta filosofía.
1. Introducción
En la última década se ha venido produciendo un
significativo avance en el mundo de las nuevas
tecnologías de la información. La aparición
paulatina de nuevos dispositivos y soportes ha
originado que la forma de llevar a cabo la
computación
tradicional
cambie
considerablemente. Este desplazamiento ha
provocado que gran parte de la población mundial
haya acabado, de una u otra forma, manejando
software, pasando de tener personas que utilizaban
de forma esporádica el ordenador a tener usuarios
finales expertos en su dominio que manejan
distintos programas enfocados a fines muy
concretos, como la simulación, experimentación,
desarrollo de pequeñas aplicaciones o módulos
con entornos de alto nivel, macros, aplicaciones
web, etc. La diversidad en cuanto a las
preferencias de las personas y los intereses
individuales de cada usuario es un hecho. Las
aplicaciones han dejado de ser generales para
tener que adaptarse, en cierta forma, a las
personas que las manejan, personas con diferente
cultura, conocimientos y habilidades cognitivas.
Otros de los fenómenos acontecidos en los
últimos años, en relación con lo anteriormente
comentado, es el hecho de que el concepto clásico
del diseñador software, como experto en el
dominio de la informática, haya cambiado
notablemente. Hoy en día existe un gran número
de usuarios finales que han pasado de ser meros
usuarios del ordenador a convertirse en
diseñadores, es decir, personas que finalmente
acaban componiendo o creando algún tipo de
artefacto software en función de sus propias
necesidades. Esto corrobora en cierta forma una
de las frases más acertadas de uno de los grandes
visionarios del mundo de las tecnologías de la
información, Ben Shneiderman, que manifestó
que la computación actual debe versar sobre lo
que los usuarios pueden hacer con los
ordenadores, a diferencia de la computación
tradicional donde lo importante era lo que los
ordenadores podían hacer por sí mismos [15].
En base a estas argumentaciones, hay que
decir que, afortunadamente, se ha incrementado
en gran medida la producción de software
interactivo. Sin embargo, la utilización de este
software requiere del usuario, en cierta forma,
conocer o abstraerse a partir de distintos lenguajes
de especificación visuales o textuales que
demandan grandes niveles de experiencia. Este es
un problema inherente, ya que la mayoría de estos
usuarios son expertos en su dominio y no en
lenguajes informáticos de programación o
especificación. Se hace necesario, por tanto,
proporcionar entornos que permitan a los usuarios
finales, sin conocimientos en programación,
desarrollar o modificar aplicaciones existentes,
permitiéndoles así emplear tecnologías avanzadas
de la información , actuales y/o futuras, aplicadas
al desarrollo de su labor cotidiana.
La diversidad imperante en el mundo de las
tecnologías de la información hace plantearse de
qué forma podrían estandarizarse los mecanismos
de autoría, dotando a un usuario no experto la
capacidad de crear a partir de aplicaciones
informáticas. La solución es probablemente un
cambio de mentalidad, es decir, que de alguna
forma al diseñar estas aplicaciones los diseñadores
tengan en cuenta los requerimientos de cada
usuario final, para que el desarrollo del producto
sea más adecuado en función de cada contexto de
uso. Este aspecto provoca un cambio de tendencia
que desplaza a los actuales diseños desde el
concepto de «facilidad de uso» (easy-to-use) hasta
el concepto de «facilidad para el desarrollo de
aplicaciones software interactivas» (easy-todevelop interactive software systems) [14].
2. EUD como paradigma
El EUD (End-User Development) o Desarrollo
por el Usuario Final se define como un conjunto
de actividades o técnicas que permiten a las
personas,
que
no
son
desarrolladores
profesionales, crear o modificar software [4]. Este
paradigma está basado en campos de
investigación ya conocidos y explorados, como es
el caso de la Interacción Persona Ordenador y la
Ingeniería de Software, principalmente.
El EUD surge como iniciativa europea a partir
del proyecto EUD-Net [11], una Red de
Excelencia Europea que tiene como objetivo hacer
posible, de una forma rápida y barata, la coevolución de sistemas y usuarios finales como uno
solo, a partir de la adaptación explícita de las
aplicaciones informáticas a las actividades de los
propios usuarios. Los sistemas basados en el EUD
deben ser fáciles de entender, de aprender, de
usar, de enseñar y de evaluar [4].
2.1. Objetivos
Aunque a grandes rasgos el principal objetivo que
persigue el Desarrollo por el Usuario Final es
facilitar la autoría de software a cualquier tipo de
usuario, es necesario plantear unos objetivos más
concretos, basados en el análisis de la situación
actual y que permitan, finalmente, conseguir ese
objetivo principal marcado como hito. De esta
forma, son los objetivos que a continuación se
detallan los que se marcan como prioritarios
dentro del EUD:
Aumentar la participación del usuario en el
proceso inicial de diseño. Se trata de tener en
cuenta la opinión del usuario en todo momento,
haciendo un diseño mucho más centrado en el
usuario y adaptado a sus propias necesidades. En
cualquier caso, los requerimientos del usuario
final son muy diversos y cambiantes, y pueden ser
difíciles de especificar en un momento dato. Los
métodos tradicionales utilizados para el ciclo de
vida de aplicaciones software son difíciles de
adaptar a la filosofía del EUD. Se necesitan por
tanto métodos evolutivos, haciendo más hincapié
en el «Diseño durante el uso» en vez del «Diseño
antes del uso».
Utilizar lenguajes visuales de modelado. Es
primordial conseguir lenguajes fáciles de usar
para el usuario, más intuitivos, así como lenguajes
de dominio específico. Esto permite hacer frente a
la diferencia de abstracción existente entre los
profesionales del software y usuarios finales o
expertos del dominio.
Llegar a un compromiso aceptable entre la
expresividad y la facilidad de uso. Lo deseable
para este caso es conseguir entornos de creación
de software fáciles de utilizar, intuitivos, a partir
de técnicas WYSIWYG, disminuyendo por el
contrario la capacidad expresiva de los mismos.
En definitiva se trata de evaluar lo que se
denomina el Gentle Slope of Complexity [4], es
decir, conseguir un compromiso aceptable entre la
expresividad y la facilidad de uso a base de
reducir la complejidad conceptual de las
aplicaciones. Para ello sería deseable que el
software
basado
en
EUD
incorporara
características tales como permitir al usuario
establecer parámetros y seleccionar objetos,
integrar componentes existentes en el sistema y
extender el sistema programando nuevos
componentes.
Diseñar más software adaptativo. Teniendo al
usuario final como objetivo en el diseño de
software para autoría, sería conveniente, como
ayuda al usuario, construir sistemas que se
adapten a éste durante el uso. Para ello el software
adaptativo debe realizar un seguimiento del
comportamiento del usuario, así como de otras
actividades contextuales, como la actividad actual
o la situación y el contexto de uso. Es importante
que el sistema lleve a cabo una adaptación no
intrusiva, intentando no distraer el usuario de su
tarea principal.
3. Aplicaciones y sistemas
Entre los sistemas basados en entornos visuales y
herramientas de prototipado está TERESA [10],
una herramienta enfocada al diseño y desarrollo
de aplicaciones nómadas (nomadic). Esta
herramienta permite una migración del paradigma
basado en modelos al desarrollo natural de
aplicaciones, con un soporte integrado para
representaciones
formales
e
informales,
permitiendo además la modificación de
aplicaciones existentes o la creación de nuevas
aplicaciones desde cero. TERESA lleva a cabo un
proceso de ingeniería directa, generando una
interfaz de usuario Web multiplataforma a partir
de un modelo de tareas basado en
ConcurTaskTrees
[13].
Por
otro
lado,
WebRevenge [12] lleva a cabo el proceso de
ingeniería inversa, es decir, genera un modelo de
tareas a partir del análisis de la interacción y los
componentes de una interfaz Web final. La
combinación de estas dos herramientas, TERESA
y WebRevenge, permite la migración de
aplicaciones y la re-ingeniería en función de
distintas plataformas de acceso.
Dentro de los sistemas basados en la web se
encuentran los Sistemas Adaptativos Hipermedia
[3], que permiten adaptar la información
presentada durante la navegación en función del
usuario que interactúa con la aplicación Web
mediante el browser o navegador. Aunque ha
habido numerosos trabajos de investigación y
distintas aportaciones basados en estos sistemas,
la realidad es que la mayoría de los Sistemas
Hipermedia Adaptativos existentes no soportan lo
que se denomina el round-trip problem, es decir,
el proceso que permite a un usuario final poder
modificar o hacer cambios en estas aplicaciones
Web a partir de la página HTML generada. Una
aportación EUD a este campo es la herramienta
LAPIS [9], un Web Scraper cuya interfaz es un
navegador estándar. LAPIS maneja una librería de
patrones extensible que se utiliza para mostrar al
usuario información de la Web con mayor nivel
conceptual que el HTML. De esta forma el
usuario se aleja de conceptos meramente técnicos
sobre las páginas Web (links, etiquetas, estilos,
etc.) para centrarse únicamente en conceptos
relacionados con su propio dominio. LAPIS
además permite que el usuario pueda realizar
búsquedas conceptuales por la Web, a través de la
comparación con los elementos de la librería de
patrones que la herramienta contiene.
El campo de la Programación por
Demostración es esencial como aportación al
EUD, aunque no es en sí novedoso. Prueba de ello
son los diferentes trabajos que se han ido
presentado a lo largo de estos últimos diez años a
través de autores ya clásicos en este campo de
investigación, como por ejemplo Henry
Lieberman. Una referencia obligada es el libro
Your Wish is my Command: Programming by
Example [5], donde se proponen distintas
herramientas, muchas utilizadas hoy en día, como
ejemplo de sistemas que hacen uso del paradigma
de la Programación por Demostración para
resolver problemas concretos. Este es el caso de
Personal Wizards [1], uno de los últimos trabajos
desarrollado por autores ya clásicos en PbE como
son Lawrence Bergman y Tessa Lau. Esta
herramienta captura los eventos generados por un
usuario
experto
bajo
una
aplicación.
Seguidamente el sistema crea un asistente, a partir
de los eventos generados, para guiar a usuarios
menos expertos paso a paso a través de las tareas
propuestas.
Otra aportación en EUD, esta vez personal,
consiste en un sistema híbrido o multi-paradigma
que roza cada uno de los campos relatados
anteriormente. DESK [6], [7] es una herramienta
de autor WYSIWYG que funciona como editor y
navegador Web. Con DESK un usuario puede
navegar
por
páginas
Web
generadas
dinámicamente por el sistema PEGASUS [2] y
editarlas directamente en un entorno visual de
libre manipulación. Una vez hechos los cambios
DESK lleva a cabo un proceso de ingeniería
inversa [8], que consiste en inferir los cambios en
los modelos subyacentes de PEGASUS, a partir
de las modificaciones hechas por el usuario en la
interfaz generada. De esta forma se evita que el
usuario tenga que aprender directamente los
lenguajes de creación de páginas o interfaces Web
habituales. DESK cumple las premisas exigidas
por el EUD, siendo una herramienta fácil de usar a
base de sacrificar parte de la expresividad
implícita mediante el entorno WYSIWYG. Esto
además ayuda a suavizar la curva de complejidad
(Gentle Slope of Complexity) en el uso de la
herramienta.
4. Conclusiones
El Desarrollo por el Usuario Final es un
paradigma orientado a crear una sociedad de la
información mucho más centrada en las
necesidades reales de los usuarios finales,
permitiendo que éstos puedan acceder fácilmente
a información específica en el contexto adecuado
y en base a sus habilidades o discapacidades
físicas y/o cognitivas. Se pretende que las
personas tengan acceso a personalizar los sistemas
de información a sus requerimientos individuales
y al diseño de sistemas que puedan ser más
socialmente aceptados mediante la implicación
colaborativa de todos sus actores. Además, el
EUD pretende aumentar la productividad,
alentando a que los empleados adapten los
sistemas a sus requerimientos específicos en la
empresa.
Referencias
[1] Bergman, L., Lau, T., Castelli, V., Oblinger,
D.: Personal Wizards: collaborative end-user
programming. Proceedings of the End User
Development Workshop at CHI’2003
Conference. Ft. Lauderdale, Florida, USA.
April 5-10, 2003.
[2] Castells, P.; Macías, J.A.: Context-Sensitive
User Interface Support for Ontology-Based
Web Applications. Poster Session of the 1st.
International Semantic Web Conference
(ISWC’02), Sardinia, Italia; June 9-12th,
2002.
[3] Encarnação, L.M.: Multi-Level user Support
through Adaptive Hypermedia: A Highly
Application-Independent Help Component.
Proceedings of the IUI’97 Conference.
Orlando, Florida, USA, 1997, pp. 187-194.
[4] Klann, M.; Fit, F.: End-User Development.
D1.1 Roadmap. Proceedings of the End User
Development Workshop at CHI’2003
Conference. Ft. Lauderdale, Florida, USA.
April 5-10, 2003.
[5] Lieberman, H. (ed): Your Wish is my
Command. Programming By Example.
Morgan Kaufmann Publishers. Academic
Press, USA. 2001.
[6] Macías, J.A.; Castells, P.: Dynamic Web Page
Authoring by Example Using Ontology-Based
Domain Knowledge. Proceedings of the
International Conference on Intelligent User
Interfaces (IUI’03). Miami, Florida, USA.
January 12-15, 2003, pp. 133-140.
[7] Macias Iglesias, J.A.: Autoría de Documentos
Web Dinámicos Mediante Ontologías y
Técnicas de Programación por Demostración.
Tesis Doctoral. Escuela Politécnica Superior.
Universidad
Autónoma
de
Madrid.
Septiembre de 2003. Disponible on-line en:
http://www.ii.uam.es/~jamacias/tesis/tesis.htm
l.
[8] Macías, José A., Puerta, Angel R. y Castells,
Pablo: MBUI para Procesos de Ingeniería
Inversa. Actas del Congreso Interacción
Persona-Ordenador (Interacción’04). Editores:
Jesús Lorés Vidal y Raquel Navarro Prieto.
Lérida 3-7 de 2004, pp. 186-193.
[9] Miller, R.C.: End User Programming for Web
Users. Proceedings of the End User
Development Workshop at CHI’2003
Conference. Ft. Lauderdale, Florida, USA.
April 5-10, 2003.
[10] Mori, G., Paternò, F., Santoro, C.: CTTE:
Support for Developing and Analysing Task
Models for Interactive System Design. IEEE
Transactions on Software Engineering, pp.
797-813, August 2002 (Vol. 28, No. 8), IEEE
Press.
[11] Network of Excellence on End-User
Development
(EUD-Net).
http://giove.cnuce.cnr.it/eud-net.htm.
[12] Paganelli, L., Paternò, F.: Automatic
Reconstruction of the Underlying Interaction
Design of Web Applications, Proceedings of
SEKE Conference, pp. 439-445, ACM Press,
Ischia.
[13] Paternò, F.: Model-Based Design and
Evaluation of Interactive Applications.
Springer Verlag, 2001.
[14] Paternò, F.: From Model-Based to Natural
Development. Proceedings of the End User
Development Workshop at CHI’2003
Conference. Ft. Lauderdale, Florida, USA.
April 5-10, 2003.
[15] Shneiderman, B.: Leonardo’s Laptop. The
MIT Press, 2003.
Descargar