LoginSignup
59
57

More than 5 years have passed since last update.

『ソフトウェアシステムアーキテクチャ構築の原理(第2版)』読んだ

Last updated at Posted at 2014-11-18

『ソフトウェアシステムアーキテクチャ構築の原理(第2版)』を読んだので、メモとして内容の一部を紹介します。

image

原書、著者など

  • Software Systems Architecture (2nd Edition)
  • 著者 Nick Rozansky, Eoin Woods
  • 監訳 榊原さん

何が書いてある?

「ソフトウェアシステムのアーキテクチャとは?」という深淵な課題について書いています。アーキテクチャ、システムとその関連概念群を定義しようという取り組みは古く、

これが、元となり、

となるのですが、この本は、上記の中で現れてきた概念である「ビュー」に加えて新しく、「パースペクティブ」を加えてカタログ化したものです。

すごくざっくり言うと、よく、

「非機能要件がシステムのアーキテクチャに影響を与える」

と言いますよね?本書は、この言説を徹底的に解説したものです。(非機能要件に限らず、横断的な視点を「パースペクティブ」として捉えている)

アーキテクチャは判断の連続であり(帯には、"Architecture is Decisions"とある)、その判断の原理を体系化(Systemize)しよう、ということです。

アーキテクチャとは何かを少しだけ形式的に

アーキテクチャの話をする時に核となる概念群

image

UML で描くとこう読める。

  • 「システム」「アーキテクチャ」を持つ。(真ん中の段)
  • 「アーキテクチャ」は、「アーキテクチャ要素」「要素間関係」からなる。(上の段)
  • 「システム」は複数の「ステークホルダー」のニーズに対応する。(右下)
  • 「アーキテクチャ」「アキーテクチャ記述」によって文書化される(かもしれない)。(左下)
  • 「アキーテクチャ記述」「ステークホルダー」のために文書化される。(下の段)

しかし、実際にアーキテクチャを記述しようとすると、1つの文書ではとっても複雑で巨大な説明になってしまいます。そこで、「ステークホルダー」「関心事」毎に分割する必要が出てくる。ここに「ビュー」「ビューポイント」を導入してみよう。

「ビュー」と「ビューポイント」

image

  • 「ビュー」「ビューポイント」に従う。
  • 「ビューポイント」は1つ以上の「関心事」をカバーする。

ここで、ビューとは、Krushten であれば、論理/プロセス/物理/開発の4のビューとなります。これらはカタログ化され、本書では

  • コンテクスト
  • 機能的
  • 情報
  • 並行性
  • 開発
  • 配置
  • 運用

とグルーピングされています。

パースペクティブ

さて、本書の白眉は「アーキテクチャパースペクティブ」です。これを入れた概念図は、このようになります。

image

「パースペクティブ」は、従来の言葉で近いものとして「非機能要求」「横断的関心事」がある。本書ではこの「ビューポイント」と「パースペクティブ」のカタログを作っています。

  • セキュリティ
  • パフォーマンスとスケーラビリティ
  • 可用性とレジリエンス
  • 発展性
  • アクセシビリティ
  • 開発リソース
  • 国際化
  • 配置場所
  • 規則
  • 使用性

そして、本書の後半のほとんどをこのカタログの記述に当てています!

まとめのマインドマップ(メモ)

Architecture.png

参考

メモ(本書の間違いかぼくの考え違いか分からない点)

特にUMLでかかれたコンセプトクラス図で気になった点。

  • 日本語版の図、「アーキテクチャ」から「アーキテクチャ要素」へ向かう関連の多重度を1..nとして追加した。(多分、「アーキテクチャ」から「要素間関連」へ向かう関連の多重度と位置がずれたのだと思っている。ちなみに原著も日本語版と同じ。)
  • 図の中のUMLの関連は、Navigabiity で記述されているが関連の方向で示した。
  • 多重度の1は常に省略されている、と解釈している。
  • 「ビュー」と「ビューポイント」の関連の関連端の多重度は、ISO/IEC42010では、しっかり 1:1 なのに、ここでは、違っている。どうしてだろう。。。

もし榊原さん真相ご存知なら、教えてください。

59
57
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
57