オブジェクト指向
オブジェクト指向の本(「いちばんやさしいオブジェクト指向の本」(井上樹著 技術SE新書)の書評で今のオブジェクト指向に対する疑問みたいなことを書きました。
その疑問は、要するに、オブジェクト指向分析とオブジェクト指向設計・プログラミングのあいだの溝をどう埋めるかのという問題に帰結します。もう少し言うと、ビジネスシステムの領域のことになるのですが、オブジェクト指向分析がビジネス設計につながらないという大きな問題があるということなのです。
プログラミングにつながる分析・設計はあるのだが、業務システムの設計という視点のものがあるかというとそれがないということが大問題なのです。それに気がついている人がいるのかどうか。
オブジェクトをまだプログラムの固まりという視点で見ているということです。そうではなくてビジネスを作るためのオブジェクト指向設計はどうするんだということなになります。
でここで、オブジェクト指向とBPMを考えて見ます。ただし、そんな深い知識があるわけではないので冒頭の本で得た知識をベースに言います。
ではBPMにおけるオブジェクトとは何かということになる。“オブジェクトとメッセージ”ですよと言われれば、おおこりゃBPMだと思うのです。アクティビティをあるメッセージでつなげているということであればりっぱなBPMなわけです。すぐにこの技法の中の「書類というオブジェクトを依頼と受付というメッセージでつなげていく」いうのがBPMとすれば、おおオブジェクト指向だということになります。
しかし、これはどうもオブジェクト指向分析というレベルのようです。つぎのオブジェクト指向設計という段階はどうなのということになります。ここで問題になるのは、何を設計するかということである。おそらく、ここでプログラム仕様書を作ることに行ってやしないかということなのです。
オブジェクト指向というのはけっこう範囲が広く、これが少し敷居を高くしている可能性があります。要するに分析から、設計、プログラミングまで含んでいるので、ついそれが全部シームレスにつながるようなイメージを持つがこれが曲者で、そこの溝を埋めていくのが難しいことではないでしょうか。
あの本のなかのQAでもそこにふれていて、“ただし、どんな開発であろうと、分析と設計のあいだには、目的の違いが厳然として存在しており、目的を達成するためのアプローチはまったく異なります。ですので、それを一緒にできるということはありませんので、気をつけてください。”と書かれています。
ところで、分析と設計のあいだに目的の違いがあり、アプローチがまったく異なるというのはほんとうでしょうか。それは違うのではないでしょうか。そんなことを言っているからわけがわからなくなると思います。難しいかもしれないがそこをシームレスに近づけることをしていかないといけません。
プログラムを作るためだけのオブジェクト指向ではないのです。そこが間違ってるのです。プロダクトを作るにしても、ビジネスシステムを作るにしても、使う人は自分の思ったように動くITを望んでいます。そういう発想をしたら、分析も設計・プログラミングもつながる話なのです。BPMはこうした思想のオブジェクト指向技法だと考えています。