0 calificaciones0% encontró este documento útil (0 votos)
118 vistas5 páginas
Este documento describe una línea de investigación cuyo objetivo principal es estudiar y desarrollar estrategias para vincular el dominio del problema con el dominio del programa con el fin de facilitar la comprensión de software. Uno de los principales desafíos en comprensión de programas es relacionar correctamente cómo el código del programa (dominio del programa) produce la salida del sistema (dominio del problema). Los investigadores proponen construir representaciones de ambos dominios y definir un procedimiento de vinculación entre ellos. El artículo también menciona proyectos de investig
Este documento describe una línea de investigación cuyo objetivo principal es estudiar y desarrollar estrategias para vincular el dominio del problema con el dominio del programa con el fin de facilitar la comprensión de software. Uno de los principales desafíos en comprensión de programas es relacionar correctamente cómo el código del programa (dominio del programa) produce la salida del sistema (dominio del problema). Los investigadores proponen construir representaciones de ambos dominios y definir un procedimiento de vinculación entre ellos. El artículo también menciona proyectos de investig
Este documento describe una línea de investigación cuyo objetivo principal es estudiar y desarrollar estrategias para vincular el dominio del problema con el dominio del programa con el fin de facilitar la comprensión de software. Uno de los principales desafíos en comprensión de programas es relacionar correctamente cómo el código del programa (dominio del programa) produce la salida del sistema (dominio del problema). Los investigadores proponen construir representaciones de ambos dominios y definir un procedimiento de vinculación entre ellos. El artículo también menciona proyectos de investig
Estrategias para Relacionar el Dominio del Problema con el
Dominio del Programa para la Comprensión de Programas
José Luis Albanes Mario Marcelo Berón Departamento de Informática Departamento de Informática Universidad Nacional de San Luis Universidad Nacional de San Luis San Luis – Argentina San Luis – Argentina email: jlalbanes@gmail.com email: mberon@unsl.edu.ar Pedro Rangel Henriques Maria João Pereira Departamento de Informática Departamento de Informática Universidade do Minho Instituto Politécnico de Bragança Braga – Portugal Bragança – Portugal pedrorangelhenriques@gmail.com mjoao@ipb.pt
Resumen de Software a Fin de Facilitar su Comprensión. Qui-
xote es un proyecto bilateral entre Argentina y Por- La comprensión de programas es una disciplina tugal que está avalado por el Ministerio de Ciencia, de la ingenierı́a de software cuyo propósito funda- Tecnologı́a e Innovación Productiva de la Nación mental es simplificar al programador la tarea de en- Argentina (Mincyt) y la Fundação para a Ciência e tender programas. Uno de los principales desafı́os Tecnologı́a de Portugal (FCT). En dicho proyecto en el área de Comprensión de Programas consiste participan la Universidad Nacional de San Luis y en relacionar dos dominios muy importantes como la Universidad de Minho. Entre las tareas realiza- lo son: el Dominio del Problema y el Dominio del das en el contexto del proyecto Quixote se encuen- Programa. El primero hace referencia a la salida del tran diferentes misiones de investigación realizadas sistema y el segundo a las componentes del progra- desde Argentina hacia Portugal y viceversa. Todas ma utilizadas para producir dicha salida. En este las misiones realizadas han sido solventadas por el artı́culo se presenta una lı́nea de investigación cuya Mincyt y la FCT. Se prevé en que en el transcurso principal finalidad es el estudio, análisis, creación de este año y a inicios del dos mil doce la realiza- y desarrollo de estrategias de interconexión de do- ción de dos misiones de investigación. En la primera minios que faciliten el entendimiento del software. docentes de la Universidade do Minho visitarán la Este artı́culo se centra principalmente en aquellas Universidad de San Luis para establecer un punto que relacionan el dominio del problema con el do- de situación de las investigaciones realizadas. En minio del programa. la segunda docentes de la Universidad Nacional de Palabras Clave: Comprensión de Programas, Do- San Luis, particularmente del Área de Programa- minio del Problema, Dominio del Programa. ción, Metodologı́as y Desarrollo de Software, visi- tarán la Univerisdade do Minho para elaborar los informes correspondientes al cierre del proyecto. Es 1. Contexto importante notar que la Universidad de San Luis y la Universidade do Minho mantienen un vı́nculo Este trabajo se encuentra enmarcado en el con- de amistad y laboral desde hace aproximadamente texto del proyecto Quixote: Desarrollo de Modelos cinco años y por lo tanto Quixote es otro resultado del Dominio del Problema para Inter-relacionar las fructı́fero del vı́nculo establecido entre ambas ins- Vistas Comportamental y Operacional en Sistemas tituciones. desarrolladores o arquitectos de software. Existen Para finalizar esta descripción, es importante muchos productos destinados a facilitar la com- mencionar que Quixote surge como iniciativa de los prensión de software [BHU07]. Sin embargo, en mu- integrantes del proyecto de investigación: Ingenierı́a chas situaciones, no es claro como las teorı́as cog- de Software: Conceptos, Métodos y Herramientas nitivas, estrategias de visualización y extracción de en un Contexto de Ingenierı́a de Software en Evo- la información se instancian en dichos productos lución y del Grupo de Procesamiento de Lenguajes [SFM, Ext02, NG84]. de la Universidade do Minho. Ambos grupos tienen una trayectoria exitosa en el contexto de la realiza- ción de trabajos conjuntos que implican: la elabo- 2.1. El Desafı́o para la Comprensión ración de: tesis, publicaciones y proyectos (Quixote de Programas es fruto de esa experiencia). Actualmente se han realizado muchos trabajos que intentan facilitar la Comprensión de Progra- mas [Sto05]. Esos trabajos presentan interesantes 2. Comprensión de Progra- estrategias que exploran y visualizan el Domino del mas Programa dejando al programador la tarea de in- terpretar la tarea que realizan en el Dominio del La comprensión de programas se traduce en la Problema. También se pudo comprobar que son es- habilidad de entender una pieza de código escrito casas las estrategias que intentan vincular (aunque en un lenguaje de alto nivel. Un programa no es sea débilmente) ambos dominios [LF94, SWM]. más que una secuencia de instrucciones que serán Por lo expuesto en el párrafo anterior se puede ejecutadas de forma tal que se garantiza una de- afirmar que el principal desafı́o en esta área con- terminada funcionalidad. El lector de un programa siste en Relacionar correctamente el Dominio del consigue extraer el significado del mismo cuando Problema con el Dominio del Programa. En otras comprende de que forma el código cumple con la palabras lo que se pretende relacionar es la salida tarea para la cual fue creado [Wal02]. del sistema (Dominio del Problema) con las com- El área de comprensión de programas es una de ponentes de software utilizadas para producir dicha las más importantes de la Ingenierı́a del Softwa- salida (Dominio del Programa). re, porque es necesaria para tareas de reutilización, Una forma de concretar la relación mencionada inspección, manutención, migración y extensión de previamente, consiste en reconstruir la relación real sistemas de software [VMV95, SFM, EKS01]. Pue- entre el Dominio del Problema y el Dominio del de también ser utilizada en áreas como ingenierı́a Programa, por medio de una relación virtual. Para reversa o en ıa enseñanza de lenguajes de programa- alcanzar este objetivo se debe: i) Construir una re- ción. La tarea de comprensión de programas puede presentación del Dominio del Problema; ii) Cons- tener diferentes significados y puede ser vista des- truir una representación del Dominio del Progra- de diferentes perspectivas. El usuario puede estar ma y iii) Definir un Procedimiento de Vinculación. interesado en como la computadora ejecuta las ins- La aproximación descripta anteriormente se puede trucciones con el objetivo de comprender el flujo de conceptualizar como un meta modelo de compren- control y de datos, o puede querer verificar los efec- sión el cual puede ser instanciado con modelos par- tos que la ejecución tiene sobre el objeto que esta ticulares de comprensión, los cuales a su vez pueden siendo controlado por el programa. Considerando ser utilizados como base para la creación de estra- estos niveles de abstracción, el desarrollo de herra- tegias de comprensión. Esta conceptualización es la mientas versátiles de inspección visual de código es utilizada para el estudio y creación de estrategias crucial en la tarea de comprensión de programas. de interconexión de dominios. La Comprensión de Programas es una discipli- El artı́culo se encuentra organizado como se des- na que tiene como objetivo, desarrollar Modelos, cribe a continuación. La sección 3 presenta una des- Métodos, Técnicas y Herramientas basados en un cripción la lı́nea de investigación, sus objetivos y re- proceso cognitivo y de ingenierı́a con el propósi- sultados alcanzados. Finalmente, la sección 4 men- to de facilitar el entendimiento del software a los ciona las actividades, relacionadas con la formación de recursos humanos, llevadas a cabo en el contexto SVSi (Simultaneous Visualization Strategy del proyecto. Improved): Esta estrategia es una combinación de SVS y BORS. A través de SVS se puede ob- servar la salida del sistema y las funciones del 3. Lı́nea de Investigación programa usadas para producir dicha salida. Dichas funciones, son almacenadas en un ar- Los investigadores en Ingenierı́a de Software sos- chivo y luego interpretadas por los algoritmos tienen que: Un programador entiende un programa utilizados por BORS para construir explicacio- cuando puede relacionar la vista Comportamental nes. Es importante notar que SVSi elimina la (la salida del sistema), con la vista Operacional (las necesidad de inspeccionar manualmente el Do- componentes del programa que se utilizaron para minio del Problema, ya que permite visualizar producir dicha salida). la salida del sistema de estudio sincronizada La afirmación realizada en el párrafo precedente con la lista de funciones llamadas. se basa en que dicha relación permite que el progra- mador pueda localizar rápidamente los objetos del A pesar de los resultados obtenidos, en cuanto a programa que se utilizaron para una funcionalidad la interconexión de los Dominios del Problema con especı́fica del sistema de estudio. el Dominio del Programa se refiere, se piensa que A través del estudio del estado del arte se ha es posible encontrar relaciones más fuertes que las podido detectar la existencia de algunas estrategias actuales. Con esto se hace referencia a construir que permiten relacionar el Dominio del Problema un modelo del Dominio del Problema y decorar ese con el Dominio del Programa [BPOdC10]. Entre modelo con las componentes del programa que im- esas estrategias se destacan: plementan cada una de sus partes. La no trivialidad de este proceso llevó al grupo de investigación a SVS (Simultaneous Visualization Strategy): profundizar los estudios relacionados con la elabo- Permite que las componentes de software usa- ración de estrategias de interconexión del Dominio das en tiempo de ejecución sean visualizadas del Problema con el Dominio del Programa con las mientras el sistema se ejecuta. Una debilidad caracterı́sticas antes mencionadas. de esta técnica es la imposibilidad de obtener explicaciones del comportamiento del sistema debido a la forma en la que se representa la 3.1. Análisis Comportamental información dinámica. El Análisis Comportamental (AC) es una pro- BORS (Behavioral-Operational Relation Stra- puesta de estrategia de interconexión del Dominios tegy): Requiere que el sistema sea ejecutado y del Problema con el Dominio del Programa elabo- que cierta clase de información dinámica, co- rada por el grupo de investigación. AC es una estra- mo por ejemplo las funciones usadas durante gia muy importante porque provee una solución al la ejecución del sistema, sea recuperada. Des- problema de vincular un modelo del Dominio del pués de eso dicha información es procesada por Problema con las componentes del programa que algoritmos que construyen explicaciones rela- implementan cada una de sus partes. cionadas con la ejecución del sistema. En esta AC es una estrategia que permite relacionar el técnica existe una fase de inspección manual Dominio del Problema con el Dominio del Progra- que recupera nombres de funciones relaciona- ma; utilizando información estática y dinámica del das con un determinado concepto del dominio sistema de estudio. del problema lo que introduce complejidades La primera hace referencia a: tipos, variables, en el proceso de comprensión. Es importante funciones, etc.; definidas en el código fuente del pro- notar que dicho proceso de inspección se reali- grama. La segunda se centra en la recuperación de za utilizando la técnica del grep. Está técnica las componentes de software usadas en tiempo de consiste en buscar palabras claves, por concor- ejecución. dancia sintáctica, en el código fuente del pro- Para la extracción de información estática se uti- grama utilizando el comando grep provisto por lizan técnicas de compilación tradicionales. Es decir los sistemas operativos Linux, Unix, etc. se construye un analizador sintáctico con las accio- grama. Sin embargo, es posible mejorar esta corres- pondencia a través de la introducción de represen- taciones del Dominio del Problema, como por ejem- plo los Mapas Conceptuales, Modelos de Dominio o Casos de Uso de UML decorados con las funciones del sistema que implementan cada concepto. Para clarificar la idea descripta en el párrafo pre- cedente, asuma que el sistema de estudio es un Módulo de simulación perteneciente a un SCADA (Sistema de Supervisión, control y Adquisición de datos) y que su mapa conceptual es el que se mues- tra en la Figura 1. Después (Antes o al mismo tiem- Figura 1: Mapa Conceptual de un Módulo de simu- po) de la construcción de la representación el pro- lación perteneciente a un sistema SCADA. gramador puede ejecutar el sistema instrumentado para concretizar cada concepto. En otras palabras, el programador usa el sistema para: Seleccionar Au- tomatismo, adquirir información, encender/apagar nes semánticas apropiadas para extraer la informa- automatismo, etc. Para cada operación, se registran ción deseada. las trazas de ejecución y esta información se asocia Para la extracción de la información dinámica, a cada concepto. se define un esquema de Instrumentación de Códi- El resultado es una representación del Domi- go. Esta técnica consiste en la inserción de senten- nio del Problema decorada con las componentes cias dentro del código fuente del sistema de estudio del programa empleadas para llevar a cabo ca- con la finalidad de recuperar las componentes del da concepto. El lector puede percibir que la rela- programa que se utilizaron para producir la salida. ción comportamental-operacional que se alcanza es Este esquema inserta funciones de inspección que una relación comportamental-operacional con más muestran los nombres de las funciones ejecutadas semántica. Es posible hacer esta afirmación, por- por el sistema y otra información que el programa- que el esquema conceptual describe el dominio del dor considere importante. problema y por cada concepto se muestran las fun- Básicamente el Análisis Comportamental consis- ciones utilizadas para concretarlo. El mismo pro- te en: i) Reproducir cada comportamiento del sis- cedimiento se puede aplicar usando herramientas tema; ii) Registrar las operaciones realizadas y iii) estándares de ingenierı́a tal como los Diagramas de Procesar la información con el objetivo de recu- Caso de Uso de UML o el Modelo de Dominio. La perar conocimiento. Por una parte, se utiliza una ventaja de esta aproximación es que los resultados técnica de intrumentación de código como la des- obtenidos se integran con más facilidad a los pro- cripta al comienzo de esta sección, para extraer la yectos de desarrollo de software. información dinámica del sistema. Por la otra, el La implementación de este esquema basicamen- programador debe ejecutar el sistema y usar todas te requiere de: i) Técnicas de recuperación de las sus funcionalidades. Para cada funcionalidad, se re- trazas de ejecución; ii) Estrategias de extracción gistra cada traza de ejecución y se asigna a cada de información estática que brinden información una de ellas un nombre semántico. más precisa de los datos reportados por el análi- Cuando se realizan todas las tareas explicadas sis dinámico; y iii) Una herramienta de Modelado previamente se aplican técnicas de análisis del flu- Conceptual. jo de ejecución de las funciones que posibiliten la Esta aplicación se puede implementar como parte extracción de la información más relevante. Con el de una Herramienta de Comprensión de Programas, procedimiento descrito previamente, el programa- en este caso tal vez sea posible asociar los elemen- dor tiene solamente las funcionalidades del sistema tos conceptuales con las componentes del programa aisladas con las componentes del programa asocia- automáticamente, decorando el modelo con infor- das. El lector puede observar que esta es una clase mación dinámica y estática proveniente del código de relación entre los Dominios del Problema y Pro- fuente. 4. Formación de Recursos Hu- gram Comprehension, 2002. Procee- dings. 10th International Workshop manos on, pages 281–284, 2002. Actualmente los temas abordados por esta lı́nea [LF94] H. Lieberman and C. Fry. Bridging de investigación están siendo desarrollandos como the gulf between code and behavior parte de una tesis de Maestrı́a en Ingenierı́a de in programming. In ACM Conference Software en la Universidad Nacional de San Luis. on Computers and Human Interface, Además se está trabajando en conjunto con inte- Denver, Colorado, April 1994. grantes de otra lı́nea de investigación que se encar- ga de estudiar técnicas de instrumentación de códi- [NG84] J. D. Novak and D. B. Gowin. Lear- go. A través del trabajo colaborativo de la lı́nea ning How to Learn. Cambridge Uni- de investigación aquı́ presentada y la previamente versity Press, 1984. mencionada se están desarrollando trabajos de li- cenciatura relacionados con la vinculación del Do- [SFM] M. A. Storey, F. D. Fracchia, and minio del Problema con el Dominio del Programa Müller. Cognitive design elements to para faciliar el entendimiento de los sistemas de support the construction of a mental software. Se espera en el futuro poder extender las model during software exploration. investigaciones realizadas en esta lı́nea de investi- [Sto05] M. A. Storey. Theories, methods and gación con el propósito de elaborar tesis de grado tools in program comprehension: past, y posgrado. present and future. Proceedings of the 13th International Workshop on Pro- gram Comprehension, pages 181–191, Referencias 2005. [BHU07] M. Beron, P. Henriques, and R. Uzal. [SWM] M. A. Storey, K. Wong, and Müller. Program Inspection to interconnect How do program understanding tools Behavioral and Operational Views for affect how programmers understand Program Comprehension. Technical programs? Report, 2007. [VMV95] A. Von Mayrhauser and A. M. [BPOdC10] Mario M. Berón, Maria João V. Pe- Vans. Program comprehension during reira, Nuno Oliveira, and Daniela software maintenance and evolution. da Cruz. Svs, bors, svsi: Three Computer, 28(8):44–55, 1995. strategies to relate problem and pro- gram domains. In Proceedings of the [Wal02] A. Walenstein. Theory-based analy- 2010 IEEE 18th International Con- sis of cognitive support in softwa- ference on Program Comprehension, re comprehension tools. In IWPC ICPC ’10, pages 60–61, Washington, ’02: Proceedings of the 10th Interna- DC, USA, 2010. IEEE Computer So- tional Workshop on Program Com- ciety. prehension, page 75, Washington, DC, USA, 2002. IEEE Computer Society. [EKS01] T. Eisenbarth, R. Koschke, and D. Si- mon. Aiding program comprehen- sion by static and dynamic feature analysis. In ICSM’01: Proceedings of the IEEE International Conference on Software Maintenance (ICSM’01), pa- ge 602, Washington, DC, USA, 2001.