2011年6月12日日曜日

VC++2010でGUI版TestRunnerを作る その8

「構造化手法」に比べ「オブジェクト指向」では、「どこに関数と変数を置くか」という悩みを強く感じる。

「構造化手法」の場合、関数の上下関係に注目して設計していたが、「オブジェクト指向」では、クラスの役割という概念が新たに加わり、どのクラスがどの機能を持つか考える。ここをしっかり考えておかないと、たちまち複雑怪奇でブクブク太ったメンテナンス性の極めて低い「巨大クラス」が出来上がってしまう。

始めに、どのクラスがどの役割を担うかを考え、役割にふさわしいメソッドとパラメタを所有させ、その上でクラス間の関連を定義していく。

しかし、実装を進めていく過程で、想定していなかった事象が起こり、最初に決めた構造が破綻することがある。その時、あくまで当初設計した構造を維持しようとすると、構造にひずみが生じ、シンプルな設計が維持できなくなる。そこで、「あるべき姿」を考え、構造を変更し、よりシンプルで分かりやすい構造へと変化させる。

その結果、開発者には分かりやすいが、第三者からみると、分かりにくい設計になる可能性があることを、理解しておく必要がある・・・。






言い訳終了。
がんばって開発したものの、設計思想が理解できなかったり、助長に思える部分があり、自分なりにシンプルで分かりやすいコードを心がけて開発したのだが、あまり納得の行く出来にはならなかった・・・。

Windowsアプリのスキルと、CppUnitの設計思想に熟知していれば状況は変わったかもしれないが、「趣味の日曜プログラマ」の限界と割り切り、「動作することを」を最優先とした結果である。



テスト一覧から項目を選択し、実行する所まで完成した。


全項目を選択して実行












クラス1つ選択して実行












テストケース1つ選択して実行(成功)












テストケース1つ選択して実行(失敗)













とりあえず、下記にファイルを置いた。興味がある方はどうぞ。
■TestRunnerEE rev.11

あとは「エラーメッセージ表示」を残すのみとなった。
それができたら、DLL化を目指す予定。

0 件のコメント:

コメントを投稿