• 検索結果がありません。

多言語に対応した解析・理解支援のフレームワークに関する 研究

N/A
N/A
Protected

Academic year: 2021

シェア "多言語に対応した解析・理解支援のフレームワークに関する 研究"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)

Japan Advanced Institute of Science and Technology

JAIST Repository

https://dspace.jaist.ac.jp/

Title 多言語に対応した解析・理解支援のフレームワークに

関する研究

Author(s) 伊藤, 徹弥

Citation

Issue Date 2009‑03

Type Thesis or Dissertation Text version author

URL http://hdl.handle.net/10119/8105 Rights

Description Supervisor:鈴木正人准教授, 情報科学研究科, 修士

(2)

多言語に対応した解析・理解支援のフレームワークに関する 研究

伊藤 徹弥

北陸先端科学技術大学院大学 情報科学研究科

月 日

キーワード 理解支援ナビゲーション木 言語依存性 多言語

背景と目的

現在のソフトウェア開発において、機能の修正等の変更要求に対応するためには特定の 機能を実現している箇所を見つける必要がある。しかしながら,ソースコードの構造が複 雑であるため特定の機能がどこで実現されているかは開発者が正しく理解することが困 難な場合がある。

本研究では変更を実現するために必要な情報をソースコード上から効率的に抽出する手 法を提案する.また、複数の言語に対応させるために言語固有の特性について検証し、先 行研究で提案されたフィルタの機能を補うために新たなフィルタを提案する。その結果か らフレームワークを作成することを目的としている。

情報量の制御

情報量を制御する方法として本研究で用いたのは先行研究で新倉が提案した細粒度フィ ルタによる情報抽出である.関心とはユーザが注目している箇所 範囲で、関心の拡大 とはユーザが関心を元に、注目している範囲を変更することである。本研究ではフィルタ の合成によって関心の拡大を実現している。新倉が提案したフィルタと,機能不足や多言 語対応のために本研究で新たに提案した計種類のフィルタを以下に示す.

¯ 関心を決定するフィルタ

変数と型の宣言部を抽出

入力した文字列を含むクラス,関数,変数の宣言部を抽出

¯ 関心を広げるフィルタ

­

(3)

制御構造の実行ブロックを抽出

注目行の近傍を表示

代入文の依存を抽出

関数の宣言部を抽出

関数が呼び出されている箇所を抽出

抽象クラスやインタフェースの実装部を抽出

¯ 関心を絞るフィルタ

範囲を宣言部と実行部に分離

変数の出現範囲を抽出

フィルタは、ソースコード全体を現すと関心を表す情報 ファイル名、行の範囲 の集合を共通パラメタとして、ソースコードから情報を抽出する。各フィルタ固有のパ ラメタとして、注目行、注目する関数、注目する変数などが挙げられる。例えば、ソース コードを解読している時にある関数に注目しているとする。そのとき注目している関数を 呼び出している箇所を知る必要があるとする。その際のパラメタとして、関数の名前とそ の行番号、引数の数と型、そして戻り値の型をフィルタに与える。その結果その関数が呼 び出されている箇所が行番号と関数呼び出し文が抽出される。

先行研究のフィルタは言語のみを対象としていたが、これを ! 言語に対応させる ために、言語固有の特性を分類した。具体的にはオーバーロードがその例として挙げら れる。

ナビゲーション

情報を抽出するために、フィルタを用いた情報抽出法について検討した。その手順を以 下に示す。

機能の実現部に関連がある可能性が高い名前を検索

検索した結果に含まれる関数呼び出しや引数から制御フローを追う

また、効率を上げる手段の一つとしてナビゲーション木を導入した。ナビゲーション木 とはフィルタの適用履歴を表す木である。ノードは注目箇所の情報を保持している。エッ ジは適用したフィルタとパラメタの情報を保持している。生成された木を見れば注目して いた箇所と適用したフィルタの情報を容易に得ることができる。抽出した結果が、変更に 関係がない場合には、生成された木をユーザに提示することで手戻りをすることが可能と なる。

(4)

フィルタの適用実験

提案したフィルタと手法の有効性を確認するために、つの実験を行った。つめの実 験は、機能変更を必要とする箇所を抽出する実験である。つめの実験は、変更すべき箇 所を全て抽出可能かどうかという実験である。実験に用いたのはオープンソースソフト ウェアのつのバージョンである。まず新バージョンのリリースノートから、旧バージョ ンと何が違うかという情報を得る。そしてこれを旧バージョンにおける変更要求とする。

旧バージョンに対して提案手法を用いて変更すべき箇所の候補を抽出する。そして旧バー ジョンと新バージョンの差分を取得し、その差分と抽出した結果を比較することによって 変更すべき箇所を抽出できたか確認する。

つめの実験の結果、機能変更を必要とする箇所を抽出することができた。

つめの実験の結果、ソフトウェアの構造が変更されていたが、変更すべき箇所の候補 については全て修正されていた。

この結果から、提案手法は有効であるといえる。

まとめ

細粒度フィルタの利用法による効率的な情報抽出方法を提案した。さらにナビゲーショ ン木を導入し、情報抽出プロセスが停止した際の手戻りを可能とした。また、フィルタの 改良を行った。そしてフレームワークを作成するために言語依存性と多言語対応させる際 に考慮に入れる点について示した。

参照

関連したドキュメント

機械物理研究室では,光などの自然現象を 活用した高速・知的情報処理の創成を目指 した研究に取り組んでいます。応用物理学 会の「光

名の下に、アプリオリとアポステリオリの対を分析性と綜合性の対に解消しようとする論理実証主義の  

 その後、徐々に「均等範囲 (range of equivalents) 」という表現をクレーム解釈の 基準として使用する判例が現れるようになり

物語などを読む際には、「構造と内容の把握」、「精査・解釈」に関する指導事項の系統を

 複雑性・多様性を有する健康問題の解決を図り、保健師の使命を全うするに は、地域の人々や関係者・関係機関との

Research Institute for Mathematical Sciences, Kyoto University...

2 解析手法 2.1 解析手法の概要 本研究で用いる個別要素法は計算負担が大きく,山

鋼板中央部における貫通き裂両側の先端を CFRP 板で補修 するケースを解析対象とし,対称性を考慮して全体の 1/8 を モデル化した.解析モデルの一例を図 -1