【システム構築編】第5章 ソフトウェアエンジニアリングの基礎知識(1)

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

ソフトウェア工学

1. ソフトウェア プロセス モデル
1. ウォーターフォール モデル
ここに画像の説明を挿入
特徴: 前段階の作業の出力が次の段階の作業の入力となります

  • ソフトウェア要件の完全性と正確性を判断するのは難しく、不可能で非現実的ですらあります。
  • ウォーターフォール モデルは厳密にシリアル化されたプロセス モデルであるため、ユーザーやソフトウェア プロジェクト リーダーが目に見えるソフトウェア システムを取得するまでに長い時間がかかります。ユーザーの期待との矛盾や要件の変更がある場合、重大な損失が発生します。
  • ウォーターフォールモデルの基本原理は、この段階の作業を各段階で一度に、漏れやエラーなどなく完全に解決することですが、実際にはこれは非現実的または不可能です。

2. プロトタイピング モデル (
ラピッド プロトタイピングとも呼ばれます)。
ここに画像の説明を挿入
プロトタイプ モデルの主な段階:

  • プロトタイプ開発段階:ユーザーが提案したソフトウェアシステムの定義に従って、ターゲットシステムの主要な問題を含み、ターゲットシステムの全体的な外観を反映し、機能の全部または一部を示すプロトタイプが迅速に開発されます。ターゲットシステムのパフォーマンス
  • 対象となるソフトウェア開発段階

プロトタイプモデルのフォローアップでは、プロトタイプのさまざまな機能に応じて、廃棄されたプロトタイプと進化したプロトタイプに分けられます。

3. スパイラル モデルは
ラピッド プロトタイピングに基づいて拡張されており、ソフトウェア開発プロセス全体を複数の段階に分割し、各段階は 4 つの部分で構成されており、大規模なソフトウェア開発に適しています。

  • 目標設定:要件分析、要件確認、開発計画、ライフサイクル計画
  • リスク分析
  • 開発と検証
  • レビュー

2. アジャイルモデル
1. アジャイル手法
特徴: 適応性と前提 (フィードバックメカニズムを使用して予測不可能なプロセスを制御する)、プロセス指向ではなく人間指向 (対面コミュニケーションを推奨) 中心となるアイデア: 適応性のある非予測、人間
性指向性、非プロセス指向の反復的かつ増分開発プロセス
主なアジャイル手法:

  • エクストリーム プログラミング: 軽量、厳密、ソフトウェア プロジェクトの開始: コミュニケーションを強化、シンプルから開始、フィードバックを求める、事実から真実を求める
  • Crystal シリーズのアプローチ: 「モバイル」アプローチの提唱
  • スクラム: 一連の実践と事前定義された役割プロセス (ソフトウェアを効率的に開発するために使用されるプロセス、計画、パターン) の骨格を含むプロジェクト管理に焦点を当てます。
  • 機能駆動型開発手法: FDD は反復型開発モデルであり、3 つの要素 (人材、プロセス、テクノロジー)、5 つのコア プロセス (オブジェクト モデル全体の開発、機能リストの構築、機能開発の計画、機能設計、機能構築) から構成されます。

3. 統合プロセス モデル (RUP)
RUP は、9 つ​​のコア ワークフローを備えた重量プロセス、2 次元ソフトウェア開発モデルです。

  • ビジネスモデリング: 開発するシステムが置かれている組織とその業務運営を理解し、システムが開発される組織について参加者全員が共通の理解を持っていることを確認し、開発するシステムが企業に与える影響を評価します。組織
  • 要件: システム機能とユーザー インターフェイスを定義し、顧客にシステムの機能を知らせ、開発者がシステムの要件を理解できるようにし、プロジェクトの予算と計画の基礎を提供します。
  • 分析と設計: 要件分析の結果を分析および設計モデルに変換します。
  • 実装: 設計モデルを実装結果に変換し、開発されたコードに対して単体テストを実行し、さまざまな実装者によって開発されたモジュールを実行可能システムに統合します。
  • テスト: サブシステム間の相互作用と統合を確認します。すべての要件が正しく実装されていることを確認し、ソフトウェア品質で見つかった欠陥をアーカイブし、ソフトウェア品質を改善するための提案を行います。
  • 導入: ソフトウェアのパッケージ化、配布、インストール、レガシー システムのアップグレード、ユーザーと営業スタッフのトレーニング、技術サポートの提供
  • 構成および変更管理: システム開発中に生成されるすべての成果物の整合性と一貫性を追跡および維持します。
  • プロジェクト管理:ソフトウェア開発プロジェクトの計画、人員配置、実行、モニタリングなどの指導、リスク管理の枠組みの提供
  • 環境: ソフトウェア開発組織にソフトウェア開発環境を提供します。つまり、プロセス管理とツールのサポートを提供します。

RUP はソフトウェア開発ライフ サイクルを分割し、各サイクルで製品の新しいバージョンが生成されます。各サイクルは連続する 4 つのステージで構成され、各ステージは決定されたタスク (4 つのステージ) を完了します。

  • 導入フェーズ: 最終的な製品ビューとビジネス モデルを定義し、システムの範囲を決定します。
  • 詳細フェーズ: システム アーキテクチャを設計および決定し、作業計画とリソース要件を策定します。
  • 構築フェーズ: 製品を構築し、製品の納品まで要件、アーキテクチャ、計画を進化させ続けます。
  • 引き継ぎフェーズ: 製品をユーザーに提出して使用する

RUP の中心的な概念:

  • 役割: 個人またはグループの行動と責任を説明します。
  • アクティビティ: 定義された目的を持つ独立した作業単位です
  • アーティファクト: アーティファクトは、アクティビティによって生成、作成、または変更される情報の一部です。
  • ワークフロー: ワークフローは、意味のある一連のアクティビティを記述し、それぞれのアクティビティが価値のある製品を生み出し、役割間の関係を示します。

RUP の特徴: アーキテクチャ中心の反復的かつ段階的なソフトウェア開発プロセス

  • ユースケース主導型。要件分析、設計、実装、テストなどのアクティビティはすべてユースケース主導型です。
  • アーキテクチャ中心: ソフトウェア アーキテクチャは多次元構造であり、ソフトウェア アーキテクチャを説明するために複数のビュー (「4+1」ビュー) が使用されます。
    ここに画像の説明を挿入
  • 反復と増分: プロジェクト開発全体を複数の反復プロセスに分割し、各反復は完成した部分に基づいて行われ、そのたびにいくつかの新しい機能が追加されます。
    利点:
    1. 重大で影響の大きいリスクにソフトウェア開発の早い段階で対処できる
    2. 開発を導くためのソフトウェア アーキテクチャを提案できる
    3. 避けられない要件の変更により適切に対処できる
    4. 早期に取得できる 運用システムにより、開発の効率化が可能チームの士気を高め、プロジェクト成功への自信を高める
    5. より効率的に作業できる開発プロセスを開発者に提供する

4.
ソフトウェア機能成熟度モデルの 5 つの成熟度レベル:

  • レベル 1 の初期レベル:
    プロセスはランダムで混沌としており、製品やサービスを生み出すことはできますが、予算やコストを超えることがよくあります。
  • レベル 2 管理レベル:
    プロジェクト レベルのプロセスの計画、文書化、実行、監督、制御を確実に行うには、プロセスの明確な目標を設定し、コスト、スケジュール、品質の目標などを達成する必要があります。
  • レベル 3 定義
    それぞれの特殊な状況に応じて適切な標準プロセスを定義し、この管理システムとプロセスを制度化すると同時に、プロジェクトの蓄積と企業資産の収集を実行します。
  • レベル4 定量管理レベル
    製品品質、サービス品質、プロセスパフォーマンスの定量的な目標を設定する
  • レベル 5 の最適化 段階
    的かつ革新的なプロセスとテクノロジーの改善を通じて、プロセスのパフォーマンスを継続的に向上させます。

著者が推奨するその他の記事、ぜひ学習してください:
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 アラームによる Feishu 通知へのアクセス

Spring Boot 管理者シリーズ

  1. Spring Boot 管理者リファレンス ガイド
  2. SpringBoot Adminサービスがオフラインで正常性情報が表示されない問題
  3. Spring Boot Admin2 @EnableAdminServer のロード
  4. Spring Boot Admin2 AdminServerAutoConfiguration の詳細な説明
  5. Spring Boot Admin2インスタンスの状態監視の詳細説明
  6. Spring Boot Admin2 カスタム JVM 監視通知
  7. Spring Boot Admin2 カスタム例外監視
  8. Grafana 視覚化に接続された Spring Boot Admin モニタリング インジケーター

おすすめ

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