ObjectSquare [1999 年 7 月号]

[Happy Squeaking!!]


5. デザインパターンとは

5.1  パターン誕生まで


デザインパターンは、もともと、フレームワークの作成過程の中で、なるべくソフトウェアを再利用性が高く、効率も良く、また柔軟なものとしたいという開発者の要求から、自然発生的に生じてきたものです。
実装としてのフレームワークは、特定の言語によるクラス定義とその関連から構成されています。これを楽曲にたとえると、その中には、その全体としての効果を高めるため、繰り返し特定のフレーズが現れて出ているのです。
80年代の後半ごろから、このフレーズ(パターン)をうまく取り出して、整理することで、後のフレームワーク作りの構築要素として役立てることができるのではと設計者は徐々に気づき始めました。
そして1987年、OOPSLAというオブジェクト指向に関するカンファレンスで、記念碑的な論文が発表されます。Kent Beck、Ward Cunninghamの二人による、"Using Pattern Languages for Object-Oriented Programs"です。
この論文は、建築家である、Christopher Alexanderが、クライアントの要求にかなった建築を作り出すために抽出した「パターン」の考えをソフトウェアにも応用できるのではと示唆したものでした。

Christopher Alexanderは、建築はそこに実際に住む人の要求を満たした形で作られなければならないとしています。しかし、実際の作業を行っていくためには、建築に対する詳細かつ専門的な知識が必要になり、そのままでは単に理想を述べただけのものとなってしまいます。そこでAlexanderが提唱したのは、「パターン」の考えでした。建築の過程で生じてくる様々なトレードオフや問題、そしてそれに対する典型的な解決の方法を、誰もがわかりやすいパターンとし、カタログ化して示すことにより、設計者が自由にパターンを選択して、より要求にかなった建築の手がかりとしていくという方式を提唱したのです。

ソフトウェアも、要求をかなえるための成果物を構築しなければならないという点において、建築の世界と非常に似た部分があります。
開発の際にありがちな問題に何度も遭遇している設計者がいて、その問題は大抵の場合、同じような対処方法で解決されていたのです。しかし、そうした解決策は一部のスキルのある技術者の頭の中にノウハウとして貯えられているのみで、きちんとドキュメント化されることはありませんでした。
そこでSmalltalkのMVCフレームワーク上でGUIアプリケーション開発を続けてきた、Kent BeckとWard Cunninghamは、GUIの構築について幾つかの「パターン」をカタログ化して提示することで、MVCの複雑な全貌を理解しなくとも、一定の基準を維持したアプリケーションを作成できるのではと主張したのでした。

フレームワークについて全ての知識がなくとも、特定パターンに準拠することで不慣れな技術者でも正しい方向に導いていくことができます。フレームワークを正しく発展させるための構築要素として、まずパターンは産声をあげたのです。

オブジェクト指向の再利用というと、とかく「クラスライブラリの再利用」といった"what"に関する再利用性ばかりがクローズアップされてしまう傾向がありました。しかしデザインパターンは、今まできちんと形あるものとして示されなかった「whatを生み出すためのknow-how」("how")の再利用について焦点をあてたところが画期的だったのです。


© 1999-2001 OGIS-RI Co., Ltd.

Prev.

Index

Next