論文の概要: Automating Source Code Refactoring in the Classroom
- arxiv url: http://arxiv.org/abs/2311.10753v1
- Date: Sun, 5 Nov 2023 18:46:00 GMT
- ステータス: 処理完了
- システム内更新日: 2023-11-27 00:47:05.786724
- Title: Automating Source Code Refactoring in the Classroom
- Title(参考訳): 教室におけるソースコードリファクタリングの自動化
- Authors: Eman Abdullah AlOmar and Mohamed Wiem Mkaouer and Ali Ouni
- Abstract要約: 本稿では,アンチパターン検出と修正をサポートするEclipseプラグインであるJandanrantを用いて,アンチパターンの除去を目的とした各種教室活動の実施に関する実験結果について述べる。
171人の学生による定量的・質的分析の結果、学生は学習の考え方を高く評価し、JDeodorantプラグインの動作の様々な側面に満足していることが示された。
- 参考スコア(独自算出の注目度): 15.194527511076725
- License: http://creativecommons.org/publicdomain/zero/1.0/
- Abstract: Refactoring is the practice of improving software quality without altering
its external behavior. Developers intuitively refactor their code for multiple
purposes, such as improving program comprehension, reducing code complexity,
dealing with technical debt, and removing code smells. However, no prior
studies have exposed the students to an experience of the process of
antipatterns detection and refactoring correction, and provided students with
toolset to practice it. To understand and increase the awareness of refactoring
concepts, in this paper, we aim to reflect on our experience with teaching
refactoring and how it helps students become more aware of bad programming
practices and the importance of correcting them via refactoring. This paper
discusses the results of an experiment in the classroom that involved carrying
out various refactoring activities for the purpose of removing antipatterns
using JDeodorant, an Eclipse plugin that supports antipatterns detection and
refactoring. The results of the quantitative and qualitative analysis with 171
students show that students tend to appreciate the idea of learning refactoring
and are satisfied with various aspects of the JDeodorant plugin's operation.
Through this experiment, refactoring can turn into a vital part of the
computing educational plan. We envision our findings enabling educators to
support students with refactoring tools tuned towards safer and trustworthy
refactoring.
- Abstract(参考訳): リファクタリングは、ソフトウェア品質を外部の振る舞いを変えることなく改善するプラクティスである。
開発者は直感的に、プログラムの理解を改善し、コードの複雑さを減らし、技術的負債に対処し、コードの臭いを取り除くなど、複数の目的のためにコードをリファクタリングする。
しかし、アンチパターンの検出とリファクタリングのプロセスの経験を学生に公開し、実践するためのツールセットを学生に提供する以前の研究はない。
本稿では,リファクタリング概念の認識を高めるために,リファクタリング教育の経験と,悪いプログラミング実践に対する学生の認識の向上,リファクタリングによる修正の重要性について考察する。
本稿では,アンチパターン検出とリファクタリングをサポートするEclipseプラグインであるJDeodorantを用いて,アンチパターンの除去を目的とした様々なリファクタリング活動を教室で実施する実験の結果について述べる。
171人の学生による定量的・質的分析の結果, 学生はリファクタリングの考え方を高く評価し, JDeodorant プラグインの動作の様々な側面に満足する傾向にあることがわかった。
この実験を通じて、リファクタリングはコンピューティング教育計画の重要な部分になる可能性がある。
より安全で信頼性の高いリファクタリングを目標としたリファクタリングツールを学生に提供可能な,教育者支援の成果を期待する。
関連論文リスト
- ToolCoder: A Systematic Code-Empowered Tool Learning Framework for Large Language Models [49.04652315815501]
ツール学習は、大規模な言語モデル(LLM)にとって、外部ツールとのインタラクションを通じて、複雑な現実世界のタスクを解決する重要な機能として登場した。
本稿では,ツール学習をコード生成タスクとして再編成する新しいフレームワークであるToolCoderを提案する。
論文 参考訳(メタデータ) (2025-02-17T03:42:28Z) - Automated Refactoring of Non-Idiomatic Python Code: A Differentiated Replication with LLMs [54.309127753635366]
本研究は, GPT-4の有効性について検討し, 慣用行動の推奨と示唆について検討した。
この結果から,従来は複雑なコード解析に基づくレコメンデータの実装が求められていた,LCMの課題達成の可能性が浮き彫りになった。
論文 参考訳(メタデータ) (2025-01-28T15:41:54Z) - Insights into Deep Learning Refactoring: Bridging the Gap Between Practices and Expectations [13.084553746852382]
ディープラーニングソフトウェアは、ソフトウェアが進化するにつれて、徐々に複雑になってきています。
ディープラーニングの文脈におけるコードの洞察はまだ不明だ。
関連ツールの研究と開発は、プロジェクトの保守性とコード品質を改善するために不可欠である。
論文 参考訳(メタデータ) (2024-05-08T07:35:14Z) - A Survey of Deep Learning Based Software Refactoring [5.716522445049744]
大量のディープラーニングベースのアプローチがソフトウェアをリファクタリングするために提案されている。
このような作品に関する包括的なレビューや、深層学習に基づくアプローチのための分類の欠如がある。
ディープラーニング技術のほとんどは、コードの臭いの検出やソリューションの推奨に使われてきた。
論文 参考訳(メタデータ) (2024-04-30T03:07:11Z) - ReGAL: Refactoring Programs to Discover Generalizable Abstractions [59.05769810380928]
Generalizable Abstraction Learning (ReGAL)は、再利用可能な関数のライブラリをコード化して学習する手法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはLOGOで11.5%、日付理解で26.1%、TextCraftで8.1%という絶対精度が向上し、3つのドメインのうち2つでGPT-3.5を上回った。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - Fixing Your Own Smells: Adding a Mistake-Based Familiarisation Step When
Teaching Code Refactoring [2.021502591596062]
学生はまず、コードの臭いを発生させるためにプログラミング演習を完了しなければなりません。
この単純な介入は、学生がコードに精通している場合、学習が簡単であるという考えに基づいている。
本研究は,35人の初等生を対象に,従来の「ミステイク」アプローチと「ミステイク」アプローチを交互に指導し,様々な演習を修了した。
論文 参考訳(メタデータ) (2024-01-02T03:39:19Z) - State of Refactoring Adoption: Better Understanding Developer Perception
of Refactoring [5.516979718589074]
ソフトウェアライフサイクルにおける開発者の活動の文書化方法について検討する。
このようなアクティビティを自己確認リファクタリング(Self-Affirmed Refactoring, SAR)と呼びます。
本稿では,コミットが開発者関連のイベントを記述しているかどうかを,共通品質改善カテゴリに従って分類するアプローチを提案する。
論文 参考訳(メタデータ) (2023-06-09T16:38:20Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename
Refactoring [57.8069006460087]
本研究では,他のリネーム活動よりも難易度の高い変数名の自動改名について検討する。
変数名に対する名前変更のための2段階事前訓練フレームワークであるRefBERTを提案する。
RefBERTの変数名は既存の手法よりも正確で有意義であることを示す。
論文 参考訳(メタデータ) (2023-05-28T12:29:39Z) - Do code refactorings influence the merge effort? [80.1936417993664]
複数のコントリビュータがソースコードを並行して変更して,新機能の実装やバグの修正,既存のコードの変更などを行っている。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
研究によると、すべてのマージの試みの10~20%が衝突を起こしており、これはプロセスを完了するために手動開発者の介入を必要とする。
論文 参考訳(メタデータ) (2023-05-10T13:24:59Z) - How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation [25.626914797750487]
リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
論文 参考訳(メタデータ) (2020-10-26T20:33:17Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。