第5回レポート(7/28 締切)
1. 前回のガソリンスタンドの例を function-oriented design で書きなさい。前回のオブジェクト指向デザインについても、修正したい場合は再チャレンジして出してもらってかまいません。
2. 次のa〜cのいずれかを回答しなさい。なるべくaを回答すること
(a) これまでの実験演習、あるいはその他の場(趣味やアルバイト等)でプログラムを作成した経験の中で、ソフトウェアの誤りの発見に苦労した例や、誤りが発覚するのが遅れた例などを一つ挙げ、その際のテストの方法や設計方法について反省・改善すべき点があれば書きなさい。
(b) aで回答可能な例を自分で持っていなければ、ソフトウェア開発経験の豊富な友人等に事例を取材して書きなさい。
(c) bの取材も困難な場合、社会的に問題になったソフトウェアのエラーを題材にして書きなさい。例えば2000年問題で小さな事故の発生した事例について、どのようなテストあるいは設計をしていればそのような事故が防げたか。
3. 一行の英文テキストを入力し、連続した空白を一個の空白に置き換えて出力するプログラムがある。例えば、"This△is△△a△△△pen."
(△は空白) を入力すると、"This△is△a△pen." を出力する。このプログラムをテスト (black-box test)するのに必要なテストケースを書き下しなさい。仕様の詳細で不明点があれば、適当に仮定し、その仮定を示すこと。
4.プログラムの Static Verification (レビュー) の利点を、Dynamic Verification と比較してまとめなさい。
その他、講義の感想など適宜書いてもらってかまいません。