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

鷲崎 弘宜(早稲田大学)

羽生田 栄一(豆蔵)

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

 


1.        目的と経緯

本セッションでは,ソフトウェア開発において密接に関係する機能要求・非機能要求およびアーキテクチャ技術とソフトウェアパターン技術それぞれの特性や課題,および,両者間や周辺技術との関係について議論した.参加者は,羽生田栄一(豆蔵),鷲崎弘宜(国立情報学研究所)の両名を討論リーダとして,下滝亜里(南山大),鹿糠秀行(日立製作所),久保淳人(早稲田大)の5名であった.

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

そこで本セッションでは,参加者のポジションペーパ発表を起点として各技術に関連する経験や提案を概観し,続いて,アーキテクチャ進化とパターンの課題や展望,関係について幅広く議論するとともに,具体的なアーキテクチャ進化のメタモデル記述実験および説明・プレゼンパターンのパターンランゲージ化実験を行い,各自の個別発表の統合を試みた.

2.        議論成果

(1)   個別発表とトピックマップ

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

(1-1) アーキテクチャ進化におけるパターン

l          ソフトウェア進化のメタモデル階層の提案(下滝): ソフトウェア進化の様子を記述するためのメタモデリング言語を提案し,定義した言語を用いた進化過程の記述例を示した.

l          粗粒度コンポーネント分割のための依存関係について(鹿糠): 一度コンポーネントに分割してもその後の拡張保守プロセスの中で改善が必要となることが多い.どのような状況下で分割改善が必要になるかをパターン化し,各コンポーネント間の依存関係に着目してコンポーネント体系の進化を促す手法を提案した.

(1-2) パターンの分析と分類

l          オブジェクト指向モデルに基づくソフトウェアパターン・メトリクス(鷲崎): ソフトウェアパターン自体の構造をオブジェクト指向モデルとして概念化することにより,パターンの構造的な特徴をメトリクスとして表示し分析や分類,検索に応用する可能性を明らかとした.

l          クラスタリングを用いたソフトウェアパターン分類支援手法(久保): パターン記述に対しクラスタリング手法を用いて分類することで多数のパターンの集団のある程度妥当な分類が可能であることを明らかとした.

 (1-3) 人間の思考プロセスへのパターン適用

l          4+1 ビューで表現する:起承転結プレゼンパターンの可能性(羽生田): 効果的なプレゼンテーションのプロセスを人間の思考パターンと併せて考察し,4+1ビューというソフトウェア設計と概念構造の類似性にもとづくパターンランゲージを提案した.

(2)   アーキテクチャ進化および思考プロセスのパターンの融合

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

特に,アーキテクチャ進化に注目した場合に、アーキテクチャとパターンの関係の1つの見方として、パターンやその適用であるリファクタリングが進化の基本単位として理解でき,それを設計上の意思決定やアーキテクチャ要求と結びつけるものであることが整理できた。さらに、システムや要求の複雑を分割しマルチビューでドキュメント化することの重要性も明らかとなった.

また一方で,そのようなドキュメントの品質を議論するのに,メタモデルやパターンカタログの概念分類がメトリクスとして利用できる可能性が浮かび上がってきた.

 

3.        課題と展望

以上の議論を通じて,主にソフトウェアの設計とその進化プロセスにおけるパターンの関係に関する理解を深化させることができた.また,複雑さを管理する手法というメタレベルの観点では,設計対象を分割しアーキテクチャを構造化するプロセスと,思考を複数の関心事に対応するビューに分割して展開していくプロセスとの構造の類似性にも気づき,アーキテクチャをマルチビューで管理することの必然性にも思い至ったのは収穫であった.一方で,アーキテクチャ進化の具体的な事例とその記述には,さらに実践的なケースを踏まえた継続的取り組みが不可欠である.また思考プロセスとの概念的共通性に関してもパターンランゲージの観点からさらに普遍的な分析整理が不可欠である.そこで,ワークショップ2日目午前を利用して,以下のような2つの実験的タスクを実施した.

l          鹿糠のコンポーネント体系の進化の各事例を下滝のソフトウェア進化メタモデル要素の組み合わせで実際に表現できるかを記述実験してみた.結果として,いちおう表現できることが確認できたのは成果であった.一方,(1)メタモデル要素の追加の必要性とそのため適切な進化のさせ方(変更操作の適用)の候補は複数ある,(2) 変更対象と手変更操作との関係が分からないとどう進化させるかの指針にならない,という課題も明らかになった.

l          羽生田提案の効果的なプレゼンテーションのための4+1ビューモデルをパタンランゲージとして整備体系化する簡易な記述ワークショップを,パターン群のクラスタリング提案を行った久保と実施した.結果として,「起承転結プレゼンパターンランゲージ」を構成することに成功した.ビュー関係のパターンとプロセス関係のパターンを切り離し,それらを効果的にむすびつける構造が取り出せたのは成果である.一方,他のプレゼンプロセスも当然あるはずだが対応していない,プレゼン要素とその関係のより一般的な概念構造については今後の課題である.

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

参考文献

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

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

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

[4]       松塚貴英 : ウィンターワークショップ2007・イン・那覇参加報告, 情処研報, 2007-SE-156, 2007

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

 

 



1: 開発におけるアーキテクチャ,パターンと思考プロセスのマップ