松本 話題は変わりますが、先生が研究されている内容について教えてください。IPA/SECは、ソフトウェア・エンジニアリングへの取り組みを中心としてスタートした組織です。先生はソフトウェア・エンジニアリングの中でもプログラム解析を中心に研究されていますが、そこをご専門にしている理由は何でしょうか?
井上 私のバックグラウンドや研究者としてのヒストリーに依存しています。子どもの頃はラジオを自分で作ったりして、高校時代にはプログラム電卓に憧れていました。簡単なプログラムが書けるHPの製品です。実際に触ったことはありませんでしたが、雑誌の記事で読んで興味を持っていたのです。その後、その思いを胸に情報工学科に入学します。コンパイラやアセンブラを勉強しており、卒論のテーマはコンパイラの解析を選びました。そこで、プログラムを解析して、余分なところをそぎ落とすプログラム解析に目覚めました。研究としては地味なもので、縁の下で支えるような技術と言えます。ただ、開発環境全体で見るとコンパイラの最適化は重要です。例えば、これまで実行に数時間かかっていたものが、数十分で済むという効率化に貢献します。プログラムの分析は重要だと強く感じました。就職先は大阪大学で、ソフトウェア・エンジニアリングが専門。そのようなバックグラウンドがあったので、プログラムを改良して世の中の役に立つことができないか、という研究を始めました。インターネットのように爆発的に広がりはしませんでしたが、ニーズは大きい分野です。
松本 プログラムは動くだけで十分とは言えません。中身を解析してプログラムの動きを押さえておかないと、メンテナンスに苦労することになります。
井上 プログラムが「良い」のか「悪い」のかを評価する際にも、まずデータをきちんと取る必要があります。「バグばかり出て困る」と言うだけでは足りないので、データから「どれだけ悪いか」を証明しなくてはなりません。証明できれば、改良するためにお金を出す必要性が分かるようになります。
松本 具体的に、プログラム解析の分野で力を入れている領域はありますか?
井上 プログラムは、同じものが何度も再利用されています。再利用の度合いが高いプログラムを定量的に評価して、レコメンデーションしたり、次のステップに役立てる研究をしています。
再利用が重要になっていますが、さほど関心を持たれていないという課題があります。もっと再利用を重視して過去の自社システムを利用したり、オープンソースを活用したり、更にそれを組み合わせたりするツールがあれば良いと思います。
松本 あるプログラムにバグや脆弱性があった場合、どこで再利用されているか分からないと大きな問題になりかねません。
井上 管理台帳のようなものが用意されていても、さほど信頼性が高くないというケースが多いのかもしれません。
松本 とくにオープンソースの場合には安易に利用してきちんと管理していないケースも多いと聞きます。
井上 現代では、使わざるを得ないでしょう。組込みはもちろん、エンタープライズ系でも当然のように利用します。最初は便利なのですが、メンテナンスが大変。ベースの部分が変更となったら、対応しなくてはなりません。また、ライセンスの扱いにも危険が伴います。条文にあった正しい使い方をしなくてはならず、「公開する」ことを条件とされていたら公開しなくてはライセンス違反になります。いずれにしても、今の環境ではオープンソースを使わないと開発ができないと考えて良いでしょう。
松本 1から開発するわけにはいきませんからね。様々なソフトウェア部品を組み合わせて簡単にアプリケーションを組み上げられてしまう「超高速開発」というやり方も注目されています。ウェブアプリはその傾向が強いですね。ただしたくさんのものを組み合わせると、中に何が入っているのか作った人も分からなくなるという課題があります。
井上 ソフトウェアは使い回されるという前提で「ここに使われている」「ここの部分はあそこから来ている」とすぐに分かるようなシステムがあると良いですね。
松本 国レベルでできたほうが良いでしょうか。
井上 フランスで、Software Heritageというプロジェクトがスタートしています。これまでに様々なソフトウェアが開発され、作っては消えていきました。それらを「全部集める」と宣言したグループです。確かに面白いと思います。今はとりあえずLinuxのバージョンを集めているようです。
松本 ソフトウェアは資産でもあります。資産管理をしていかないとどこかで破綻する可能性もあるでしょう。せっかく優れた資産があっても、誰にも使われず、知られていなかったらもったいないですね。
井上 企業内でも、作りっぱなしのソフトウェアはたくさんあります。また、今一生懸命作っているものが過去に誰かが作ったものと同じ、ということもあります。しっかり管理できれば、そのような非効率なことが避けられます。社外の資産も参照できればとても便利です。フランス人にはそういうロマンがあるのかもしれません。2〜3社に話してみましたが、あまり興味を持ってもらえませんでした。壮大過ぎる話に聞こえたのかもしれません。
松本 確かに、いきなりは難しいかも知れませんが、徐々に積み上げていけば、資産として使えるようになっていくのではないでしょうか。
井上 Software Heritageにはロマンを感じますが、テクニカルにどんな実装をするのかは知りたいところです。とりあえず放り込むだけでは有効に利用できません。検索はできるかもしれませんが、整理したり分類したりするのは一筋縄ではいかないでしょう。
松本 企業はバックログで苦労しているので、良い試みだと思います。現在、COBOLが分かる技術者は少なくなっているので、COBOLで書かれたプログラムがどういう動きをしているのか分かり難くなりつつあります。それでも、どこかで使われているんです。プログラムを管理するシステムが必要なはずです。作りっぱなしで動いているものをなんとかしなくてはいけない時期なのかもしれません。
井上 Software Heritageも、同様の発想なのかもしれません。大規模システムの初期メンバなどは現場から退いてしまって、分かる人がいなくなっているのでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.