Main Content

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

フォールトトレラント燃料制御システムの要件の管理 (Microsoft Office)

要件管理インターフェイス (RMI) は、Simulink® オブジェクトと要件ドキュメント間のリンクを作成し、確認するためのツールを提供しています。この例では、モデル オブジェクトを Microsoft® Office ドキュメントにリンクし、これらのリンク間を移動し、要件レポートを生成し、リンクの整合性を維持することについて説明します。IBM® Rational® DOORS® に保存された要件とのリンクに固有の機能については、IBM Rational DOORS 9 要件との連携の例も参照してください。

含まれるモデル例は、Microsoft Office 形式のドキュメントにリンクされています。古いバージョンの Microsoft Office しか使用できない場合、古いバージョンのドキュメントで使用するためにモデル例を調整する方法の例について、ドキュメントの移動時または名前変更時のすべてのリンクの更新にジャンプしてください。Microsoft Office ドキュメントへの直接のリンクは Windows® プラットフォームでのみサポートされています。

モデル例を開く

フォールトトレラント燃料制御システムのモデル例を使用して、要件管理の機能を説明します。このモデルを開くには、次のコードを評価します。

open_system('slvnvdemo_fuelsys_officereq');

リンクを使用するための要件マネージャーのセットアップ

  1. [アプリ] タブで [要件マネージャー] を開きます。

  2. [要件] タブで [レイアウト][要件ブラウザー] が選択されていることを確認します。

  3. [要件ブラウザー][表示] ドロップダウン メニューで、[Links] を選択します。

この例の操作はすべて [要件] タブ内で行います。ツールストリップ ボタンについて言及する場合、常にこのタブのツールストリップ ボタンを指します。

既存の要件の表示

この例では、数個の要件リンクしかもたないモデルから始めます。[要件] タブで [リンクの強調表示] をクリックして要件リンクをもつブロックを強調表示するか、次のコードを評価します。

rmi('highlightModel', 'slvnvdemo_fuelsys_officereq');

オレンジの強調表示は、リンクされた要件をもつオブジェクトに対応します。空の塗りつぶしによる強調表示は、その子が要件へのリンクをもつサブシステムを示します。fuel rate controller ブロックをダブルクリックし、サブシステムを開いて要件をもつ子オブジェクトを確認するか、以下を評価します。

open_system('slvnvdemo_fuelsys_officereq/fuel rate controller');

ドキュメントへの移動

fuel rate controller サブシステムの Airflow calculation ブロックを右クリックし、コンテキスト メニューで [要件]、[Mass airflow estimation] を選択します。

これにより、リンクされたドキュメントが開き、ターゲット コンテンツが選択されます。また、以下のコードを評価することもできます。

rmidemo_callback('view', ...
'slvnvdemo_fuelsys_officereq/fuel rate controller/Airflow calculation',1)

Stateflow チャート内の要件リンク

fuel rate controller サブシステムの control logic チャート ブロックをダブルクリックしてチャートを開きます。見つからない場合、以下のコードを評価します。

rmidemo_callback('locate','slvnvdemo_fuelsys_officereq/fuel rate controller/control logic');

要件にリンクされているステートと遷移が強調表示されます。Rich Mixture ステートを右クリックして [要件] を選択し、上部のリンクをたどって関連するドキュメンテーションを表示します。あるいは、以下のコードを評価します。

rmidemo_callback('view', ...
'slvnvdemo_fuelsys_officereq/fuel rate controller/control logic:26',1)

要件ドキュメントからモデル オブジェクトへの移動

前の手順の slvnvdemo_FuelSys_DesignDescription.docx で、ドキュメントの「3.3 Manifold pressure failure mode」節を見つけ、サブヘッダーの末尾にある Simulink アイコンをダブルクリックします。関連する Simulink サブシステムのブロック線図が、ターゲット オブジェクトが強調表示された状態で表示されます。モデル ウィンドウをすべて閉じ、ドキュメントからの移動を繰り返します。

モデル ファイルが見つかる場合、ブロック線図やチャートが必要に応じて開きます。

新規リンクの作成

双方向リンクを作成するように設定するには、以下を行います。

  • Simulink モデルの [要件] タブで [リンクの設定][リンク オプション] を選択します。

  • 表示されたダイアログ ボックスで、[双方向リンクのリンク先を変更] がオンになっていることを確認します。

次に、先ほど移動したリンクと同様なリンクを新規作成します。メモ: Microsoft Word のドキュメントが "読み取り専用" になっている場合、リンクを作成できません。この例の次の手順では、ドキュメントの独自のローカル コピーを保存して、それをインストールされたドキュメントの代わりに使用することを検討してください。

  • slvnvdemo_FuelSys_DesignDescription.docx で、「2.2 Determination of pumping efficiency」節を見つけます。

  • 見出し全体をマウスで選択します。

  • Airflow calculation サブシステムの Pumping Constant ブロックを右クリックします。見つからない場合、以下を評価します。

rmidemo_callback('locate',['slvnvdemo_fuelsys_officereq/fuel rate controller/' ...
    'Airflow calculation/Pumping Constant']);

[要件][Word の選択内容へのリンク] を選択し、リンクを作成します。

もう一度 Pumping Constant ブロックを右クリックします。コンテキスト メニューの一番上に、新規作成したリンクが表示されているはずです。クリックして、slvnvdemo_FuelSys_DesignDescription.docx2.2 節のターゲットに移動します。

Signal Builder ブロックの要件リンク

信号リンクは、Signal Builder ブロック全体に関連付けられるのではなく、個々の信号グループに関連付けられます。これらの種類のリンクは、Signal Builder グループとして定義されたテスト ケースに使用します。

Test inputs Signal Builder ブロックをダブルクリックし、構成済みの信号グループを表示します。通常の動作信号は、定期的に押されるアクセル ペダルと、一定のエンジン RPM です。以下のコードを評価し、Test inputs ブロックに移動します。

rmidemo_callback('locate','slvnvdemo_fuelsys_officereq/Test inputs');
  • ツール バーの端にある [検証設定の表示] ボタン をクリックし、[検証] パネルを表示します。

  • [検証ブロックの設定] の下に [要件] パネルが表示されていない場合、パネル上部にある [要件の表示] ボタンをクリックします。

  • [要件] の下のリンク ラベルを右クリックし、[表示] を選択して関連する要件データを開きます。今回は、Microsoft Excel ドキュメントで開かれます。リンクされたセルの Simulink アイコンを使用すると、信号グループに再度移動できます。あるいは、以下のコードを評価します。

rmidemo_callback('view','slvnvdemo_fuelsys_officereq/Test inputs',1)

過渡的な RPM の不安定性が 2 つ目の信号グループの Engine speed データ上の矩形パルスによってモデル化されます。

rmidemo_callback('signalgroup','slvnvdemo_fuelsys_officereq/Test inputs',2)

RPM センサーの故障信号グループを、Excel ファイルの異なるセル範囲にリンクする必要があるとします。ドロップダウン リストでこの信号グループを選択し、空の [要件] を右クリックし、コンテキスト メニューから [[外向きリンク] ダイアログを開く...] を選択すると、ダイアログ ボックスが開きます。

最も簡単にリンクを追加する方法は、[参照] をクリックして Excel ファイルを指定することです。そして、その Excel ファイルを開き、リンクするセルを選択します。[外向きリンク] メニューで [現在の選択を使用] をクリックすると、現在の選択内容に対してリンクが作成されます。

  • [要件] エリアの新規ラベルを右クリックして [表示] を選択すると、TestScenarios ファイルに移動し、ターゲット セルが表示されます。

要件レポートの生成

[要件] タブで、[共有][モデルのトレーサビリティ レポートの生成] をクリックすると、モデルに含まれるすべての要件リンクに関するレポートが自動的に生成されます。または、以下のコードを評価します。

rmidemo_callback('report','slvnvdemo_fuelsys_officereq')

既定のレポートは、製品に含まれるテンプレートに従って生成されます。

Report Generator インターフェイスを使用すると、完全に新規のテンプレートを作成することを含め、生成されるレポートのコンテンツ全体を制御できます。アクセスするには、以下のコードを評価します。setedit('requirements')

また、[要件] タブの [共有][レポート オプション] から、オプションのサブセットにアクセスすることもできます。たとえば、結果のレポートを白黒印刷したり、プロジェクターに表示する場合、[モデルを強調表示してからレポートを生成] チェック ボックスをオフにできます。また、要件へのリンクをもたないオブジェクトのリストを含めることができます。

要件の整合性チェック

モデル アドバイザーを使用して、要件リンク データ内の不整合を自動的に検出し、修正します。[要件] タブで [一貫性のチェック] をクリックすると、RMI チェック ポイントのみが有効化された状態でモデル アドバイザーが開きます。ドキュメントの欠落、ドキュメント内の位置の不一致、選択ベースのリンクにおけるラベルの不一致、パス情報の不整合がないか、リンクがチェックされます。モデル アドバイザーは、以下を評価することでも、開くことができます。

rmidemo_callback('check','slvnvdemo_fuelsys_officereq')

[選択したチェックを実行] ボタンをクリックし、モデル内のリンクの整合性を検証します。RMI が自動的に、リンクされたドキュメントを開き、保存されたデータの整合性をチェックします。完了後、個々のチェック項目をクリックすると、右側のパネルに結果が表示されます。この例では、リンクの 1 つがドキュメント内の無効な場所を指しています。

また別のリンクは、ラベルがリンク作成時に選択されていた内容と一致していません。

モデル アドバイザー レポートで [修正] または [更新] をクリックすると、レポートされた不整合が自動的に解決されます。チェックを再実行し、レポートされた問題が解決されたことを確認します。

ユーザー タグ プロパティによる要件のフィルター処理

Simulink の要件リンクは、オプションで、任意のコンマ区切り string 値を保存できる [ユーザー タグ] プロパティをサポートしています。これらのタグを使用して、機能要件へのリンク、設計の説明へのリンク、またはテストの詳細へのリンクなど、異なるタイプのリンクを区別ができます。タグは、新規リンク作成時に指定するか、後から [[外向きリンク] ダイアログを開く...] ダイアログ ボックスで指定できます。

このタグを後で使用することで、リンクのサブセットのみに操作対象を絞り込んだり、モデルからリンクのサブセットを自動的に除去したりできます。その制御は、[要件] タブの [リンクの設定][リンク オプション] をクリックして表示される [要件の設定] メニューの [フィルター] タブで行います。

モデル要件が強調表示されているときに、フィルター設定を変更すると、表示が更新され、一致する要件リンクのみが表示されるようになります。このモデル例の要件リンクは、"design"、"requirement"、"test" のいずれかでタグ付けされています。フィルター設定を変更すると、それに合わせて表示が調整されます。たとえば、"requirement" というタグが付けられたリンクのみを強調表示できます。

[ユーザー タグ] フィルターを有効にしてレポートを生成すると、レポート コンテンツに対応するフィルター処理が適用されます。これは、レポートでリンクの特定のサブセットに焦点を当てるのに役立ちます。

[ユーザー タグ] フィルターを有効にして整合性チェックを実行すると、指定したフィルター設定と一致するリンクのみがチェックされます。これを使用して、整合性チェックのターゲットをリンクの必要なサブセットに絞り込むことができます。

要件ドキュメントの移動時または名前変更時のすべてのリンクの更新

ときには、リンクを作成した後に、ドキュメントの名前を変更したり、ドキュメントを移動したりする必要が生じることがあります。コマンド ライン ユーティリティを使用して、モデル内のすべてのリンクを同時に調整します。

help rmidocrename
 rmidocrename Update model requirements document paths and file names.
    rmidocrename(MODEL_HANDLE, OLD_PATH, NEW_PATH)
    rmidocrename(MODEL_NAME, OLD_PATH, NEW_PATH)
    
    rmidocrename(MODEL_HANDLE, OLD_PATH, NEW_PATH) collectively
    updates the links from a Simulink(R) model to requirements files whose
    names or locations have changed. MODEL_HANDLE is a handle to the
    model that contains links to the files that you have moved or renamed.
    OLD_PATH is a string that contains the existing file name or path or 
    a fragment of file name or path.
    NEW_PATH is a string that contains the new file name, path or fragment.
 
    rmidocrename(MODEL_NAME, OLD_PATH, NEW_PATH) updates the
    links to requirements files associated with MODEL_NAME. You can pass
    rmidocrename a model handle or a model name string.
 
    When using the rmidocrename function, make sure to enter specific
    strings for the old document name fragments so that you do not
    inadvertently modify other links.
 
    rmidocrename displays the number of links modified.
 
    Examples:
 
        For the current Simulink(R) model, update all links to requirements
        files whose names contain the string 'project_0220', replacing 
        with 'project_0221': 
            rmidocrename(gcs, 'project_0220', 'project_0221');
        
        For the model whose handle is 3.0012, update links after all
        documents were moved from C:\My Documents to D:\Documents
            rmidocrename(3.0012, 'C:\My Documents', 'D:\Documents');
 
 
    See also rmi rmitag

    Documentation for rmidocrename
  • モデル例の書き込み可能なコピーを作成します。たとえば、元のシステムを開き、slvnvdemo_fuelsys_officereq_copy という名前を付けて保存します。

open_system('slvnvdemo_fuelsys_officereq')
save_system('slvnvdemo_fuelsys_officereq','slvnvdemo_fuelsys_officereq_copy.slx')

  • "requirement" のタグが付いている要件を強調表示します。これらのリンクは slvnvdemo_FuelSys_RequirementsSpecification.docx を指しているため、同じドキュメントの Microsoft Word 2003 バージョンの対応する場所を指すようにする必要があります。

rmidemo_callback('filter','slvnvdemo_fuelsys_officereq_copy','requirement') 
  • 以下のコードを評価し、リンクを .doc ドキュメントにリダクレクトします。rmidocrename(gcs,'Specification.docx','Specification.doc')

  • ドキュメント名の部分一致が実行されます。不要な変更を防ぐのに十分な程度特定されるパターンを指定すれば、ドキュメントのフル ネームを指定する必要はありません。たとえば、.doc.docx に置換するのは、.docx が .docx になるため、不適切です。RMI は、次のメッセージを返します。「Processed 16 objects with requirements, 7 out of 18 links were modified」。現在のユーザー タグ フィルター設定により、一致する要件をもつオブジェクトのみが処理されます。

  • 強調表示されたリンクから移動してみます。たとえば、Airflow calculationRelational Operator から移動します。ドキュメントの Microsoft Word 2003 バージョンが開き、正しい場所が表示されます。

rmidemo_callback('locate',['slvnvdemo_fuelsys_officereq_copy/fuel rate controller/' ...
    'Airflow calculation/Relational Operator3'],1);

一方向リンクに一致するドキュメントへのナビゲーション コントロールの挿入

以前に Simulink オブジェクトからドキュメントへの一方向リンクを作成済みで、後から、ドキュメント内の各場所から対応する Simulink オブジェクトに移動する必要が生じた場合、rmiref.insertRefs ユーティリティを使用して、要件ドキュメントに一致する "戻る" リンクを挿入します。

この例に含まれるドキュメントの 1 つ、slvnvdemo_FuelSys_DesignDescription.doc には、Simulink ナビゲーション コントロールが含まれていません。モデル例で design タグが付いているリンクに対応する場所に、ブックマークがあります。

  • 前の節で使用したモデルの書き込み可能なコピーをもう一度使用します。

open_system('slvnvdemo_fuelsys_officereq_copy')
  • 以下のコードを評価し、slvnvdemo_FuelSys_DesignDescription.docx から slvnvdemo_FuelSys_DesignDescription.doc へ一致するリンクをリダイレクトします。コマンド ウィンドウに次のメッセージが表示されます。「Processed 16 objects with requirements, 8 out of 16 links were modified. rmidocrename('slvnvdemo_fuelsys_officereq_copy','Description.docx','Description.doc');

  • いずれかのリンクで移動します。たとえば、Airflow calculation サブシステム ブロックを右クリックし、[要件] を選択し、リンクされた要件をクリックします。すると、slvnvdemo_FuelSys_DesignDescription.doc が表示されます。これには Simulink ナビゲーション コントロールがありません。ブロックが見つからない場合、以下のコードを評価します。

rmidemo_callback('locate',['slvnvdemo_fuelsys_officereq_copy/fuel rate controller/' ...
    'Airflow calculation']);
  • rmiref.insertRefs('slvnvdemo_fuelsys_officereq_copy','word') を実行して、ドキュメントからモデルへのナビゲーション コントロールを slvnvdemo_FuelSys_DesignDescription.doc に挿入します。Simulink ナビゲーション アイコンがドキュメントに挿入されたのを確認します。これで、これらのアイコンを使用して、slvnvdemo_fuelsys_officereq_copy モデル内の Simulink オブジェクトに移動できるようになりました。

指定した位置ブックマークがドキュメントに欠落している場合、ナビゲーション コントロールを挿入することはできません。この例では、最後にリンクが作成されてからドキュメントが保存されていませんでした。コマンド ウィンドウに次の警告が表示されます。「The named item "Simulink_requirement_item_7" could not be located in the bookmarks or section headings」。

モデル内のリンクで位置が指定されない場合、ナビゲーション コントロールはドキュメントの先頭に挿入されます。

ドキュメントからのすべての Simulink 参照ボタンの削除

Simulink ナビゲーション コントロールを Microsoft Office ドキュメントに挿入したとき、Simulink に移動する前に、必ずしもドキュメントを保存する必要はありません。これにより、必要に応じてナビゲーション オブジェクトを一時的に挿入できます。ナビゲーション ボタンが挿入されたドキュメントを保存した後で、クリーンな状態のドキュメントに戻す必要がある場合、rmiref.removeRefs ユーティリティを使用してボタンを削除します。たとえば、以下の手順を実行して、この例の前の手順で挿入したボタンを削除します。

  • slvnvdemo_FuelSys_DesignDescription.doc が開いており、それが最新の Microsoft Word ドキュメントであることを確認します。

  • rmiref.removeRefs('word') を実行し、ボタンを削除します。RMI によって、コマンド ウィンドウに確認のプロンプトが表示されます。

ドキュメントから Simulink へのリンクの修復

要件ドキュメントに組み込まれた Simulink ナビゲーション コントロールは、Simulink モデルが変更または移動されて古くなることがあります。その結果、リンク切れが発生します。rmiref.checkDoc ユーティリティを使用して、外部ドキュメントから Simulink へのリンクを検出し、修復します。この例では、slvnvdemo_FuelSys_DesignDescription.docx ドキュメント内のリンク切れを 1 つ修復します。

  • which slvnvdemo_fuelsys_officereq_copy を実行し、MATLAB パスから slvnvdemo_fuelsys_officereq_copy.slx (存在する場合) を削除します。

  • slvnvdemo_FuelSys_DesignDescription.docx を開き、ドキュメントの一番最後にあるリンクから移動を試みます。次のエラー ダイアログが表示されます。

  • rmiref.checkDoc('slvnvdemo_FuelSys_DesignDescription.docx') を実行し、ドキュメントのリンク切れをチェックします。RMI により、検出されたドキュメントの問題が強調表示され、HTML レポートが表示されます。

レポートの末尾に、有効なすべてのリンクの一覧が示されます。このレポートから、Simulink のリンクされたオブジェクト ([Simulink のターゲット] 列) およびドキュメントのターゲット位置 ([ドキュメントの内容] 列) に移動できます。

レポートの赤字は、注意が必要な問題を強調表示しています。この場合、未解決のモデル名を参照するリンク切れが 1 つあります。リンクを修復してから続行します。

クリーンアップ

開いている要件セットとリンク セットをクリアします。開いている Simulinik モデルをすべて閉じます。リンクのキーワード フィルターをクリアします。

slreq.clear;
bdclose('all');
rmipref('FilterRequireTags','');