SkillStack
テクノロジ系8 / 25問

システムアーキテクト試験 令和7年度 春期 午前II 問8

プログラムの構造的な複雑度を測る尺度としてMcCabeが提唱したサイクロマティック複雑度がある。制御の流れが次のグラフで表されるプログラムのサイクロマティック複雑度は幾らか。ここで、エッジの個数をe、ノードの個数をnとし、サイクロマティック複雑度はe - n + 2で求めるものとする。

システムアーキテクト試験 令和7年度 春期 午前II 問8の図表

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】イ

図のノードはA、B、C、D、Eの5個なので、n=5です。エッジは、AからB、AからC、BからC、BからE、CからD、CからE、DからEの7本なので、e=7です。したがって、指定された式に代入すると、サイクロマティック複雑度は、e-n+2=7-5+2=4となります。よって、正解はイです。この値は、プログラムの全ての分岐構造を確認するために基礎となる、線形独立な経路の数を表します。

アの3は誤りです。e-nだけを計算した後に1だけを加えるなど、指定された式の定数項を誤ると得られる値であり、このグラフのサイクロマティック複雑度ではありません。

ウの5は誤りです。これは図のノード数と同じ値ですが、サイクロマティック複雑度はノード数だけでは決まらず、エッジ数も用いて計算します。

エの7は誤りです。これは図のエッジ数と同じ値ですが、エッジ数そのものは処理間の制御の移動を表す接続数であり、複雑度ではありません。

【ポイント】 サイクロマティック複雑度は、連結した制御フローグラフでは「エッジ数-ノード数+2」で求めます。 値が大きいほど独立経路が多く、必要となるテストケースや保守の負担が増える傾向があります。

出典:令和7年度 春期 システムアーキテクト試験 午前II 問8
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める