Software-engineering-software-development-life-cycle

提供:Dev Guides
移動先:案内検索

ソフトウェア開発ライフサイクル

ソフトウェア開発ライフサイクル、略してSDLCは、目的のソフトウェア製品を開発するためのソフトウェアエンジニアリングの段階の明確に定義された構造化されたシーケンスです。

SDLCアクティビティ

SDLCは、ソフトウェア製品を効率的に設計および開発するために従うべき一連のステップを提供します。 SDLCフレームワークには次の手順が含まれます。

SDLC

コミュニケーション

これは、ユーザーが目的のソフトウェア製品の要求を開始する最初のステップです。 彼はサービスプロバイダーに連絡し、条件の交渉を試みます。 彼はサービス提供組織に書面で要求を提出します。

要件の収集

ソフトウェア開発チームがこのステップに進むと、プロジェクトを続行します。 チームは、問題領域のさまざまな利害関係者と議論を行い、その要件について可能な限り多くの情報を引き出します。 要件は考慮され、ユーザー要件、システム要件、および機能要件に分けられます。 要件は、指定されたいくつかのプラクティスを使用して収集されます-

  • 既存または廃止されたシステムおよびソフトウェアの調査、
  • ユーザーと開発者へのインタビューの実施、
  • データベースを参照する、または
  • アンケートから回答を収集します。

実現可能性調査

要件を収集した後、チームはソフトウェアプロセスの大まかな計画を立てます。 このステップで、チームは、ユーザーのすべての要件を満たすためにソフトウェアを作成できるかどうか、およびソフトウェアがもはや有用ではなくなる可能性があるかどうかを分析します。 プロジェクトが財政的、実際的、技術的に組織にとって実現可能であるかどうかが判明します。 開発者がソフトウェアプロジェクトの実現可能性を結論付けるのに役立つ多くのアルゴリズムが利用可能です。

システム分析

このステップで、開発者は計画のロードマップを決定し、プロジェクトに適した最適なソフトウェアモデルを作成しようとします。 システム分析には、ソフトウェア製品の制限の理解、システム関連の問題または既存のシステムで事前に行われる変更の学習、プロジェクトが組織や人員に与える影響の特定と対処などが含まれます。 プロジェクトチームは、プロジェクトの範囲を分析し、それに応じてスケジュールとリソースを計画します。

ソフトウェア設計

次のステップは、要件と分析に関するすべての知識を机上に持ち込み、ソフトウェア製品を設計することです。 ユーザーからの入力および要件収集フェーズで収集された情報は、このステップの入力です。 このステップの出力は、2つのデザインの形式で提供されます。論理設計と物理設計。 エンジニアは、メタデータおよびデータ辞書、論理図、データフロー図、場合によっては擬似コードを作成します。

コーディング

このステップは、プログラミング段階とも呼ばれます。 ソフトウェア設計の実装は、適切なプログラミング言語でプログラムコードを記述し、エラーのない実行可能プログラムを効率的に開発することから始まります。

テスト

推定では、ソフトウェア開発プロセス全体の50%をテストする必要があるとされています。 エラーは、ソフトウェアをクリティカルレベルからそれ自体の削除まで破壊する可能性があります。 開発者によるコーディング中にソフトウェアテストが行​​われ、モジュールテスト、プログラムテスト、製品テスト、社内テスト、ユーザー側での製品テストなど、さまざまなレベルのコードのテストエキスパートによって徹底的なテストが行​​われます。 エラーの早期発見とその対策は、信頼できるソフトウェアの鍵です。

統合

ソフトウェアは、ライブラリ、データベース、およびその他のプログラムと統合する必要がある場合があります。 SDLCのこの段階は、ソフトウェアと外界のエンティティとの統合に関係しています。

実装

これは、ユーザーマシンにソフトウェアをインストールすることを意味します。 ソフトウェアは、ユーザーエンドでインストール後の構成が必要になる場合があります。 ソフトウェアの移植性と適応性がテストされ、実装中に統合関連の問題が解決されます。

操作とメンテナンス

このフェーズでは、より効率的でエラーが少ないという点でソフトウェアの動作を確認します。 必要に応じて、ユーザーは、ソフトウェアの操作方法およびソフトウェアの操作性を維持する方法に関するドキュメントのトレーニングを受けるか、ドキュメントの支援を受けます。 ソフトウェアは、ユーザーエンド環境またはテクノロジーで行われた変更に従ってコードを更新することにより、タイムリーに維持されます。 この段階では、隠れたバグや現実世界の未確認の問題による課題に直面する可能性があります。

配置

時間が経過すると、ソフトウェアはパフォーマンス面で低下する可能性があります。 完全に時代遅れになるか、激しいアップグレードが必要になる場合があります。 したがって、システムの大部分を排除する緊急の必要性が生じます。 このフェーズには、データと必要なソフトウェアコンポーネントのアーカイブ、システムの終了、廃棄アクティビティの計画、および適切なシステム終了時にシステムの終了が含まれます。

ソフトウェア開発パラダイム

ソフトウェア開発パラダイムは、開発者がソフトウェアを開発するための戦略を選択するのに役立ちます。 ソフトウェア開発パラダイムには、独自のツール、方法、および手順のセットがあり、それらは明確に表現され、ソフトウェア開発ライフサイクルを定義します。 ソフトウェア開発パラダイムまたはプロセスモデルのいくつかは、次のように定義されています。

滝モデル

ウォーターフォールモデルは、ソフトウェア開発パラダイムの最も単純なモデルです。 SDLCのすべての段階が次々と線形に機能するという。 つまり、最初のフェーズが終了すると、2番目のフェーズのみが開始されます。

image

このモデルは、すべてが前の段階で計画されたとおりに完全に実行および実行されることを想定しており、次の段階で発生する可能性のある過去の問題について考える必要はありません。 前のステップでいくつかの問題が残っている場合、このモデルはスムーズに動作しません。 モデルのシーケンシャルな性質により、操作を元に戻したりやり直したりすることはできません。

このモデルは、開発者が過去に同様のソフトウェアをすでに設計および開発しており、そのすべてのドメインを認識している場合に最適です。

反復モデル

このモデルは、反復でソフトウェア開発プロセスをリードします。 SDLCプロセスのすべてのサイクルの後にすべてのステップを繰り返して、周期的に開発プロセスを投影します。

反復モデル

ソフトウェアは最初に非常に小規模に開発され、考慮されるすべてのステップが実行されます。 その後、次の反復ごとに、より多くの機能とモジュールが設計、コーディング、テストされ、ソフトウェアに追加されます。 すべてのサイクルでソフトウェアが生成されます。ソフトウェアはそれ自体が完全であり、以前のものよりも多くの機能を備えています。

各反復の後、管理チームはリスク管理に取り組み、次の反復に備えることができます。 サイクルにはソフトウェアプロセス全体のごく一部が含まれるため、開発プロセスの管理は簡単ですが、より多くのリソースを消費します。

スパイラルモデル

スパイラルモデルは、反復モデルとSDLCモデルの1つを組み合わせたものです。 1つのSDLCモデルを選択し、それを循環プロセス(反復モデル)と組み合わせるかのように見えます。

スパイラルモデル

このモデルはリスクを考慮しますが、これは他のほとんどのモデルでは見過ごされがちです。 モデルは、1回の反復の開始時にソフトウェアの目的と制約を決定することから始まります。 次のフェーズでは、ソフトウェアのプロトタイプを作成します。 これにはリスク分析が含まれます。 次に、1つの標準SDLCモデルを使用してソフトウェアを構築します。 次の反復の計画の第4段階で準備されます。

V –モデル

ウォーターフォールモデルの主な欠点は、前のステージが終了したときにのみ次のステージに移動することであり、後のステージで問題が見つかった場合に戻ることができませんでした。 V-Modelは、各段階でソフトウェアを逆の方法でテストする手段を提供します。

V-Model

すべての段階で、テスト計画とテストケースが作成され、その段階の要件に従って製品を検証および検証します。 たとえば、要件収集段階では、テストチームは要件に対応してすべてのテストケースを準備します。 その後、製品が開発され、テストの準備が整ったら、この段階のテストケースで、この段階での要件に対するソフトウェアの有効性を検証します。

これにより、検証と検証の両方が並行して行われます。 このモデルは、検証および検証モデルとも呼ばれます。

ビッグバンモデル

このモデルは、その形式で最も単純なモデルです。 それには、少しの計画、たくさんのプログラミング、そしてたくさんの資金が必要です。 このモデルは、宇宙のビッグバンを中心に概念化されています。 科学者が言うように、ビッグバンの後、たくさんの銀河、惑星と星はちょうど出来事として進化した。 同様に、多くのプログラミングと資金を集めれば、最高のソフトウェア製品を実現できます。

ビッグバンモデル

このモデルでは、非常に少量の計画が必要です。 どのプロセスにも従わないか、顧客が要件や将来のニーズについて確信を持てない場合があります。 したがって、入力要件は任意です。

このモデルは、大規模なソフトウェアプロジェクトには適していませんが、学習や実験には適しています。

SDLCとそのさまざまなモデルの詳細については、http://www.finddevguides.com/sdlc/index [ここをクリックしてください]