アナリシスパターン(英: Analysis patternあるいはSoftware analysis patterns)とは、モデリングの過程でしばしば遭遇する状況を抽象化して捉えたソフトウェア工学における概念モデルである。

アナリシスパターンは"関連を持った一群のステレオタイプ的な属性(データの定義)を持った汎用のオブジェクト(メタクラス)、振る舞い(メソッドのシグネチャ)、ドメインに中立的な方法で定義された期待される相互作用" であると Purao、Storey、Han は述べている 。

概要 マーティン・ファウラーは、パターンを「ある実際上の文脈で有用な考え方であり、おそらく他の文脈でも有用なもの」 と定義している。また、アナリシスパターンについて説明し、これが「実際のソフトウェア上の実装形態ではなく、ビジネスプロセスの概念的な構造である」と述べている。

ファウラーは、このパターンを「ドメインに影響を及ぼす興味深い部分を記憶する」ものだと記述している。

アナリシスパターンの記述 ファウラーは、著書『アナリシスパターン』で、アナリシスパターンを記述する公式な方法について述べていないが、一貫した統一的な書式を行うための提案がなされている。こうした提案の多くは、エーリヒ・ガンマ、フランク・ブッシュマン、クリストファー・アレグザンダーの(アーキテクチャやコンピュータ科学における)パターンについての成果に基づくものである。例えば、Hahslerの提案では、以下のような構造をしている。

名称(Pattern Name): パターンの名称は、何を抽象化しようとしているのかを反映しており、また分析の過程で参照できるよう、簡潔なものでなければならない 目標(Intent): パターンが達成しようとするゴールであり、解こうとしている問題を記述したもの 動機(Motivation): "問題を記述したシナリオと、現実のシナリオでアナリシスパターンがどのように解決に寄与するか" 力学(Forces and context): "アナリシスパターンによって解決すべき力学についての議論" 解決策(Solution): ""「動機」で述べたシナリオにおける解決策の記述と、アナリシスパターンによって得られる強制力のバランス。関連するアナリシスパターンの構造上、振る舞い上の側面を含む" 結果(Consequence): 目標がアナリシスパターンによってどのように解決されるのか、また結果に制約があれば記載する 設計(Design): 設計の実装形態についての提案 実例(Known Uses): パターンが用いられた実例

関連項目 デザインパターン (ソフトウェア) オブジェクト指向分析設計 Problem frames approach 本方法とは別のソフトウェアの要求分析手法 Role class model ロールの概念に適用したアナリシスパターンの実例 要求分析

参考文献

参考書籍 アナリシスパターンのためのパターン言語についてのこの論文は PLoP 2002 (Pattern Languages Of Programs 年次カンファレンス)で示された

外部リンク Patterns and Software: Essential Concepts and Terminology A list of analysis pattern examples by Martin Fowler