メインイメージ画像

ソフトウェアの設計には高い知識と技術や幅広い視野が求められます

どのようなものにも順序がありますが、ソフトウェア開発というものは、要件定義、設計、実装、テスト、保守といった流れで進行します。設計は、顧客の話をとりまとめて要件定義した後の、本格的な開発プロセスの最初の段階になります。ソフトウェアの設計では、ソフトにどのような動作をさせるか、どのようにプログラムを組み合わせるか、というような概念的な部分を決めます。具体的にプログラムを書くのは、次の実装段階で行い、設計の段階では実行しません。

設計は、一般的に上流工程と呼ばれます。

ソフトウェア開発を川の流れに例えた時に、設計から実装へと流れが出来ているので、設計が上流となり、実装が下流となるのです。

実際、設計の良し悪しが、そのまま実装段階にもインパクトを与えますから、ソフトウェア設計を背負う人には、高い知識と技術、幅広い視野が求められます。あまり大きくない開発であれば、設計も実装も全部一人で行うこともありますが、大規模なソフトウェア開発なら、チームで開発に取り組むのが通常です。複数の会社で作業工程を分割することもよくあり、設計を大手の会社が担当して、実装については中小の会社が担当したりします。その際、設計の担当者はシステムエンジニア、実装の担当者はプログラマーと呼ばれます。

大企業には、プログラムを全く書いたことのない設計専門のシステムエンジニアもいるのです。

設計のやり方は、2通りあります。1つは、最初から完璧な設計を目的に行うやり方です。古くから伝統的に用いられている方法であり、現代でも主流な方法です。もう1つは、設計と実装を反復的に行うやり方です。

この方法では、初期の段階において、設計の完璧さにこだわりません。実装作業を通して問題に気づいたら、それを設計へフィードバックすることにより、設計の完成度をより高めていきます。どちらの設計の方が、もっと良いソフトウェアを完成させられるのかは、ケースバイケースです。要件がきちんと定まっているのなら、前者の方法が適していますし、そうではないのなら、後者のやり方が適しています。

更新情報