Goals
Program Comprehension is an
important task for Software
Maintenance, because it helps to reach a deeper knowledge about the
software system and its components.
In the last three decades, the research and development in Program
Comprehension Area was based in the Program Domain.
Many
techiques and algorithms were used to extract and explore dynamic and
static information from source code. Code analysis, slicing and
visualization techniques were refined to allow comprehending the
execution flow of control information.
However, the activities mentioned in the precedent paragraph are not
enough
for comprehending a software system. A mapping between internal actions
(Program Domains) and the external effects (Problem Domain) is needed.
So, this project is concerned with the formal characterization of
Problem Domain and its relation with Program Domain for improving
Program Comprehension.
The specific goals are:
- To characterize the
Problem Domain and to identify
models.
- To adapt the traditional
visualization systems for
visualizing the Problem Domain and its mapping with Program Domain.
Tasks
In order to reach the proposed goals, the
following tasks will be carried out:
- To identify information
sources for extracting complete system
descriptions.
- To identify software
patterns for gathering the related
information with the most common Problem Domain representations.
- To formally characterize the
Problem Domain.
- To chose the most adequate
model for describing the Problem
Domain.
- To propose strategies for
relating the representations of the
Problem and Program Domains.
- To adequate the
visualizations systems to deal with: i) Problem Domain;
ii) The relation
between the Problem and Program Domains.
- To propose new navigation
strategies to explore the reached
knowledge through the visualization mentioned in the previous items.
Methodology
To comprehend a software
system, a mapping between the internal operations and the effects
produced by these operations in the Problem Domaind must be built. The
first one, Program Domain, is an area well studied (because it is a
requirement for building compilers with code optimizations), the second
one, Problem Domain, will have to be modeled too.
For these reasons, we will use formal specifications for
characterizing completely
and rigorously
this
domain. This
formalization makes possible to define several models for describing
the Problem Domain following a similar way to the steps used for
charecterizing the Program Domain. This work aims at indentifing
information sources, related with each
kind of applications, useful for extracting data to build models.
Initially Dictionaries, Thesaurus, Ontologies/Conceptual Maps, etc.
will be considered as Problem Models. However other models will be
needed
for specifying processes.
As Program Models, the UML diagrams, Control Flow Graphs, Decorated
Abstract Syntax Trees, Identifier Tables, and Data Dictionaries, will
be
used. From the model selection and the definition of the strategy to
automatically
building them, using descriptions or code analysis, two task will be
needed:
- To characterize and model
the mapping between both domains .
- To select visualization
systems for showing the related information with the program model and
the mapping between
the problem and program domains.
Project
Team
- Dr. Pedro Rangel
Henriques. Universidade do Minho.
- Dra. María
João Pereira. Instituto Politécnico de
Bragança.
- Dra. Daniela da Cruz.
Univerisdade do Minho.
- Mg. Nuno Oliveira.
Universidade do Minho.
- Dr. Roberto Uzal.
Universidad Nacional de San Luis.
- Dr. Daniel Riesco.
Universidad Nacional de San Luis.
- Dr. Mario
Berón. Universidad Nacional de San Luis.
- Mg. Germán
Montejano. Universidad Nacional de San Luis.
- Nuno Carvalho (Ph.D.),
Universidade do Minho. Portugal.
- José
Luís Freitas (M.Sc.), Universidade do Minho.
Portugal.
-
Under-graduation
Students
- APU. Mariano Luzza. .
Universidad Nacional de San
Luis. Argentina.
- APU. Hernán
Bernardis. Universidad Nacional de San
Luis. Argentina.
- APU. Enrique Miranda.
Universidad Nacional de San
Luis. Argentina.
- APU. Ignacio El Kadre.
Universidad Nacional de San
Luis. Argentina.
- APU. Javier Azcurra.
Universidad Nacional de San Luis. Argentina.
- APU. Maria Matkovic.
Universidad Nacional de San Luis. Argentina.
- APU. Arnaldo Ceballos.
Universidad Nacional de San Luis. Argentina.
Working
Visits
- San Luis (Argentina) from
2010-11-22 to 2010-11-28: Travel
Report
- Braga (Portugal) from
2011-02-02 to 2011-02-16: Travel
Report
- San Luis (Argentina) from
2012-01-30 to 2012-02-05: Travel
Report
- Braga (Portugal) from
2012-02-10 to 2012-02-24: Travel
Report
Results
- Five under-graduation
thesis
undergoing.
- 12 publications
/ paper presentation
- One new strategy to
interconnect the problem and program
domains, it is: SVSi (Simultaneous Visualization Strategy Improved).
-
Publications
-
Presentation
in Symposiums
- Béron M., Pereira
M.J., Oliveira N., Cruz D., SVS, BORS,
SVSi:Three Strategies to relate Problem and Program Domains, ICPC 2010
- 18th IEEE International Conference on Program Comprehension, Braga,
2010.
- Oliveira N., Pereira M.J.,
Cruz D., Beron M., Inuence of
Synchronized Domain Visualizations on Program Comprehension, Working
Session, ICPC 2010 - 18th IEEE International Conference on Program
Comprehension, Braga, 2010.
- Berón M., Uzal
R., Henriques P., Pereira M.J., Estrategias para
Facilitar la Comprensión de Programas, WICC 2010 - XII
Workshop de
Investigadores en Ciencias de la Computación, Universidad
Nacional de
la Patagonia San Juan Bosco, Argentina.
-
Enrique
Miranda, Mario Berón , Germán Montejano, Daniel
Riesco, Pedro Henriques, Maria João Varanda Pereira,
“Visualización de software: conceptos,
métodos y técnicas para facilitar la
comprensión de programas” , XIII Workshop de
Investigadores en Ciencias de la Computación, Rosario,
Argentina, Maio 2011.
-
Hernán
Bernardis, Mario Berón , Daniel Riesco, Pedro
Henriques, Maria João Varanda Pereira,
“Extracción de información
dinámica en programación orientada a objetos
(Java)“, XIII Workshop de Investigadores en Ciencias de la
Computación, Rosario, Argentina, Maio 2011.
-
Ignacio
El Kadre, Mario Berón , Carlos Salgado, Mario
Peralta, Pedro Henriques, Maria João Varanda Pereira,
“Construcción de representaciones del dominio del
programa para facilitar la interconexión de
dominios” , XIII Workshop de Investigadores en Ciencias de la
Computación, Rosario, Argentina, Maio 2011.
-
Martín
Aristiaran, Mario Berón , Pedro Henriques, Maria
João Varanda Pereira, “Clasificaciones: un
mecanismo de herencia múltiple para la
construcción de modelos fáciles de comprender y
mantener” , XIII Workshop de Investigadores en Ciencias de la
Computación, Rosario, Argentina, Maio 2011.
-
José
Albanes, Mario Berón , Pedro Henriques, Maria
João Varanda Pereira, “Estrategias para relacionar
el dominio del problema con el dominio del programa para la
comprensión de programas” , XIII Workshop de
Investigadores en Ciencias de la Computación, Rosario,
Argentina, Maio 2011.
-
Mariano
Luzza, Mario Berón , Germán Montejano,
Pedro Henriques, Maria João Varanda Pereira,
“Diseño y Construcción de Lenguajes
Específicos del Dominio” , XIII Workshop de
Investigadores en Ciencias de la Computación, Rosario,
Argentina, Maio 2011.
-
Enrique
Miranda, “Evaluación de Funcionalidades de
Visualización de Software Provistas por Librerías
Gráficas”, JAIIO 2011- Simposio Argentino de
Ingeniería de Software, Universidad Tecnológica
Nacional - Facultad Regional Córdoba, Argentina, Agosto de
2011.
- Hernan
Bernardis, “Instrumentación de Programas Escritos
en Java para Interconectar los Dominios del Problema y del
Programa”, JAIIO
2011- Simposio Argentino de Ingeniería de Software,
Universidad Tecnológica Nacional - Facultad Regional
Córdoba, Argentina, Agosto de 2011.
- José
Luís Freitas and Daniela da Cruz and Pedro Rangel Henriques,
“The role of Comments on Program Comprehension”,
INForum'11, Simpósio de Informática (CoRTA'11
track), Universidade de Coimbra, Coimbra, Portugal, Setembro, 2011
- Alma2
- SVS, BORS
- Darius
- Conclave