上流設計とは

上流設計の定義

上流設計を定義すると、「ITシステム開発における、RUPやウォーターフォールモデルの設計プロセスのうち、おもに初期フェーズに行う必要がある設計行為や設計図書」のこと。目下、関係のエンジニア数が増えてきているアジャイル等の比較的新しい開発手法でも、要求定義や、プロトタイピングなどを行うフェーズを、上流設計とする場合もある。

上流設計は、ビジネス上、わりと重要。なぜかというと、上流設計がヘボいと(つまり、ユーザ要求設計書がユーザに書類上で承認されていなかったり、プログラミングの経験もロクにない"wannabeITエンジニア"が独断で設計書作ってゴリ押しして通した場合などなど)、あとあと手戻りが多くなり、デスマーチ化したり、予算オーバーでプロジェクト停止になったりする。
一方、プログラミングの知識がなくても、ユーザと開発者の両側に対するコミュニケーションが謙虚で素晴らしく、上手な設計図書を仕上げるエンジニアもたまにいる。
上流設計がまずいと、会社は、システムを利用する他のパートナー企業や顧客、取引先に迷惑をかけたり、ITコストがうなぎ登りに上昇して、財務が悪くなったりする。

ウォーターフォールモデルの開発手順は、おおまかに分けると、こんなプロセスになる。
1.要求定義
2.外部設計
3.内部設計
4.プログラミング
5.結合テスト
6.システムテスト
7.運用テスト

これらのうち、1と2あたりが、上流設計と呼ばれることが多い。

コメントする