An ontology toolkit for problem domain concept location in program comprehension
2013 35th International Conference on Software Engineering (ICSE)
So ware maintainers are o en challenged with source code changes in unfamiliar programs to improve so ware systems, e.g., elimina ng defects, introducing new features, adap ng to reality shi s. To undertake these tasks a sufficient understanding of the system (or at least a part of it) is required. One of the most me consuming ac vity during the understanding process is loca ng which parts of the code are responsible for which key func onality or feature -concept (or feature) loca on. Details
... loca on. Details inherent to the different languages involved (natural languages used to describe concepts in the real world, versus the programming languages used to implement programs), and their different levels of abstrac on, entail the major challenges during these ac vi es. This disserta on introduces the use of mappings for crea ng seman c bridges between the so ware system and its applica on domain, to enhance concept loca on, and other so ware understanding ac vi es. The generic proposed approach for building mappings is divided in three main steps: (i) model, (ii) calculate, and (iii) devise views. The goal during the first step is to model relevant domains using ontologies to convey the informaon of interest, for example, model the so ware system (the program), or the applica on domain (the problem). Once the ontologies (models) are available, the second step implies performing arbitrary calcula ons to create, organize, or infer new informa on about each domain. During the final step, specific views are cra ed based on informa on available in the different models, that emphasize elements and traits of interest. During this work, a set of frameworks and libraries were developed, including generic methods and tool composi ons, that allowed the implementa on of the described approach in a elegant (simple but effec ve) way. This toolkit was used to develop an environment that features a set of applica ons that enhance program comprehension acvi es. A set of prac cal experiments were performed to measure tools (individual and composed) effec veness, and a final overarching experience draws conclusions about the advantages of the featured techniques from a maintainers point of view, while performing so ware debugging tasks, and the benefits in general of exploring mappings between the program and the problem domain.