Graph based Quality Analysis
"About 80 percent of avoidable rework comes from 20 percent of the defects.
About 80 percent of the defects come from 20 percent of the modules, and about half the modules are defect free.
About 90 percent of the downtime comes from, at most, 10 percent of the defects." - Barry Boehm, Victor R. Basili
Identifying and controlling this 20% of source code elements is a foremost tasks in ensuring software quality and generally software maintainability.[Pareto Analysis]
Given the huge size of softwares being developed the methods chosen to identify these key sources is of prime importance. Its is advice-able to use proven software metrics to identify these resource. For e.g. NLOC or Number of Source Lines in a module has been used to identify important modules of the software.
But with evolution of programming languages NLOC can no longer be used for this purpose. Metrics like Cyclomatic Complexity, SEI Maintainability Index, Coupling Between Object(Object Oriented Oriented Metrics) provide better insight to the importance of a module or piece of code.
Swat4j advocates the use of software metrics to identify and understand the important source code artifacts. For eg. a class with high CC(cyclomatic complexity) and high coupling(CBO) and high RFC(Response for Class) is bound to be complex and the important controllers of an application.
Swat4j provides a graph based quality analysis perspective, with which it is easy to visualize,reflect and identify the key modules/classes.