2009年2月28日土曜日

万葉集をトークンに分ける

<自己紹介>
私の生業(なりわい)は,ソフトウェアの保守開発です。
仕事では,ときどき10年,20年前に作られ,その後何人もの人により手直しが加えられ,設計書も古いままや修正差分資料しかないソフトウェアをリバース・エンジニアリング(普通のソフトウェア開発と逆の技術手順という意味)することがあります。
その作業では,コンピュータへの命令の羅列であるプログラムから,最初に設計したエンジニアの苦労や考え,スキルレベルの推定が必要になることがあります。また,最初だけでなくその後に手直しした(保守開発をした)エンジニアの苦労や考え,スキルレベルも推定が必要となることもあります。
この推定作業は,分析力,理解力,推理力などを要するものですが,何よりも今までいろいろな技能レベルのエンジニアが作ったプログラムを数多(あまた)見てきた経験を持ち,欠陥の修復だけでなく,より魅力のあるソフトウェアにする作業の経験の多さが必要不可欠な能力の一つです。
これには,箸にも棒にもかからないようなひどいプログラムも読みこなし,限られた予算の中で最適に修正する力が必要となります。「正しいプログラミング教育は最新のプログラム言語でプログラムの作り方を教えることで十分。古くてひどいプログラムを見せる必要がない。」と考えている人たちにはまったく相入れない作業なのかもしれません。
最近,プログラムのリバースエンジニアリングを支援するツールもありますが,このような設計思想や関係技術者のスキルまで推定してくれるものは知りません。
<ようやく万葉集>
さて,この仕事の経験から,学生時代少し嗜(たしな)んだ万葉集をリバース・エンジニアリングしてみよう最近考えるようになり,昨年から少しずつ作業を進めているところです。
この目的は,万葉集は何のために編集されたのかを,私的に勝手に推理することです。万葉集は数多の研究者が過去からさまざまな分析や研究を行っていますが,それらを参考にするのは自分なりの分析が済んだ後にしようと考えています。
なぜなら,この作業は先入観を極力排除することが重要だと考えているからです。まずは,自分のソフトウェア保守開発の経験を主体に万葉集をリバース・エンジニアリングをしてみる。最終的に,それが万葉集の研究定説とどれほど違いがあるのかの検証は後のお楽しみという考えでいるのです。
<お断り>
このブログでは,リバース作業途中で気づいたことを自分勝手にその都度出しますから,次のように研究として見て頂くには堪えないものです。あくまでも単なる読み物とお考えください。
・まったく体系的でない順序で投稿します。
・ごく限られた範囲による調査による想像の羅列です(前言撤回のオンパレードの可能性も)。
・単純な理解不足による間違い・勘違いも一つの作業過程(途中段階)として許容の範囲と考えます。

0 件のコメント:

コメントを投稿