Modularity plays an important role in increasing the evolvability and maintainability of software systems. A system which is structured in such a way that the different components are loosely coupled, makes it possible for developers to adapt and maintain a particular component in relative isolation of the other components of the system. Conversely, if components are tightly coupled this can constrain the evolvability of the system. For instance, low-level implementation dependencies between different components often translate to dependencies among people or development teams, meaning that changes local to one implementation component can have a much larger impact throughout the system.
In this paper we present DSMBrowser, a novel approach and accompanying source-code browser for managing, visualising and reasoning about dependencies in source code.