ソフトウェア開発ライフサイクル (SDLC) のフェーズとモデル
SDLCとは?
SDLC は、構築されたソフトウェアの品質と正確性を保証する、ソフトウェアを構築するための体系的なプロセスです。 SDLC プロセスは、顧客の期待に応える高品質のソフトウェアを作成することを目的としています。 システム開発は、あらかじめ決められた期間とコスト内で完了する必要があります。 SDLC は、特定のソフトウェアを計画、構築、保守する方法を説明する詳細な計画で構成されています。 SDLC ライフサイクルの各フェーズには、次のフェーズにつながる独自のプロセスと成果物があります。 SDLCの略です ソフトウェア開発ライフサイクル アプリケーション開発ライフサイクルとも呼ばれます。
なぜSDLCなのか?
ここでは、SDLC がソフトウェア システムの開発に重要である主な理由を説明します。
- プロジェクトの計画、スケジュール設定、見積もりの基礎を提供します。
- 標準的な一連のアクティビティと成果物のフレームワークを提供します
- プロジェクトの追跡と制御のためのメカニズムです
- 開発プロセスに関係するすべての利害関係者に対するプロジェクト計画の可視性が向上します。
- 開発スピードの向上と強化
- 顧客関係の改善
- プロジェクトのリスクとプロジェクト管理計画のオーバーヘッドを削減するのに役立ちます
SDLC フェーズ
SDLC プロセス全体は、次の SDLC ステップに分かれています。
- フェーズ 1: 要件の収集と分析
- フェーズ 2: 実現可能性調査
- フェーズ3:設計
- フェーズ 4: コーディング
- フェーズ 5: テスト
- フェーズ 6: インストール/展開
- フェーズ 7: メンテナンス
このチュートリアルでは、ソフトウェア開発ライフサイクルのすべてのフェーズについて説明しました。
フェーズ 1: 要件の収集と分析
この要件は、SDLC プロセスの最初の段階です。 これは、業界のすべての関係者およびドメイン専門家からの意見をもとに、上級チームのメンバーによって実施されます。 の計画 品質保証 要件とそれに伴うリスクの認識もこの段階で行われます。
この段階では、プロジェクト全体の範囲と、プロジェクトのきっかけとなった予想される問題、機会、指示をより明確に把握できます。
要件収集段階では、チームが詳細かつ正確な要件を取得する必要があります。 これは、企業がそのシステムの作業を完了するために必要なスケジュールを最終決定するのに役立ちます。
フェーズ 2: 実現可能性調査
要件分析フェーズが完了したら、次の sdlc ステップでは、ソフトウェアのニーズを定義して文書化します。 このプロセスは、「SRS」ドキュメントとしても知られる「ソフトウェア要件仕様」ドキュメントの助けを借りて実行されました。 これには、プロジェクトのライフサイクル中に設計および開発する必要があるすべてのものが含まれます。
実現可能性チェックには主に XNUMX 種類があります。
- 経済: 予算内でプロジェクトを完了できるかどうか?
- リーガル: このプロジェクトをサイバー法やその他の規制の枠組み/コンプライアンスとして扱うことができますか。
- Opera実現可能性: クライアントが期待する操作を作成できますか?
- 技術: 現在のコンピュータ システムがソフトウェアをサポートできるかどうかを確認する必要がある
- スケジュール: プロジェクトが指定されたスケジュール内で完了できるかどうかを判断します。
フェーズ3:設計
この第 3 フェーズでは、要件仕様書に従ってシステムおよびソフトウェア設計ドキュメントが準備されます。これにより、全体的なシステム アーキテクチャが定義されます。
この設計フェーズは、モデルの次のフェーズへの入力として機能します。
このフェーズでは XNUMX 種類の設計ドキュメントが作成されます。
高レベル設計 (HLD)
- 各モジュールの簡単な説明と名前
- 各モジュールの機能の概要
- モジュール間のインターフェース関係と依存関係
- データベーステーブルとその主要な要素を特定
- 完全なアーキテクチャ図と技術の詳細
ローレベル設計 (LLD)
- モジュールの機能ロジック
- データベース テーブル (タイプとサイズを含む)
- インターフェイスの完全な詳細
- あらゆる種類の依存関係の問題に対処します
- エラーメッセージの一覧
- すべてのモジュールの完全な入出力
フェーズ 4: コーディング
システム設計フェーズが終了すると、次のフェーズはコーディングです。 このフェーズでは、開発者は、選択したプログラミング言語を使用してコードを記述して、システム全体の構築を開始します。 コーディング段階では、タスクがユニットまたはモジュールに分割され、さまざまな開発者に割り当てられます。 これは、ソフトウェア開発ライフ サイクル プロセスの中で最も長いフェーズです。
このフェーズでは、開発者は事前に定義された特定のコーディング ガイドラインに従う必要があります。 また、使用する必要があります プログラミングツール コードを生成して実装するためのコンパイラ、インタプリタ、デバッガなど。
フェーズ 5: テスト
ソフトウェアが完成し、テスト環境に展開されると、テスト チームはシステム全体の機能のテストを開始します。これは、アプリケーション全体が顧客の要件に従って動作することを確認するために行われます。
このフェーズ中に、QA およびテスト チームがいくつかのバグや欠陥を発見し、開発者に通知する場合があります。 開発チームはバグを修正し、再テストのために QA に送り返します。 このプロセスは、ソフトウェアにバグがなく安定し、システムのビジネス ニーズに従って動作するまで続きます。
フェーズ 6: インストール/展開
ソフトウェアのテスト段階が終了し、システムにバグやエラーが残らなくなると、最終的な展開プロセスが開始されます。 プロジェクト マネージャーからのフィードバックに基づいて、最終的なソフトウェアがリリースされ、展開上の問題が存在するかどうかがチェックされます。
フェーズ 7: メンテナンス
システムが展開され、顧客が開発されたシステムを使い始めると、次の3つのアクティビティが発生します。
- バグ修正 – まったくテストされていない一部のシナリオが原因でバグが報告されます。
- Upgrade – アプリケーションをソフトウェアの新しいバージョンにアップグレードする
- 機能強化 - 既存のソフトウェアにいくつかの新機能を追加します。
この SDLC フェーズの主な焦点は、ニーズが引き続き満たされ、システムが最初のフェーズで述べた仕様どおりに動作し続けることを確認することです。
人気の SDLC モデル
ソフトウェア開発ライフサイクル (SDLC) の最も重要なモデルのいくつかを次に示します。
SDLC のウォーターフォール モデル
ウォーターフォールは広く受け入れられている SDLC モデルです。 このアプローチでは、ソフトウェア開発のプロセス全体が SDLC のさまざまなフェーズに分割されます。 この SDLC モデルでは、XNUMX つのフェーズの結果が次のフェーズの入力として機能します。
この SDLC モデルは大量のドキュメントを必要とし、初期のフェーズで後続のフェーズで実行する必要がある内容を文書化します。
SDLC の増分モデル
インクリメンタル モデルは個別のモデルではありません。 これは本質的に一連のウォーターフォール サイクルです。 要件はプロジェクトの開始時にグループに分割されます。 各グループでは、SDLC モデルに従ってソフトウェアを開発します。 SDLC ライフサイクル プロセスは繰り返され、すべての要件が満たされるまでリリースごとに機能が追加されます。 この方法では、すべてのサイクルが以前のソフトウェア リリースのメンテナンス フェーズとして機能します。 インクリメンタル モデルを変更すると、開発サイクルを重複させることができます。 その後、前のサイクルが完了する前に後続のサイクルが開始される場合があります。
SDLC の V モデル
このタイプの SDLC モデルのテストと開発では、フェーズが並行して計画されます。 つまり、SDLC の検証フェーズが一方にあり、検証フェーズがもう一方にあります。 V-Model はコーディングフェーズによって結合されます。
SDLC のアジャイル モデル
アジャイル手法は、あらゆるプロジェクトの SDLC プロセス中に開発とテストの継続的な連携を促進する手法です。アジャイル手法では、プロジェクト全体が小さな増分ビルドに分割されます。これらのビルドはすべて反復で提供され、各反復は 1 週間から 3 週間続きます。
スパイラルモデル
スパイラル モデルはリスク主導のプロセス モデルです。 この SDLC テスト モデルは、チームがウォーターフォール、インクリメンタル、ウォーターフォールなどの XNUMX つ以上のプロセス モデルの要素を採用するのに役立ちます。
このモデルは、プロトタイピング モデルとウォーターフォール モデルの優れた機能を採用しています。 スパイラル手法は、設計および開発活動におけるラピッド プロトタイピングと同時実行性を組み合わせたものです。
ビッグバンモデル
ビッグバン モデルは、計画をまったく行わないか、ほとんど計画せずに、ソフトウェア開発とコーディングにおけるあらゆる種類のリソースに焦点を当てています。 要件は理解され、必要なときに実装されます。
このモデルは、小規模な開発チームが協力して作業する小規模なプロジェクトに最適です。 学術的なソフトウェア開発プロジェクトにも役立ちます。 これは、要件が不明であるか、最終リリース日が指定されていない場合に最適なモデルです。
製品概要
- ソフトウェア開発ライフサイクル (SDLC) は、構築されたソフトウェアの品質と正確性を保証する、ソフトウェアを構築するための体系的なプロセスです。
- 完全な形式の SDLC は、ソフトウェア開発ライフ サイクルまたはシステム開発ライフ サイクルです。
- ソフトウェア エンジニアリングにおける SDLC は、標準的な一連のアクティビティと成果物のフレームワークを提供します
- SDLC の 1 つの異なる段階は、2) 要件の収集と分析、3) 実現可能性調査: 4) 設計、5) コーディング、6) テスト: 7) インストール/展開、および XNUMX) メンテナンスです。
- 上級チームメンバーが実施します。 要件分析 相
- 実現可能性調査段階には、プロジェクトのライフサイクル中に設計および開発する必要があるすべてのものが含まれます
- 設計フェーズでは、要件仕様書に従ってシステムおよびソフトウェアの設計書が作成されます。
- コーディング段階では、開発者は選択したプログラミング言語を使用してコードを記述し、システム全体の構築を開始します。
- テストは次のフェーズで、アプリケーション全体が顧客の要件に従って動作することを確認するために実行されます。
- インストールと展開の局面は、次の時点から始まります。 ソフトウェアテスト フェーズは終了し、システムにはバグやエラーは残っていません
- メンテナンス面ではバグ修正、アップグレード、エンゲージメントアクションがカバーされています
- ウォーターフォール、インクリメンタル、アジャイル、V モデル、スパイラル、ビッグバンは、ソフトウェア エンジニアリングで人気のある SDLC モデルの一部です
- ソフトウェア テストにおける SDLC は、特定のソフトウェアを計画、構築、保守する方法を説明する詳細な計画で構成されます。