アーキテクチャ設計における観点では「ビューポイント」と「ビュー」という2つの用語を少し混乱ぎみに使用してしまっていたので、改めて定義を確認してみた。
IEEE1471での定義
ISO-Architecture.orgでは、ビューポイントとビューについて、以下のように定義している。
A viewpoint is a way of looking at a system.
A view is what you see when looking from the chosen viewpoint.
ビューポイントとは、システムに対する観点である。
ビューとは、選択したビューポイント(観点)から見えるものである。
うーん、これだけだと何のことやら。同じページに、もう少し詳しい説明がある。
A view is a collection of models representing the architecture of the whole system relative to a set of architectural concerns. Separation of concerns is a useful technique for managing complexity. A view is part of a particular architecture description for a system of interest. For example, a structural view of a system might include a model showing components and their interfaces and a model of their dependencies and inheritance relationships. A performance view might consist of models for resource utilization, timing schedules and cause-effect diagrams. The idea of a view is that it addresses a specific set of concerns about a system using well-defined notations and models.
ビューとは、アーキテクチャ的な関心ごとに対するモデルの集合であり、システム全体のアーキテクチャを表す。関心の分離は、複雑さを扱うために有用な手法である。ビューはシステム的な関心ごとに対する、個々のアーキテクチャ記述である。例えば、システムの構造的なビューは、コンポーネントとそのインターフェースに関するモデルや、それらの依存性、そして継承関係に関するモデルを含むだろう。パフォーマンス・ビューは、リソースの使用量、タイムスケジュール、特性要因図などのモデルからなるであろう。ビューの目的とは、システムのある関心ごとを、しっかり定義された記法とモデルで扱うことである。
A viewpoint captures the conventions for constructing, interpreting and analyzing a particular kind of view. Viewpoint conventions include languages, notations, model types, modelling methods, analysis techniques, design rules or other operations on views.
ビューポイントは、個々の種類のビューを構築し、解釈し、分析するための規約を捉えるためのものである。ビューポイントの規約は言語、記法、モデルの種類、モデリング手法、分析手法、デザイン・ルール、そしてその他のビューに関する操作などを含む。
ちなみに、IEEE1471では、ビューポイントやビューを含む、アーキテクチャに関する概念の関連も定義されている。
この図から、
- アーキテクチャ記述(Architecture Description)は1つ以上のビュー(View)から構成される
- ビューは1つ以上のモデル(Model)を含む
- アーキテクチャ記述では、1以上のビューポイント(View Point)が選択される
- ビューポイントは、ビューを裏付ける
というような関連があることが分かる。
自分なりに解釈すると
自分なりの言葉で解釈すると、こんな感じだろうか。
- ビューポイント
- システムのアーキテクチャに対する観点。例えば、機能的な観点、配置的な観点、データの観点など。観点の定義のみならず、その観点からシステムを見たときに、どのようにモデリングすればよいかというメソドロジー(手法)も提供する。
- ビュー
- 選択されたビューポイントで提供されるメソドロジーに基づき、アーキテクチャをモデリングした成果物(モデル)。クラス図、コンポーネント図など、複数のモデルからなる。
そして、ビューポイントとビューを使用してアーキテクチャを設計する際の流れは、こんな感じ。
- アーキテクチャをどのように見たらよいかという観点を選択する。観点の選び方は、そのシステムの特徴や、ステークホルダーに依存する。また、観点は、既存のビューポイント・カタログから選ぶのが効率的。例えば、「今回のアーキテクチャ設計では、機能的な観点と、配置的な観点を使用しよう」となる。*1
- 選択した観点に対し、実際のモデリングを行っていく。ビューポイントで提供される手法に従い、コンポーネント図やクラス図、論理データモデルなどを作成する。例えば、機能的な観点のモデリングでは、コンポーネント関連図、コンポーネントの相互作用図、コンポーネントのインターフェース定義、論理データモデルを作成する、など。
*1:ただ、個人的には、ビューポイントの選択に対し、プロジェクトごとに大きくぶれる事はないと考えている。