Tweet | |
入山, 肥後, 楠本, "抽象構文木を利用したAPIの後方互換性が破壊される変更の検出," ソフトウェアエンジニアリングシンポジウム2021, pp. 209-218, 2021年9月. | |
ID | 717 |
分類 | 国内会議(査読付き) |
タグ | |
表題 (title) |
抽象構文木を利用したAPIの後方互換性が破壊される変更の検出 |
表題 (英文) |
|
著者名 (author) |
入山 優,肥後 芳樹,楠本 真二 |
英文著者名 (author) |
Masashi Iriyama,Yoshiki Higo,Shinji Kusumoto |
編者名 (editor) |
|
編者名 (英文) |
|
キー (key) |
Masashi Iriyama,Yoshiki Higo,Shinji Kusumoto |
書籍・会議録表題 (booktitle) |
ソフトウェアエンジニアリングシンポジウム2021 |
書籍・会議録表題(英文) |
|
巻数 (volume) |
|
号数 (number) |
|
ページ範囲 (pages) |
209-218 |
組織名 (organization) |
|
出版元 (publisher) |
|
出版元 (英文) |
|
出版社住所 (address) |
|
刊行月 (month) |
9 |
出版年 (year) |
2021 |
採択率 (acceptance) |
|
URL |
|
付加情報 (note) |
|
注釈 (annote) |
|
内容梗概 (abstract) |
ライブラリが更新されると,API も変更される.API の変更は様々で,後方互換性を壊す変更と後方互換性を維持する変更に分類できる.API の変更を検出し,その変更によって API の後方互換性が維持されているかを判別することはコードレビューやリリースノートの作成に役立つ.ライブラリから API の変更を手動で調べるには負担が大きいため,その負担の軽減を目的とした API の変更の自動検出に関する研究が行われている.API の変更を自動で検出し,後方互換性を壊す変更と後方互換性を維持する変更に分類するツールとして APIDiff がある.APIDiff は Java ライブラリの 2 つのバージョンを入力として受け取り,コードの類似度に基づいて API の変更を検出し,各変更を後方互換性を壊す変更と後方互換性を維持する変更に分類する.しかし,コードの類似度の閾値を適切に設定することは難しく,APIDiff はリファクタリングとして分類すべき API の変更を誤って分類する場合がある.また検出した変更を変更の種類ごとに後方互換性を壊す変更なのかを判別しているため,ある API に対して複数の変更が行われるとそれらの変更によって API の後方互換性が維持されているかを正しく判別できない場合がある.そこで提案手法では,コードの類似度の閾値に依存せず抽象構文木を用いてリファクタリングを検出する RefactoringMiner を利用し,API の変更を検出する.そして API ごとに変更をグループ化して後方互換性を壊す変更が含まれているかを調べることで,それらの変更によって API の後方互換性が維持されているかを判別する.8 個のオープンソースソフトウェアに対して実験を行った結果,既存手法と比べて API の変更をより高い精度で検出できることを確認した.また 1 つの API に対して後方互換性を維持する変更と後方互換性を壊す変更が行われた場合でも,それらの変更によって API の後方互換性が維持されているかを判別できることを確認した. |
論文電子ファイル | draft.pdf (application/pdf) [一般閲覧可] |
BiBTeXエントリ |
@inproceedings{id717, title = {抽象構文木を利用したAPIの後方互換性が破壊される変更の検出}, author = {入山 優 and 肥後 芳樹 and 楠本 真二}, booktitle = {ソフトウェアエンジニアリングシンポジウム2021}, pages = {209-218}, month = {9}, year = {2021}, } |