3.ヴァージョン履歴・デバッグ情報 または 死闘の記録−その2−

本記録は、景観シミュレータの公式な開発が終了し外注先から納品のあった1996年3月以降に、記録を取り始めた「作業報告」を整理したものである。

この期間、並行して特別研究「成熟都市に向けての都市解析データの整備と都市評価プログラムの開発」を行っており、その成果が今回初めて発表する「成熟都市シミュレータ」となっている。しかしながら、多くの労力と時間は、既にユーザーのある景観シミュレータに対する現場からのバグ報告・改善要望に費やされた。研究活動としては、新しいロジックの実現は興味深いものであるが、成果の仕上げ段階で、実用的なものとするのは、発注者側・ロートルの役割である。

1996年4月から前版を上辞した11月までは、兎に角動くことが目標であった。その後、約2年半の間は、別途土研や工事事務所予算で機能追加の行われているVer.3.24.0から離れて、2.0X系列については、機能追加よりも、既にある機能の安定化を最優先の目的とした。データを作成中に、すぐに落ちるようなソフトでは、仕事には使えない。まず、表示が確実にでき、次にロード・セーブが確実にできること。随所にエラーメッセージを入れ、様々の原因によるシステム・ダウンを可能な限り除去することは、ある意味で探偵のような想像力と推理力を要求する作業だった。

?9711月以降は、ユーザー・インターフェースの一貫性向上にも多くの改善を行った。その中で、システム的に用意した機能で、ユーザー・インターフェースが未実装のものについては、作り込みを行った。

時々落ちるのは、ポインタの使方の一貫性欠如によるものが多い。しかし、終了時に大量のメモリー・リークが残るようなシステムでは、発生箇所を特定することはきわめて難しい。メモリーブロックへのアドレスを別のポインタにコピーし、コピー先で解放しても、当面はメモリの内容は変らないから一見正常に機能する。しかしそのメモリが別の目的に取得され書換えられた瞬間に落ちる。これは原因を特定しにくい。そこで、メモリ取得時に記録を取り、記録にないアドレスの解放を検知したり、解放前にわざとメモリの内容を落ちやすい内容に書きかえる等の方法で追詰め、各種操作の可逆性を確保し1999年3月には殆どリーク皆無を達成した。これにより、残りのバグが非常に発見(原因特定)容易となり、信頼性・安定性が格段に向上した。韓国語(ハングル)版への移植や、成熟都市シミュレータとの連携や、様々のOS上でのテストは、潜在バグの発見に大いに貢献し、バグ報告を歓迎する雰囲気となった。

以後、複雑なディテールを有する建築物の入力等、実務に使用しながらの、操作性向上のための改善、及びサンプルデータの整理と並行したデータベース入力エディタやブラウザ等のデバッグを行い、現在に至っている。

アイデアの段階から少なくとも動くまでの道程より、一回動いてから常に動くまでの道程の方が寧ろ長い。しかし、世界に誇る日本の建築技術と同じく、地道で丁寧な仕事の積み重ねが、ソフトのアーキテクチャの世界においても、日本人の創造的可能性の下支えであることを実感した。DR.H.K.