ソースコードに対する適用可能な修正手順を 可視化するリファクタリング支援手法の提案

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 保守支援を目的とした コードクローン情報検索ツール.
Advertisements

シーケンス図の生成のための実行履歴圧縮手法
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
プログラムの変更前後での 実行履歴の差分検出手法
アクセス修飾子過剰性の変遷に着目したJavaプログラム部品の分析
剽窃 他人の作品や論文を盗んで,自分のものとして発表すること. プログラムが剽窃される事例もある. Aさんのプログラム Xさんのプログラム
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
動的スライスを用いたバグ修正前後の実行系列の差分検出手法の提案
川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
CKメトリクスを用いてリファクタリングの 効果を予測する手法の提案
プログラム実行履歴を用いたトランザクションファンクション抽出手法
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
ソードコードの編集に基づいた コードクローンの分類とその分析システム
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
暗黙的に型付けされる構造体の Java言語への導入
コードクローンの分類に基づいた メソッド引き上げ手順の提案とその有効性評価
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
リファクタリング中に生じる コンパイルエラーの自動解消手法
動的依存グラフの3-gramを用いた 実行トレースの比較手法
動的スライスを用いたバグ修正前後の実行系列の差分検出手法
CKメトリクスに基づくリファクタリングの 効果予測手法の提案と実装
プログラムスライシングを用いた 機能的関心事の抽出手法の 提案と実装
Javaプログラムの変更を支援する 影響波及解析システム
リファクタリング支援のための コードクローンに含まれる識別子の対応関係分析
動的データ依存関係解析を用いた Javaプログラムスライス手法
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
コードクローンの動作を比較するためのコードクローン周辺コードの解析
UMLモデルを対象とした リファクタリング候補検出の試み
プログラム実行履歴を用いたコードクローン検出手法
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
プログラム理解におけるThin sliceの 統計的調査による有用性評価
バイトコードを単位とするJavaスライスシステムの試作
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
コードクローン間の依存関係に基づく リファクタリング支援環境の実装
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
コードクローン間の依存関係に基づく リファクタリング支援手法の提案と実現
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
オープンソースソフトウェアに対する コーディングパターン分析の適用
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
コードクローン間の依存関係に基づく リファクタリング支援手法の提案と実現
UMLモデルを対象とした リファクタリング候補検出手法の提案と実現
統合開発環境のための プログラミング言語拡張 フレームワーク
開発者との対話を活かした 横断的構造の表現
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
ソフトウェア理解支援を目的とした 辞書の作成法
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
動的スライスを用いたバグ修正前後の実行系列の差分検出手法の提案
動的スライスを用いたバグ修正前後の実行系列の差分検出手法の提案
コードクローン解析に基づく デザインパターン適用候補の検出手法
回帰テストにおける実行系列の差分の効率的な検出手法
メソッド抽出リファクタリングが 行われるメソッドの特徴調査
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
Josh : バイトコードレベルでのJava用 Aspect Weaver
Presentation transcript:

ソースコードに対する適用可能な修正手順を 可視化するリファクタリング支援手法の提案 譜久島 亮✝   吉田 則裕✝   松下 誠✝   井上 克郎✝                            ✝大阪大学 大学院情報科学研究科 ソースコードに対する適用可能な修正手順の可視化 リファクタリング プログラムの外部的振る舞いを変えずに プログラム内部の構造を改善する作業 保守コストを低下させることができる 典型的な リファクタリング 手動で行うには困難な修正を支援 典型的なリファクタリングの実行が可能 リファクタリング支援ツール Eclipseのリファクタリング支援機能 適用可能な修正手順が複数存在する場合の問題点 class A { private int x; void add( ); void getX( ); int setX( int x); } class B { void print( ); フィールドの 自己カプセル化 class A { private int x; void print( ) { System.out.print(x) } void add( ) { x=x++; class B { Aのメンバを 移動 class A { } class B { private int x; void add( );   void print( );  複数の 修正手順 メソッドの移動 ソースコードS2 ソースコードS3 リファクタリング完了後のソースコード例 コンパイル可能なソースコードが得られない 修正の手戻りが発生し、作業時間が大きくなりやすい 問題点 ソースコードS1 リファクタリング前のソースコード例 適用可能な修正手順の可視化 ソースコードを頂点、修正手順を構成する 各ステップを有効辺とする木構造で表す  A.x の可視性を publicに変更 B.x の可視性を publicに変更 A.printをBへ移動 A.x をBへ移動 S1 A.addをBへ移動 S2 A.xを 自己カプセル化 B.x を 自己カプセル化 各辺に付属するラベルは ステップの内容を表している S3 コンパイル可能な ソースコード コンパイルエラーを 含むソースコード 修正の流れ 謝辞 本研究は一部,日本学術振興会科学研究費補助金基盤研究(A)(課題番号:21240002), 文部科学省科学研究費補助金若手研究(B)(課題番号:20700024),日本学術振興会特別研究員奨励費(課題番号:20・1964)の助成を得た