ソフトウェア アーキテクチャ説明書では、システムのさまざまな側面を描写する各種のアーキテクチャ ビューを使用して、システムのアーキテクチャの概要を包括的に示します。 
役割:  ソフトウェア アーキテクト 
オプション度 / 使用時期:  主に推敲フェーズの間に作成される
テンプレートとレポート: 
  • ソフトウェア・アーキテクチャー説明書
  • ソフトウェア・アーキテクチャー説明書 (非公式)

  •  
    例:   
    UML の表現:  関連する一連のアーキテクチャ ビュー。ユース ケース ビュー、論理ビュー、プロセス ビュー、配置ビュー、実装ビュー、データ ビューなど
    詳細情報:   
    成果物を入力とする作業:    成果物を出力とする作業:   

    目的 ページの先頭へ

    ソフトウェア アーキテクチャ説明書では、ソフトウェア システムのアーキテクチャの包括的な概要を示します。この説明書は、プロジェクトで行われるアーキテクチャ上重要な決定に関して、ソフトウェア アーキテクトとほかのプロジェクト チームのメンバーの間のコミュニケーション手段として機能します。

    タイミング ページの先頭へ

    ソフトウェア アーキテクチャの表現と目標は通常、最初の反復作業に入る前に定義し、その後はプロジェクト全体を通して保守しなければならないものです。アーキテクチャの表現に関するこれらのガイドラインは、ソフトウェア アーキテクチャ説明書の初期のバージョンで文書化されます。

    ソフトウェア アーキテクチャ説明書は、基本的には推敲フェーズで作成されます。それは、このフェーズの目的の 1 つが、堅固なアーキテクチャの基礎を確立することであるからです。

    ユース ケースは開発の推進力であり、反復を計画するために不可欠の入力情報であるため、この文書内のユース ケース ビューはほかのビューよりも先に検討される傾向があります。並行性と分散の度合いが高いシステムでは、システム全体に重大に影響を及ぼす可能性があるという理由から、プロセス ビューと開発ビューも早期に検討される傾向があります。

    責務 ページの先頭へ

    ソフトウェア アーキテクトは、ソフトウェア アーキテクチャ説明書の作成に責任を持ちます。この説明書では、複数のアーキテクチャ ビューを使用して、設計上の最も重要な決定事項を把握します。

    ソフトウェア アーキテクトは、各アーキテクチャ ビューの全体的な構造 (ビューの分解、要素のグループ化、主なグループ間のインターフェイス) を確立します。したがって、ほかの役割は対照的に、ソフトウェア アーキテクトには深い洞察力よりも広い視野が求められます。

    また、ソフトウェア アーキテクトは、開発プロセス全体を通じてシステムのアーキテクチャの整合性を維持することに責任を持ち、そのために以下のことを行います。

    • 主要なインターフェイスなど、ソフトウェア アーキテクチャ説明書に記述されたアーキテクチャ上重要な要素に対するすべての変更を承認する。
    • 「変更審査会」の一員として、ソフトウェア アーキテクチャに影響する問題を解決するための意志決定に参加する。

    カスタマイズ ページの先頭へ

    ソフトウェア アーキテクチャ説明書の概要を、ソフトウェアの性質に合わせて調整することが推奨されます。

    • 対象のソフトウェアと無関係なアーキテクチャ ビューが存在しているかもしれません。
      • 配置ビューは、単一 CPU のシステムには不要です。
      • プロセス ビューは、システムで制御スレッドを 1 つしか使用しない場合には不要です。
      • データ ビューが必要なのは、オブジェクトの永続性がシステムの重要な側面であると同時に、永続性メカニズムにおいて永続オブジェクトと非永続オブジェクト間のマッピングが必要な場合だけです。
    • ソフトウェアの特定の側面に関して、個別にセクションを設けることが必要になる場合があります。たとえば、データ管理や使いやすさの問題に関連する側面がそれに相当します。
    • 特定の側面について説明するための付録を補わなければならない場合もあります。たとえば、重要な選択について、その理論的根拠や選択しなかった解決方法を説明する必要があるかもしれませんし、頭字語や略語を定義したり、設計上の一般的な原則を提示したりする必要があるかもしれません。
    • セクションの順番は、システムの利害関係者の種類や、各関係者の目的や関心によって入れ替わる場合があります。

    各アーキテクチャ ビューの利点と不利な点は次のとおりです。

    ユース ケース ビュー

    このビューは必須です。

    論理ビュー

    このビューは必須です。

    プロセス ビュー

    オプションのビューです。システムで複数の制御スレッドが使用され、独立したスレッドどうしが相互作用するか、依存し合う場合にのみ使用します。

    配置ビュー

    オプションのビューです。システムが複数のノードに分散される場合にのみ使用します。その場合でも、分散がアーキテクチャ的な意味を持つ場合にのみ配置ビューを使用します。たとえば、1 台のサーバーと多数のクライアントが存在する場合、配置ビューはサーバーとクライアントの責務をノードのクラスとして表現する目的にのみ必要とされます。クライアントのノードの能力が均一である場合、すべてのノードを示す必要はありません。

    実装ビュー

    オプションのビューです。実装が厳密に設計に基づいて行われない場合、たとえば、設計モデルと実装モデルの対応するパッケージ間で、責務の分散形態が異なるような場合にのみ使用します。設計モデルと実装モデルでパッケージ化の内容が同一な場合、このビューは省略できます。

    データ ビュー

    オプションのビューです。永続性がシステムの重要な側面であり、設計モデルからデータ モデルへの変換が永続メカニズムによって自動的に行われない場合にのみ使用します。



    Rational Unified Process   2003.06.15