ウォーターフォール モデルはライフ サイクル手法とも呼ばれ、ライフ サイクル手法の中で最も一般的に使用される開発モデルです。ソフトウェア開発プロセスをソフトウェア計画、要件分析、ソフトウェアに分割します。ソフトウェアのテスト、運用、保守の 6 つの段階は、トップダウンで相互に接続された一定の順序を規定しており、滝のように段階的に落ちていきます。
ソフトウェア計画: 主にソフトウェアの開発目標と実現可能性を決定します。
要件分析: ソフトウェア開発が実現可能であると判断した後、ソフトウェアに実装する必要がある各機能の詳細な分析を実行します。要件分析段階は非常に重要な段階であり、この段階が適切に行われれば、ソフトウェア開発プロジェクト全体の成功に向けた良い基盤が築かれます。
ソフトウェア設計:システムの枠組み設計やデータベース設計など、主に需要分析の結果に基づいてソフトウェアシステム全体の設計を行います。ソフトウェアの設計は、一般的に全体設計(概要設計)と詳細設計に分かれます。
プログラム コーディング: ソフトウェア設計の結果をコンピューターで実行可能なプログラム コードに変換します。プログラムの記述においては、プログラムの可読性や保守性を確保し、プログラムの動作効率を向上させるために、統一された標準的な記述仕様を策定する必要があります。
ソフトウェア テスト: ソフトウェア設計が完了したら、設計プロセス全体を通じてソフトウェアに存在する問題を発見して修正するために、厳密にテストする必要があります。テスト プロセスでは、テストのランダム性を減らすために、詳細なテスト計画を確立し、テスト計画に厳密に従う必要があります。
ソフトウェア メンテナンス: ソフトウェア メンテナンスは、ソフトウェア ライフ サイクルの中で最も長く続くフェーズです。ソフトウェアが開発され、使用された後、さまざまな理由により、ソフトウェアがユーザーの要求に適合し続けることができなくなり、ソフトウェアの耐用年数を延ばすためにソフトウェアを保守する必要があります。
変換モデル (進化モデル) は、プロトタイプの迅速な開発と、その過程でユーザーによって提出されたフィードバックと提案に基づいています。プロトタイプを呼び出し、プロトタイプを改善し、プロトタイプの新しいバージョンを取得し、最終ソフトウェア製品に進化するまでこのプロセスを繰り返します。
スパイラル モデルは、ウォーターフォール モデルと変換モデルを組み合わせたもので、両方の利点を組み合わせ、リスク分析を追加します。プロトタイプをベースに、スパイラルに沿って内側から外側に回転し、各回転ごとに計画、リスク分析、実装エンジニアリング、顧客評価などが必要となり、新しいバージョンのプロトタイプが開発されます。いくつかの螺旋状の上向きのプロセスを経て、最終的なシステムが得られます。
ファウンテン モデルは、ソフトウェアの再利用とライフ サイクルにおける複数の開発アクティビティの統合のサポートを提供し、主にオブジェクトをサポートします。指向性のある開発手法。 「噴水」という言葉自体が、反復的でギャップのない性質を体現しています。システムの特定の部分は多くの場合、何度も作り直され、反復ごとに進化するシステムに関連機能が追加されます。いわゆるギャップレスとは、開発活動において、分析、設計、コーディングの間に明確な境界がないことを意味します。
開発モデルでは、状況を補うために後付けでテストが使用されることがよくありますが、テストもあります。 -中心の開発モデル、それが V モデルです。 V モデルは、ソフトウェア業界では漠然とした認識しか受けていません。 V モデルでは、テストは後回しではなく、開発プロセスと同じくらい重要なプロセスであると主張しています。
#V モデルは、いくつかの異なるテスト レベルを記述し、これらのレベルが対応するライフ サイクルのさまざまな段階を示しています。図では、左側の下降部分は開発プロセスのさまざまな段階を表し、これに対応して右側の上昇部分はテスト プロセスのさまざまな段階を表します。テストフェーズの名前は組織によって異なる場合があることに注意してください。 V モデルの価値は、テスト プロセスに存在するさまざまなレベルを非常に明確に示し、これらのテスト フェーズと開発プロセスの各段階との対応を明確に説明していることです。
#単体テストの主な目的は、コーディング プロセス中に存在する可能性のあるさまざまなエラーを対象とすることです。例: ユーザー入力検証中の境界値のエラー。
統合テストの主な目的は、詳細設計で起こり得る問題をターゲットにすること、特に各ユニットと他のプログラム部分の間のインターフェイスで起こり得るエラーをチェックすることです。
システムテストは主に概要設計を目的としており、システム全体が効率的に動作するかどうかを確認します。例: 製品設定で期待される高いパフォーマンスが達成されるかどうか。
受け入れテストは通常、製品がユーザーのビジネス ニーズを真に満たすことができることを確認するために、ビジネスの専門家またはユーザーによって実施されます。
増分モデルは、プロトタイプ実装モデルや他の進化的手法と同様、本質的に反復的です。ただし、プロトタイプの実装とは異なり、増分モデルでは、各増分が運用可能な製品をリリースすることが強調されます。初期の増分は最終製品の「取り外し可能な」バージョンですが、ユーザーにサービスを提供し、ユーザー評価用のプラットフォームを提供する機能を提供します。インクリメンタルモデルの特徴は、インクリメンタルパッケージの概念を導入していることであり、すべての要件がリリースされるのを待つ必要はなく、特定の要件のインクリメンタルパッケージがリリースされていれば開発を進めることができます。特定の増分パッケージを顧客のニーズにさらに適合させ、変更する必要がある場合でも、増分パッケージが十分に小さい限り、プロジェクト全体への影響は耐えられます。
急速アプリケーション開発 (RAD) モデルは、極めて短い開発サイクルを重視した増分ソフトウェア開発プロセス モデルです。 RAD モデルは、ウォーターフォール モデルの「高速」バージョンであり、再利用可能なコンポーネントを広範囲に使用することで迅速な開発を実現するコンポーネントベースの構築方法を使用します。要件がよく理解され、プロジェクトの範囲が制限されている場合は、このモデルを使用して完全に機能する「情報システム」を迅速に作成できます。このプロセスはビジネス モデリングから始まり、データ モデリング、プロセス モデリング、アプリケーションの生成、テスト、反復が続きます。 RAD モデルを使用したソフトウェア プロセスを図に示します。
#RAD モデルの各アクティビティ期間で完了するタスクは次のとおりです。
ビジネス モデリング: ビジネス プロセスの運用を推進する情報は何ですか?どのような情報が生成されるのでしょうか?誰がそれを生成しますか?情報の流れはどこへ行くのでしょうか?誰によって?これはデータ フロー図で補足できます。
データ モデリング: ビジネス プロセスのデータ フローをサポートするために、データ オブジェクトのコレクションを検索し、データ オブジェクトのプロパティと他のデータ オブジェクトとの関係を定義します。データ モデルを形成します。これは E-R 図で補足できます。
プロセス モデリング: データ オブジェクトが情報フロー内のさまざまなビジネス機能を完了できるようにします。データ オブジェクトの追加、変更、削除、検索を記述するプロセスを作成します。つまり、データ フロー図内の処理ボックスを調整します。
アプリケーション生成: 第 4 世代言語 (4GL) を使用して処理プログラムを作成し、既存のコンポーネントを再利用するか新しい再利用可能なコンポーネントを作成し、環境によって提供されるツールを使用して自動的に生成および構築しますアプリケーションシステム全体から。
テストと配信では、大量の再利用が行われるため、通常は全体的なテストのみが行われますが、新しく作成されたコンポーネントもテストする必要があります。
コンポーネント (コンポーネント) は、再利用可能な価値と比較的独立した機能を持つソフトウェア ユニットです。コンポーネント ベース ソフトウェア開発 (CBSD) モデルは、モジュール化手法を使用してシステム全体をモジュール化し、特定のコンポーネント モデルのサポートにより、コンポーネント ライブラリ内の 1 つ以上のソフトウェア コンポーネントを再利用し、組み合わせを通じてアプリケーション ソフトウェア システムを構築するプロセスです。高効率と高品質。コンポーネントベースの開発モデルには、スパイラル モデルの多くの特徴が組み込まれており、本質的に進化的であり、開発プロセスは反復的です。コンポーネントベースの開発モデルは、ソフトウェア要件の分析と定義、アーキテクチャ設計、コンポーネント ライブラリの確立、アプリケーション ソフトウェアの構築、テストとリリースの 5 つの段階で構成されます。
ソフトウェアプロトタイプは、提案された新製品の部分的な実装であり、プロトタイプを確立する主な目的は、問題を解決することです。製品開発では、初期段階で要件が不明確な問題に対して、要件を明確にして洗練し、設計オプションを検討し、最終製品に開発することが目的です。プロトタイプを分類する方法はたくさんあります。ソフトウェアプロトタイプは、プロトタイプが機能を実装するかどうかに応じて、水平プロトタイプと垂直プロトタイプの 2 つのタイプに分類できます。水平プロトタイプは、動作プロトタイプとも呼ばれ、予想されるシステムの特定の動作を調査し、要件を洗練するという目的を達成するために使用されます。水平プロトタイプは、多くの場合、実際に実装することなく、単なる機能のナビゲーションにすぎません。水平プロトタイプは主にインターフェイスで使用されます。垂直プロトタイプは構造化プロトタイプとも呼ばれ、機能の一部を実装します。垂直プロトタイピングは主に複雑なアルゴリズムの実装で使用されます。
XP は軽量 (機敏)、効率的、低リスク、柔軟、予測可能、科学的で楽しいソフトウェアです。開発手法。他の方法論と比較した最大の違いは、
が具体的かつ継続的なフィードバック情報をより早期かつ短いサイクルで提供することです。
反復的に計画を立てます。まず最初にマスター プランを迅速に作成し、プロジェクト開発プロセス全体を通じてそれを進化させます。
自動テスト プログラムを利用して、開発の進行状況を監視し、欠陥を早期に発見します。
コミュニケーションには口頭でのコミュニケーション、テスト、およびソース コードが必要です。
継続的に進化するデザインを提唱します。
開発チーム内の緊密なコラボレーションに依存します。
プログラマーの短期的な利益とプロジェクトの長期的な利益の間でバランスを取るようにしてください。
RUP (Rational Unified Process) は、統一されたソフトウェア開発プロセスであり、普遍的なプロセスであるフレームワークです。幅広いソフトウェア システム、さまざまなアプリケーション分野、さまざまな組織タイプ、さまざまなパフォーマンス レベル、さまざまなプロジェクト サイズに対応できます。 RUP はコンポーネントベースです。これは、RUP を使用して開発されたソフトウェア システムがコンポーネントで構成されており、コンポーネントが明確に定義されたインターフェイスを通じて相互に接続されていることを意味します。ソフトウェア システムのすべてのブループリントを準備する際、RUP は統一モデリング言語 UML を使用します。他のソフトウェア プロセスと比較して、RUP には 3 つの大きな特徴があります: ユースケース主導、基本アーキテクチャ中心、反復的、増分的。 RUP のソフトウェア プロセスは、時間的に 4 つの連続したフェーズ、つまり、初期フェーズ、改良フェーズ、構築フェーズ、および配信フェーズに分割されます。各フェーズの終わりには、フェーズの目的が達成されたかどうかを判断するための技術レビューが予定されています。レビュー結果が満足のいくものであれば、プロジェクトは次の段階に進むことができます。
以上がJava ソフトウェア開発ライフ サイクルとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。