今回はウォーターフォール型開発プロセスを例にとって、開発プロセスを構成する各プロセスを整理していきます。
ウォーターフォール型開発プロセスは、一般的に下記プロセスから構成され、下記流れで進行していくと定義されます。
「要求分析」⇒「要件定義」⇒「外部設計」⇒「内部設計」⇒「製造」⇒「テスト」⇒「運用」
(「外部設計/内部設計」の組み合わせは「概要設計/詳細設計」の組み合わせで説明される事があります。この相違点も後で整理します。)
(「テスト」プロセスは、開発規模などによって、「単体テスト→結合テスト→総合テスト」に分割される事があります。)
では、各プロセスの内容をざっと定義していきます。
a)要求分析…どんなシステムを作るのか(何を実現したいのか)を整理する。現実的には、最終決定のために、予算や開発期間なども併せて整理する事になります。
b)要件定義…要求分析で明らかになったニーズを、システムに対する機能要件として明確に(何をどうすると)定義します。人間系で対応する事柄も、その旨を明記して併記しておく方が良いです。
c)外部設計…前プロセスで定義された機能を、想定しているコンピュータシステムの前提条件(Web型処理とするのか?クライアントサーバ処理とするのか?等)や制約条件を考慮しながら写像を作ります。一般的には、UI(UserInterface=画面、帳票)設計、データベース設計、処理設計、運用設計、等を行います。
d)内部設計…外部設計の成果物を元に、想定しているコンピュータ上に実装するための具体的な設計をします。
e)テスト…この稿では省略
f)運用…この稿では省略
「外部設計/内部設計」vs「概要設計/詳細設計」…前者は、何を作るのか(What)を整理するプロセスと、どう作る(how)を整理するプロセスを明確に(前後に)分けて進める時に使います。後者は、具体化する作業をらせん階段状に進めていく時に使います。最近は、顧客を時間的な制約から早く解放するために、また、内部設計以降の開発作業を外部委託するために、前者のプロセス組み立てを採用することが多いです。