10.16.1 制御フロー解析とは
制御フロー解析とは,ソースプログラムを解析して作成した制御フローグラフを使って,プログラムの実行をシミュレートし,プログラムの実行状態を調べる手法です。制御フローグラフとは,プログラムが実行する全経路をグラフで表現したものです。このグラフのノードを制御ブロックといい,必ずセットで実行される文のまとまりを表します。また,それぞれの制御ブロックをつなぐエッジは,制御遷移(「制御の上から下への流れ」と「分岐や呼び出しによる制御の移行(ジャンプ)」)を表します。
COBOLでは次の単位で制御ブロックを作成します。
-
節および段落
-
制御の移行を表現する文(条件文,GO TO文,PERFORM文,GOBACK文,STOP RUN文など)
-
文の条件指定(THEN/ELSE/WHEN/[NOT]ON〜/[NOT]AT〜など)
制御フロー解析には,制御ブロック情報のほかに次の2つの情報も必要です。
-
文情報
-
制御遷移情報(分岐や呼び出しによる制御の移行の情報)
これらの制御フロー解析に必要な3つの情報を総称して制御フロー情報といいます。
[解析生成オプション設定]画面の[その他の解析オプション]タブで[プログラムの制御フロー情報(実行順序表示機能で使用する情報)を抽出する]をチェックして制御フロー情報を抽出すると,実行順序表示機能が利用できるようになります。