[学士論文] ソースコードのXML表現のための選択例を用いた対話的XPath生成支援

小林研究室学部4年生の夏目さんが,学士論文を提出しました.

題目:ソースコードのXML表現のための選択例を用いた対話的XPath生成支援
学士論文梗概:

ソフトウェア開発の現場においてはソースコードの書き方、識別子の命名法等について共通の規約を定め、これをすべての開発者が遵守することで開発効率や保守効率を高めている。形式的に定義可能な規約に対しては、静的解析によって機械的に規約が遵守されているか判断する検査手法が有効である。汎用的な検査手法としてソースコードの構文情報をXMLに変換し、このXMLが規約を遵守するかをXPathを用いて検査するいくつかの手法が存在する。

しかし規約をXPathで記述するためには、XMLへの変換ツールがどのようにソースコードをXMLへ変換するかという特性を熟知する必要がある。また、XPathは記述力の高さと引き換えに学習コストが高く、XPathに精通していないユーザーが規約に対応する適切なXPath表現を記述することは困難である。

本研究ではこの問題点の解決を支援するために、ソースコード中の選択対象箇所を正例、対象ではない箇所を負例として対話的に入力することで、目的の箇所を適切に選択するXPath群を生成する。条件を満たすXPathは複数存在するため、XPathの抽象度と複雑度を定義し、それ用いてXPathを順位付けすることで用途に合ったXPathを効率よく探索できる手法を提案する。

提案手法の有用性を確認するために、手法の一部をツールとして実現し、2つの課題を例にXMLへの変換ツールやXPathに関する深い理解を持ち合わせていない利用者が、容易に所望のXPathを生成できることを確認した。