今日学んだこと:ソフトウェアアーキテクチャの基礎 第1章
2025年9月19日
概要
今日はソフトウェアアーキテクチャの基礎について学んだ。
1章 イントロダクション
ソフトウェアアーキテクチャを定義する4つの側面とは何か
- アーキテクチャと設計の違いを理解し、アーキテクチャを機能させるために、開発チームとどう協働するかわかるということ。
- ある程度の技術的な深さを維持しながらも、他の人には見えないソリューションや可能性を見出せるような広範な技術知識を持つこと。
- さまざまなソリューションと技術の間にあるトレードオフを理解し、分析し、調整できること。
- ビジネスドライバーの重要性を理解し、それがどのようにアーキテクチャの関心事に反映されるかを理解していること
アーキテクチャ決定と設計指針の違いを説明せよ
アーキテクトは、ビジネス要件を分析してアーキテクチャ特性(「イリティ(-ility)」)を抽出・定義し、問題領域に適したアーキテクチャパターンやスタイルを選択し、コンポーネント(システムの構成要素)を作ることに責任を持つ。これらの活動で作成された成果物は、開発チームに引き継がれる。そして、開発チームは、コンポーネントごとのクラス図やユーザーインターフェイスとなる画面を作成し、コードを開発・テストすることに責任を持つ。
ソフトウェアアーキテクトへの8つの期待を挙げよ
- アーキテクチャ決定を下す
- アーキテクチャを継続的に分析する
- 最新のトレンドを把握し続ける
- 決定の順守を徹底する
- 多様なものに触れ、経験している
- 事業ドメインの知識を持っている
- 対人スキルを持っている
- 政治を理解し、かじ取りする
ソフトウェアアーキテクチャの第一法則とは何か
- ソフトウェアアーキテクトにきれいなスペクトルは存在しない。すべての決定は、多くの相反する要素を考慮しなければならない。