# ソフトウェア開発ライフサイクルの主な段階

次の図は、ソフトウェア開発ライフサイクルの主な段階である「分析と要件の定義」、「ジョブとテストの開発」、「自動化ビルドの設定」、「クオリティ保証テスト」、「製品の稼働と保守」を示したものです。

これらの段階に関わる担当者については、[プロファイル](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/profiles)をご覧ください。

![](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/Resources/images/sdlc-circular_phases.png)

## 製品の開発ライフサイクル

製品や機能の開発ライフサイクルは、仕様、開発とテスト、QA環境と本番環境へのデプロイメント、保守、さらには移行までを含む幅広いプロセスです。

* 仕様: プロセスの概念部分(技術要件、タスクの割り当てなど)。詳細は、[仕様](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/specifications "プロセスをデザインする前に、ビジネスマネージャー、意思決定者、または開発者が仕様を書き出しておくことが必要です。これはテスト駆動開発の基盤の1つとなります。")をご覧ください。
* 開発、テスト、デプロイメント: プロセスのうちのデザインと公開の部分。詳細は、[開発とテスト](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/developing-and-testing "テストドリブンのアプローチでは、プロセスの開発とテストはお互いに密接な関係にあり、開発者のタスクはプロセスがデザインされ、テストされた時に初めて完了します。仕様が定義されれば、開発チームはジョブと呼ばれるプロセスのデザインを開始できます。")と[ビルドとデプロイメント](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/ci-build "TalendではプロジェクトアーティファクトをTalend Cloud、アーティファクトリポジトリー(Nexus、Artifactory)、Dockerのいずれかに公開してその実行をスケジュール設定する方法をいくつか提供しているので、ニーズに最も合った方法を選ぶことができます。")をご覧ください。
* QA環境と本番環境へのデプロイ。詳細は、[QA環境および本番環境にデプロイメント](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/deploying-to-qa-and-production-environments)をご覧ください。
* 主にGITのブランチングとタグによって達成される保守。詳細は、[保守](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/maintaining "製品や機能が稼働した後も、パフォーマンスの改善、新しい要件への対応、発見されたエラーの修正のため、開発者は製品や機能の更新を行う必要があります。")をご覧ください。
* 移行。

## SDLC関連の概念

* 継続的インテグレーション(CI)は開発のプラクティスで、チームのメンバーは自分の作業を定期的にインテグレーションします。各インテグレーションについては、自動化ビルドによって検証し、インテグレーションエラーをすばやく検出します。

* 継続的デプロイメント(CD)は、自動テストに合格したコード変更を迅速かつ安全に本番環境にデプロイできるプラクティスです。

* ビルドの自動化はソフトウェア開発ライフサイクルで使用されるベストプラクティスで、自動ビルドスクリプトでソースコードをコンパイルおよびパッケージできます。

  たとえば、TalendユーザーはTalend StudioでMavenを使ってzipファイルとして作成したジョブのソースをエクスポートし、生成されたアーカイブファイルをTalend Management Consoleで再利用してこのジョブの次の実行をスケジュールできます。

* バージョン管理とソースコード管理(SCM)では、変更にリビジョンを割り当てることで、ソフトウェアに対して行った変更を管理し、追跡できます。Talendでは、Gitに基づく共有リポジトリーとブランチングシステムによってこれが可能になっています。たとえばTalendでは、ユーザーはTalend Studioとその他のアプリケーションの間で共有されるリポジトリー、およびバージョン変更に対するそのブランチングシステムを使用できます。

## プロファイル

製品ライフサイクルの段階に関わる主要人物の例。

![](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/Resources/images/sdlc-personas.png)

* プロジェクトマネージャーのアラン(分析と要件/仕様の段階): アランはプロジェクトのアーキテクチャーを推進し、使用する技術を選びます。また、ビジネスマネージャーや開発者と共に仕様のデザインを担当します。
* 開発者のジム(開発とテスト+保守の段階): ジムは開発環境でジョブとコンポーネントをデザインし、実装します。また、デザインしたジョブのテストを作成および実行し、そのジョブをトーマスに渡します。必要であれば、彼らは新たな技術要件が満たされるようエラーを修正したりソフトウェアを改善したりして保守を行います。
* クオリティ保証エンジニアのトーマス(QAテスト段階): トーマスは、QA環境でマニュアル(ユーザーシナリオに基づく)と自動化ビルドテスト(テストケースを使用)を使用して、機能と製品に対するテストスイートを作成および実行します。また、結果の定期レポートをミーガンに送信します。
* オペレーション/リリースマネージャーのミーガン(本番稼働段階): ミーガンは、すべてのテストに合格していると確信したら、リリース候補(RC)ビルドを承認し、本番環境にデプロイします。