McCabe is trying to say something about testing for defects and how much testing will be needed for a complex piece of code. Chidamber and Kemerer are implying that there is a little more to defects than just complexity. Complexity without a factor of reuse has little baring on defect analysis except for the first testing cycle. A microchip is very complex and I use it in very complex ways all the time with my laptop. Through reuse of the processor I become more and more trusting. Do I need to continue testing the processor even though I write new code, No. In fact nearly all people trust the processor without any tests because they feel that someone before them tested it. McCabe`s metrics in a sense always start over at ground zero. In the real world we reuse stuff. So Chidamber and Kemerer metrics are a step beyond McCabe`s and more like what we do. The question is are they accurate in respect to what they are trying to predict. See the commentary on that one...LCOM1, LCOM2, LCOM3....
Granted, reuse could be done in a structured programming environment. That reuse would be probably reuse by copy which is a nightmare in maintenance causing more defect problems. It would not be like today with inheritance/subclassing, patterns, and object repositories where reuse is a forethought in the mind of the designer. So Cyclomatic Complexity may be good for some something but it is not the complete story in todays development environments.
Had a study group meeting yesterday. They are gearing up for the final push. We start the review on Sunday. I have already started my review.