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

Slides:



Advertisements
Presentaciones similares
Presentación de Visual Web Developer 2005 Express Edition Alfonso Goyeneche Torres Presidencia Nacional Comunidad Académica Microsoft Junta Directiva Nacional.
Advertisements

CSS Rogelio Ferreira Escutia. 2 Hojas de estilo cascada, mayo 2010 Definición La hojas de estilo en cascada (en inglés.
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
ANÁLISIS DE REQUERIMIENTOS
Conceptos preliminares
Crear un formulario Web Form con Microsoft ASP.NET
Diseño de Interfaces Humanas
Razonamiento algorítmico
Modelando aplicaciones
¿Cómo hacer para que una máquina comprenda el LN?
Desarrollo de un entorno de programación para Máquinas de Turing
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Prof. Adelaide Bianchini. Dpto. de Computación y Tecnología de la Información. Universidad Simón Bolívar. Mayo Diseño centrado en el usuario Prof.
Resolución de Problemas Algoritmos y Programación
Java Applets Ing. Martín Jiménez.
Ciclo de desarrollo del software
Entender el proceso que sigue un tester para probar un interfaz de usuario Tener una visión general de las capacidades que ofrece TLM para automatizar.
WEB SEMANTICA Integrantes: Juan Carreño Ojeda Felipe Salazar Fernández.
INGENIERIA DE REQUERIMIENTOS
Inteligencia artificial
PROGRAMACIÓN LÓGICA.
COMPUTACIÓN APLICADA FACULTAD DE INGENIERÍA, UAQ Tablas Dinámicas, Macros Ma. Teresa García Ramírez.
DISEÑO DE LA INTERFAZ DE USUARIO
Inteligencia artificial
1.1 Concepto y terminología
Programación I Universidad Nacional de Luján
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
Prof. José T. Cadenas. Aplicación Web La Internet y la Web hacen que sea fácil y atractivo poner toda la información en el cyberespacio, y la hace accesible.
Proyecto HAL La máquina de conversar Pablo Iacub, Leopoldo Carranza y Dan Rozenfarb.
GOOGLE     Es el buscador más utilizado es la fuente prioritaria de sus ingresos y utilización, tienen desarrolladas.
Programación de Sistemas
Metodología para solución de problemas
QUÈ ES VISUAL BASIC ES UN LENGUAJE DE PROGRAMACIÒN QUE SE HA DISEÑADO PARA FACILITAR EL DESARROLLO DE APLICACIONES EN EL ENTORNO GRÀFICO (GUI GRAPHICAL.
Hermilia Molina Acevedo
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOS
 TECNOLOGIAS DE LA INFROMACIONM Y COMUNICACIÓN En este bloque vemos trabajamos con las definiciones de que es Word. Excel y Power point. WORD: Microsoft.
PROGRAMAS INFORMATICOS
LÓGICA DE PROGRAMACIÓN LSC. Susana Alejandra López Jiménez.
Web Semántica La Web Semántica es la nueva generación de la Web, que intenta realizar un filtrado automático preciso de la información. Para ello, es necesario.
José R. Oliveras Vélez Coordinador de Servicios Técnicos al Usuario Centro de Recursos para el Aprendizaje Universidad de Puerto Rico en Utuado.
SISTEMAS EXPERTOS (SE) Coronel Jaramillo Ricardo
Christian Monrreal Gonzalez Daryl Silverman Aguilar Gone
Glosario Pictórico por Lilliam María Martínez García Asignatura: Indagación, Tecnología y Pensamiento Crítico.
PROYECTO TECNOLÓGICO Mateo Guerra Alzate Cristian Herrera 9-D I
Entendiendo las partes
ALGORITMOS PRESENTADO POR: FERNANDA LEURO TATIANA CONTRERAS 1004
Introducción a UML Departamento de Informática Universidad de Rancagua
Roles de Open UP.
P R O Y E C T O S.
Software.
INGENIERÍA DE REQUISITOS Unidad 2 Integrantes equipo Morales Balderas josefina Reyes Larios María Fernanda Heredia palma Andrea Valencia Carrión Alina.
Parcerisa, A. (1996), señala que Material Didáctico son aquellos artefactos que utilizando diferentes formas de representación (simbólica, objetos) ayudan.
ANÁLISIS ESTRUCTURADO
Programación de Sistemas
TEMA 4: MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Proceso de desarrollo de Software
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
INGENIERIA EN SISTEMAS COMPUTASIONALES. SISTEMAS EXPERTOS Es una aplicación informática capaz de solucionar un conjunto de problemas que exigen un gran.
ESTE TERMINO SE DEFINE COMO : UN PROCESO EN EL CUAL SE NOS DESCRIBE UN PROBLEMA (EN LENGUAJE NATURAL), LUEGO DE ESTO SE PLANTEAN POSIBLES RESOLUCIONES.
Especificación del Problema Partimos del hecho de un programador no puede resolver un problema que no entiende. Por esta razón, la primera etapa en todo.
ELO-329: Diseño y Programación Orientados a Objetos1 Proceso de Desarrollo de SW Agustín J. González ElO329: Diseño y Programación Orientados a Objeto.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Diseño Web Centrado en el Usuario Usabilidad y Arquitectura de la Información Seminario Ciberculturas UNR Prof. Silvana Comba y Prof. Edgardo Toledo.
Juan Camilo Morales 10a.  Es el conjunto de herramientas que permiten al programador escribir programas informáticos, usando diferentes alternativas.
Entregables del Proyecto
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
Transcripción de la presentación:

© 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

© 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

© 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”;

© 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

© 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: /*...*/

© 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...

© 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

© 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

© 2009 IBM Corporation10 CoScripter: ejemplo * Go to * Click the “Top 50 LiveATC Feeds” link * Enter “SABE” into the “Find LiveATC Streams” textbox * Click the “Listen to SABE” button

© 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?”

© 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

© 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

© 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”

© 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

© 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

© 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)

© 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

© 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.