IBM Rational DOORS 9 要件との連携
IBM® Rational® DOORS® 9 からの要件をインポート、リンク、および更新する方法。DOORS 9 との連携は Microsoft® Windows® でサポートされます。
IBM Rational DOORS の設定
Microsoft Office および IBM DOORS との相互作用のための Requirements Toolbox の構成の手順に従って、IBM Rational DOORS との対話操作の要件管理インターフェイスを設定します。
DOORS を使用したワークフローの概要
DOORS から要件を Simulink® 環境にインポートしてから、インポートされた参照を介してモデルから DOORS 要件へのトレーサビリティを確立できます。トレーサビリティは双方向です。DOORS 要件が変更される場合、トレーサビリティを維持しながら Requirements Toolbox™ の参照を更新できます。さらに、以下のようになります。
DOORS の正式なモジュールまたはリンク モジュールを変更せずに、MATLAB® および Simulink から DOORS へのトレーサビリティを確立できる。
Simulink エディターを終了せずに設計、テスト、および要件の間をリンクできる。
Simulink の低水準の要件から DOORS の高水準の要件へのトレーサビリティを確立できる。
Requirements Toolbox でメトリクスを使用し、実装と検証の間のギャップを特定できる。
変更の検出およびクロスドメイン トレーサビリティを使用して変更による影響解析を実行できる。
前のバージョンの要件管理インターフェイスをもつ DOORS にリンクされている既存の Simulink アーティファクトがある場合、既存のリンクを更新します。要件管理インターフェイス データの Requirements Toolbox への移行で、「Update Model Link Destinations」の節を参照してください。
DOORS モジュールのインポート
DOORS の要件モジュールをインポートすることも、フィルターを使用してモジュールから要件のサブセットをインポートすることもできます。詳細については、IBMRationalDOORS からの要件のインポートを参照してください。
インポートされた要件参照と DOORS 間を移動するには、以下を行います。
インポートされた要件参照を選択し、[ドキュメントに表示] をクリックして DOORS に移動します。
DOORS で [MATLAB]、[Select Item] を選択し、インポートされた要件参照に移動します。
DOORS モジュールに DOORS 項目間のリンクがある場合、追加のコマンドを使用してリンクを要件セットに取り込むことができます。また、DOORS モジュールに Simulink モデルへのリンクがある場合、リンクの同期を使用してリンクを要件セットに取り込みます。フォールトトレラント燃料制御システムの要件の管理 (IBM Rational DOORS)の「DOORS から Simulink へのリンク情報のコピー」の節を参照してください。
DOORS モジュールをインポートする前に、必要な要件の属性をすべて追加したことを確認してください。最初のインポート後に、追加の属性を Requirements Toolbox にインポートすることはできません。
モデルへのリンク
要件ブラウザーから項目をモデル内の項目にドラッグすることで、インポートされた要件を Simulink ブロックにリンクできます。ウィンドウの右下にあるアイコンをクリックし、[要件] タイルを選択して、モデル ウィンドウで要件パースペクティブを開きます。
要件パースペクティブを開いて要件を選択すると、プロパティ インスペクターの [リンク] にリンクが表示されます。次のことが可能です。
現在のモデルの外部でリンクされたアーティファクトに移動する。
リンクをポイントし、赤い X 印をクリックしてリンクを削除する。
[表示] ドロップダウンから [
Links
] を選択してリンク プロパティをチェックし、変更する。
インポートされた要件は、テスト ケース、MATLAB コード、データ ディクショナリ、および他の要件などのエンティティにリンクできます。詳細については、要件からテスト ケースへのリンクおよびIBM Rational DOORS 9 要件との連携を参照してください。
要件を更新して DOORS の変更を反映
DOORS でソース要件が変更される場合、Requirements Toolbox でインポートされた参照を更新できます。
更新された DOORS モジュールに対応する最上位ノードを選択する。
[更新] ボタンをクリックする。
インポートされた要件の更新の手順に従ってください。
Requirements Toolbox への最初のインポート以降に DOORS モジュールに属性を追加した場合、新しい属性はインポートされません。DOORS モジュールから属性をインポートする場合は、Requirements Toolbox で新しい要件セットにインポートする前に必ず追加してください。
リンクの同期および DOORS からの移動
元の要件から設計およびテストへの移動を簡単にするため、トレーサビリティ データを DOORS に取り込むことができます。Requirements Toolbox リンクを DOORS と同期するには、次のようにします。
[表示] ドロップダウンから [
Links
] を選択します。新しいリンクがあるリンク セットを見つけて、右クリックする。
コンテキスト メニューの下部で [バックリンクの更新] ショートカットを選択する。
Requirements Toolbox はリンク セットで外向きリンクを解析し、DOORS など、"バックリンク" の挿入をサポートするアプリケーションから内向きリンクをチェックします。
欠損しているリンクは外部ドキュメントに追加されます。DOORS で、リンクは外向き "外部リンク" として表示され、ブロックや Simulink Test™ のテスト ケースなど、Simulink エンティティに対応します。
リンクされたドキュメントは、Simulink からこの外部要件に一致するリンクのない、古いリンクがないかチェックされます。
プロンプトを確定することで、不一致のリンクを DOORS モジュールから削除できます。
[バックリンクの更新] アクションが正常に完了すると、短いレポート ダイアログが表示されます。
[バックリンクの更新] ステップを実行した後にリンクされた要件を DOORS モジュールで確認すると、MATLAB または Simulink へのリンクが表示されます。同じ要件が複数の要素にリンクされている場合、複数のリンクが表示される可能性があります。DOORS でリンクをクリックし、移動します。
外部ドキュメントからのリンクの管理に関する一般的な情報については、外部の要件ドキュメントのナビゲーション バックリンクの管理を参照してください。
組み込み HTTP コネクタ
外部アプリケーションから MATLAB/Simulink への移動は、MATLAB の組み込み HTTP サーバーに依存します。MATLAB の組み込み HTTP サーバーが正しいポート番号で有効になっていない場合、Requirements Toolbox では外部アプリケーションにリンクを挿入できません。
[バックリンクの更新] アクションの実行時に次のエラーが表示される場合、HTTP サーバーが正しい状態にないことを示しています。
connector.port
コマンド ライン API を使用して HTTP サーバーのステータスをチェックし、connector.port
コマンドが 0 を返す場合は、rmi('httpLink')
API を使用してサーバーのアクティベーションを行います。
[バックリンクの更新] 機能では、HTTP サーバーがポート 31415 に対してアクティブでなければなりません。connector.port
コマンドが大きい値を返す場合、MATLAB のインスタンスが開始されたときにポート番号 31415 が他のプロセスよって使用されたことを示しています。以下を行う必要があります。
作業を保存して MATLAB のインスタンスをすべて終了する。
MATLAB のインスタンスを 1 つのみ再起動する。
connector.port
コマンドを実行して HTTP サーバーのステータスをチェックする。0 を取得したら、
rmi('httpLink')
コマンドを再実行する。connector.port
コマンドを使用して再度チェックする。今度は 31415 ポートがアクティブになっていることが確認できる。MBD アーティファクトを再度開き、[バックリンクの更新] 手順を再試行する。
DOORS モジュール ベースラインの追跡
MBD アーティファクトを DOORS の要件にリンクした後のいずれかの時点で、リンクされたモジュールのベースラインを作成した可能性があります。既定の設定では、Requirements Toolbox に保存されたリンクは引き続きリンクされたモジュールの現在のバージョンにナビゲートします。設計バージョンを要件のベースライン バージョンにロックする場合、リンクしている各 DOORS モジュールのベースライン番号を Requirements Toolbox で指定できます。現在の MATLAB セッションでリンクされたすべてのアーティファクトに対し、優先される DOORS ベースライン番号を設定することも、指定された MBD アーティファクトに異なる DOORS ベースライン番号を指定することもできます。
slreq.cmConfigureVersion
は、優先される DOORS ベースライン番号を指定するために使用するコマンド ライン API です。slreq.cmGetVersion
コマンドを使用して、特定の DOORS モジュール用に設定した DOORS ベースライン番号をチェックします。リンクされたモジュールに対して、後で次のバージョンのベースラインを作成した場合、前に保存したリンクのナビゲーションのターゲットをその後のベースラインにするには、
slreq.cmConfigureVersion
コマンドを再実行して更新されたベースライン番号を指定します。アーティファクトごとの値は対応するリンク セットに保存され、同じリンク セット ファイルのすべてのユーザーに対するナビゲーションに影響します。
グローバル (セッション スコープ) な割り当てはユーザーの基本設定に保存されます。同じインストールの次の MATLAB セッションに、前に設定されたベースライン番号が記録されます。作業を他のユーザーと共有する場合、各ユーザーは優先される同じベースライン番号を再度入力する必要があります。必要に応じて、MATLAB 起動スクリプトまたは Simulink プロジェクトの起動スクリプトに必要な設定コマンドを含めることができます。
DOORS でのモジュール接頭辞の変更後に以前にインポートした参照へのリンクを修復
DOORS で要件が変更された場合、更新アクションを実行して更新済みの DOORS コンテンツを以前にインポートした要件セットに取り込みます。このプロセスは、以前にインポートした項目のカスタム ID に一致する DOORS オブジェクトの ID を使用して、どの既存の参照が更新を必要としているか、どの DOORS オブジェクトが新しくて Requirements Toolbox™ 要件セットに新規の参照を作成する必要があるかを判断します。また、DOORS から受信した更新に要件セットに存在するカスタム ID の一部が含まれていない場合、対応する項目は DOORS で削除されると仮定され、要件セットからクリーンアップされます。これにより、次のような危険性が生じます。要件セットに対して "更新" を実行する前に DOORS ユーザーが DOORS でモジュール接頭辞を変更した場合、既存のカスタム ID はどれも一致しません。なぜなら、DOORS モジュール接頭辞は ID の一部であり、Requirements Toolbox 側で既知の ID はすべて古い接頭辞に基づいているからです。更新プロセスによって既存の参照がすべて削除され、DOORS で更新された接頭辞に対応するカスタム ID をもつ新しい参照が作成されます。以前インポートした参照が Simulink 側の設計アーティファクトとリンクされている場合、元々リンクされている参照が存在しないため、すべてのリンクが切断されます。たとえば、DOORS の元のモジュール接頭辞が "KKK" であり、これが "QQQ" に変更された場合、更新の実行後は QQQ をベースにした ID が要件ブラウザーに表示されます。
... ただし、リンクは依然として KKK をベースとした項目をリンク先として指します。切断されたすべてのリンク上に警告のオレンジ色の三角形が表示されます。
次のステップを行うと、切断されたリンクを修復できます。
LinkSet データ内で元の DOORS ID を特定する。
元のモジュール接頭辞と現在のモジュール接頭辞の情報に基づいて、予期される更新済みの DOORS ID を作成する。
再作成された ID を使用して、切断された各リンク先の一致する要件セット エントリを特定する。
切断された各リンクを更新し、要件セット内の更新済みの参照と接続する。
要件セット ファイルの古いコピーが依然として使用可能な場合、そこから SID->CustomID のマッピングを収集できます。しかし、更新されたバージョンの要件セットしかなく、リンクが既に切断されている場合は、保存されたリンク ラベル (link.Description
値) から古い DOORS ID をプルできる場合があります。
次のスクリプトでは、保存されたすべての link.Description
ラベルが DOORS ID で始まる場合の、このタスクの実行について示しています。この例では、ラベルは "KKK123: DOORS オブジェクト テキストまたはオブジェクト見出し" のように表示されていますが、前は "KKK123" の ID をもっていた DOORS 項目が、現在は "QQQ123" の DOORS ID をもつと仮定します。
次の 4 つの入力引数を指定して、このスクリプトを実行します。LinkSet 名、ReqSet 名、古い接頭辞、新しい接頭辞:
すべてのリンクが関連付けられ、ラベルが正しく更新されます。