ページ ツリー

 コンテンツ

翻訳単位間データフロー解析(ITU)』を実施する場合の設定方法です。
※QAC 10.4.0 / QAC++ 5.4.0 (Helix QAC 2022.3) 以前では精度を高めるために解析を2回繰り返す設定も行います

<前提>
 ・データフロー解析(DFA)を実施する設定になっていること
 ・関数間解析を実施する設定になっていること
  (いずれも『データフロー解析(DFA)の設定』を参照)

QAC 10.2.0/QAC++ 5.2.0(Helix QAC 2022.1)以降

●手順(GUI)

メニューの[ プロジェクト ]→[ プロジェクトプロパティ ]の [ 解析 ]タブで
[ 翻訳単位間解析 ]にチェックを入れます

 

●手順(コマンド)

解析コマンド"qacli analyze"に"--inter-tu-dataflow"オプションを付けて解析します

コマンド例

qacli analyze -P <プロジェクト> -f --inter-tu-dataflow

※GUI、コマンドとも、この手順でITUを実施するための設定(-prodoption df::cma+)も暗黙的に設定されます
QAC 10.4.0/QAC++ 5.4.0(Helix QAC 2022.3)以前は、この手順の設定は解析を2回繰り返すための設定です
QAC 11.0.0/QAC++ 6.0.0(Helix QAC 2022.4)以降では、データフロー解析コンポーネントがQAC/QAC++
 コンポーネントから独立したため、解析は2回繰り返す必要はなく1回だけ実施されます

QAC 9.7.0/QAC++ 4.5.0(Helix QAC 2019.2) QAC 10.1.0/QAC++ 5.1.0(Helix QAC 2021.3)

・ITUを実施するための設定(-prodoption df::cma+)を明示的に指定しておく必要があります
 (『データフロー解析(DFA)の設定』を参照)
・以下の手順の設定は解析を2回繰り返すための設定です

●手順(GUI)

メニューの[ プロジェクト ]→[ プロジェクトプロパティ ]の [ 解析 ]タブで
[ 翻訳単位間解析 ]にチェックを入れます

QAC 9.8.0/QAC++ 4.6.0(Helix QAC 2020.1)以前は解析 ] → [ 解析設定 ]内の[ 翻訳単位間解析を有効にする ]に
チェックを入れます。

●手順(コマンド)

解析コマンド"qacli analyze"に"--inter-tu-dataflow"オプションを付けて解析します。

コマンド例

qacli analyze -P <プロジェクト> -f --inter-tu-dataflow

QAC 9.3.1/QAC++ 4.1.0(PRQA Framework 2.2.1) QAC 9.6.0/QAC++ 4.4.0(Helix QAC 2019.1)

・このバージョンではGUIからITUを実施することはできません
・ITU
を実施するための設定 (-prodoption df::cma+) を明示的に指定しておく必要があります
 (『データフロー解析(DFA)の設定』を参照)
・以下の手順の設定は解析を2回繰り返すための設定です

●手順(コマンド)

解析コマンド"qacli analyze"に"--inter-tu-dataflow"オプションを付けて解析します。

コマンド例

qacli analyze -P <プロジェクト> -f --inter-tu-dataflow

QAC 9.1.0/QAC++ 4.1.0(PRQA Framework 2.1.0) QAC 9.3.0/QAC++ 4.1.0(PRQA Framework 2.1.4)

・このバージョンではGUIからITUを実施することはできません
・ITUを実施するための設定(-prodoption df::cma+)を明示的に指定しておく必要があります
 (『データフロー解析(DFA)の設定』を参照)

●手順(コマンド)

解析コマンド"qacli analyze"に"--repeat"オプションを付けて解析します。

コマンド例

qacli analyze -P <プロジェクト> -f --repeat <n>

・<n>の部分に解析回数を指定します。例えば"--repeat 2"2回解析する設定です。
・<n>の値を大きくするほど解析の精度は高まりますが、その分、解析時間も長くなります。
・ "--repeat"を指定しない("--repeat 1")場合と"--repeat 2"の場合の差が最も大きくなります。

QAC 8.2.2/QAC++ 3.2.2(PRQA Framework 1.0.5)以前

・このバージョンではITUを実施することはできません