ビューポイントとビュー

アーキテクチャ設計における観点では「ビューポイント」と「ビュー」という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では、ビューポイントやビューを含む、アーキテクチャに関する概念の関連も定義されている。

f:id:GOLEM-XIV:20110305234217p:image

この図から、

  • アーキテクチャ記述(Architecture Description)は1つ以上のビュー(View)から構成される
  • ビューは1つ以上のモデル(Model)を含む
  • アーキテクチャ記述では、1以上のビューポイント(View Point)が選択される
  • ビューポイントは、ビューを裏付ける

というような関連があることが分かる。

自分なりに解釈すると

自分なりの言葉で解釈すると、こんな感じだろうか。

ビューポイント
システムのアーキテクチャに対する観点。例えば、機能的な観点、配置的な観点、データの観点など。観点の定義のみならず、その観点からシステムを見たときに、どのようにモデリングすればよいかというメソドロジー(手法)も提供する。
ビュー
選択されたビューポイントで提供されるメソドロジーに基づき、アーキテクチャをモデリングした成果物(モデル)。クラス図、コンポーネント図など、複数のモデルからなる。

そして、ビューポイントとビューを使用してアーキテクチャを設計する際の流れは、こんな感じ。

  1. アーキテクチャをどのように見たらよいかという観点を選択する。観点の選び方は、そのシステムの特徴や、ステークホルダーに依存する。また、観点は、既存のビューポイント・カタログから選ぶのが効率的。例えば、「今回のアーキテクチャ設計では、機能的な観点と、配置的な観点を使用しよう」となる。*1
  2. 選択した観点に対し、実際のモデリングを行っていく。ビューポイントで提供される手法に従い、コンポーネント図やクラス図、論理データモデルなどを作成する。例えば、機能的な観点のモデリングでは、コンポーネント関連図、コンポーネントの相互作用図、コンポーネントのインターフェース定義、論理データモデルを作成する、など。

*1:ただ、個人的には、ビューポイントの選択に対し、プロジェクトごとに大きくぶれる事はないと考えている。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です