今日も昨日の続きでコーディング。
 まずは、ソフトウェアで行なっている科学計算にある違い探し。資料の文献を読み直し、物理定数を再確認し、いくつかの典型的な数値にたいする結果を手計算で求める。その上で、ソフトウェアに同じ計算をさせたときに同じ結果が得られるかをチェックする。間違いはすぐに見つかった。ある場所でメートルからミリメートルに換算するときに1000倍するのを忘れていた。そこと関係する箇所を直したら妥当な結果が出るようになった。
 午後からはファイル保存に関する変更を進めた。この変更はオブジェクトの所有関係が逆転させる必要があったりと、いささか手間がかかるので、リファクタリングしつつまずは中間段階の状態に持って行く。難しくは無いけどコード量がそこそこあって面倒くさい。
 まだやることは残ってはいるがそこそこ形になったので、帰宅前にこの2日間作業してきたソフトウェアをメールに送付して共同開発者全員に送っておいた。メール本文には変更点のリストと未実装項目を記載しておいた。いつ動作チェックをしてもらえるかは分からんけど。

 夕方、上司から以前に作った制御ソフトのバグ報告と機能追加を言われた。バグはともかく、この後に及んで機能追加とか勘弁して欲しい。しかもハードウェアの設計の練り込み不足をごまかすためにホストとの通信量を大幅に増やすとか…。通信量が増えて問題があるかどうかは多分に定量的な話なので実際にやってみないと分からない。既にずいぶん冗長な通信になっているので心配ではある。まあ言われた通りに実装はしてみるけど。
 それにしても美しくない設計だ。その場しのぎの建て増しをくり返した家屋みたい。この装置のソフトウェアは上司が全部決めるというので、ひたすら言いなりに作ってきたけど、やっぱり仕様がふらふらしてアーキテクチャに無理が出ている。ユーザーインターフェースにも「それは無いでしょう」と突っこみたくなるようなぞんざいなところも少なくない。(なぜユーザーの入力項目にマイコンの名前が入っているのか?)かと言って立て直しする許可も出そうにないし、とにかくもう早く終わりにしたい。