実践的オブジェクト指向分析入門20
分析段階といえば、実装段階で活躍するプログラマは関係ないと思われがちです。特にウォータフォールな思想が未だに根強い日本では尚の事です。しかし、広義のプログラマの能力は分析段階にも役立ちますし、やるべき事があります。むろん、日本特有のコーダーには無理ですが、海外で言う所のプログラマには分析段階でも活躍できます。
開発に於いて一番重要なのは、仕様書の妥当性です。仕様書にエラーが含まれている事が多く、仕様書のエラーほど厄介なものはありません>。分析段階では、仕様書を作っていきますので、仕様書の妥当性をチェックしなくてはなりません。
仕様書の妥当性をチェックする能力はプログラマに備わっています。私自身システム構築際に、セキュリティエンジニア、データベースエンジニア、システム管理者、テスター、プロジェクトマネージャ、開発者の視点で分析を行っていますので断言できます。
仕様書の妥当性をチェックする能力は、実装作業を行っている時身に付いたものです。実装作業は仕様書に従って行われます。ですから、仕様書に対する目が肥えます。また、プログラミングで培った物事を分析する姿勢も分析段階で役立ちます。すなわち、何をどう分析するべきなのかが大切だと言えるでしょう。
分析段階で実装段階の事をしてはなりません。そんな事をしてしまうと、視野が狭まって現実世界の分析が出来なくなります。しかしながら、実装が出来ない分析結果を出すのはそれ以上に問題です。実装作業の経験がない人は、現実に存在する情報を、上手くコンピューターの世界の情報へ変換する事が出来ません。それが原因で、実装できないシステムの仕様書が出来上がってしまいます。
分析段階で必要なのは、実装で必要とされるプログラミングのテクニックではなく、物事を分析する能力である点に注意して下さい。分析段階と実装段階を正しく区別して考えないとプロジェクトは失敗します。オブジェクト指向分析は現実世界を分析する行為を指しています。オブジェクト指向プログラミングは、コンピューターの世界で実現する事です。現実世界とコンピューターの世界はかなりの隔たりがあります。ですから、過程をいきなり飛ばしても失敗します。現実世界の情報をコンピューターの世界の情報へと、少しずつ変換していく事が非常に重要です。