このページの本文へ移動
  1. ホーム >
  2. プレスリリース >
  3. 大規模オープンソースソフトウェアのわかりにくい変化を短時間で追跡する技術を開発

PRESS RELEASE (技術)

2016年4月27日
株式会社富士通研究所

大規模オープンソースソフトウェアのわかりにくい変化を短時間で追跡する技術を開発

変化箇所の特定時間を大幅に削減し、ソフトウェアの早期開発を実現

株式会社富士通研究所(注1)(以下、富士通研究所)は、大規模なオープンソースソフトウェア(Open Source Software 以下、OSS)を利用したタイムリーな開発ができるように、ソースコードの機能追加など変更箇所を短時間で追跡する技術を開発しました。

OSSは世界中の誰もが簡単に利用できるソフトウェアで、その設計図とも言えるソースコードは、変更内容の詳細な記録がないまま機能の追加・削除などが繰り返されます。その中で、OSSによってソフトウェアを開発する利用者は、開発の過程で利用者の都合により後から独自に手を加えることが多く、OSSのソースコードが変更されるごとにその部分を把握する必要があり、多くの時間を費やすことになります。

今回、ソースコードから関数の呼び出し経路を分析することにより、ソースコードの変化を高速に比較できる技術を開発しました。これにより、380万行のプログラム中、約400の変更箇所を特定する作業において、従来のソースコードのテキスト比較の手法と比較したところ、約4分の1の時間で確認できました。

今後、大規模なOSSの変化を迅速に追跡することで、OSSを利用したソフトウェアの早期開発に役立てることが期待されます。

開発の背景

OSSは世界中の開発者による共同作業で開発され、誰もが手軽に使うことができます。そのため、お客様のニーズに迅速に応えるシステムを構築する際には、積極的にソフトウェア開発に利用されます。

OSSは、多数の開発者によって頻繁に機能追加やバグ修正などのソースコードの変更が行われるため、OSSを利用するソフトウェア開発においては、限られた開発時間の中で、変更された部分をできるだけ短時間で理解する必要があります。

図1 OSSの利用形態
図1 OSSの利用形態
拡大イメージ

課題

OSSを利用した開発においては、利用者が独自にソースコードを変更する間にも、多数のOSS開発者による頻繁な機能追加やバグ修正といった変更が並行して実施されます。このため、利用者が手を加えたソースコードに関係するOSSの変更前後のソースコードの変化を確認する必要があります。従来は数万ファイルのソースコードのテキスト差分や、使われている関数の呼び出し関係の構造の差分を目視で確認していたため、多大な工数が掛かっていました。

また、差分を特定した後などに行われる人手による詳細なソースコード調査では、関数の名前の一部分を指定していきながら、その都度部分一致する候補を提示する部分検索機能を用いて対話的に調査対象を絞り込む手法が効果的です。しかし、大規模なOSSにおいては、調査対象とする関数の数が膨大で、その中でも特にクラスのメソッド名などでは類似した名前を持つものが大量に存在するため、検索処理に時間がかかるという課題がありました。

開発した技術

大規模なOSSの更新時の変化を効率よく確認するために、以下の2つの技術を開発しました。

  1. 関数の呼び出し経路を高速に比較し、図示する技術

    同じソフトウェアの異なる版数のソースコードの変化を追跡する場合、変更の箇所が、ある特定の関数からの呼び出し経路上に集中する傾向があります。このことに着目し、ある一つ関数を起点とした呼び出し経路において、呼び出し経路上の位置ごとに2つのソースコードの差異を比較することにより、比較する対象を大幅に絞り込み、一目でわかるよう図示する技術を開発しました。これにより差分を抽出する時間が従来の組合せ比較より44%削減されました。

    図2 経路の位置単位比較
    図2 経路の位置単位比較
    拡大イメージ

  2. 類似する名前を効率的に検出する技術

    大規模なOSSでは、類似する名前の関数が大量に存在することに注目し、関数名の検索入力において、文字入力ごとに検索結果が一致する組み合わせをあらかじめ列挙し、保持しておくデータ構造を新たに開発することで、応答性の良い部分一致検索を実現しました。

    図3 大量類似名の検索
    図3 大量類似名の検索
    拡大イメージ

効果

今回開発した技術を用いることで、OSSの変更箇所を、知りたい呼び出し経路を起点に繰返し検索することができるようになりました。その結果、380万行のプログラム中、約400の変更箇所があるテストケースにおいて、影響する箇所の特定にかかる作業時間が、従来のテキスト比較では約26時間かかったところ、約6.5時間となり4分の1程度と大幅に削減されました。これにより、開発コスト削減とともに、OSSのタイムリーな利用促進が期待されます。

図4 変更箇所の把握方法
図4 変更箇所の把握方法
拡大イメージ

今後

富士通研究所では、スクリプト言語など対応言語の拡充をすすめ、2016年度中の実用化を目指します。

商標について

記載されている製品名などの固有名詞は、各社の商標または登録商標です。

以上

注釈

注1 株式会社富士通研究所:
本社 神奈川県川崎市、代表取締役社長 佐々木繁。

本件に関するお問い合わせ

株式会社富士通研究所
システム技術研究所
電話 044-754-2675(直通)
メール taps-support@ml.labs.fujitsu.com


プレスリリースに記載された製品の価格、仕様、サービス内容、お問い合わせ先などは、発表日現在のものです。その後予告なしに変更されることがあります。あらかじめご了承ください。