開発工程
システム開発は、ある決められた工程に沿って行われます。その工程のことを開発工程と言います。システム開発の手順くらいに考えてくれて大丈夫です。
例えば、休日に友達と遊園地へ遊びに行く時をイメージしてください。朝起きていきなり遊園地で遊ぶことはなく、起きてから遊ぶまでの間に「準備、移動、待ち合わせ」という工程を挟むと思います。
これは「友達と遊園地で遊ぶ」という目的の為に必要な工程になります。
開発工程も同様で、「システムを開発する」という目的の為に必要な工程があります。
開発工程には、いくつか種類があり、今回はウォーターフォールモデルという最も一般的な開発工程を紹介します。
ウォーターフォールモデル
ウォーターフォールモデルとは、各工程に分けて段階的に開発を行う開発の流れです。
各工程とは、「要件定義、基本設計、詳細設計、実装、テスト、リリース」に分けられます。これらの工程は、要件定義からリリースまで必ず順番通りに行います。よって、各工程や開発全体の進捗管理がしやすいことが特徴です。
基本的に前の工程へ戻ることはありませんが、仮にテストのタイミングで基本設計のミス(バグ)が発覚した場合、やむを得ず基本設計からやり直すことになる為、多大な工数が発生します。この様な手戻りがない様に、各工程を正確にこなす必要があります。
要件定義
要件定義とは、開発者がシステム開発の依頼者(クライアント)に対して、どの様な機能を求めているか聞き取ってまとめることです。簡単に言えば、どの様なシステムにするかをクライアントと一緒に決めようと言うことです。
基本設計(外部設計)
基本設計とは、要件定義で決まった仕様をどの様に実装するか決めることです。
主に、外側から見てわかるシステムの動きを決定します。具体的に、画面イメージや機能一覧やデータベースのテーブル定義などは基本設計で決めます。
詳細設計(内部設計)
詳細設計とは、基本設計で決められたことを、システム開発を行う際に技術的にどの様に作るかを決めることです。要は、後はプログラムを書くだけと言う状態にすることです。具体的には、システムのアーキテクチャ・クラス・メソッドを決定します。
実装
実装とは、設計を元にシステムを構築することです。つまり、プログラムを書く工程になります。
実装者は、作成したプログラムが正しく動作するかどうかを確認する作業も行います。
テスト
テストとは、設計通りにシステムが作られているか、設計自体に問題がないか、要件通りの動作をするかを確認することです。
テストに関しては、以下記事にて詳しく解説しています。
リリース
リリースとは、作成されたシステムを依頼者に提出・公開することです。
公開時にも、問題なく公開されているかの確認を行います。
まとめ
ウォーターフォールは開発工程の基本と言っても過言ではありません。
エンジニア成り立ての頃はテストから業務を行いますが、経験を積むと開発工程の上流(設計や要件定義)にも関われる様になります。
1日でも早く上流の業務に関われる様に、日々精進しましょう。