ゴール指向

ゴールオブジェクトの考え

何々指向 という言葉がよく用いられる。デザイン指向は Design Thinking  だ。

Thinking で考えると

ポジテイブ思考、ネガテイブ思考がある。トップダウン思考、ボトムアップ思考も思考だ。

思考 で考えるか 指向 でかんがえるかで、迷ってはしまう。

オブジェクト指向はソフトウェア開発のパラダイムシフトだ。もう30年ちかく前の提案だ。もうそろそろ進化してもよいのではないか?

最近ゴール指向が提案されている。GSN Goal Structure Notation を使い、取り組みにはゴールに向かうための適切な構造を意識しろと言っている。これはもっともなことだ。

ゴール指向で振り返って考えてみると、そもそも人間の活動は何かしらの目的(Goal)を意識している。すべての行動や活動がゴール(目的)があり、それを目指している、であったりそのゴールに向けた活動の段階であるサブゴール(副目的)である、と言っても過言でない。

そう考えると、ワープロ文書一つ作るのも、何か目的をもってつくるわけで、ゴールを目指しているし、ゴールを目指す活動そのものといってよい。

そうであれば、オブジェクト指向と同様に、すべてがオブジェクトであり、さらに発展してゴール指向オブジェクト(ゴールオブジェクト)と考えられる。そう考えると、すっきりする。

つまり、WORD文書も、EXCEL表も、PPT文書も、PDF文書も、フォルダーでさえゴールオブジェクトだ。

例えば、製品開発計画を立てる。 これは明らかに目標があり、ゴールオブジェクトといえる。見積もりは、そのゴールを達成するためのサブゴールオブジェクトの一つだ。

文章でいえば、WORDで記述された文書内容は、その文書名が示すゴールを目指す、サブゴール(オブジェクト)群だ。文書名は簡潔にゴールを示すアイテム表現であるはずだ。たまに文書名にマジックナンバーを使う人がいる、これはゴール指向から言って、よくない。

これを発展させると、メールや掲示板アイテムもゴールオブジェクトともみなせる。

例えば掲示板の掲示演題は、サブゴールを表す。この掲示演題で何がしたいのか、伝えたいのか、という事であるはずだ。掲示板で返信されるやりとりは何らかの目的があるはずだ。これらはすべて、ゴールオブジェクト、サブゴールオブジェクトだ。

これらゴールオブジェクト、サブゴールオブジェクトなどはゴール構造(GSN)でつながっていく。それが成立して正しいゴールへのアプローチと客観的に言える。つながるということは、トレーサビリテイリンクでつながっていると表現できる。あるいはオブジェクト指向クラス図的には関係でつながっている表現でもあらわせれる。

この考えだと、上は会社経営から、戦略、プロジェクト、フォルダー、文書、メール、ISSUEなどが全て統一的に扱える。透明性と対照性もある。また階層性質があるともいえる。

次にトレーサビリテイリンクについて考える。

インターネットの世界では、ハイパーリンクが素晴らしく活躍している。これがトレーサビリテイリンクだ。ただし、ハイパーリンクは操作を簡素化するため、片方向トレーサビリテイリンクと呼ばれる。つまりリンク先には気軽に飛べるがリンクから、元に飛ぶとき、戻る しかできない。 それでいいじゃないかといわれるかもしれないが、そうではない。ハイパーリンクは、あちこちから貼られる場合が実は多い。

これを関心事アスペクトと表現し、これは昔はなかった概念だ。そういえばアスペクト指向も最近ある。一つの事柄も、いろいろな側面があり、関心事で、考えるといろんな側面があり、トレーサビリテイリンクでつながる。

そうなると、双方向トレーサビリテイをサポートしなければならなくなり、XLINKと呼ばれる機能が、当然定義されている。それによって、上位ゴールに向かって、関心事で選びながらたどっていける。

安全設計の世界では、不可欠の機能だ。ところうがトレーサビリテイリンクは、原始的なままで、わかり難いといわれてしまったままでいる。

アスペクト関心事でトレーサビリテイを考えると、ゴール構造のどこの関心事でリンクされているのか、明瞭であるほうが、当然論理的だ。

しかし、双方向トレーサビリテイ定義の上位には、このゴール指向トレーサビリテイリンクは標準に存在しない。

よくよく考えると、オブジェクト指向が提案から30年たっているのと同じく、XLINKが提案されて20年は立つだろうか、以来変わっていない。

どちらも、ゴール指向で考えることで、すべきことが見えてきている。

2011年に提案されたゴール指向構造GSNを基礎とした、ゴールオブジェクト指向は、新たなパラダイムシフトだ。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA