メインイメージ画像

ソフトウェア開発で重要な設計と実装について

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

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

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

実際、設計の良し悪しが、そのまま実装段階にも左右しますから、ソフトウェア設計の責任を持つ人には、実装を担当する人よりも、高いスキル、設計の全容を把握しながら開発にあたることが重要になります。小規模なソフトウェア開発なら、設計も実装も全部一人ですることもありますが、大規模なソフト開発なら、チームで開発に取り組むのが普通です。複数の会社で作業工程を分担することも結構あり、設計を大手の会社が担当し、実装に関しては中小の会社が担当したりします。その場合は、設計の担当者はシステムエンジニア、実装の担当者はプログラマーと呼ばれます。

大手の会社には、プログラムをほとんど書いたことのない設計専門のシステムエンジニアがいます。

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

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

ody>