La complexité cyclomatique est mesurée par le nombre d'opérareurs (&&, ||) et de déclarations (if, while, do, for, ?:, catch, switch, case, return, throw) dans le corps d'une classe, plus un pour chaque constructeur, méthode (mais pas getter/setter), bloc d'initialisation (statique ou d'instance) dans la classe. Le dernier 'return' d'une méthode, s'il existe, n'est pas pris en compte.
Même lorsque la complexité cyclomatique d'une classe est très élevée, cette complexité peut être bien répartie entre toutes les méthodes. Néanmoins, la plupart du temps, une classe très complexe est une classe qui rompt le principe de responsabilité unique et qui devrait être retravaillée pour être découpée en plusieurs classes.