On the Improvement of Cyclomatic Complexity Metric

Complexity is always considered as an undesired property in software since it is a fundamental reason of decreasing software quality. Measuring the complexity using some metrics is one of the important factors that were made by many research activities in order to avoid complex software. In this paper, we analyze the effectiveness of complexity in security, maintainability and errors prediction; we introduce the role of design phase in the software life cycle and the importance of the measurement in this level. We present a study of different software metrics that can be used to measure the complexity of a system during the design phase, and highlight the cyclomatic complexity metric introduced by McCabe which was studied extensively by most researchers. We also propose an improvement of cyclomatic complexity metric which aims to measure both the intra-modular and the inter-modular complexity of a system.