循環的な複雑さを理解する
最近、Cyclomatic Complexityに出くわしました。それをよりよく理解したいと思います。 複雑さの計算に使用されるさまざまな要因の実用的なコーディング例は何ですか?具体的には、Wikipediaの方程式についてM = E − N + 2P、次の各用語の意味をよりよく理解したいと思います。 E =グラフのエッジの数 N =グラフのノードの数 P =接続されたコンポーネントの数 EまたはNのいずれかが、コードブロック内の決定ポイント(if、else、for、foreachなど)の数であると思われますが、どちらがどちらを意味するのかはよくわかりません。また、Pは関数呼び出しとクラスのインスタンス化を指すと推測していますが、私が見ることができる明確な定義はありません。誰かがそれぞれの明確なコード例でもう少し光を当てることができれば、それは助けになるでしょう。 フォローアップとして、Cyclomatic Complexityは、100%パスカバレッジに必要な単体テストの数と直接相関していますか?例として、複雑度4のメソッドは、そのメソッドをカバーするために4つのユニットテストが必要であることを示していますか? 最後に、正規表現は循環的複雑度に影響しますか?