「開発プロセス」とは|テクスタ辞書


開発プロセスとは、開発の目的物を完成させるまでに実施する作業について、どのような作業を行っていくのかを整理したものを指します。開発プロセスの対象となるものは、システムやソフトウェア、ハードウェアなど様々な種類があります。

開発プロセスの特徴

開発プロセスは、システム開発を行う際に実際に行う処理と手順を定めたもので、いくつかのモデルがあります。

その一つが「ウォーターフォール型」と呼ばれる開発プロセスです。ウォーターフォール型は、開発工程をフェーズごとに分け、前のフェーズで出力された作業成果物が次のフェーズの入力になる、というまさしくウォーターフォールのような形で工程が進みます。

ウォーターフォール型は、従来からある建築物や工業製品の製造では一般的で、長く用いられてきました。しかし、はじめてシステム化をする場合や複雑なシステムを組む場合に、最初の要件定義の段階で全てを洗い出すことが難しい、という問題もあります。確認・検証プロセスが開発プロセスの後半にさしかかるまでないため、その漏れの発見が遅れてしまうことが多いのです。

ウォーターフォール型の問題点をカバーできるモデルとしては、「スパイラル型」と呼ばれるものがあります。スパイラル型では、その名の通り、計画・要件定義・設計というフェーズが、それぞれ1つの渦巻きの線に該当します。その渦巻きの線が1巻きする間に、目標を設定し、分析と開発を行い、検証の段階を経て、次の段階の計画を策定します。1巻き1フェーズでとらえ、その1フェーズの中に目標設定から分析・開発、検証まで行った上で次の段階の計画を策定する、という流れになります。

この方法であれば、要件定義の漏れを早めに見つけることができるため、対応も早くなり、無駄な時間とコストをかけずにすむわけです。ただし、このモデルの場合には、ユーザーの声を随時拾えてしまう柔軟性ゆえに、なかなか開発プロセスが完遂とならないこともあります。

開発プロセスには、他にも低コストかつ短期間での開発に向いているRAD(Rapid Application Develomentの略)、細かく開発とテストを繰り返すために要件の追加・変更に柔軟に対応できる「反復型」などがあります。

開発プロセスの具体例

開発プロセスについて、システム開発を例に説明します。

通常、システム開発を行う時には、セールスエンジニアや営業担当者がユーザーから要望・現状などを聞き取っています。その内容に沿う形で、まずはシステムの企画が練られます。

その後、システム方式を設計し(要件定義)、基本設計(概要設計とも呼ばれます)を行います。その基本設計をもとに、細かな設計(詳細設計)を行う段階に入ります。

次に、詳細設計の段階で項目分けを行った各プログラムの設計(プログラム設計)を行い、実際のプログラミングの工程に入ります。

プログラミングが終わると検証の段階に入ります。検証では、プログラム単体のテストを行うプログラムテスト、各プログラムを組み合わせた機能ごとに行う結合テスト、システム全体のチェックを行うシステムテストがあり、その後ユーザ側が検証を行う運用テストへと続きます。

システム開発プロセスの最終段階は、テストを終えたシステムが実稼働を始めた後に行うシステムの運用・保守となります。

開発プロセスの最適化

開発プロセスの全工程において、無駄な資源や労力を割かれることのないよう最適化するためには、まず適切な開発ライフサイクル(英語表記:Systems Development Life Cycle)を選択する必要があります。

開発ライフサイクルは様々なモデルが公開されているので、たいていは、その中から適切なものを選択し、各開発プロセスに沿うようアレンジする方法がとられます。

開発ライフサイクルのモデルとしては、一般的にウォーターフォールモデル(英語表記:waterfall model)、エヴォリューショナリモデル(英語表記:evolutionary model)、インクリメンタルモデル(英語表記:incremental model)などがあり、これらを組み合わせて使われることもあります。