CSMR 2012
Technical Track
Program Comprehension
Thursday, March 3, 2011, from 14:00 to 15:30, A14 HS2- Yasuhiro Hayase, Yu Kashima, Yuki Manabe and Katsuro Inoue - Building Domain Specific Dictionaries of Verb-Object Relation from Source Code
- Camila Nunes, Alessandro Garcia, Eduardo Figueiredo and Carlos Lucena - Revealing Mistakes on Concern Mapping Tasks: An Experimental Evaluation
- Mark Shtern and Vassilios Tzerpos - Factbase and Decomposition Generation
Building Domain Specific Dictionaries of Verb-Object Relation from Source Code
Yasuhiro Hayase, Yu Kashima, Yuki Manabe and Katsuro Inoue
An identifier is an important key in mapping program elements onto domain knowledge for the purpose of program comprehension. Therefore, if identifiers in a program have inappropriate names, developers can waste a lot of time trying to understand the program. This paper proposes a method for extracting and gathering verb-object (V-O) relations, as good examples of naming, from source code written in an object-oriented programming language. For each of several application domains, dictionaries containing the V-O relations are built and evaluated by software developers. The evaluation results confirm that the relations in the dictionaries are adequate in many cases.
Revealing Mistakes on Concern Mapping Tasks: An Experimental Evaluation
Camila Nunes, Alessandro Garcia, Eduardo Figueiredo and Carlos Lucena
Concern mapping is the activity of assigning a stakeholder’s concern to its corresponding elements in the source code. This activity is primordial to guide software maintainers in several tasks, such as understanding and restructuring the implementation of existing concerns. Even though different techniques are emerging to facilitate the concern mapping process, the latter is still widely manual and error-prone according to recent studies. However, existing work does not provide any guidance to developers review and correct concern mappings. In this context, this paper presents the characterization and classification of eight mistakes commonly made by developers. These mistakes were found to be associated with various properties of concerns and modules in the source code. The mistake categories were derived from actual mappings of 10 concerns in 12 versions of industry systems. In order to further evaluate to what extent these mistakes also occur in wider contexts, we run two experiments where 26 subjects mapped 10 concerns in two systems.
Factbase and Decomposition Generation
Mark Shtern and Vassilios Tzerpos
The software maintenance research community has developed a large number of approaches that can help maintainers understand large software systems accurately and efficiently. However, tools that can facilitate research in program comprehension are rarely publicly available. In this paper, we introduce two approaches that generate artifacts, such as factbases and decompositions, that can be used to study the behaviour of existing software clustering approaches for the comprehension of large software systems. We also present three distinct applications of these approaches: the development of a simple evaluation method for clustering algorithms, the study of the behaviour of the objective function of the Bunch tool, and the calculation of a congruity measure for clustering evaluation measures. Implementations of the two approaches are available online.