2009 Volume 26 Issue 4 Pages 4_157-4_172
As source codes of software are frequently modified in the projects, the codes evolve to become complex. Measurements of code complexity have been proposed such as module coupling and logical coupling. Module coupling is useful for clarifying complexity on a side view of product, logical coupling can suggest complexity on a side view of process. Therefore, we proposed a new metrics for software evolution. The metrics combines module coupling and logical coupling. A basic idea is that modules including strong module couplings should have strong logical couplings. If a gap between a set of modules including strong module couplings and a set of modules including strong logical couplings is large, the software complexity will become large. As a result of experiments in open source projects, we confirmed that the proposed metrics was useful for visualizing software evolution, and coupling maps were useful to investigate reasons of software evolution. In addition, although conventional metrics of complexity is often influenced by characteristics of software and individual development policy, the proposed metrics is often not influenced by such factor. Using hierarchical coupling maps, we confirmed that the proposed metrics is useful for analyzing weak points of large-scale software.