コードクローンに特化した自動リファクタリング手法の提案と実装

专门针对代码克隆的自动重构方法的提出与实现

基本信息

  • 批准号:
    04J08351
  • 负责人:
  • 金额:
    $ 1.79万
  • 依托单位:
  • 依托单位国家:
    日本
  • 项目类别:
    Grant-in-Aid for JSPS Fellows
  • 财政年份:
    2004
  • 资助国家:
    日本
  • 起止时间:
    2004 至 2006
  • 项目状态:
    已结题

项目摘要

本年度はまず、コードクローンに対するリファクタリングの有効性を確認するために、リファクタリングがソフトウェアの保守に与える効果を調査した。具体的には、ソフトウェアに対して修正が加わる過程においてどのようにコードクローンが変化しているか、およびリファクタリングにより複雑度メトリクスの値がどのように変化するかを調べた。調査の結果、コードクローンに対するリファクタリングは複雑度メトリクスの値は改善するとは限らないが、一度修正が加えられたコードクローンには、その後も引き続き修正が加えられる傾向であることが判明した。このため一度修正が加わったコードクローンに対してリファクタリングを行うことにより、その後の保守コストを削減することができるといえる。また、コードクローンに対するより効率的な分析作業を実現するために、調査の対象とならないコードクローンのフィルタリングを行う手法を提案した。これまでの経験により、ツールによるコードクローン自動検出では、連続した変数宣言やswitch文のcaseエントリなど、調査を行う必要のないコードクローンを多数検出してしまうことがわかっている。このようなコードクローンをフィルタリングすることにより、より効率的に分析作業を行うことができる。このようなコードクローンのフィルタリング方法をメトリクスRNRとして提案し、昨年度実装したツールGeminiに追加実装した。また、オープンソースのソフトウェアに対して実験を行い、調査すべきコードクローンを誤ってフィルタリングすることなく、調査の必要のないコードクローンの約2/3のフィルタリングができていることを確認した。
今年,我们首先研究了重构对软件维护的有效性,以确认对代码克隆重构的有效性。具体而言,我们研究了代码克隆在修改软件的过程中如何变化,以及由于重构而导致的复杂性度量值如何变化。研究表明,代码克隆的重构并不一定会改善复杂性度量值,但是曾经修改的代码克隆往往会继续进行修改。因此,可以说,一旦修改的代码克隆重构可以降低随后的维护成本。此外,为了实现对代码克隆的更有效分析,我们提出了一种过滤不接受调查的代码克隆的方法。以前的经验表明,通过工具对代码克隆的自动检测可检测许多不需要研究的代码克隆,例如连续变量声明和开关语句中的案例条目。通过过滤此类代码克隆,可以更有效地进行分析。我们提出了一种用于代码克隆的过滤方法作为公制RNR,并将其添加到了去年实施的工具Gemini中。我们还对开源软件进行了实验,以确认不需要研究的代码克隆的大约2/3可以通过错误过滤而不会错误地过滤代码克隆以进行研究。

项目成果

期刊论文数量(6)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
コードクローン分析ツールGeminiを用いたコードクローン分析手法
使用代码克隆分析工具Gemini的代码克隆分析方法
コードクローン解析に基づくリファクタリングの試み
基于代码克隆分析的重构尝试
  • DOI:
  • 发表时间:
    2004
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Yusuke Ohba;Hiroshi Nojima;Yasuyuki Kita et al.;Y.Sawai;吉田則裕;Yoshiki Higo;肥後芳樹;肥後芳樹;肥後芳樹;肥後 芳樹
  • 通讯作者:
    肥後 芳樹
Method and Implementation for Investigating Code Clones in a Software System
研究软件系统中的代码克隆的方法和实现
コードクローン間の依存関係に基づくリファクタリング支援
基于代码克隆之间的依赖关系的重构支持
ソフトウェア保守支援を目的としたコードクローン可視化ツール: Gemini
软件维护支持的代码克隆可视化工具:Gemini
{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

数据更新时间:{{ journalArticles.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ monograph.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ sciAawards.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ conferencePapers.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ patent.updateTime }}

肥後 芳樹其他文献

タスクボードとオンラインストレージを用いたソフトウェア開発PBLのためのタスク記録支援環境の構築
利用任务板和在线存储构建软件开发PBL任务记录支持环境
  • DOI:
  • 发表时间:
    2014
  • 期刊:
  • 影响因子:
    0
  • 作者:
    高先 修平;井垣 宏;肥後 芳樹;楠本 真二
  • 通讯作者:
    楠本 真二
Applying Multi-objective Genetic Algorithm to Improve Automated Program Generation by Selecting Complementary Variants
应用多目标遗传算法通过选择互补变体来改进自动程序生成
  • DOI:
    10.20729/00220234
  • 发表时间:
    2022
  • 期刊:
  • 影响因子:
    0
  • 作者:
    渡辺 大登;松本 真佑;肥後 芳樹;楠本 真二;倉林 利行;切貫 弘之;丹野 治門
  • 通讯作者:
    丹野 治門
Proposition and Evaluation of Method-level Semantic Versioning
方法级语义版本控制的提出与评估
構文種別に着目したDockerfileのコードクローン検出手法
关注语法类型的Dockerfile代码克隆检测方法
  • DOI:
  • 发表时间:
    2021
  • 期刊:
  • 影响因子:
    0
  • 作者:
    鶴 智秋;中川 将;松本 真佑;肥後 芳樹;楠本 真二
  • 通讯作者:
    楠本 真二
コードクローン間の依存関係に基づくリファクタリング支援環境の実装
基于代码克隆之间依赖关系的重构支持环境的实现

肥後 芳樹的其他文献

{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

{{ truncateString('肥後 芳樹', 18)}}的其他基金

機能等価メソッドデータセットの構築によるソフトウェア工学タスクの高度化
通过构建功能等效的方法数据集来改进软件工程任务
  • 批准号:
    24H00692
  • 财政年份:
    2024
  • 资助金额:
    $ 1.79万
  • 项目类别:
    Grant-in-Aid for Scientific Research (A)
Autorepairability: creating and disseminating a new software quality indicator
自动修复性:创建和传播新的软件质量指标
  • 批准号:
    21K18302
  • 财政年份:
    2021
  • 资助金额:
    $ 1.79万
  • 项目类别:
    Grant-in-Aid for Challenging Research (Pioneering)
A Study on Fault Localization for Automated Program Repair
程序自动化修复的故障定位研究
  • 批准号:
    20H04166
  • 财政年份:
    2020
  • 资助金额:
    $ 1.79万
  • 项目类别:
    Grant-in-Aid for Scientific Research (B)

相似海外基金

Identification, analysis and manipulation of essential structure from accidental ones
从偶然结构中识别、分析和操纵基本结构
  • 批准号:
    24650013
  • 财政年份:
    2012
  • 资助金额:
    $ 1.79万
  • 项目类别:
    Grant-in-Aid for Challenging Exploratory Research
Study on Code Clone Detection Using Program Dependency Graph For Practical Realization
利用程序依赖图进行代码克隆检测的研究及其实际实现
  • 批准号:
    22700031
  • 财政年份:
    2009
  • 资助金额:
    $ 1.79万
  • 项目类别:
    Grant-in-Aid for Young Scientists (B)
Study on Software Maintenance Support Based on its Context
基于情境的软件维护支持研究
  • 批准号:
    20500033
  • 财政年份:
    2008
  • 资助金额:
    $ 1.79万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
Integrated Software Maintenance System based on Code-Clone Repositories
基于代码克隆库的集成软件维护系统
  • 批准号:
    17200001
  • 财政年份:
    2005
  • 资助金额:
    $ 1.79万
  • 项目类别:
    Grant-in-Aid for Scientific Research (A)
コードクローン情報に基づくソフトウェア保守支援に関する研究
基于代码克隆信息的软件维护支持研究
  • 批准号:
    15700031
  • 财政年份:
    2003
  • 资助金额:
    $ 1.79万
  • 项目类别:
    Grant-in-Aid for Young Scientists (B)
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了