パターン
パターンとは
ソフトウェア開発で、「この設計は前にも使った」とか「ここはこう実装すればうまくいく」といった経験則をもっている方は多いと思います。そのような、熟練した開発者が持っている経験則を明示的に記述し、共有し、再利用するための仕組みのひとつがソフトウェアパターンです。分析・設計・実装・開発組織等に関してパターンが存在します。
特に有名なのは、Gammaら(通称Gang of Four (GoF))による「デザインパターン」で、オブジェクト指向を学んだ方であれば聞き覚えがあると思います。GoFのデザインパターンは、オブジェクト指向設計において著者らが繰り返し直面した課題や制約条件(しばしば「フォース」と呼ばれる)、その課題について彼らが繰り返し用いた解法を一般化して記述したものです。パターン利用者は、木構造の表現であればCompositeパターン、通知先が動的に決定する更新通知ならObserverパターンというように、パターンとして記述された先人の知恵に助けられて、自らが直面した問題を解決することができます。
1994年のGoFデザインパターンの発表をきっかけとして、多数のソフトウェアパターンが発表されました。しかし、それら多数のパターンを纏め上げて利用する仕組みは未だ存在せず、ソフトウェアパターン利用の足かせとなっています。深澤研究室パターン班では、ソフトウェアパターンの活用のため、以下のような研究を行っています。
- 自然言語処理を応用したパターン間関連の自動分析
- パターン間参照関係の構造分析によるパターン重要度算出手法
また、修士以上のパターン班メンバーは (社)情報処理学会 ソフトウェア工学研究会パターンワーキンググループに所属し、他の研究者や技術者の皆様と交流を行っています。