2016 Fiscal Year Research-status Report
Project/Area Number |
16K12412
|
Research Institution | Shimane University |
Principal Investigator |
神谷 年洋 島根大学, 総合理工学研究科, 教授 (70415660)
|
Project Period (FY) |
2016-04-01 – 2019-03-31
|
Keywords | プログラム解析 / プログラム理解 / 保守 / デバッグ / 動的解析 |
Outline of Annual Research Achievements |
今年度は、コンピュータ・プログラム(以下プログラム)の保守作業のうち、特に不具合修正のタスクを想定した実験データの収集および手法の開発を行った。 本研究課題では「意味論プラガブルなプログラム解析エンジン」を掲げている。計画では今年度、Webフレームワークとデータベースを含む対象プログラムに対して、大規模なデータ解析のための簡潔データ構造の上で、依存・関係追跡や類似部分検出、検索などの分析を実現できることを目指していた。Webフレームワークやデータベースを適用対象とすべく実験用のデータとしてプログラムを収集したところ、データの粒度をどう扱うかという課題が新たに見つかった。すなわち、プログラムが想定するデータの構造や扱いの単位と、webフレームヤークが利用者に見せているデータの構造や扱いの単位、データベースのそれが同じではなく、それぞれに都合の良い単位で区切っているために分析が困難になっていることが判明した。 この課題を解決するための新たな方針として、アプリケーションの応用分野に応じて、最も細かい粒度を想定し(例えば、典型的なTODOアプリケーション等なら「単語」がそれに相当する。アプリケーションを構成する個々の技術はそれよりも細かい粒度、例えば「文字」や「ビット」が扱えることがあるが、そのようなレベルの分析を利用した場合には、さらに、その粒度の分析をアプリケーションの応用分野に即した分析に変換するという別の課題が発生する)、そのレベルでの因果関係や類似、検索を実現する手法を模索することとした。 結果として、データベースによる処理を含み、複数のプログラムからなるアプリケーションにおいて、それらのプログラムやデータベースをまたいだデータの追跡が行える技術を試作・実験するところにまでたどり着いた。この結果は、H29年度に研究発表する予定である。
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
小規模な実験に取り掛かったところ、本課題で掲げている意味論の技術横断を実現するためには、ここの技術の意味論の粒度(例えば、Webフレームワークで利用しているフォーム、データベースで扱うデータの粒度であるレコード、プログラムに都合の良いデータである配列や辞書)が異なっているという新たな課題が判明したため、それを解決するための手法を新たに模索することとなった。 このため、アプリケーションの応用ドメインで想定している最も細かい粒度(例えば、単語)を想定して、その粒度でのデータの移動や依存関係を分析する手法を開発することとした。手法の詳細はH29年度に研究発表する内容となるためこの報告書では伏せることとするが、新規に開発した手法は、(1)複数のプログラムとデータベースを含むアプリケーションに適用可能なことが判明しており、(2)一般的なプログラムのデバッグ/プロファイリング用の機構やSQLの追跡の技術を利用するため広範囲の開発技術に適用可能であるが、(3)解析のためにデータマイニングの技術を用いているため、計算機パワーを必要とするという特徴を持つ。 この提案手法の適用実験においては、現在まで、適用対象のプログラムの規模はせいぜい7千行程度といった小規模なものであり、大規模なプログラムを含むアプリケーションに対しての実験的評価はまだ行えていない。
|
Strategy for Future Research Activity |
上の「進捗状況」で説明した解析手法は、それ単体で研究成果として発表可能なものであると判断しており、大規模なアプリケーションへの適用を行うことで実験的な評価をつけて発表する予定である。 H29年度においては、研究提案において示した順序を踏襲し、(1)データベースだけではなく、Webフレームワークも含むアプリケーションに対して適用可能な手法を実現し、(2)適用実験を行うとともに、本年度において至らなかった部分である類似部分の検出や検索の手法についても実現する。(1)に関しては、現在までに、プログラミング言語Python、データベース操作のための言語SQLに対する解析技術を実現しているところを、WebアプリケーションにおけるHTTP通信、および、Webアプリケーションを記述するためのプログラミング言語であるJavaScript(ECMA)にも適用可能な手法とする。(2)に関しては、アプリケーションのデータの粒度を考慮した処理の類似性判定手法を提案し、さらにその類似性に基づく検索手法を提案する予定である。
|
Causes of Carryover |
研究遂行中に新たに見つかった課題の解決のため、追加の開発・実験を行う必要が生じたため、研究発表として予定した国際学会への参加を取りやめた。
|
Expenditure Plan for Carryover Budget |
上述の課題が解決したため、その分も含めて研究発表を行うための原資とする。具体的には、国際学会への参加または論文誌への投稿や英文校正の費用に当てることを想定している。
|
Research Products
(3 results)