出典: フリ?百科事典『ウィキペディア(Wikipedia)』
| この記事は
??可能
な
?考文?や出典
が全く示されていないか、不十分です。
出典を追加
して記事の信?性向上にご協力ください。
(
このテンプレ?トの使い方
)
出典?索
?
:
"ソフトウェア設計"
?
ニュ?ス
·
書籍
·
スカラ?
·
CiNii
·
J-STAGE
·
NDL
·
dlib.jp
·
ジャパンサ?チ
·
TWL
(
2011年12月
)
|
ソフトウェア設計
(ソフトウェアせっけい、
英
:
Software design
)は、
ソフトウェア
のための問題解決と計?の工程である。ソフトウェアの目的と仕?が決定した後で、
ソフトウェア開?者
が
設計
をしたり、?門の設計者が開?計?を立てる。細かい
コンポ?ネント
や
アルゴリズム
の??だけではなく、
ア?キテクチャ
的?点での?討も行われる。
ソフトウェア開?工程
での
要求分析
によって、
ソフトウェア工?
における
仕?
が確定する。そのソフトウェアがユ?ザ?との?話を必要とするものか、あるいは
ユ?ザ?中心設計
であれば、ソフトウェア設計には
ユ?ザ?エクスペリエンス設計
も?わり、
?コンテ
なども仕?に含まれることになる。完全に自動的に動作するソフトウェア(
ユ?ザインタフェ?ス
のないソフトウェア)であれば、ソフトウェア設計は?なる
フロ?チャ?ト
作成程度の作業となるかもしれない。また、
統一モデリング言語
(UML) などの半形式的手法もある。いずれにしても、ソフトウェア設計工程の成果物としては、何らかの
ソフトウェア設計文書
が生成される。
考慮すべき点
[
編集
]
ソフトウェア設計にあたっては、??な?点を考慮する必要がある。ソフトウェアが達成しようとしている目標を反映しているため、それらは重要である。そのような?点の一部を以下に?げる。
- ?張性 - 基盤となるア?キテクチャに大きな?更を加えることなく、新たな機能を追加できること。
- 頑健性 - 高負荷?態や不正な入力があっても動作すること。例えば、使用可能なメモリ量が少なくても動作するよう設計する。
- 信?性 - ある一定期間まで、特定の困難な?態になっても、機能すること。
- 耐障害性 - コンポ?ネントの障害が?生しても、それに耐えたり、回復させたりできること。
- セキュリティ - ?意ある行?に?して耐性があること。
- 保守性 - ある一定時間で、特定の?態に復?できること。例えば、アンチウイルスソフトのように、定期的な更新が可能であるなど。
- 互換性 - 他の製品と相互にやりとりできること。あるいは、過去の代替すべき製品と互換であること。
- モジュ?ル性 -
モジュ?ル性
を考慮した設計。それによって保守性も向上する。開?においてもコンポ?ネント?位で??しテスト可能などの利点がある。また、開?作業の分割が容易になる。
- 再利用 - モジュ?ル性がよければ、個?のコンポ?ネントを他の場面で再利用できる可能性が生じる。
デザインパタ?ン
[
編集
]
ソフトウェア設計者やア?キテクトは、設計上の問題が?存の解決?みの問題と同じであると?づくことがある。よくある問題についての解法のテンプレ?ト(あるいはパタ?ン)を
デザインパタ?ン
と呼ぶ。過去に評??みのデザインパタ?ンの利用によって、ソフトウェア開?工程が加速される。
設計方法論
[
編集
]
設計方法論は?際のシステム設計におけるテンプレ?トやフレ?ムワ?クの役割を果たす。?際の設計工程を?純化し、品質向上のための設計原則の適用を可能とする。
必要性
[
編集
]
ソフトウェア設計文書
により、
プログラミング
を開始する前に制約?件、要求仕?などが明らかとなり、?討される。
シミュレ?ション
や
プロトタイプ
の構築によって設計?更となる場合もある。要求分析や計?立案せずに、プログラミングしながら設計することも可能だが、複?な大規模プロジェクトではそのような工程の省略は選?肢として考慮されないのが普通である。プログラミングの前に設計工程を置くことで、ソフトウェアの?象領域の?門家と設計者がプログラマと共同で作業し、ソフトウェアの利便性と技術的正?性を高めることができる。
?連項目
[
編集
]