ウィンターワークショップ2007・イン・那覇 討論報告:アーキテクチャとパターン

鷲崎 弘宜(国立情報学研究所)

羽生田 栄一(豆蔵)

情報処理学会ソフトウェア工学研究会パターンワーキンググループ

 


1.        目的と経緯

本セッションでは,ソフトウェア開発において密接に関係するアーキテクチャ技術とソフトウェアパターン技術それぞれの特性や課題,および,両者間や周辺技術との関係について議論した.参加者は,羽生田栄一(豆蔵),鷲崎弘宜(国立情報学研究所)の両名を討論リーダとして,下滝亜里(南山大),鹿糠秀行(日立製作所),久保淳人(早稲田大),中山弘之(早稲田大),深澤良彰(早稲田大),田中裕一(東京工業大),廣瀬康行(琉球大),河野真治(琉球大)の全10名であった.

ソフトウェア工学研究会パターンワーキンググループは,これまでウィンターワークショップに毎年パターンセッションを設置し,継続的にパターンおよびパターン技術の本質を明らかにしてきた.しかし,周辺領域との関係について議論し尽くされていなかった.特に,パターンがソフトウェアの構造上の決定指針を与えることを考えるとき,機能/非機能要求と構造設計の関係を扱うアーキテクチャ領域との関係について,さらなる議論が必要である.

そこで本セッションでは,参加者のポジションペーパ発表を起点として各技術に関連する経験や提案を概観し,続いて,アーキテクチャとパターンそれぞれの課題や展望,関係や周辺技術について幅広く議論した.

2.        議論成果

(1)   要素技術とトピックマップ

各参加者のポジションペーパ発表と議論によって両技術における種々の要素技術への理解を深め,その特性を明らかとした.概要を以下に示す.

(1-1) 設計におけるパターン

l          ソフトウェア進化の指針としてのデザイン進化オペレータ(下滝): 安全な進化の仕組みを詳細に明らかにするうえでデザインパターンやリファクタリングよりも細粒度な操作単位および周辺との関連モデルが必要なことを明らかにした.

l          ソフトウェアパターン適用における逸脱パターンについて(鹿糠): パターンの背景には,パターンの典型的な誤適用と回避策としての逸脱パターンが潜み,その顕在化が学習と適切な適用を促すことを明らかとした.

(1-2) パターンの広がりと応用

l          観と場と(医療における類似ノウハウ)(廣瀬): 病院情報システムの基本的なアーキテクチャの特性,および,医療におけるパターンに似た類似ノウハウの可能性を明らかとした.

l          文書類似度によるパターン間関連分析(久保): 文書間類似度の算出によりパターン間の連続適用といった関連を抽出できることを明らかとした.

l          パターン間の関係による重要度(中山): パターン間の参照関係から各パターンの重要度を算出し検索に役立てることが学習等に有効なことを明らかとした.

(1-3) アーキテクチャ設計の具体的技術

l          Continuous C によるリファクタリング(河野): 継続の仕組みを持つCの下位言語プログラムが状態遷移設計に有効なこと,および,リファクタリングの可能性を明らかにした.

l          一級継続にもとづく動的更新可能なWeb アプリケーションのアーキテクチャ(田中): 継続の仕組みにより状態遷移を保存することで停止させずに変更可能なWebアプリケーションアーキテクチャを提案し,その有効性を明らかにした.

 

(2)   アーキテクチャとパターンの融合

上述の各要素技術および周辺技術の関係を整理し,ソフトウェア開発におけるアーキテクチャとパターンの関係を詳細に整理し,図1のようにまとめた.

特に,アーキテクチャ設計に注目した場合に、アーキテクチャとパターンの関係の1つの見方として、パターンがコンテキスト(機能要求および非機能要求を含むものと位置づけた)と実現手段を結びつけるものであり,かつ,プロセスであると位置づけ可能なことを整理した。さらに、上述の要素技術を出発点として、各部分の内部構造を検討し明らかとした.

 

3.        課題と展望

以上の議論を通じて,主にソフトウェアの設計におけるアーキテクチャとパターンの関係を捉えることに成功した.一方で,関係および個々の詳細をより明らかにするためには,下記の課題への継続的取り組みが不可欠であるという気づきを得た.

 

l          「粒度」「階」を意識した関係整理: ソフトウェアの設計活動や利用知識・手段には階層・粒度があり,グラウンド(0階)の把握が重要である.さらに,階をまたぐ繋がりが確実にあり,その発見に向けた努力が必要である.パターンマップとしてのノウハウ間関連の可視化はその1つの手段として有効である.また,粒度を定めることが,パターン/パターン間関係の発見と整理に繋がる.



1: 開発におけるアーキテクチャ設計とパターン


 

l          対として存在する逸脱パターンの顕在化: 医療ドメインにおける同種概念の存在より,逸脱パターンの必然性の裏づけを得た.失敗の疑似体験をもたらす逸脱パターンの教育効果は大きく,今後,種々のパターンについて顕在化が求められる.

l          アーキテクチャ・パターンにおける概念/用語の厳密化: これらの領域における概念や用語には曖昧なものが多く,精密な議論と関係整理の妨げの一員となっている.例えばフォース,制約,コンテキスト等の概念は,その定義について曖昧な部分がある.

成果の全ては[4]において公開している.今後は,これらの課題について,パターンWG内外における議論と実践を通じて,開発・組織活動におけるアーキテクチャおよびパターンの活用と支援技術の発展を目指す.

参考文献

[1]       松下誠 他: ウィンターワークショップ・イン・石垣島参加報告, 情処研報, 2004-SE-145, 2004.

[2]       柴合治 : ウィンターワークショップ2005・イン・伊豆参加報告,情処研報, 2005-SE-148, 2005.

[3]       満田成紀 : ウィンターワークショップ2006・イン・鴨川参加報告, 情処研報, 2006-SE-152, 2006

[4]       http://patterns-wg.fuka.info.waseda.ac.jp/