モデリングと設計の違い

2007/12/21追記

「内部設計 見本」「外部設計 見本」などで検索に来た皆さん、残念でした。ここには見本はありません。でも、この書き込みに来たのも何かの縁。一度、外部設計とか内部設計とか、本当に必要なのか考えなおしてみませんか? 詳しくは、下記本文で。

以下、本文

BMUF (Big Modeling Up Front)=上流設計のインチキを斬るでは、敢えて「Modeling≒設計」みたいな感じで訳しちゃった。その後いろいろ考えたけど、BMUFは「先行設計」と訳すべきだったかもしれない。

辞書でmodel(動詞)を引くと、「見本を作る」というのがひっかかる。そして、おそらくソフトウェアにおけるModelingとは「見本を作る」ことであろう。

モデリング

BMUF (Big Modeling Up Front)=上流設計のインチキを斬る元記事で紹介されていたSketches of Frank Gehryをざっと観た。衝撃的だったので、何度も観ることになろう。

で、冒頭からいきなりガツンと頭をやられた。厚紙をハサミでチョキチョキ切って、それをセロテープでペタペタとはりあわせて、建物の見本を作っている場面。モデリングだ。

見本は見本でしかない。材質が違うし、窓も入口もないし、柱も床もない。つまり、その見本だけでは本物の建物を作ることはできない。作るのに必要な情報が不足しているからだ。設計書とは「これだけの情報があれば作れる」という情報を持っている必要がある。そしてモデリングはその設計書作成の手掛かりでしかない。

こうやって考えると、ソフトウェア「設計」と呼ばれている工程は、実はモデリングであることが大半なんじゃないかな。だってそのままじゃ作れないんだもん。「これだけの情報があれば作れる」というのは、ソースコード並に詳細記述した詳細設計書に相当するのだろうけれど、そんなものを書いて検証する元気があるなら、ソースコードを直接書くほうが建設的な仕事ができるはずだ。

なので、「BMUF (Big Modeling Up Front)=上流設計のインチキを斬る」ではなく「BMUF (Big Modeling Up Front)=ソフトウェア設計のインチキを斬る」にするべきだったなぁ、と後悔している。

用語変更

設計と呼んでいる行為が設計ではなく、実は見本作りだったということなら、成果物の呼称もそれなりに変えるべきではないか、と。

  • 概要設計書→大雑把な見本
  • 外部設計書→画面見本、帳票見本、インターフェース見本、...
  • 内部設計書→機能見本、機能間連携見本、...

設計書って書くとなんか高尚な感じがするけれど、見本って書くといつでも捨てられそうな感じがしてこない? そいういう位置付けの文書に、膨大な労力をかけるのってアホくさいと思わない?

でも、そういう捨ててもよいような文書に大枚払ってくれるお客様がた〜くさんいるから、SI業界の元締め(設計を売る人達)は今日も安泰なんだね。そして、その元締め達は間違ってもModelingを「見本作り」などとは呼ばない。設計と言い張るか、カタカナで「モデリング」と呼んで煙に巻いちゃうか。