Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

MATLAB® コードやプレーンテキストの外部コード (C コードなど) に要件を関連付けることができます。そのためには、要件エディターを使用して選択ベースのリンクを作成するか、MATLAB コマンド ラインでプログラムによってリンクを作成します。MATLAB Function (Simulink) ブロックの MATLAB コードへのリンクを作成することもできます。MATLAB ユニット テストへのリンクを作成して、テストを実行することで、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®Rational®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 ユニット テストへのリンクを作成するときに、Requirements Toolbox はリンク タイプを Verify に設定します。これにより、ソフトウェアで要件を検証できます。詳細については、要件検証の状態の確認を参照してください。

要件を検証するには、MATLAB コマンド ラインまたは要件エディターを使用してテストを実行します。要件エディターで検証の状態を確認するには、 [列][検証の状態] を選択します。

要件エディターを使用したテストの実行

要件エディターを使用して、要件セット、親要件とそのすべての子孫、または 1 つの要件に対して、MATLAB ユニット テストを実行するには、以下を行います。

  1. 要件エディターで、テストへのリンクをもつ要件セット、親要件、または子要件を右クリックし、[テストの実行] を選択します。

  2. [テストの実行] ダイアログ ボックスで、リンクされたテストを実行することを確認します。実行からテストを省略するには、選択をクリアします。

    Run Tests dialog box for a requirement set with 2 linked tests.

  3. [テストの実行] をクリックします。

テストを実行すると、要件の検証の状態が更新されます。

Requirements Editor showing 2 verified requirements.

MATLAB コマンド ラインでのテストの実行

MATLAB テストをプログラムによって実行し、ShortestPath プロジェクト内の要件を検証する必要があるとします。

要件セットにリンクされたテストをプログラムによって実行するには、以下を行います。

  1. ShortestPath プロジェクトを開きます。

    slreqShortestPathProjectStart

  2. shortest_path_tests_reqs 要件セットを読み込んで、要件エディターで開きます。

    rs = slreq.open("shortest_path_tests_reqs");

  3. slreq.ReqSet.runTests を使用して、要件セットにリンクされているテストを実行します。

    results = runTests(rs);

  4. 要件エディターに検証の状態が表示されます。あるいは、getVerificationStatus を使用して、コマンド ラインに検証の状態を表示します。

    status = getVerificationStatus(rs)
    status = 
             total: 14
            passed: 13
            failed: 0
        unexecuted: 0
         justified: 0
              none: 1
    

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

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

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

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

要件エディターからリンクを削除するには、Delete Links and Link Setsを参照してください。

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

未使用の行範囲の削除

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

メモ

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

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

参考

| |

関連するトピック