デザインテクノロジーの最前線 - 桐山孝司

m.c.t.ホーム > エクスペリエンスマガジン > デザインテクノロジーの最前線 - 桐山孝司 > ソフトウエアに引き継がれるパターン・ランゲージ

2007.03.16ソフトウエアに引き継がれるパターン・ランゲージ

ユーザ・インタフェースの文脈でデザイン・パターンの話題が出ることが最近何度かあった。デザイン・パターンとは、有用性が認められた型を集めてデザインの手引きにしようとするものである。ここで有用性があるかどうかは状況によるし証明できるような性質のものでもないが、一般的な意味でさまざまなデザインのバリエーションが試される中で時間とともに淘汰されて生き残ったものと考えればよいであろう。

パターンという考え方はもともと建築から来たものであるが、ここ10年ほどはむしろソフトウエア工学で頻繁に言及されるようになった。そのきっかけは、エリック・ガンマらの「オブジェクト指向における再利用のためのデザインパターン」が1995年に出版されたことである。原題であるDesign Patterns Elements of Reusable Object-Oriented Softwareが示しているように、この本はオブジェクトを再利用可能にしてソフトウエアの開発効率を上げるためにパターンの考え方を援用した。

具体的には、たとえば大きな変更なくアプリケーションを追加できるようにするプラガブルの構造や、クラス階層に拘束されずに属性やメソッドを追加できるプロトタイプの手法など、当時すでにオブジェクト指向言語のコミュニティーに定着していた手法がパターンとして集められた。それにしたがってオブジェクトを作れば目的が明確なので、後で誰がプログラムを読んでも再利用できるというわけである。その後、こうするべきというパターンでなく、こうしてはいけないというアンチパターンなどもさらに話題に加わり、ソフトウエアにおいてパターンという言葉は確実に定着していった。

ソフトウエアのデザイン・パターンが広まった背景には、オブジェクト指向言語という強力な基盤があったことが大きい。オブジェクト指向は、複雑な処理を人間が理解しやすい概念モデルで整理して、動くプログラムとして作りこむ上で、もはや不可欠といってもよい存在である。その上に立って、どう現実に必要とされる処理を概念化するかというところにデザイン・パターンが必要とされたのである。

ところがユーザ・インタフェースでは、まだユーザとシステムとのインタラクションを概念レベルでモデル化して適切なインタフェースに落とし込むための基盤がない。そのため有用なインタラクションのパターンを集めて活用しようとすると、どうしても表面的なカタログになってしまう。最近邦訳されたティドウェル著「デザイニング・インタフェース」もインタラクションのパターンを集めたものであるが、まだ表面的なカタログ化の域にとどまっていて、インタラクションについての洞察という域には達しないようである。

建築の世界で良く知られているように、デザイン・パターンは、建築家のクリストファー・アレグザンダーらが1970年代に開拓したパターン・ランゲージに由来している。ただアレグザンダーらが当初から意図したのは、単に建築のパターンをカタログ化するだけではなく、パターンを組み合わせることで自律的に空間を作り出す言語を作ることであった。しかしこの言語は非常に難しい課題であった。後にアレグザンダー自身がパターン・ランゲージは不十分だとして、それよりさらに深いレベルにある、生き生きとした空間デザインを展開していくための中心(センター)という概念を提示している。それでもまだ、センターが具体的に何なのかが広く理解されるには至っていない。

一方、建築の世界ではあまり知られていないが、アレグザンダーは1996年にオブジェクト指向プログラミングの国際学会であるOOPSLAでキーノートスピーチをしている。彼はその中で「この講演を依頼されたときにはソフトウエア工学とパターン・ランゲージがどう関係するのかまったく知らなかった。しかし数ヶ月間考えるうちにあることに思い至った」といっている。それは、人間の住みやすい環境が自律的に広がっていくためのしくみ作りは建築家だけではとても手に負えないが、ソフトウエアによってずっと大きなレベルで可能になるのではないか、という問いかけであった。

ユーザ・インタフェースのデザインを含めて、ソフトウエアにおいて既知の要素をパターン化する努力を続ける必要のあることは当然である。それだけでなく、より使いやすいユーザ・インタフェースが自律的に広まっていく方法を提示していくことが、これからさらに人間活動のさまざまな側面に関わってくるソフトウエアの開発にとって重要な課題になるであろう。

  デザイニングインタフェース デザインパターン

Jenifer Tidwell:デザイニング・インターフェース、パターンによる実践的インタラクションデザイン、オライリー・ジャパン、(2007)

Erich Gamma, Ralph Johnson, Richard Helm, John Vlissides: オブジェクト指向における再利用のためのデザインパターン、ソフトバンク・クリエイティブ、(1999)

patterns-plone

ウェブで定着したデザイン・パターンには、例えば階層的な選択、現在の階層を示すブレッドクラム、別のセクションに直接移動するタブ、検索入力などがある。Ploneなどのコンテンツ管理システムは、それらのパターンを組み合わせてサイトを構築できるようになっている。