« アルミニウム合金の腐食 | トップページ | 高専祭 »

プログラミングの迷路と実験手法

 このブログでいくつか自作のソフトをフリーソフトとして公開しています。それなりに作るのは大変なのですが、この規模ですとコードの構造は大体頭の中に入っています。建物にたとえると、戸建て家か5階建て程度のマンション・・・というところ。「3階の北側の居間の床下には電気配線が通っていて、そこで断線が起きると5階が停電になる・・・」という具合かな。プログラミングの期間は長くて1ヶ月。

 今作っているものは、私の経験ではこれまで最大。すでに1年半以上の期間を費やしています。ここまでくると、頭の中にすべての構造を再現することはできません。不具合を見つけて修正するデバグをしているのですが、これまでとは感覚が違います。

にほんブログ村 科学ブログ 技術・工学へ
ポチッとクリックで応援

 この数日格闘したのは次の現象。「4ポイントのDACを描いて、2点目がよろしくないので、この点を削除してもう一度ポイントを指定して描きなおす」という機能が実装されているのですが、この描き直しが1回はうまくいくが2回目はエラーが出てくることに気づいてしまいました。 

Dac

 まずやることは、現象の確認です。どのような条件で、期待される結果と異なるそのような結果になるのか。この確認がぼけていると、次の工程がハチャメチャになります。

 次にやることが原因を突き止めること。これが厄介です。小さなコードですと、処理の手順(プロシージャ)を追うことで大体わかります。今回のコードでは、さまざまな条件が複雑に絡んでいて、これが難航します。なかなかわかりません。そんなことは起きないことを想定してアルゴリズムを組み立てているのですから・・・。

 そこでやることは、「仮説」を立てての「実証実験」です。どの変数が悪さをしているのかを突き止め、変数の値の取得・計算のプロセスを追います。

 今回のケースでは、削除したいデータの値を削除した後、順番を並び替えるアルゴリズムを書いていました。そこでの値の受け渡しと、値を受け渡したという証拠の残し方の問題でした。

 感覚的には、物理と言ってもいいし自然と言っても良いのだけれど、そうしたものを相手にした実験のような感覚です。自分で作ったものではあるのだけれど、その動きが自分でも良くわからない、わかるためには実験手法を使って確認している感じです。

 私のコーディングが、今回は意識して後から読みやすいように注意をしたつもりなのですが、まだまだずぼらでいい加減であるということなのでしょう。ただ、昨今の「人間が作り出しながら人間の手のひらの上にない巨大科学技術」の萌芽形態を見ているようで、なんとなく面白かったのでブログ記事にしてみました。

にほんブログ村 科学ブログ 技術・工学へ
科学ランキングは、カルト集団がはびこっていてなんだか嫌になってきたので、技術・工学だけにしました

|

« アルミニウム合金の腐食 | トップページ | 高専祭 »

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/222291/53053599

この記事へのトラックバック一覧です: プログラミングの迷路と実験手法:

« アルミニウム合金の腐食 | トップページ | 高専祭 »