Author_Institution :
VISUS, Univ. of Stuttgart, Stuttgart, Germany
Abstract :
Software systems consist of hundreds or thousands of files, which are usually not independent of each other but coupled. While it is obvious that structural dependencies like method calls or data accesses create couplings, there also exist other, more indirect forms of coupling that should be considered when modifying, extending, or debugging a system. In contrast to most previous research, in this work, code coupling is considered as a multi-dimensional construct: several forms of structural couplings are contrasted to couplings based on the history and the semantics of the source code entities. The work proposes two novel visualization techniques, which allow for exploring and visually comparing different concepts of coupling. Based on an empirical study on open source systems, the work further provides insights into the relationship between concepts of coupling and the modularization of software, first evidence on the usage of modularization principles can be derived thereof. Finally, a new application for adapting the modularization of a software system-component extraction-is introduced and tested with varying coupling data. This work summarizes the doctoral thesis of the author, suggests directions for future research, and reports lessons learned.
Keywords :
program debugging; program diagnostics; program visualisation; public domain software; coupling data; multidimensional code coupling analysis; open source systems; program visualization techniques; software modularization principles; software system-component extraction; software systems; source code entity; structural couplings; structural dependencies; system debugging; Couplings; History; Semantics; Software engineering; Software systems; Visualization;