「ソフトウェア設計」とは|テクスタ辞書


「ソフトウェア設計」とは、ソフトウェアの開発や問題解決の為に、プロセスなどを計画することです。企業やプロジェクトによって、ソフトウェア設計を行うタイミングはさまざまですが、対象のソフトウェアの仕様などが決定した後に行われるケースがほとんどです。

ソフトウェア設計の特徴

ソフトウェア設計とは、ソフトウェアやプログラムに対する要望や希望を実現する為に行う、構想や工夫、またその過程を意味します。ソフトウェア設計にもさまざまな方法がありますが、特に用いられているのが、「オブジェクト指向設計」と「構造化設計」と呼ばれる手法です。

オブジェクト指向設計は、対象のプログラムやソフトウェアを、将来的に変更や更新などがしやすくなるよう、抽象化することです。構造化設計は、基本的な構造のみを使って、プログラム全体を分割します。そして、細かい部分から段階的に処理していく方法です。古い技術ではありますが、ソフトウェア設計に欠かせない手法として、未だに使われ続けています。

その他にも、ソフトウェア設計に関する手法はたくさんあります。いずれの方法も、ソフトウェアを分解する要素や、分解する為の言語的表現や図式的表現を含んだものばかりです。これらの要素とそれぞれの特徴を理解して各手法を活用することで、ソフトウェア設計はより効果的且つ効率的なものになると言われています。

ソフトウェア設計のポイント

ソフトウェア設計の際に考慮すべき点は、状況によってさまざまですが、特に「拡張性」「耐久性」「頑丈性」「信頼性」「互換性」「保守性」「セキュリティ」「モジュール性」「再利用」の9つのポイントは、重要視されています。

拡張性は、ベースにしているソフトウェアの構造を大幅に変更しなくても、新しい機能を追加できる要素のことです。

耐久性は、システムの構成要素に障害などが発生しても、自力で回復したり耐えたりする性能を指します。

頑丈性は、不正な動作や誤作動があっても、正常に作動できる性能を意味する要素です。

信頼性は、一定の期間まで、何があっても作動し続ける性能を指します。

互換性は、過去のバージョンや他の商品と、互いにやり取りができる要素のことです。

保守性は、問題が起こっても、更新するなどして、特定の状態に回復できるかどうかを指します。

セキュリティは、ウイルスなどに耐え、情報や機能を守る性能です。

モジュール性は、ソフトウェアを構築する要素に対して、考慮した設計であるかどうかを意味します。

再利用は、ソフトウェアのコンポーネントを、他のソフトウェアやシステムに活用できるかどうかを指します。