6話:デバッグをしてみよう(机上デバッグ)
オウスは館を出てそのままクマソに着いた。
着いたが様子がおかしい。
必ず警備の兵に見つかり、バッドエンドとなる。
どうやら選択を間違えた感じをうける。が、選択肢がない。
話が進まないので、別のところで作業しているミィさんの元に向かい、質問してみることにした。
「質問があるのですがよろしいでしょうか」
「ちょっと待ってね、、、はい、いいわよ」
「オウスがクマソに到着して館に攻め入るんですが、必ず見つかりバッドエンドになってしまいます」
「あぁそれね。聞いている。いい機会だから詳細設計書と見比べて」
「・・・詳細設計書とは何でしょうか。」
「そうか、それも教えてないわね、普段の教育とは全然違う形で進めているから、、、ほら、今私が書いているこれが詳細設計書よ。どうせなら該当部分がいいわね」
表計算ソフトで書かれている文章というか文字の羅列を見せられる
『
2.4 "館をでる映像(callEizoExitYakata)"を呼び出す
2.5 "選択肢 クマソ or イセ"(choiseKumasoOrIse) を呼び出す
2.6 "選択肢 クマソ or イセ"(choiseKumasoOrIse)の戻り値が"イセ"の場合
→イセルート(callIseRoot)を呼び出す
上記以外
→何もしない
2.7 クマソルート(callKumasoRoot)を呼び出す
』
それに対してプログラムがこうなっているの
『
callEizoExitYakata
String choiseValue = "";
if(choiseValue.equals("イセ")){
callIseRoot
}
callKumasoRoot
』
「ようするに、プログラムをかけるように文章化したものが詳細設計なわけ。前に話したウォーターフォール図で説明したように、詳細設計を行ったのちに実装だから、詳細設計の方が先だね。」
「プログラムを直接書くんじゃないんですね」
「さらにこの詳細設計の元となる基本設計書があるんだけど、それはまた別の機会に説明するわ。で、設計書とプログラム、どこが違っているかしら?」
「ええっと、書いていることがよくわからないですが、設計書にはあるけどプログラムにない箇所を探すと
2.5 "選択肢 クマソ or イセ"(choiseKumasoOrIse) を呼び出す
が書かれていないような」
「そうね。戻り値とかif文とかequalsとか色々覚えてほしい文法はあるけど、それは別途Javaの教本を読んで勉強してね。」
「はい」
「そういうわけで今回のは実装漏れ。記述すれば解決ね」
『
callEizoExitYakata
String choiseValue = choiseKumasoOrIse;
if(choiseValue.equals("イセ")){
callIseRoot
}
callKumasoRoot
』
「今回のように設計書とプログラムを見比べて行う行為を机上デバッグというの。おかしいと思ったらまず設計書とプログラムを見比べてね」
そう説明するとミィさんは自分の作業に戻った。
改めて物語を追う。
きちんと「クマソに向かう、イセに向かう」の選択肢が表示され、イセに向かうを選択する。
するとオウスはイセの神社に向かう。
「叔母様、助けてください」
どうやら親戚の家らしい。
「あらあら、どうしたの?オウス。ひさしぶりね」
「実は、父の命令で、クマソタケル兄弟を征伐しなくてはならなくて」
「あー、あの兄弟は西国最強って噂よ、警備もすごくて入り込むのも大変だって」
「そうなんですよ。そこで、着物を借してほしいんです。」
「着物?いいけど、、、、どうするの?」
「ありがとうございます!」
オウスは足早にクマソに向かった。




