Main Content

MATLAB コードの要件のトレーサビリティ

MATLAB® コードやプレーンテキストの外部コード (C コードなど) に要件を関連付けることができます。そのためには、要件エディターを使用して選択ベースのリンクを作成するか、MATLAB コマンド ラインでプログラムによってリンクを作成します。MATLAB Function (Simulink) ブロックの MATLAB コードへのリンクを作成することもできます。その後、MATLAB エディターまたは要件エディターでコードへのリンクを表示および編集できます。

MATLAB コードまたはプレーンテキストの外部コードへのリンクの作成

MATLAB コードまたはプレーンテキストの外部コードへのリンクをプログラムによって、または要件エディターを使用して作成できます。

コードへのリンクを作成するときに、Requirements Toolbox™ は選択された行に対応する slreq.TextRange オブジェクトを作成します。これらの slreq.TextRange オブジェクトは "行範囲" と呼ばれます。

プログラムによってリンクを作成するには、slreq.TextRange オブジェクトを作成し、リンクを作成するときにそのオブジェクトをリンク ソースとして使用します。同じ MATLAB コード ファイルまたはプレーンテキストの外部コード ファイルに複数の slreq.TextRange オブジェクトを作成する場合、slreq.TextRange オブジェクトの行番号はオーバーラップできません。

要件エディターを使用したリンクの作成

要件エディターを使用してコードへの選択ベースのリンクを作成するには、以下を行います。

  1. MATLAB エディターで、MATLAB コード ファイルまたはプレーンテキストの外部コード ファイルを開きます。

    メモ

    MLX ファイルで MATLAB コードへのリンクを作成することはできません。

  2. リンクするコード行を選択します。

  3. 要件エディターで、リンクする要件セットを読み込みます。

  4. リンクする要件を選択します。

  5. [リンク] セクションで、[リンクの追加][MATLAB エディターの選択内容からのリンク] をクリックします。

    あるいは、MATLAB エディターで選択されたコード範囲を右クリックし、[要件][要件ブラウザーの選択内容へのリンク] を選択します。

プログラムによるリンクの作成

myAdd という MATLAB 関数へのリンクをプログラムによって作成するとします。

function y = myAdd(u,v)
y = u + v;
end
関数をこれらの要件にリンクする必要があります。

Requirements for the myAdd function, including requirements for the inputs, outputs, and function behavior.

MATLAB コマンド ラインでリンクを作成するには、以下を行います。

  1. slreq.createTextRange を使用して、リンク先のコード行を表す slreq.TextRange オブジェクトを作成します。

    lr = slreq.createTextRange("myAdd.m",2);

  2. slreq.findfind、または slreq.getCurrentObject を使用して、リンクする要件のハンドルを取得します。

    req = slreq.find(Type="Requirement",Summary="Add u and v");

  3. slreq.createLink を使用して、リンクを作成します。

    myLink = slreq.createLink(lr,req);

MATLAB Function ブロックへのリンクの作成

MATLAB Function ブロック エディター (Simulink)を使用して、MATLAB Function ブロック内のコード行へのリンクを作成します。

  1. 要件エディターで、リンク先の要件セットを読み込みます。

  2. リンクする要件を選択します。

  3. Simulink® モデルで、MATLAB Function ブロックを開きます。

  4. リンクするコード行を選択します。

  5. 選択されたコード範囲を右クリックし、[要件][要件ブラウザーの選択内容へのリンク] を選択します。

メモ

MATLAB Function ブロック内の MATLAB コード行にリンクされる要件は、要件のトレーサビリティについての HTML レポートには記載されますが、Simulink Report Generator™ Web ビューには表示されません。モデルの Web ビューの作成と使用 (Simulink Report Generator)を参照してください。

外部ドキュメントの要件へのリンクの作成

MATLAB コードから外部ドキュメントの要件へのリンクを作成するには、以下を行います。

  1. 次のいずれかの外部ドキュメントの要件を選択します。

    • Microsoft® Word

    • Microsoft Excel®

    • IBM® DOORS®

    • IBM DOORS Next

  2. MATLAB エディターで、MATLAB コード ファイルまたはプレーンテキストの外部コード ファイルを開きます。

    メモ

    MLX ファイルで MATLAB コードへのリンクを作成することはできません。

  3. リンクするコード行を選択します。

  4. 選択されたコード範囲を右クリックし、[要件] を選択します。要件ドキュメントの種類に応じて、次のオプションのうちいずれかを選択します。

    • Word の選択内容へのリンク

    • Excel の選択内容へのリンク

    • DOORS の選択内容へのリンク

    • DOORS Next の選択した項目へのリンク

これらのサードパーティ製品と連携させるための Requirements Toolbox の構成の詳細については、Microsoft Office および IBM DOORS との相互作用のための Requirements Toolbox の構成およびIBM DOORS Next セッションの構成を参照してください。

リンクとリンクされた行範囲の表示と編集

要件の強調表示を有効にすることで、MATLAB エディターでリンクされたコード範囲を確認できます。MATLAB エディター内で右クリックし、[要件][要件の強調表示を有効にする] を選択します。

リンクを編集するには、要件エディターを使用します。詳細については、リンクの表示と編集を参照してください。

MATLAB エディターまたは MATLAB コマンド ラインで、リンクされた行範囲の開始行と終了行を編集することもできます。

MATLAB エディターでリンクされた行範囲を編集

MATLAB エディターでリンクされた行範囲の行番号を編集するには、以下を行います。

  1. 強調表示された行範囲を右クリックし、[行の範囲を調整] を選択します。

  2. [範囲を調整] ダイアログ ボックスで、[+] および [-] ボタンを使用して、行範囲の最初と最後の行を変更します。あるいは、行番号をフィールドに入力します。

    Adjust range dialog box showing lines 1 and 2 as the first and last lines for the line range.

  3. [OK] をクリックします。MATLAB エディターによって強調表示が更新されます。

リンクされた行範囲のプログラムによる編集

MATLAB コマンド ラインで slreq.TextRange オブジェクトの行を編集するには、以下を行います。

  1. MATLAB エディターで、MATLAB コード ファイルまたはプレーンテキストの外部コード ファイルを開きます。

    open("myAdd.m");

  2. ファイル名と行範囲の最初と最後の行番号を関数 slreq.getTextRange に渡すことで、MATLAB コード ファイル内の既存の slreq.TextRange オブジェクトを取得します。

    lr = slreq.getTextRange("myAdd.m",[1 2]);

  3. setLineRange を使用して、行範囲を変更します。

    setLineRange(lr,1);

  4. MATLAB エディターによってコード範囲の強調表示が更新されます。あるいは、showgetText、または getLineRange を使用して、変更内容を確認できます。

リンクの保存

MATLAB コードや外部コードの行へのリンクを作成または編集するときに、変更をリンク セットに保存するには、次のいずれかの方法を使用します。

  • MATLAB エディターで、右クリックして [要件][リンクの保存] を選択します。

  • 要件エディターで、[リンクの表示] をクリックします。リンク セットを選択し、[保存] をクリックします。

  • MATLAB コマンド ラインで、save を使用します。

リンクと未使用の行範囲の削除

MATLAB エディター、要件エディター、または MATLAB コマンド ラインで、MATLAB コードへのリンクを削除できます。

MATLAB エディターでコード範囲へのリンクを削除すると、MATLAB エディターまたは MATLAB コマンド ラインで未使用の行範囲を削除できます。

リンクの削除

MATLAB エディターでリンクを削除するには、強調表示されたコード範囲を右クリックし、[要件][すべてのリンクを削除] を選択します。これにより、このコード範囲へのすべての内向きリンクと外向きリンクが削除されます。

要件エディターからリンクを削除するには、リンクおよびリンク セットの削除を参照してください。

MATLAB コマンド ラインでリンクを削除するには、slreq.Link オブジェクトへのハンドルを取得し、remove を使用します。あるいは、コード範囲が含まれるファイルが MATLAB エディターで開いていていることを確認してから、slreq.getTextRange を使用して slreq.TextRange オブジェクトを取得します。deleteLinks を使用して、オブジェクトへのリンクを削除します。

未使用の行範囲の削除

MATLAB エディターで未使用の行範囲を削除するには、行範囲を含む行を右クリックし、[要件][行の範囲を削除] を選択します。

メモ

行範囲に外向きリンクがない場合、MATLAB エディターはコード行を強調表示しません。未使用の行範囲を削除できるように、リンクを削除する前に行番号をメモします。あるいは、MATLAB コマンド ラインを使用してファイル内の行範囲を取得してから、未使用の行範囲を削除します。

コマンド ラインで行範囲を削除するには、コード範囲が含まれているファイルが MATLAB エディターで開いていることを確認してから、slreq.getTextRange を使用して slreq.TextRange オブジェクトを取得します。remove を使用して、コード範囲を削除します。

リンクの修復

MATLAB コード ファイルまたはプレーンテキスト ファイルに対する変更によって行範囲が削除されるか範囲を特定できなくなると、行範囲からのリンクが未解決になることがあります。未解決のリンクを表示するには、要件エディター[リンクの表示] をクリックします。未解決のリンクには未解決リンク アイコン が表示されます。未解決のリンクは、もう必要がない場合は削除できるほか、setSource メソッドを使用してリンクを修復できます。未解決のリンクとその修復方法の詳細については、Unresolved Linksを参照してください。

参考

| |

関連するトピック