これまで、<システム>は実在、システムは認識、それの表現がシステム・モデルであるとして、検討を進めてきました。本章では、モデルの作成(モデリング)の前提となるシステムの認識をどのように行っていったら良いか、人工システムに対象に、簡単な例で考えてみたいと思います。(文中、敬称は略します)
10.1 システム・モデリングの出発点はシステムの認識
(1)記号としてのモデル
記号分析では、我々の前に提示されている表現から意味がどのように作られるかを分析の対象にします。それに対して、モデルの作成(モデリング)は、意味から表現を生成する過程であり、デザインとよく似ています。デザインが、まず自分が表現したいものつまり意味があって、はじめて成立するように、システムのモデリングも対象が存在しなければなりません。しかし、その対象にシステム・モデリングの特異性が潜んでいます。
山梨正明は、モデルを用法という視点から次の3つに分類しました。
システム・モデルはモデル3つまり象徴記号です。モデル1と2では、多くの場合、目標となる対象が、それ自体で独立して存在しています。それに対して、モデル3は、たとえですから、対象が明確な形で存在していない場合もあります。特に、<システム>は機能であり振る舞いですので、モデルには、目標となる対象が知覚できる形で存在している訳ではありません。モデル開発者(モデラー)が現実の世界から、対象となるシステムを見出しつまり認識し、表現していくのです。システム・モデルは主観的に作成されるものです(異論は多いと思いますが)。
(2)システム・モデルへの2つのアプローチ
くどくなりますが、システムは認識です。現実世界に実在する<システム>、それの認識としてのシステム、それを表現したモデルの関連を記号モデルで、図10.1にまとめてみました。
モデルへのアプローチとして、2つ考えられます。ひとつは、<システム>全体の振る舞いを、記述するものです。これは、生物や自然現象など自然ステムの挙動を、マクロに表現するのに、よく用いられる手法です。開放系、自己組織系、カオス、オートポイエーシスなどがこれに分類されます。
もうひとつは、まず<システム>から要素を抽出し、それを関連付け(構造化)、要素とその関係の集合としてシステムを認識する方法です。人工システムではこの方法が主流です。社会システムでは、どちらも用いられるようです。
ここでは、要素からシステムを構築する第2のアプローチを検討します。
10.2 モデリングの第1歩は対象の設定
(1)システム・モデルは人工物
モデルは、その対象の中に、自然に存在しているものではありません。我々が、人工的に作り上げるものです。では、人工物例えば家を建てるときどうするでしょう。大変乱暴ですが、次のように行うのではないでしょうか。
(2)まず、モデリングの視野を明確に
我々の周りに存在する<システム>は互いに結びつき、より大きな<システム>を形成しています。つまり、<システム>は連続し、境界はありません。しかし、それでは、システムのモデルは作成できませんので、現実世界の中から、モデリングの対象とするシスムの境界を定める必要があります。このように、現実世界に切れ目を入れることを、、記号論では分節といいます。モデリングは、対象とするシステムを<システム>世界の中から切り出すつまり分節することから始めます。
その簡単な例を、図10.2の湯沸しポットで示します。ポットを、中の常温の水を指示された温度まで上げ、その後、その温度に保持するシステムと認識し、そのシステム・モデルを考えることにします。
まず、システムを認識するために、認識の視野を定めておく必要があります。ポットはものとしては独立して存在しますが、お湯を沸かす<システム>としては、決して単独で存在している訳ではありません。まず、ポットの中の水は、水道から供給されます。人間を介してですが、水道システムとつながっています。また、コードを介して、電源プラグに接続され、電力システムにつながっています。つまりポットもまた、他の<システム>と連結しています。しかし、それではモデルの対象が際限なく、広がっていきますので、どこかで切れ目を入れなければなりません。図10.2では、水道や電源は外部環境つまり与条件としてモデルを構築していきます。
つぎに、モデルの対象を決めておく必要があります。ポットのどのような特性を理解したいかを明確にしておく必要がありますが、ポットの中の水の温度の時間変化を知りたいので、その調整システムをモデルの対象とします。
10.3 オブジェクトによる構成要素の認識
(1)オブジェクト指向という視点
システム・モデルの視野や視点が決まったら、次に要素の認識に進みます。それには、ソフトウエアの分野で盛んに用いられているオブジェクト指向という考え方が便利です。
システムの要素は、実世界に存在する部品のような実体ではなく、役割、機能や振る舞いなど捉えにくいものですが、オブジェクト指向モデリングでは、それを実現している実体をシステム要素としてモデリングを進めます。システムは、人間も含めた何らかの実体(媒体)で実現されていますので、目に見えないシステムを認識するのには、オブジェクトというのは、非常に有効な認識方法です。
オブジェクト指向モデリング技術としては、UML(Unified Modeling Language)が標準的ツールとして普及しています。
(2)オブジェクトによる要素の認識
図10.2の例では、モデルの対象は湯沸しポットの水の温度の調整システムですので、まず、温度を属性の一つとして有するポットの水を、オブジェクトに選びます。つぎに、水の温度を上げるためには、水を温めるエネルギーが必要ですので、それを発生させる加熱器をオブジェクトして選び、さらに、熱を発生するヒータと電源の2つのオブジェクトに分割します。また、温度に応じて電圧を調整する機構も必要となりますので、温度制御回路というオブジェクトを設けます。これにより図10.3のような、モデルを構成するオブジェクト群を導くことができます。
以上の検討は、私のイメージに基づくものです。別の人がモデリングを行えば、別のオブジェクトが設定されるでしょう。絶対的に正しいモデルは存在せず、モデリングにはそれを行う人の主観が入ります。そのため、実用的なシステム・モデルを得るには、対象に精通している専門家の知識が必要となります。
10.4 オブジェクトの結びつきから構造を認識
(1)要素間の関係を情報の流れとみなす
システムは、要素と要素間の関係の集合ですので、要素が認識できたら、つぎに要素間の関係を見出す過程に入ります。それには、要素間の関係を情報の流れにたとえのが便利です。
まず、要素にどのような情報が入り、どのような情報が出て行くかつまり要素の入出力情報を整理します。図10.3の例では、「ポットの水」という要素について考えてみましょう。水の温度を上げるには、どうすればよいでしょう。それには、熱が必要です。、熱を入力情報とします。モデリングの目的は、「ポットの水」の温度変化を知ることでしたので、温度を出力情報とします。こう考えることにより、図10.4に示すように、「ポットの水」の入力情報と出力情報を定めることができます。
要素に入ってくる入力情報、出て行く出力情報の整理を全要素について行います。
(2)オブジェクトの結びつきから構造を認識
要素の入力情報、出力情報が整理できれば、それを用いて要素の間の関係をモデルに組み込むことができます。つまり、図10.4のようにシステムを構造化できます。
たとえば、「ポットの水」要素の入力情報は熱です。この熱を出力情報とする要素は「ヒータ」ですので、「ヒータ」と「ポットの水」を結びつけることができます。これを続けることにより、図10.4のような構造化されたモデルを作成することができます。
工業製品や工業プラントでは、多くの場合、オブジェクトにはその機能を実現する機器が選ばれるでしょう。機器の構成を理解すれば、システム要素の関連付けは比較的容易に行えます。
これまで、簡単な例でモデリングの進め方を説明してきました。工業製品や工業プラントでは、機器や部品の構成や機能が実際に視認また設計図などにより確認できますので、オブジェクトの選定やその関連付けはあまり迷いなく進められます。
しかし、情報処理システムの開発や業務の効率改善に必要となる業務プロセスのモデルや社会システムのモデルの開発では、オブジェクトの設定に大きな自由度がありまたそこで流れる情報の種類が多いこともあり、モデリングは簡単でないのも事実です。対象に精通している専門家とモデリング技術者のコラボレーションが不可欠ですが、これまた実際にはなかなか上手くいかないは、岡嶋祐史『ウチのシステムはなぜ使えない』に示されているとおりです。
モデルの開発を担当する人は、一度、川喜多二郎『発想法』(KJ法)を読んでおくと役立つアイデアが得られるかもしれません。