© 2009 ibm corporation end user programming (naturalmente) pablo pedemonte – sw engineer 16 sep...

19
© 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

Upload: emygdia-orrantia

Post on 22-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation

End User Programming (Naturalmente)

Pablo Pedemonte – SW Engineer

16 Sep 2010

Page 2: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation2

Agenda

Conceptos de End User Programming

CoScripter: Programación por Demostración + lenguaje natural

Más aplicaciones de lenguaje natural

Problemas a resolver

Sumario

Page 3: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation3

End User Programming (EUP)

Acerca (parte de) el poder de la programación a los no programadores

Personas sin experiencia en programación pueden modificar o mejorar artefactos de software

Lenguajes de Scripting

Programación Visual

Grabación de Macros

Programación por Demostración

Page 4: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation4

Lenguajes de Scripting

Son la 1ra materialización del concepto de EUP

Construcciones de dominio específico:

Facilita programar, pero no está diseñado para el usuario común

enter(“address”,“221B Baker Street”); vs:

var i = document.forms[0].inputAddr;i.value = “221B Baker Street”;

Page 5: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation5

Programación Visual

Los entornos de programación visual definen metáforas para construir programas de manera gráfica

Algunas de las metáforas típicas:–Flujo de datos entre nodos (el programa es un grafo)

–Reglas de reescritura definidas gráficamente

–Composición de bloques (Open Blocks)

Ejemplo: Google App Inventor

Page 6: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation6

Grabación de Macros

Consiste en grabar acciones llevadas a cabo por los usuarios, se pueden reproducir cuando se desee

Limitación principal:

–Los macros no analizan el significado de las acciones grabadas

–Ejemplos:

• Borrar la primera palabra de una oración• Eliminar comentarios de un fragmento de código C: /*...*/

Page 7: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation7

Programación por demostración (PPD)

EUP + Inteligencia Artificial

Se graban las acciones del usuario

Pero además, se intenta inferir la intención de dichas acciones

La idea:

–Si un usuario es capaz de demostrar cómo llevar a cabo una tarea, un sistema de PPD debería poder producir un programa que la ejecute

Mucho más sencillo que scripting o programación visual

Pero menos poderoso...

Page 8: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation8

Agenda

Conceptos de End User Programming

CoScripter: Programación por Demostración + lenguaje natural

Más aplicaciones de lenguaje natural

Problemas a resolver

Sumario

Page 9: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation9

CoScripter: Programación por Demostración + Lenguaje Natural

Usuarios “muestran” cómo llevar a cabo una tarea en un sitio web

CoScripter infiere descripciones en lenguaje natural de los pasos a seguir

Scripts resultantes grabados en una wiki

Page 10: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation10

CoScripter: ejemplo

* Go to http://www.liveatc.net/* Click the “Top 50 LiveATC Feeds” link* Enter “SABE” into the “Find LiveATC Streams” textbox* Click the “Listen to SABE” button

Page 11: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation11

Por qué utilizar lenguaje natural?

Le da un “toque social” a CoScripter

Contribuye a compartir de modo efectivo el conocimiento sobre cómo llevar a cabo tareas en la web

Los usuarios pueden entender los scripts:

–Modificarlos es trivial

–Mitiga el temor de ejecutar código desconocido en nuestro browser: “Qué hará este script?”

Page 12: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation12

Agenda

Conceptos de End User Programming

CoScripter: Programación por Demostración + lenguaje natural

Más aplicaciones de lenguaje natural

Problemas a resolver

Sumario

Page 13: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation13

Síntesis de Scripts

Es típico encontrar secuencias de instrucciones en manuales de usuario

Podemos identifcar dichas secuencias con técnicas de Machine Learning?

Podemos sintetizar scripts a partir de dichas secuencias?

Ejemplo:

–Generar CoScripter a partir de instrucciones sobre cómo adminstrar una aplicación desde una interfaz web

Page 14: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation14

Casos de Prueba en Lenguaje Natural

Idea: especificar casos de pruebas sobre interfaces gráficas como una secuencia de acciones + pasos de verificación en lenguaje natural

Ejemplo:

End User Programming para testers

Robot basado en CoScripter puede ejecutar suites de tests de modo automático

* Enter your name in the “User ID” textfield* Enter your password in the “Password” textfield* Click the “Log In” button* Verify there is a label with text “Welcome”

Page 15: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation15

Agenda

Conceptos de End User Programming

CoScripter: Programación por Demostración + lenguaje natural

Más aplicaciones de lenguaje natural

Problemas a resolver

Sumario

Page 16: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation16

Problemas a Resolver

End User Programming:

Inferir correctamente la intención del usuario

RIAs complican el proceso:–Ej: Click en un ítem de menú

–Click the “Add New Folder” link vs:

–Select the “Add New Folder” menu item

–Precisamos contexto semántico

–Accesibilidad puede ser la solución

Page 17: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation17

Problemas a Resolver

Lenguaje Natural para End User Programming:

Internacionalización

Tratar correctamente con ambigüedades

Velocidad de procesamiento (ej., servicio de autocompletar)

Page 18: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation18

Agenda

Conceptos de End User Programming

CoScripter: Programación por Demostración + lenguaje natural

Más aplicaciones de lenguaje natural

Problemas a resolver

Sumario

Page 19: © 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010

© 2009 IBM Corporation19

Sumario

EUP se trata de acercar el poder de la programación al “usuario común”.

No programadores pueden mejorar productos de software, adaptándolos a sus necesidades.

PPD es una forma de EUP: mediante técnicas de IA, un sistema observa las acciones de un usuario e infiere su intención.

El procesamiento de lenguaje natural puede ser una contribución importante para EUP y PPD. Hace falta más investigación en este campo.