【新システムアーキテクチャ】第10章 ソフトウェアアーキテクチャの進化と維持

ソフトテスト~システムアーキテクト知識ポイント抽出~システムアーキテクトチュートリアル(第2版)

  1. 第 1 章 はじめに
  2. 第2章 コンピュータシステムの基礎知識(1)
  3. 第2章 コンピュータシステムの基礎知識(2)
  4. 第3章 情報システムの基礎知識
  5. 第4章 情報セキュリティ技術の基礎知識
  6. 第5章 ソフトウェア工学の基礎知識(1)
  7. 第5章 ソフトウェア工学の基礎知識(要求工学、システム分析・設計)
  8. 第 5 章 - ソフトウェア エンジニアリングの基礎知識 (ソフトウェア テスト、クリーン ルーム ソフトウェア エンジニアリング、コンポーネントベースのソフトウェア エンジニアリング、ソフトウェア プロジェクト管理)
  9. 第6章 - データベース設計の基礎知識(データベースの基本概念、リレーショナルデータベース)
  10. 第 6 章 - データベース設計の基礎 (データベース設計)
  11. 第7章 システムアーキテクチャ設計の基礎知識(アーキテクチャベースのソフトウェア開発手法)
  12. 第7章 システムアーキテクチャ設計の基礎知識(アーキテクチャスタイル、再利用)
  13. 第 8 章 - システム品質属性とアーキテクチャの評価
  14. 第 9 章 - ソフトウェア信頼性の基礎

ソフトウェアアーキテクチャの進化と定義の関係

アーキテクチャの進化の重要性:

  1. ソフトウェア アーキテクチャは、ソフトウェア システムの骨格としてシステム全体をサポートし、ソフトウェア システムが多くの優れた機能を備えていることを保証する重要な要素です。
  2. ソフトウェア アーキテクチャは、ソフトウェアの設計図として、ソフトウェア システム全体の複雑さと変動性を巨視的に制御するための効果的な方法を提供し、ソフトウェア アーキテクチャに基づくソフトウェアの検出と変更のコストは比較的低くなります。

ソフトウェア アーキテクチャの進化により、ソフトウェアの進化の一貫性と正確性がより確実に確保され、ソフトウェアの進化にかかるコストが大幅に削減され、ソフトウェア システムの進化がより便利になります。その理由は次の 3 つです。

  1. システムのソフトウェア アーキテクチャを形式化して視覚的に表現することで、ソフトウェアの構築性が向上し、ソフトウェアの進化が促進されます。
  2. ソフトウェア アーキテクチャ設計計画でカバーされる全体的な構造情報、構成情報、および制約情報は、開発者が将来起こり得る進化の問題、進化の状況、および進化の環境を十分に検討するのに役立ちます。
  3. アーキテクチャ設計時のシステムコンポーネント間の結合の記述は、ソフトウェアシステムの動的な調整に役立ちます。

オブジェクト指向ソフトウェア アーキテクチャの進化プロセス

オブジェクトの進化、メッセージの進化、複合フラグメントの進化、制約の進化

ソフトウェアアーキテクチャの進化方法の分類

典型的な 3 つの分類方法:

  1. ソフトウェアアーキテクチャの実装方法と実装粒度に応じて、プロセスベースと機能ベースの進化、オブジェクト指向の進化、コンポーネントベースの進化、アーキテクチャベースの進化
  2. 研究方法に従って分類されます。最初のカテゴリは進化のサポート、2 番目のカテゴリはバージョンおよびエンジニアリング管理ツール、3 番目のカテゴリはアーキテクチャ変革の正式な手法、4 番目のカテゴリはアーキテクチャ進化の費用対効果分析です。
  3. ソフトウェア アーキテクチャの進化プロセスがシステム ランタイム内にあるかどうかによる: 静的進化と動的進化

ソフトウェア アーキテクチャの進化の時期: 設計時の進化、実行前の進化、制約付きのランタイムの進化、ランタイムの進化

ソフトウェア アーキテクチャ進化の原則

進化コスト管理原則、スケジュール管理可能原則、リスク管理可能原則、本体維持原則、システム全体構造最適化原則、スムーズ進化原則、目標一貫性原則、モジュール独立進化原則、衝撃管理可能原則、複雑性管理可能原則、リファクタリング、再利用に役立つ原則、設計原則の遵守の原則、新しいテクノロジーに適応する原則、環境適応性の原則、標準準拠の原則、高品質の原則、新しいニーズに適応する原則

ソフトウェアアーキテクチャの進化評価手法

進化過程が既知であるかどうかに応じて、評価過程は進化過程が既知である場合の評価と進化過程が未知である場合の評価に分けられます。

大規模Webサイトアーキテクチャの進化の一例

ステージ 1: モノリシック アーキテクチャ
ステージ 2: 垂直アーキテクチャ (アプリケーションとデータの分離)
ステージ 3: キャッシュによって Web サイトのパフォーマンスが向上する ステージ 4
: サービス クラスターを使用して Web サイトの同時処理能力を向上させる
ステージ 5: データベースの読み取りと書き込みの分離
ステージ 6: 逆の使用Web サイトの応答を高速化するプロキシと CDN
ステージ 7: 分散ファイル システムと分散データベース システムの使用
ステージ 8: NoSQL と検索エンジンの使用
ステージ 9: 事業分割
ステージ 10: 分散サービス

ソフトウェアアーキテクチャのメンテナンス

ソフトウェア アーキテクチャの保守と進化は切り離せないものです。保守では、ソフトウェア アーキテクチャの進化プロセスが要件を確実に満たすように、ソフトウェア アーキテクチャの進化プロセスを追跡および制御する必要があります。ソフトウェア アーキテクチャの保守プロセス設計アーキテクチャの知識管理、アーキテクチャの変更管理、アーキテクチャのバージョン管理、など。


上記は理論的すぎるため、現実的である必要があります。著者が推奨する他の記事、学習を歓迎します:
Spring Boot 3.1.0 シリーズの記事に基づく

  1. Spring Bootソースコード読み込み初期化環境構築
  2. Spring Boot フレームワークの全体的な起動プロセスの詳細な説明
  3. Spring Boot システムイニシャライザの詳細説明
  4. Spring Bootリスナーの詳しい説明
  5. Spring Bootバナーの詳しい説明
  6. Spring Boot プロパティ構成の分析
  7. Spring Boot プロパティの読み込み原理の分析
  8. Spring Boot 例外レポーターの分析
  9. GraalVM を使用して Spring Boot 3.0 ネイティブ実行可能ファイルをビルドする
  10. Spring Boot 3.x マイクロサービスのアップグレード エクスペリエンス

プロメテウスシリーズの記事

  1. Prometheusの導入とインストール
  2. PromQL とそのデータ型の直感的なエクスペリエンス
  3. PromQL セレクターと演算子
  4. PromQLの機能
  5. Prometheus の警報メカニズムの紹介とコマンドの解釈
  6. Prometheus アラーム モジュール構成の深度分析
  7. Prometheus 構成認証
  8. Prometheus はモニタリング サービスを動的にプルします
  9. Prometheus はクラウド Mysql と自己構築 Mysql を監視します

Grafana シリーズの記事、バージョン: OOS v9.3.1

  1. Grafana の導入とインストール
  2. Grafana 監視大画面の設定パラメータの紹介 (1)
  3. Grafana 監視大画面の設定パラメータの紹介 (2)
  4. Grafana モニターの大画面視覚化チャート
  5. Grafana はデータをクエリし、データを変換します
  6. Grafana アラーム モジュールの概要
  7. Grafanaアラームアクセスフェイシュ通知

おすすめ

転載: blog.csdn.net/weixin_40972073/article/details/131533198