Skip to Main Content
Without refactoring, complex software-intensive systems become increasingly irregular and thus increasingly chaotic over time. We can understand complex software systems only when they're nearly decomposable and hierarchic. One measure the author uses is lines of source code: the greater the SLOC, the more inertia to change the system will have, the more people it will take to keep it fed, the more stakeholders who will be crawling all over it. The author describes the more complex measures he uses; these are tuned to Philippe Kruchten's 4+1 view model of architecture. He also counts the number of identifiable design patterns at work. These metrics can generally be gathered automatically via clever mining of configuration management and testing data.