Main Content

要件リンク

Requirements Toolbox™ を使用して、要件とさまざまな Simulink® モデル要素 (ブロック、Stateflow® オブジェクト、Simulink Test™ テスト オブジェクト、Simulink データ ディクショナリ エントリ、MATLAB® コード行、その他の要件など) との間にリンクを作成し、要件がモデル設計にどのように関連しているかを追跡します。

リンクにはそれぞれ対応する slreq.Link オブジェクトがあります。リンクは、"リンク元項目" から "リンク先項目" を指します。

ブロックおよび Stateflow オブジェクトへのリンクは、Simulink エディターから、要件パースペクティブ ビューの [要件ブラウザー] で要件をドラッグすることによって作成できます。Simulink Test テスト オブジェクトへのリンクは、テスト マネージャーから、または要件エディターから作成できます。Simulink モデル要素を要件にリンクする場合の詳細については、ブロックと要件のリンクおよび要件からテスト ケースへのリンクを参照してください。

要件リンクは、カスタム ID ではなく Session Independent Identifier (SID) によって要件を識別します。こうすることで、カスタム ID が変更された場合でもリンクは機能し続けます。

リンク可能な項目

次の要件項目、モデル エンティティ、テスト アーティファクト、およびコード間でリンクを作成できます。

  • Requirements Toolbox オブジェクト:

    • slreq.Requirement オブジェクト

    • slreq.Reference オブジェクト

    • slreq.Justification オブジェクト

  • Simulink エンティティ:

    • ブロック

    • サブシステム

  • Simulink データ ディクショナリ エントリ

  • Stateflow オブジェクト:

    • ステート

    • チャートとサブチャート

    • 遷移

  • System Composer™ アーキテクチャ エンティティ:

    • コンポーネント

    • 端子

    • ビュー

  • SimulinkTest オブジェクト:

    • テスト ファイル

    • テスト スイート

    • テスト ケース

    • 反復

    • 評価

  • MATLAB コードの行:

MATLAB 構造体を作成することにより、URL などの外部アーティファクトをリンク先として設定できます。次の 2 つの方法を使用できます。

  • リンク先の構造体を作成し、続いて要件とリンク先の間にリンクを作成する。

    myLinkDest = struct('domain', 'linktype_rmi_url', 'artifact', ...
     'https://www.mathworks.com', 'id', '')
    
    myLinkDest = 
    
      struct with fields:
    
          domain: 'linktype_rmi_url'
        artifact: 'www.mathworks.com'
              id: ''
    slreq.createLink(myReq, myLinkDest);
  • rmi('createempty') を使用して要件リンクのデータ構造体を作成する。rmi を参照してください。

リンク タイプ

リンクにはそれぞれ、リンク元項目とリンク先項目との間の関係を説明するタイプがあります。リンク タイプは slreq.Link オブジェクトの Type プロパティ値を参照します。

それぞれのリンク タイプには、対象とするユース ケースがあります。たとえば、Implement リンク タイプは、要件と、その要件を実装する設計項目との関係を示します。2 つの項目間にリンクを作成すると、Requirements Toolbox はリンク タイプを設定し、それらの項目が属するアーティファクトのタイプに基づいて、リンク元またはリンク先として指定します。たとえば、要件と Simulink モデル要素との間にリンクを作成すると、Requirements Toolbox はモデル要素がその要件を実装するものと想定します。リンク タイプが Implement に設定され、モデル要素がリンク元、要件がリンク先として指定されます。

2 つの項目間に作成されるリンクに想定されるタイプがない場合、Requirements Toolbox はリンク タイプを Relate に設定します。

リンクを作成した後に、要件エディター、要件パースペクティブ、または MATLAB コマンド ラインでリンク タイプを編集できます。要件エディターで、[リンクの表示] をクリックします。リンクを選択し、[詳細] ペインの [プロパティ] で、[タイプ] リストから目的のリンク タイプを選択します。

Requirements Toolbox では、6 つの組み込みリンク タイプが提供されています。

順方向は、リンク元がリンク先にどのように関係するかを示しています。同様に、逆方向はリンク先がリンク元にどのように関係するかを示しています。

タイプ説明リンク元からリンク先への例順方向逆方向
Relate
  • 多くのユース ケースにおける項目間の一般的な関係

  • 双方向リンク

要件から要件へ

1 つ目の要件が 2 つ目の要件に "関連して" いる。

2 つ目の要件が 1 つ目の要件に "関連して" いる。

Implement
  • 要件を実装するリンク元の項目を指定する

  • 実装の状態の対象となる

詳細については、要件実装の状態の確認を参照してください。

Simulink モデル要素から要件へ

Simulink モデル要素が要件を "実装する"

要件が Simulink モデル要素により "実装される"

Verify
  • 要件を検証するリンク元の項目を指定する

  • リンク元の項目が受容される項目タイプの 1 つである場合、検証の状態の対象となる

詳細については、要件検証の状態の確認を参照してください。

Simulink テスト ケースから要件へ

Simulink テスト ケースが要件を "検証する"

要件が Simulink テストケースにより "検証される"

Derive

リンク先項目を派生するリンク元項目を指定する

インポートされた参照要件から要件へ

インポートされた参照要件が、要件を "派生する"

要件が、インポートされた参照要件から "派生される"

Refine

リンク先項目で指定される機能の詳細を追加するリンク元項目を指定する

低水準の要件から高水準の要件へ

低水準の要件が、高水準の要件を "調整" する。

高水準の要件が、低水準の要件により "調整" される。

Confirm
  • 要件と外部のテスト結果ソースとの間の関係を指定する

  • 一部のケースでは検証の状態の対象となる可能性がある

詳細については、外部ソースからの結果を検証の状態に含めるを参照してください。

要件から外部テスト結果へ

要件が、外部テスト結果により "確認される"

外部テスト結果が、要件を "確認する"

Implement リンク タイプおよび Verify リンク タイプは、要件からモデルへの関係、および要件からテストへの関係を説明します。リンク元のアーティファクトとリンク先のアーティファクトは、これらのリンクが実装の状態および検証の状態に影響するため、注意して指定します。詳細については、要件実装の状態の確認および要件検証の状態の確認を参照してください。

リンク タイプは、トレーサビリティ ダイアグラム ウィンドウでの影響の方向にも影響を及ぼします。詳細については、トレーサビリティ ダイアグラムを使用したリンクの可視化を参照してください。

カスタム リンク タイプ

組み込みタイプに加え、カスタム リンク タイプを定義できます。カスタム リンク タイプは、いずれかの組み込みタイプのサブタイプでなければなりません。カスタム リンク タイプは、リンク タイプが実装の状態と検証の状態の対象となる方法など、組み込みタイプから一部の機能を継承します。詳細については、要件およびリンクのカスタム タイプの定義を参照してください。

要件リンクの確認

リンクは要件エディターまたは要件ブラウザーで確認できます。要件エディターでリンクを表示するには、[リンクの表示] をクリックします。要件ブラウザーでリンクを表示するには、[表示] ドロップダウン メニューから [リンク] を選択します。

Simulink エディターで作業しているときは、個々の要件の要件リンクを確認できます。要件ブラウザーで、[表示] ドロップダウン メニューから [要件] を選択し、要件を選択します。リンクが、プロパティ インスペクターの [リンク] に表示されます。

既定では、リンク元アーティファクトからの外向きリンクはすべて、リンク セット ファイル (.slmx) に保存されます。要件リンクのストレージの詳細については、要件リンクのストレージを参照してください。

リンクを削除すると、関連付けられたコメントやカスタム属性など、関連するすべてのデータが削除されます。

リンクの関連付け

リンクの関連付けを行うためには、リンク元項目とリンク先項目に移動できる必要があります。リンク元とリンク先、あるいはその両方に到達できない場合、そのリンクは関連付けられません。リンク元項目またはリンク先項目が到達不能である場合、次のような理由による可能性があります。

  • リンク元項目またはリンク先項目を含む設計アーティファクトが読み込まれていない。たとえば、Simulink モデルから到達するリンクをもつ要件セットを読み込む場合、この操作により、そのモデルに属するリンク セットも読み込まれます。しかし、Simulink モデルを読み込まない場合、リンク元が到達不能であるため、リンクは関連付けられません。

  • 設計アーティファクトは読み込まれているが、指定された ID が存在しない。たとえば、リンクされた要件を削除すると、保存されている ID が有効な項目に対応しない状態になるため、リンクは関連付けられていない状態になります。

指定された ID が存在しないためにリンクが関連付けられていない状態になる場合、このリンクは切断されたリンクです。

関連付けられていないリンクを確認するには、要件エディターで、[リンクの表示] をクリックします。関連付けられていないリンクは で示されます。

リンク元またはリンク先が読み込まれていないためにリンクが関連付けられない場合、アンロードされたリンク元またはリンク先を含むファイルを読み込むことで、リンクの関連付けを行うことができます。リンクが切断されている場合、setSource メソッドと setDestination メソッドを使用してリンクを修復できます。

リンク情報の読み込み

要件セット、Simulink モデル、データ ディクショナリ、テスト ファイル、MATLAB ファイルなどのアーティファクトに関して、MATLAB またはプロジェクトのパス上にあるアーティファクトに関連するリンク情報はすべて、そのアーティファクトが読み込まれる際に自動的に読み込まれます。

リンク情報の読み込みは、以下のルールでまとめられます。

  • ルール 1: MATLAB またはプロジェクトのパス上にある、要件セット、Simulink モデル、データ ディクショナリ、テスト ファイル、MATLAB ファイルなどのアーティファクトを読み込むと、そのアーティファクトの内向き、外向きのリンク セットがすべて読み込まれます。各アーティファクトは、1 つの外向きリンク セットと、他のアーティファクトからのリンク情報を含む 1 つ以上のリンク セットをもつことができます。

  • ルール 2: 読み込んだアーティファクトが要件セットへの外向きリンクをもっている場合、その要件セットもリンク情報と共に読み込まれます。この読み込まれた要件セットも、ルール 1 に従って、リンク情報をさらに読み込みます。

これらのルールの適用は、slreqCCProjectStart プロジェクトを使用して、3 つのシナリオで説明できます。次の手順に従います。

  1. プロジェクトを開く前に、Simulink のモデルと要件セットをすべて閉じます。

  2. MATLAB で slreqCCProjectStart を読み込みます。

    slreqCCProjectStart

  3. シナリオ 1:

    1. モデル crs_controller.slx を開きます。

      open_system('crs_controller.slx');

    2. 要件エディターを開きます。

      slreq.editor

    3. 要件エディターに以下の情報が表示されます。

      ルール 1 に従って、外向きリンク セット crs_controller.slmx からのリンク情報が読み込まれます。

      ルール 2 に従って、要件セット crs_req_func_spec.slreqx およびリンク セット crs_req.slmx crs_controllerdic.slmx DriverSWRequest_Tests.slmxcrs_plant.slmx が読み込まれます。

    4. モデルと要件エディターを閉じます。

  4. シナリオ 2:

    1. 要件セット crs_req_func_spec.slreqx を開きます。

      slreq.open('crs_req_func_spec.slreqx');

    2. 要件エディターが開き、以下の情報が表示されます。

      Link sets View

      ルール 1 に従って、読み込まれた要件セットの内向きリンク情報を含むすべてのリンク セットが読み込まれます。

    3. 要件エディターを閉じます。

  5. シナリオ 3:

    1. モデル crs_plant.slx を開きます。

      open_system('crs_plant.slx');

    2. 要件エディターを開きます。

      slreq.editor

    3. 要件エディターに以下の情報が表示されます。

      ルール 1 に従って、外向きリンク セット crs_plant.slmx からのリンク情報が読み込まれます。

      ルール 2 に従って、要件セット crs_req_func_spec.slreqxcrs_req.slreqx、およびこれらの要件の内向きリンク情報を含むすべてのリンク セットが読み込まれます。

    4. モデルと要件エディターを閉じます。

リンクを組み込みリンク セットとしてモデルと共に保存する場合は、リンク情報は自動的には読み込まれません。リンク情報は slreq.refreshLinkDependencies コマンドを使用して読み込むこともできます。

リンク情報のアンロード

関連するすべてのアーティファクトをメモリからアンロードすると、リンク情報は自動的にアンロードされます。

リンク セットの削除

リンク セットは .slmx ファイルに保存されています。リンクがメモリに読み込まれているときに .slmx ファイルを削除すると、予期せぬ動作につながる場合があります。

メモ

Simulink モデルに関連付けられているリンク セット ファイルを削除する場合は、リンクが外部に保存されていることを確認してください。Simulink モデルから外部にリンクを保存する方法については、要件リンクのストレージを参照してください。

リンク セットを削除するには、以下を行います。

  1. .slmx ファイルを見つけます。既定では、リンクを作成すると、リンク元項目が属するアーティファクトと同じ名前のリンク セットに保存されます。.slmx ファイルは、リンク元アーティファクトと同じディレクトリに保存されます。

  2. リンク セットを削除する前に、読み込まれているアーティファクトをすべて閉じることをお勧めします。これには、要件セット、Simulink Test ファイル、MATLAB コード、Simulink データ ディクショナリ、Simulink モデル、Stateflow モデル、System Composer モデルが含まれます。これらすべてのアーティファクトを手動で閉じます。

  3. MATLAB コマンド ラインで次のように入力して、読み込まれているリンクをクリアします。

    slreq.clear

  4. .slmx ファイルを削除します。

リンク セット ファイルを削除後に、必要に応じてアーティファクトを再度開くことができます。

参考

| |

関連するトピック