<プロジェクト名>

ソフトウェア・アーキテクチャー説明書

バージョン <1.0>

[注: Rational Unified Process で使用するため、以下のテンプレートが提供されています。  かぎカッコで囲まれ、青色イタリックで表示されるテキストは (style=InfoBlue)、作成者のためのガイダンスであり、文書を発行する際には削除してください。この形式のテキストの後に続くパラグラフは、自動的に通常のテキストとして設定されます (style=Body Text)。]

 

改訂履歴

日付

バージョン

説明

作成者

<dd/mmm/yy>

<x.x>

<詳細>

<名前>

       
       
       

目次

1. 概論         
1.1 目的     
1.2 範囲     
1.5 概要     

2. アーキテクチャーの表現

3. アーキテクチャーの目標と制約   

 
5.1 概要     

6. プロセス・ビュー

7. 配置ビュー

8.1 概要     

9. データ・ビュー (オプション)       

10.サイズと性能               

11.品質               


ソフトウェア・アーキテクチャー説明書

1.                  概論

[ソフトウェア・アーキテクチャー説明書の「概論」にはソフトウェア・アーキテクチャー説明書全体の概要を記述してください。その中にはソフトウェア・アーキテクチャー説明書の目的、範囲、定義、頭字語、略語、参考資料、概要の記述を含めます。]

1.1               目的
本書では、さまざまなアーキテクチャー・ビューを使用してシステムの各面を示しながら、システムのアーキテクチャーの包括的な概要を説明します。システムに関して行われた重要なアーキテクチャー上の決定を、整理して伝えることを目的としています。

[このセクションでは、プロジェクト全体の資料におけるソフトウェア・アーキテクチャー説明書の目的について説明し、この説明書の構造について簡単に取り上げています。この説明書の特定の読者が記されていて、資料の使用方法についても記述があります。]

1.2               範囲

[ソフトウェア・アーキテクチャー説明書が何に適用されるか、またこの説明書によりどのような作用・影響があるかについての簡単な説明。]

1.3               定義、頭字語、略語

[このサブセクションでは、ソフトウェア・アーキテクチャー説明書を理解するのに必要なすべての用語、頭字語、略語の定義を示します。 プロジェクトの用語集を参考資料として挙げることで、この情報に代えてもかまいません。]

1.4               参考資料

[このセクションでは、ソフトウェア・アーキテクチャー説明書で参照されているすべての資料のリストを提供します。各資料は、題名、レポート番号 (該当する場合)、日付、および発行元によって識別されます。その参考資料がどこで入手できるかを明記してください。 付録または別の資料を参考資料として挙げることで、この情報に代えてもかまいません。]

1.5               概要

[このサブセクションでは、ソフトウェア・アーキテクチャー説明書の残りの部分の内容を述べ、ソフトウェア・アーキテクチャー説明書の構成を説明します。]

2.                  アーキテクチャーの表現

[このセクションでは、現行システムでのソフトウェア・アーキテクチャー、およびその表現方法について取り上げます。「ユース・ケース・ビュー」、「論理ビュー」、「プロセス・ビュー」、「配置ビュー」、「実装ビュー」を必要に応じて利用し、各ビューに含まれるモデル要素についても解説します。]

3.                  アーキテクチャーの目標と制約

[ここにはアーキテクチャーに重大な影響を与えるソフトウェアへの要求と目標を記述します。たとえば、安全性、セキュリティー、プライバシー、市販製品の利用、移植性、分散性、再利用などの項目が含まれます。設計と実装の戦略、開発ツール、チームの構成、スケジュール、既存コードなどのシステムの特別な制約もここに記載します。]

4.                  ユース・ケース・ビュー

[ここにはユース・ケース・モデルのうちアーキテクチャー的に重要なユース・ケースやシナリオを記述します。ここで取り上げるユース・ケースやシナリオとしては、最終システムの中核機能を表すもの、アーキテクチャーの構成要素を横断的に網羅するもの、アーキテクチャーの脆弱な部分を強調するかうまく描写するものが挙げられます。]

5.                  論理ビュー

[ここでは設計モデルの中でアーキテクチャー的に重要な箇所を説明します。たとえば、アーキテクチャーをどのようにサブシステムやパッケージへ具体化するか説明します。主要なパッケージについては、さらにクラスとクラス・ユーティリティーにまで具体化して説明します。アーキテクチャー的に重要なクラスとそれらの責務をここで紹介し、特に重要な関係、操作、属性についてもここで説明します。]

5.1               概要

[ここでは、パッケージの階層とレイヤーの観点から、設計モデルの全体的な構成を記述します。]

5.2               アーキテクチャー上重要な設計パッケージ

[ここでは、主要な各パッケージについて、その名前、簡潔な説明、そこに含まれる主なクラスとパッケージすべてを示したダイアグラムについて説明します。

パッケージ内の重要な各クラスの名前と簡単な説明を記します。また、各クラスの主要な責務、操作、属性について、説明することがあれば記述します。]

5.3               ユース・ケースの実現

[ここでは、ソフトウェアの仕組みを説明します。そのために、ユース・ケース (またはシナリオ) の実現をいくつか選択して、その機能にさまざまな設計モデル要素がどのように貢献するかを説明します。]

6.                  プロセス・ビュー

[ここではシステム全体を、(単独のスレッドとして制御される) 軽量級のプロセス多数と、(それらをグループとしてまとめた) 重量級のプロセスという構成として説明します。互いに通信したり相互作用するプロセス同士は同じグループにまとめて説明します。プロセス間の主要な通信方法 (メッセージ・パッシング、割り込み、ランデブーなど) についてもここで解説します。]

7.                  配置ビュー

[ここでは、ソフトウェアが配置されて実行される、1 つ以上の物理的なネットワーク (ハードウェア) の構成について記述します。このビューは配置モデルに対応します。構成に関する最小限の説明として、ソフトウェアを実行する物理的なノード (コンピューター本体、CPU) とその相互接続 (バス、LAN、ポイントツーポイントなど) についてここで説明する必要があります。また、プロセス・ビューからのプロセスの物理ノードへの割り当てについてもここに記述します。]

8.                  実装ビュー

[ここでは実装モデルの全体構造と、ソフトウェアの実装モデルにおけるレイヤーとサブシステムへの分解、アーキテクチャー上重要な実装要素について説明します。]

8.1               概要

[ここでは、各種のレイヤーとその内容、所定のレイヤーに何を含めるかを規定するルール、レイヤー間の境界を取り上げてそれについて定義します。レイヤー間の関係を示すコンポーネント図もここで説明します。]

8.2               レイヤー

[ここには、各レイヤーの名前とそこに含まれるサブシステムの列挙、コンポーネント図を記述します。]

9.                  データ・ビュー (オプション)

[このシステムで使用する永続データ記憶領域に関する説明をここに記述します。永続データをほとんどまたは一切使用しない場合や、デザイン・モデルからデータ・モデルへの変換が解説不要なほどシンプルな場合はこの項は省略してかまいません。]

10.             サイズと性能

[ここでは、アーキテクチャーに影響を与えるソフトウェアのサイズの主な特徴と、ターゲット性能に関する制約事項について説明します。]

11.             品質

[ここでは、ソフトウェア・アーキテクチャーが、拡張性、信頼性、移植性など、システムが持つ (機能以外の) 全性能にどれだけ貢献するかについて説明します。この点に関して特筆すべき事項、たとえば安全性、セキュリティー、プライバシーなどに関する補足説明があれば、ここに記述してください。]