ソフトウェアアーキテクチャドキュメント

ソフトウェアアーキテクチャドキュメント / Paul Clements、Len Bass、James Ivers、Felix Bachmann、David Garlan
いい本なんだけど、翻訳がいまいち。前半はこなれてないと感じる程度だが、中盤以降は日本語が理解できない。

アーキテクチャと設計(5)

アーキテクチャは設計であるが、すべての設計がアーキテクチャといわけではない。つまり、設計事項のうち重要だと判断されたものがアーキテクチャであり、それ以外の設計事項はアプリケーション設計者に委ねられる。では、なぜ重要だと判断しなかったのか。それは、アーキテクチャ全体に対して、その設計要素が重要な意味をもたないと考えたからだ。

ビュー(14)

アーキテクチャは複数のビュー(視点、あるいは側面と言い換えてもいいかもしれない)によって表現される。アーキテクチャを表現するためにどのビューを使うかは、アーキテクチャ上の重要な目標に依存する。つまり、特定のビュー、またはビューの集合が他のものに対して、絶対的に重要だということではない。

アーキテクチャビュー(17)

KruchtenによるRUPの4+1ビュー
  • 論理ビュー(logical view)
  • プロセスビュー(process view)
  • 開発ビュー(development view)
  • 物理ビュー(physical view)
  • ユースケースビュー(use case view)
Soni、Nord、Hofmeisterらによるシーメンスの四つのビュー(Siemens Four View)
  • 概念ビュー(conceptual view、主要な設計要素とそれらの関係)
  • モジュール相互接続ビュー(module interconnection view、直交する二つの構造の包含?)
  • 実行ビュー(execution view、動的構造)
  • コードビュー(code view、開発環境)
Herzum、SimsらによるBusiness Component Factoryの四つの重要なアーキテクチャ

ビュータイプ(19)

  • モジュールビュータイプ(モジュールの構造)
  • コンポーネントコネクタビュータイプ(実行時の要素の関係)
  • 割り付けビュータイプ(ソフトウェアと開発、実行環境の関係)

健全な設計書作成のための七つのルール(26)

  • 読み手の視点で書く
  • 繰り返しを避ける
  • あいまいさを排除する(言語上のあいまいさ、表記法について説明のない図)
  • 標準的な構成を使用する(参照しやすい構造、TBDも書く)
  • 根拠を記述する
  • 適切な頻度でドキュメントを更新する(常に最新である必要はない)
  • 目的に一致しているかどうかレビューする。

モジュールビュータイプのスタイル(38)

  • 分解スタイル(decompotision style)
  • 利用スタイル(uses style)
  • 汎化スタイル(generalization style)
  • レイヤースタイル(layerd style)

コンポーネント-コネクタビュータイプのスタイル(39)

  • パイプ-フィルタスタイル(pipe-and-filter style)
  • 共有データスタイル(shared-data style)
  • 発行-購読スタイル(publish-subscribe style)
  • クライアント-サーバスタイル(client-server style)
  • ピアツーピアスタイル(peer-to-peer style)
  • 通信プロセススタイル(communicating-process style)

割り付けビューのスタイル(41)

  • 配置スタイル(deployment style)
  • 実装スタイル(implementation style)
  • 作業割り付けスタイル(work assignment style)