Assessing software systems

To control the development of software systems effectively, we need to be able to assess their status. As modern systems are large and complex, we must go beyond reading source code and rely on a combination of smarter tools and techniques. Furthermore, as systems have particularities we need to customize the analysis to match the situation.

I exemplify my message using the Moose analysis platform. Moose is an extensible platform designed to empower the analyst to customize the flow of existing analyses and to develop new analyses. It offers generic services like visualization, navigation, querying and scripting capabilities, and multiple tools have been developed on top of it to deal with different aspects of software assessment: visualization, software evolution, semantic analysis, dynamic analysis, duplication detection, or design flaw detection.