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, this doctoral thesis considers code coupling 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...
Software systems consist of hundreds or thousands of files, which are usually not independent of each other but coupled. While it is obvious that stru...