한국   대만   중국   일본 
ソフトウェア設計 - Wikipedia コンテンツにスキップ

ソフトウェア設計

出典: フリ?百科事典『ウィキペディア(Wikipedia)』

ソフトウェア設計 (ソフトウェアせっけい、 : Software design )は、 ソフトウェア のための問題解決と計?の工程である。ソフトウェアの目的と仕?が決定した後で、 ソフトウェア開?者 設計 をしたり、?門の設計者が開?計?を立てる。細かい コンポ?ネント アルゴリズム の??だけではなく、 ア?キテクチャ 的?点での?討も行われる。

ソフトウェア開?工程 での 要求分析 によって、 ソフトウェア工? における 仕? が確定する。そのソフトウェアがユ?ザ?との?話を必要とするものか、あるいは ユ?ザ?中心設計 であれば、ソフトウェア設計には ユ?ザ?エクスペリエンス設計 も?わり、 ?コンテ なども仕?に含まれることになる。完全に自動的に動作するソフトウェア( ユ?ザインタフェ?ス のないソフトウェア)であれば、ソフトウェア設計は?なる フロ?チャ?ト 作成程度の作業となるかもしれない。また、 統一モデリング言語 (UML) などの半形式的手法もある。いずれにしても、ソフトウェア設計工程の成果物としては、何らかの ソフトウェア設計文書 が生成される。

考慮すべき点 [ 編集 ]

ソフトウェア設計にあたっては、??な?点を考慮する必要がある。ソフトウェアが達成しようとしている目標を反映しているため、それらは重要である。そのような?点の一部を以下に?げる。

  • ?張性 - 基盤となるア?キテクチャに大きな?更を加えることなく、新たな機能を追加できること。
  • 頑健性 - 高負荷?態や不正な入力があっても動作すること。例えば、使用可能なメモリ量が少なくても動作するよう設計する。
  • 信?性 - ある一定期間まで、特定の困難な?態になっても、機能すること。
  • 耐障害性 - コンポ?ネントの障害が?生しても、それに耐えたり、回復させたりできること。
  • セキュリティ - ?意ある行?に?して耐性があること。
  • 保守性 - ある一定時間で、特定の?態に復?できること。例えば、アンチウイルスソフトのように、定期的な更新が可能であるなど。
  • 互換性 - 他の製品と相互にやりとりできること。あるいは、過去の代替すべき製品と互換であること。
  • モジュ?ル性 - モジュ?ル性 を考慮した設計。それによって保守性も向上する。開?においてもコンポ?ネント?位で??しテスト可能などの利点がある。また、開?作業の分割が容易になる。
  • 再利用 - モジュ?ル性がよければ、個?のコンポ?ネントを他の場面で再利用できる可能性が生じる。

デザインパタ?ン [ 編集 ]

ソフトウェア設計者やア?キテクトは、設計上の問題が?存の解決?みの問題と同じであると?づくことがある。よくある問題についての解法のテンプレ?ト(あるいはパタ?ン)を デザインパタ?ン と呼ぶ。過去に評??みのデザインパタ?ンの利用によって、ソフトウェア開?工程が加速される。

設計方法論 [ 編集 ]

設計方法論は?際のシステム設計におけるテンプレ?トやフレ?ムワ?クの役割を果たす。?際の設計工程を?純化し、品質向上のための設計原則の適用を可能とする。

必要性 [ 編集 ]

ソフトウェア設計文書 により、 プログラミング を開始する前に制約?件、要求仕?などが明らかとなり、?討される。 シミュレ?ション プロトタイプ の構築によって設計?更となる場合もある。要求分析や計?立案せずに、プログラミングしながら設計することも可能だが、複?な大規模プロジェクトではそのような工程の省略は選?肢として考慮されないのが普通である。プログラミングの前に設計工程を置くことで、ソフトウェアの?象領域の?門家と設計者がプログラマと共同で作業し、ソフトウェアの利便性と技術的正?性を高めることができる。

?連項目 [ 編集 ]