Skip to content

Category: D-case

【対談】GSN, D-Caseの動向と必要性 – 名古屋大学 山本先生 x 平鍋対談

 最近のGSN(Goal Structuring Notation)の動向 では、先生、最近のGSNの動向について、少しお話をいただけませんか?     最近、我々がまとめたのが… お、これは!     DEOSの本ですね。所さん(所眞理雄氏)が中心になって、7年間のプロジェクトの成果がまとまったんですね。それが、このDEOSという本です。この中に「ディペンダビリティ工学」というのがあるんですけど…   これは、新しい名前ですか?「ディペンダビリティ工学」?     そうですね。「Dependability Engineering for Open Systems」という事で、変化し続けるシステムのためのディペンダビリティ工学。その変化し続けるシステムのディペンダビリティ、信頼性を保証するために、ここに図があるんですけど(右下画像)、D-Caseが使われています。D-Caseは、GSNを拡張した表記法ですね。   これは日本で書かれた本ですか?     はい、日本で書かれた本です。この取り組みを、オープングループというエンタープライズアーキテクチャの標準化をやっている組織があるんですけど、そこに我々が一緒になって提案しています。それは、エンタープライズアーキテクチャを高信頼化するための手法で、GSNが、本格的に採用されています。そういう動きがあります。    ISO26262の機能安全の中で、GSNは標準的な表記法として採用されている 先生は、GSNに着目された、”D-case“として、DEOSの中に持ち込もうとされた着目の動機みたいなものはありますか?   それは、「受け身」で始まったんですけど。笑。 […]

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

「モデリングしてますか?」 今日は、電通大(電気通信大学)に来ています。ここに、松野先生がいらっしゃいます。   みなさん、こんにちは。電気通信大学の松野と申します。 今日は、わざわざ平鍋さんに調布まで起こしいただきまして、今撮影しています。    GSNのおさらい 今日はですね、山本さんが前回話したGSN、アシュアランスケースの話の続きです。 GSNというのは、アシュアランスケースの記法の一つで、システムの安全性とかディペンダリティを、色んな人にきちんと説明するためのドキュメントです。 例えば「システムが安全ですよ」など、色んな人に説明しないといけないんですけど、いろんな説明の仕方があります。GSNは、それを、議論構造を明確にした上で説明できるようにしたものです。 この場合「システムが安全である」というゴールがあるんですが、いろいろ言い方があります。ここでは、システムが持っている機能ごとに分解して説明する、としています。 システムが機能1と2を持っていた場合、システムが安全であるためには、機能1が安全、機能2も安全、という風に分けて考えていきます。 最後にどんどん詳細化していくんですが、最後にテスト結果とか、皆さんが普段やられておられるテスト等の結果を基に、最終的に議論を支えるものを書きます。  パターン機能 さて、こういのをどんどん描いていくわけで、astah* GSNなどを使ってかいていくわけですけども、こういのをバーとかいていくと、どんどん量も多くなっていくし、しかも、これを形自体をどう形作っていけばいいか、ということが問題になってきます。 プログラミング言語、みなさん詳しいと思うんですけど、そうした問題にどう対処していくかというのは、GSNでも一緒です。 1つは「パターンにしてしまう」ということ。要するに、すごく頭いい人が作ったGSNのパターンをそのまま使って、皆さんのGSNもかいてしまえばいい、という話があります。 例えば、簡単な図なんですけど、このシステムを変数として扱うことができます。 例えば、ここに、皆さんの作っている自動車、飛行機、ご自身のシステムの名前をいれるということがあります。また、機能毎といってますが、当然皆さんのシステム毎に、機能の種類や数が全然違いますよね。ここら辺もパターン化して、汎用化するという仕組みも挙げられます。 たとえば、このパターンにありますが、このシステムという所自体を変数化してしまう、という考えがあります。安全と書きます。このシステムというものをプログラミング言語のように変数宣言してしまいます。 システムはストリング型であると、そうすると、ここで定義したシステムというものは、サブゴール、つまり下の構造で、システムというものの変数を自由に使えるようになります。たとえば、システムの機能ごとに議論する、といった事ができるようになります。 ここでもし皆さんが「自分のシステムの名前にしたい」と、車など入れたとしますね。 そうすると、ここでシステムとなっていた所が、自動車、という風に置き換えられます。 こうすると、皆さんがいちいち自動車、自動車、自動車、、と書かなくても、一気に全部変わるわけですね。これが、パターンを実現するための機能になります。 もう一つ、例えば、自動車だったとしたら、機能1、2、3があって、「自動車の機能毎に安全である」というゴールを作らなければいけないんのですが、ここで、機能が100個あったとします。ここで100と指定すると、パターンとすると、ここに100個のサブゴールが作られる、こういうことを実現すると、非常に汎用性の高いパターンを作ることができます。 これがパターン機能です。  GSNの巨大化を防ぐ為のモジュール化 もう1つ、GSNに対しての拡張として「モジュール化」という考えがあります。 モジュールは、みなさん普段プログラム作る時にやられてると思いますが、例えば「機能1は安全である」ということを展開するとします。すると、これだけでもサブがどんどんと果てしなく大きくなっていって、巨大なGSNになってしまいます。 […]