« ソフトウエアの設計は協業の基礎を作ること | トップページ | 「文系SE」、「理系SE」 »

2006年9月 9日 (土)

ソフトウエアの設計はどこから来るのか?

ソフトウエアの開発プロジェクトで、複数の人間が「設計」を行い、複数の人間がプログラミングを行ない、それらの作業すべてが同時並行に進行する、という状況にありまして、設計手法を統一する必要性、というものを強く感じました。UML(Unified Modeling Language) が目指すものはこれだったのかな、などと考えていたのですが。

しかし、よくよく考えてみると、UMLは設計のある側面を図で表現しますが、設計そのものではないんですよね。あくまで、一つの表記法にすぎないわけです。色々な図が、ひとつの体系のもとに集まっており、それはそれで、非常に便利なものなのですけれども。私自身、結局、「表記法のカタログ」として使っているわけでして。

それで、私自身、ソフトウエアの設計手法は、どうやって習得したのか、少なくとも、UMLではない、と思いました。結局のところ、これはプログラミングを行なううち、いつの間にかできるようになっていたことでした。

ただ、プログラミングといっても、単に自分でプログラムを書くことによってではなく。おそらく、一番大きなことは、いわゆる「ライブラリ」(API)のインターフェイスを、色々と見て、それがどのような「デザイン」なのか、どういう仕組みで作られているのか、といったことを考えてきたことだと思いました。こういった風に、様々なソフトウエアのインターフェイスを「鑑賞」することで、自分の中にそういったセンスが生じてきたように思います(たいしたセンスではありませんけど)。

例えば、C++言語のStandard Template Library (STL) を見て感動したり、Ruby言語の「組み込みライブラリ」を見て、えらく感心したりするのは、ライブラリ、ひいては、ソフトウエア・インターフェイスの「デザイン」に対する、ある種の「鑑賞眼」のようなものを自分が持っているからだと感じます。

こういった、「良質の作品」を鑑賞し、そしてそれを自身のプログラミングのなかで生かそうとする、この繰り返しによって、私の「ソフトウエア設計手法」が培われてきたのだと、そう考えました。

だとすると、「設計手法を統一する」とは、単に「表記法」を統一することに留まらないわけでして(それも意味はあるとは思いますけど)。「設計センス」のようなものを統一しなければ、根本的にはうまくいきそうにないですよね。でも、こんなことは、一朝一夕に出来ることでもないですね。全員が優れた「センス」を持っていれば、他者の「センス」を理解し、「設計手法を統一すること」が出来そうですが...

---

UML モデリングのエッセンス 第3版 Book UML モデリングのエッセンス 第3版

著者:マーチン・ファウラー
販売元:翔泳社
Amazon.co.jpで詳細を確認する

Martin Fowler氏による、UMLの解説本です。非常にコンパクトでありながら実践的で、UML関連の本は色々読みましたけど、これ以上のものはないように思います。

|

« ソフトウエアの設計は協業の基礎を作ること | トップページ | 「文系SE」、「理系SE」 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« ソフトウエアの設計は協業の基礎を作ること | トップページ | 「文系SE」、「理系SE」 »