lecture/information/software-engineering/ソフトウェア工学の基本-講義.n.md
ソフトウェア工学の基本
informationsoftware-engineeringundergraduatelecture
導入
この講義で最重要なのは、ソフトウェアは 1 回動けばよいのではなく、変化する要求の中で作り続け、直し続ける対象だということです。
情報工学ではアルゴリズムやデータ構造を学びますが、実際のソフトウェアでは、それをどう組み立て、どう壊れにくくし、どう保守するかが重要です。その視点を与えるのがソフトウェア工学です。
用語と定義
設計 とは、ソフトウェアの構造や責務の分担を決めることです。
テスト とは、ソフトウェアが期待どおりに動くかを確認する作業です。
保守 とは、運用しながら修正や改善を続けることです。
方針
まず「なぜ設計が必要か」を整理し、そのあとテストと保守がなぜ重要かを見ます。
直感的な説明
小さなプログラムなら場当たり的に書いても動きますが、大きくなると変更の影響が広がります。だから、最初から「どこに何を置くか」「あとで直しやすいか」を意識する必要があります。
厳密な説明
1. 設計
設計では、機能をどう分割し、どの部品がどの責務を持つかを決めます。
2. テスト
テストは「動いたからよい」ではなく、「壊れていないことを確認する」ための仕組みです。
3. 保守
要求が変わると、ソフトウェアも変える必要があります。そのため、変更しやすい構造であることが重要です。
見分け方
- 実装だけでなく、変更やテストのしやすさを考える段階ならソフトウェア工学の話です。
- プログラムが大きくなるほど、設計と保守の重要性が増します。
最終形
\boxed{\text{ソフトウェア工学} = \text{設計} + \text{テスト} + \text{保守}}
一言でいうと
- ソフトウェア工学は、ソフトウェアを作るだけでなく育てていくための考えです。