システム開発の流れ

Back to HOME
ウォーターフォール開発でシステム開発を行う場合の、手順を紹介させて頂きます。
ウォーターフォール開発は水が流れるように、後戻りのない順序で進められます。
後戻りがないからこそ、早い段階で全体のボリューム感を見通せるのがウォーターフォール開発のメリットです。
水の流れに例えて、要求定義に近い工程は上流工程と呼ばれ、保守運用に近い工程を下流工程と呼びます。


要求定義(要件定義)


システム開発工程の中での最重要工程です。
「どんなシステムを作成するのか」全体像を決定するフェーズです。
システムエンジニアもしくはコンサルタントがヒアリングを行い、クライアントのニーズを言語化します。

クライアントが最初からシステムの詳細な完成イメージを持っていることは実は少ないです。
この状態からいかに具体化するのか、システムエンジニアもしくはコンサルタントの力量が問われます。
この工程が失敗していると、システム開発全体に致命的な影響が出ます。

要求定義が完了した時点で、システムのボリューム感が確定し、予算と納期の見積もりが可能となります。

基本設計(外部設計)


ユーザインターフェイスを設計する工程のことを、基本設計と呼びます。
基本設計は、外部設計とも呼ばれます。
外部からの視点で、見える範囲(システムを操作して触れる部分)を設計する、という意味で、デザインも含めます。
クライアントから見える部分はこの工程までとなりますので。
「要求定義から基本設計工程までについて、クライアントサイドの承認が取れていること」が重要です。
承認を取らずに先の工程まで進めてしまった場合、後々、トラブルが発生する可能性があるので、注意が必要です。
またこの工程では、システム実行環境の決定も行います。

詳細設計(内部設計)


プログラムの設計をする工程のことを、詳細設計と呼びます。
ここからはクライアントから見えない部分の設計になり、基本的にクライアントの承認は取らずに進めます。
この工程までがシステムエンジニアの仕事となり、次のプログラミングからが、プログラマーの仕事となります。
システムエンジニアとプログラマーの違いは何か?という質問がよくありますが。
建築工事に例えると、建築設計士がシステムエンジニア、大工がプログラマーに相当します。

プログラミング


仕様を満たすプログラムを製造する工程です。
詳細設計に従って、プログラマーがプログラムコードを作成します。

プログラミングとコーディングの違いは?

プログラミングは、コンピュータに指示する一連のロジックを組み上げる作業のことを指します。
コーディングは、ソースコードを作成する作業のことを指します。
ソースコードは、HTMLやCSSのようなマークアップ言語のソースと、プログラミング言語のソースの両方を指します。

ただし、近年の一般的な用法としては、コーディングとプログラミングは意図的に区別されます。
その際、コーディングはHTMLやCSSのマークアップ言語を作成することを指します。
プログラミングは、JavaやPHP等の、プログラミング言語のソースコードを作成する作業のことを指します。

テスト


プログラムの動作が意図通りになっているか。
テストして不具合を洗い出し、修正する工程です。

この工程になれば作業は終盤で、残りあと少し、というイメージだとしたら、そうではありません。
実際は、システム開発の大部分はテスト、というイメージです。

あなたはタイプミスをすると思いますが。
タイプミスをする頻度で、プログラムにミスが1つ混入する。
これぐらいのイメージを持っておけば、実情に近いと思われます。

テストは、システム開発側が行う内部テストと、クラアント側で行う受け入れテストの2種類があります。
受け入れテストは必ず行って頂くことをお勧めします。
運用開始後のトラブルを軽減するためと、運用開始後の瑕疵責任を明確化するためです。

リリース


受け入れテストが完了し、運用しても大丈夫と判断されたら、システムをリリースします。
ただし、テスト環境と本番環境の違いにより発生する不具合もありますので、リリース直後は当面の間、特に注意する必要があります。

運用・保守


運用・保守の工程ではテスト工程で発見できなかった不具合の対処をしたり、運用サーバで発生したトラブルの対処をします。
実行環境をアップデートして脆弱性の対処をすることもあります。


Back to HOME