ソフトウェアデザイン

Takami Torao
  • このエントリーをはてなブックマークに追加

アーキテクチャ特性

[1] ではソフトウェアアーキテクチャを次の 4 つの組み合わせで構成されるものとしている。

  1. 構造: そのシステムを実装するアーキテクチャスタイルの種類 (マイクロサービスやレイヤード、マイクロカーネルなど)。しかし単に構造について語っただけではシステムのアーキテクチャを十分に説明できていない。

  2. アーキテクチャ特性: システムがサポートしなければならない成功基準。ここでアーキテクチャ特性はシステムの機能に依存しないことに注意。

    可用性
    信頼性
    テスト容易性
    スケーラビリティ
    セキュリティ
    アジリティ
    耐障害性
    弾力性
    回復性
    パフォーマンス
    デプロイ容易性
    学習容易性
  3. アーキテクチャ決定: ソフトウェアをどう構築すべきかのルール。システムの成約を作り、何が許されて何が許されないかに関する開発チームの指針となる。アーキテクチャ決定を適用できない一部のケースでは委員会やチーフアーキテクトなどの特例によって破ることができる。

  4. 設計指針: 開発者に対するガイドライン。サービス間のすべての条件、選択肢を網羅するアーキテクチャ決定 (ルール) を定めることは不可能であるため、設計指針として望ましいアプローチに関するガイドを提供する。

アーキテクト

アーキテクチャ決定を下す、アーキテクチャの継続的な分析、最新のトレンドを把握し続ける、決定の遵守を徹底する、多様なものに触れ経験する、事業ドメインの知識を持っている、対人スキルを持っている、政治を利用し舵取りをする。

参考文献

  1. RICHARDS, Mark; FORD, Neal. ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ. O'Reilly Media, 2020.