DRIPが実現するプロセスのリニア化
要求・デザイン・知識・並列エンジニアリングツール DRIP


モデルベース開発

XMBD-擦り合わせ型V字プロセス

統合プラットフォームDRIP上でリニアに繋がるプロセス


要求の具体化

DRIPのプロセスでは”しっかりした内容”を「具体的な要求」と「具体的な文書」のアプローチから実現します。

まずは普通に文書をDRIPへ打ち込みます。

まず“したいこと”を「要求」モジュール(用紙)に整理します。
次に、要求を実現する為の“方法”を「設計原理や意思決定、前提条件」(デザイン)モジュール(用紙)に記述します。
更に、既存の知識や物理現象、過去のプロジェクトの仕様などを「知的資産」(知識)モジュール(用紙)に記述する事で、思考と文書を整理して行きます。

それぞれの用紙に書かれた情報同士の繋がりはツールの機能で担保されており、クリックで相互に行き来が可能です。



文書の具体化

“言葉”は非常に曖昧です。
普通に書かれたごく一般的な文章を読んだ場合、読み手が書き手の意図そのままに理解をするとは限りません。多くはここで誤解が生じます。

誤解なく完全な意思疎通を図るために、文書のうち既に情報の固まっている部分を「式」に落とし込むことで、内容を具体化します。
「式」は一意に定義された“言葉”(Variables)を使用する事で、そのなかの単語レベルでも意味を一意にします。

実際にDRIPに書いた「式」は、このようになります。
「式」は共通の“言葉”(Variables)を一意に定義して使用して記述するスタイルになっており、これによりプロジェクト全体での“言葉の一意化”が促進できます。
更に、「式」に書かれたVariblesをクリックする事で参照先にジャンプできる“繰り返し”リンク機能も利用可能となります。

DRIPは仕様のペンディング管理にも対応しております。
例えば「どれにするか決まっていないがモーターは使用する」といった内容もツール上に残す事が可能です。
ペンディングとして書かれた「式」も、後の実行不可能性分析の工程で活用されます。

ここまでの、「システム・デザイン」におけるDRIPプロセスの上半分“文書を書く作業”を総称してハイレベルエンジニアリングと呼称しています。



要求の文書に紐づくデザイン・アーキテクチャ(DA)機能

要求を書くには文書だけでは情報量が足りない場合があります。
それを補完するための記述機能がデザイン・アーキテクチャ・モジュール(用紙)です。

デザイン・アーキテクチャは主に下記の種類のアーキテクチャ記述に対応しています。
・ 物理アーキテクチャ
・ 論理アーキテクチャ
・ ソフトウェア・アーキテクチャ
※ 各アーキテクチャは複数記述してマッピングする事で差分を取る事も可能です。
DRIPの「ローレベル要求」や「テストシナリオ定義」は、主語・述語にデザイン・アーキテクチャで書いた言葉を引用する仕組みになっています。
これにより、ローレベル要求やテストシナリオとデザイン・アーキテクチャ間での矛盾の多くを記述段階で検出する事が可能となります。

ローレベル要求やテストシナリオ定義でデザイン・アーキテクチャを“引用している”事そのものを“繰り返し”リンク機能で活用する事ができ、更に後のテストハーネス自動化に活用する事が出来ます。

「ローレベル要求」や「テストシナリオ定義」も、ハイレベルエンジニアリングと同様に、まず普通の言葉で文書を書いたのちに「式」で“具体化”を行います。
ここで使用する「式」は専用の「形式言語」を用いて記述します。

実際にDRIPに書くとこの様になります。

ここまでの、「システム・デザイン」におけるDRIPプロセスの下半分“アーキテクチャとそれに紐づく文書を書く作業”を総称してローレベルエンジニアリングと呼称しています。



要求に紐づいたアーキテクチャ

「デザイン・アーキテクチャ」モジュールは、一意に定義された“言葉”(Variables)を使った「式」と紐づくことで、「要求」、「設計原理、決定、前提条件」、「知的資産」モジュールと密接に紐づくことが可能となります。

これにより実質的にV字プロセスの「システム・デザイン」から「ハイレベル要求」へのプロセスの“繰り返し”がDRIP上でサポート可能となります。



アーキテクチャと紐づいた実装

「デザイン・アーキテクチャ」モジュールは「実装デザイン」プロセスのSimulinkモデルとも紐づけが可能です。

DRIPは「デザイン・アーキテクチャ」の情報を元に「実装デザイン」で作成するSimulinkモデルの雛型(外殻のみのモデル)を自動生成する事が出来ます。
その際にSimnulinkモデルの構造情報を「デザイン・アーキテクチャ」とマッピングして紐づける機能ももっており、この機能により「実装デザイン」から「システム・デザイン(デザイン・アーキテクチャ)」への“繰り返し”がサポート可能となります。

※先にSimulinkモデルを書いた場合も、その構造情報を「デザイン・アーキテクチャ」モジュールに自動で“繰り返し”反映させることが可能です。



プロセスのリニア化

以上のプロセスを経て、DRIPはV字プロセスの「要求」〜「システム・デザイン」〜「実装デザイン」間をツール上で意味のある情報として接続し、“プロセスのリニア化”を実現します。


以降は、リニア化したことで生じる各種“自動生成”や“繰り返し”とをはじめとする、様々な‘うれしさ’のプロセス紹介になります。



DRIPが実現する誤解のない文書


テストの指標としての「式」

「式」で一意化された文書は、そのままテストの指標としても再利用が可能です。
詳しくは後述のテストハーネス自動生成の項をご参照ください。


形式言語

DRIPではControlled natural languages(CNL)をベースに開発した形式言語を採用しています。

DRIPの形式言語は制御構文の記述に対応しており、システムの振舞を矛盾なく記述する事が可能となります。

DRIPの形式言語は多言語にも対応しており、メニューで簡単に切り替える事ができます。

DRIPの形式言語で記述した文書は完全に一意の意味となります。
これは、この形式言語が単純に“方にはめた書き方”という理由ではありません。
DRIPの形式言語は、日本語で記述した文書も英語で記述した文書も、内部では全て「式」で保存されます。
この「式」が文書の“意味”を担保する仕組みとなっています。



DRIPが実現する事前検証


要求の事前検証:実行不可能性分析

「式」で文書が一意化したことにより、DRIPはそれを解読出来る様になります。
DRIPは書かれた「式」を一個所へ集約し、実際にそれらを走らせることで矛盾を検出します。

これを実行不可能性分析(Infeasibility Analysis)機能と呼びます。

実際のツール上での相互関係は、このようになります。

実行不可能性分析機能はペンディングにも対応しています。
例えば「どれを採択するかは決まっていないがモーターを使用する事は決まっている」内容のペンディングがあったとします。
DRIPは、任意のモーター候補を選んだ場合の“全パターン検証”を行い、その中から「どの組み合わせの選択であればシステムが成立するか?」の可否分析結果を提示します。

更に、分析結果の詳細情報をグラフ表示する事で、ペンディング事項などにおける意思決定の裏付のエビデンスとして残すこともできます。



アーキテクチャの事前検証

「デザイン・アーキテクチャ」はソフトウェア・アーキテクチャや物理(ハードウェア)・アーキテクチャを記述する事が可能です。

仮にソフトウェア・アーキテクチャと、マイコンのレイアウトを描いたハードウェア・アーキテクチャの両方ある場合、それらを「マッピング」機能で対応付けする事により以下の矛盾の検出が可能となります。

・書いたソフトウェア負荷がマイコンのROM/RAM容量を超過していないか?
・書いたソフトウェアのフローがマイコン同士の結線と矛盾していないか?



DRIPが実現する自動化


「要求」の内容も含んだテストハーネスの自動生成機能

DRIPの各プロセスで記述した「言葉」や「式」、「形式言語」といった情報は全てテストハーネス集約する事が可能です。
これにより、ハイレベル要求で書いた仕様が“書きっぱなし”で終わることなく、“仕様そのものがテスト仕様として再利用”される事となります。

「式」や「形式言語」がテストハーネスの期待結果として再利用され、「テストシナリオ定義」もテストハーネスに自動的に埋め込まれます。



DRIPが実現する“繰り返し”のモデル化


テストハーネスからの“繰り返し”



値の最適化: テストハーネスの実行結果からハイレベル要求への繰返し



実装からシステムデザインへの“繰り返し”



システムデザイン内の繰返し



システムデザインから要求への“繰返し”



実装から要求への“繰返し”

お問い合わせ先
株式会社 NEAT
愛知県名古屋市千種区池下1-11-21
TEL:052-764-3311 FAX:052-764-3632

Engineered Mechatronics, Inc.
28175 Haggerty Road, Novi, MI 48377, USA
TEL:Ph: +1 248 513 8059

* 記載の会社名および製品名は、各社の登録商標および商標です。

MBD・計測
リアルタイムシミュレータ
EMTP-RV
モデルベース開発
RCPシステム/ロボット
データ収録装置