2011 Fiscal Year Research-status Report
データフロー検索と可視化によるオブジェクト指向プログラム理解の支援手法
Project/Area Number |
23650016
|
Research Institution | Nara Institute of Science and Technology |
Principal Investigator |
久米 出 奈良先端科学技術大学院大学, 情報科学研究科, 助手 (10301285)
|
Project Period (FY) |
2011-04-28 – 2014-03-31
|
Keywords | ソフトウエア / ソフトウエア工学 / プログラム理解 / トレース解析 |
Research Abstract |
平成23年度では対話的なオブジェクト指向プログラムの「非局在化された意図(Delocalized Plans)」の復元を支援するためのトレース解析ツールの開発を進めた。メソッド呼び出しを縦軸、データフローを横軸とした二次元的な視点からプログラム実行内容を可視化する機能を実装した。現時点でツールのプログラムコードの行数はテストケースと試作部分を含めて 47 万行にのぼっている。本解析ツールを利用し、第三者が開発したプログラムコードの不具合の原因を効率的に特定する事に成功した。これらの成果をまとめて情報処理学会が主催するウィンターワークショップと第175回ソフトウェア工学研究会で発表を行った。本ツールを用いて解析が実施されたプログラムは実用性の高い実用性の高いオープンソース フレームワーク GEF 上に第三者によって開発されたものである。このプログラムにはフレームワークの挙動に関するフレームワーク側の意図を理解せずに作成されたコードが含まれており、このコードの実行の副作用によってエラーが発生していた。このコードはアプリケーション固有のクラスの機能がフレームワークを介して衝突していた、すなわちある種の非局在化された意図の存在がこの不具合の遠因となっていたわけである。我々の知る限り非局在化された意図とは極めて一般的な概念であり、その明確な形式化は与えられていない。このような具体的な事例を積み重ねることはこの概念をより具体的に捉えるためには大きな意義があると思われる。我々は現在 Feature Interactions という切り口で形式化を試みている。このような副作用に関する不具合を効率的に特定する事はデバッグ支援という実用的な面からも重要であると思われる。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
平成23年度に達成すべき内容と平成24年度中に達成すべき内容が一部前後しているが、全体としてはおおむね順調に研究が進展している。当初の研究計画では初年度と次年度のうちに(1)プログラム実行モデルの定義、(2)トレースの検索・可視化する解析ツールの実装、(3)解析ツールの効率的な利用手法の確立、(4)手法の有効性を実証する実験の実施、の四項目のうち最初の二つ、(1)と(2)を実施する予定であった。本報告書を作成している時点で、ある特定の種類の不具合をデバッグする作業に対して(1)~(3)を一通り実現出来た。研究計画書を作成した時点では上記項目(1)と(2)が特定の問題領域に依存する可能性をあまり考慮していなかった。これまでに得られた知見は特定の問題領域の事例研究に依存しているため、今後新たな種類の問題を考察しながら上記の最初の二つの項目を再検討する必要があると思われる。現段階では解析ツールに関して可視化を実現するための最低限の実装しか行っていない。当初は開発の効率化のために既存の技術を利用して可視化機能を実装する予定であった。しかしながら上記実例を用いた作業例題を検討した結果、従来の技術では表現が困難な独自の表示方式の開発が必要となった。結果として当初の見込みとは異なる形で開発が進んでいる。今後新たな事例に当たる毎に開発の進め方が微調整される可能性を否定出来ない。しかしながら、初年度のうちに実用的なプログラムを対象とした作業に適用可能である事を示せた事によって研究は大きく進展したと考えている。
|
Strategy for Future Research Activity |
平成24年度ではツールの有効性を示すために様々な事例研究を遂行する。ここで得られた知見を活かして平成25年に本手法の実証実験を計画・遂行する。両年度共に得られた知見や実験結果を論文としてまとめ、国際会議や学術論文誌で発表して行きたいと思っている。平成24年度では多様な種類の問題事例に対して本提案手法を適用し、より多くの知見を得る事を目指す。現在の事例ではアプリケーションフレームーワーク上に構築されたグラフデータ編集プログラムの不具合を扱っている。今後はWeb開発で利用される事が多いSpring フレームワークのアプリケーションやORMapper 等、実践的なプログラムを調査し、新たな適用事例を準備する予定である。これらのプログラムの利用者MLやバグ報告に寄せられた疑問や要望を参考にしながら作業事例を集める予定である。ここで得られた知見を元により一般的なプログラム実行モデルを決定し、トレース解析ツールの仕様を検討し、かつパターン化されたツールの利用手法を確立する。また解析処理のパフォーマンスの問題に関して最低でも平成24年度の終わりまでに解決の目処を付ける必要があると思われる。平成25年度のなるべく早い時期に解析ツールの試験を兼ねた予備実験を実施し、問題が無ければ一旦ツールの開発を完了する。以降では実証実験の準備を進める。現段階では二つのソフトウェア開発企業と二つの大学、及び二名の個人から実証実験に対する内諾を得ている。被験者として予定される人員の居住地が京都府、東京都、愛知県、そして兵庫県と分散しているため、早い段階で実験の日程調整を行う必要がある。実証実験は研究責任者自身が被験者の元に赴いて実験環境を準備する形で実施する必要があると思われる。
|
Expenditure Plans for the Next FY Research Funding |
未使用額が生じた要因は、研究の進捗状況に合わせ、予算執行計画を変更したことに伴うものである。また、次年度の請求額と合わせての執行計画は以下のとおりである。現状では32bitアーキテクチャの計算機を用いて解析ツールを開発し、解析を行っている。現在解析の対象である例題プログラムはそれほど規模が大きくないにもかかわらず、処理過程で 32bit版 Java が扱える上限に近いメモリが消費される。また解析処理が完了するまでに数分を費している。このようなハードウェアに起因する問題を根本的に解決するために平成24年度では大容量メモリを備え、処理能力の高い64bit計算機を購入する予定である。前年度に引き続き、研究協力者(論文の共著者や実証実験に協力してくれる大学や企業の人員)との打ち合わせに伴う出張費用が必要となる。さらに研究成果を発表するための旅費、会議の参加費、論文の英文校閲費用等が必要である。
|