Skip to content

GSNとD-Case、パターンとモジュール化、日本流の差分・派生開発への適応


平鍋

平鍋

「モデリングしてますか?」
今日は、電通大(電気通信大学)に来ています。ここに、松野先生がいらっしゃいます。

 

松野先生

松野先生

みなさん、こんにちは。電気通信大学の松野と申します。
今日は、わざわざ平鍋さんに調布まで起こしいただきまして、今撮影しています。

 


AYM GSNのおさらい


今日はですね、山本さんが前回話したGSN、アシュアランスケースの話の続きです。

GSNというのは、アシュアランスケースの記法の一つで、システムの安全性とかディペンダリティを、色んな人にきちんと説明するためのドキュメントです。
GSN_pattern例えば「システムが安全ですよ」など、色んな人に説明しないといけないんですけど、いろんな説明の仕方があります。GSNは、それを、議論構造を明確にした上で説明できるようにしたものです。

この場合「システムが安全である」というゴールがあるんですが、いろいろ言い方があります。ここでは、システムが持っている機能ごとに分解して説明する、としています。
システムが機能1と2を持っていた場合、システムが安全であるためには、機能1が安全、機能2も安全、という風に分けて考えていきます。

最後にどんどん詳細化していくんですが、最後にテスト結果とか、皆さんが普段やられておられるテスト等の結果を基に、最終的に議論を支えるものを書きます。


AYM パターン機能


さて、こういのをどんどん描いていくわけで、astah* GSNなどを使ってかいていくわけですけども、こういのをバーとかいていくと、どんどん量も多くなっていくし、しかも、これを形自体をどう形作っていけばいいか、ということが問題になってきます。
プログラミング言語、みなさん詳しいと思うんですけど、そうした問題にどう対処していくかというのは、GSNでも一緒です。

1つは「パターンにしてしまう」ということ。要するに、すごく頭いい人が作ったGSNのパターンをそのまま使って、皆さんのGSNもかいてしまえばいい、という話があります。
例えば、簡単な図なんですけど、このシステムを変数として扱うことができます。
例えば、ここに、皆さんの作っている自動車、飛行機、ご自身のシステムの名前をいれるということがあります。また、機能毎といってますが、当然皆さんのシステム毎に、機能の種類や数が全然違いますよね。ここら辺もパターン化して、汎用化するという仕組みも挙げられます。

たとえば、このパターンにありますが、このシステムという所自体を変数化してしまう、という考えがあります。安全と書きます。このシステムというものをプログラミング言語のように変数宣言してしまいます。

GSN_patternシステムはストリング型であると、そうすると、ここで定義したシステムというものは、サブゴール、つまり下の構造で、システムというものの変数を自由に使えるようになります。たとえば、システムの機能ごとに議論する、といった事ができるようになります。
ここでもし皆さんが「自分のシステムの名前にしたい」と、車など入れたとしますね。
そうすると、ここでシステムとなっていた所が、自動車、という風に置き換えられます。

こうすると、皆さんがいちいち自動車、自動車、自動車、、と書かなくても、一気に全部変わるわけですね。これが、パターンを実現するための機能になります。

もう一つ、例えば、自動車だったとしたら、機能1、2、3があって、「自動車の機能毎に安全である」というゴールを作らなければいけないんのですが、ここで、機能が100個あったとします。ここで100と指定すると、パターンとすると、ここに100個のサブゴールが作られる、こういうことを実現すると、非常に汎用性の高いパターンを作ることができます。

これがパターン機能です。


AYM GSNの巨大化を防ぐ為のモジュール化


もう1つ、GSNに対しての拡張として「モジュール化」という考えがあります。
モジュールは、みなさん普段プログラム作る時にやられてると思いますが、例えば「機能1は安全である」ということを展開するとします。すると、これだけでもサブがどんどんと果てしなく大きくなっていって、巨大なGSNになってしまいます。
gsn_moduleそうすると、先ずここをパッケージ化して、1つのモジュールにして、そこを参照させる、というアイデアがあります。

こういう機能なんですが、皆さんにとっては当たり前の機能だと思うんですけど、
こうしたGSNのような安全性のドキュメンテーションに対しては、ツールなどの導入が遅れていたんですね。それで、最近色んなツールが出てきたわけで、こうした機能がツールにだんだん実装されています。
僕も元々はプログラミング言語を研究していたので、こうした機能を定義してGSNに拡張しました。
これが、DSN(Dependable Systems and Networks)という会議があるんですけど、これはコンピュータサイエンスのトップカンファレンスなんですが、採択されました。


AYM 日本の得意とする開発手法、ものづくりを国際標準化に


我々は、IPA(独立行政法人 情報処理推進機構)とかチェンビジョンさんと一緒に、こういったものを用いて、日本のものづくりを国際標準化していこうと考えています。

1つ、日本の開発の特徴としましては、「繰り返し開発」「すり合わせ開発」というものがあるのですが、これをGSNで表現して、国際標準化していこうと考えています。

「このシステムはディペンダブルである」と言いたいとしますね。
すでに既存の部分があって、更に新しい部分があって、それらを組み合わせて作ってる。それをこの図はモデル化しています。ちょっと見づらいですけど、ちょっとその構造を描いてみます。
GSN_dependablity
ここで「システムはディペンダブルである」ということを、このように分けていきます。

まず「既存部分」ですね。更新しない部分が、ディペンダブルである、という事を先ず説明しなくてはいけないです。もうひとつ、例えば自動車の中でも、エンジンだけを変える、ということがありますね。すると「更新部分」、エンジン部分が安全である、ということを議論していきます。

ただし、この既存部分と更新部分を個々に大丈夫だよ、といっても、全体として本当に動くかというと、また別になっていきます。そういった時には、エンジン部分が更新された車の全体部分としてシステムがディペンダブルかどうかということを保証しなくてはいけません。

すごく単純な議論構造なんですけど、日本企業の皆さんが、まさに毎日やっていることを、モデル化してるわけです。

こういうやり方をすることによって、日本の車はすごく安全に作られているわけですから、これを標準化していけば、日本のためになっていく、と僕たちは信じてやっています。

Advertisements

2 Comments »

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: