ИСТРАЖИВАЧКА БЕЛЕШКА
Рефакторисање уз помоћ вештачке интелигенције: методи и докази
Како вредновати новије методе рефакторисања уз подршку вештачке интелигенције, а да се уверљива генерисана закрпа не поистовети са потврђеним очувањем понашања.
НЕПОСРЕДАН ОДГОВОР
Који су методи и докази важни за рефакторисање уз помоћ вештачке интелигенције и очување понашања?
Раздвојте предлагање трансформације од поузданог извршавања и провере. Где год је могуће, нека модел препозна рефакторисање, а механизам за рефакторисање га примени; потом захтевајте компилацију, тестове, статичке провере и доказ да је намеравана трансформација заиста извршена.
Зашто је та разлика важна
Метод и наведена гаранција морају имати исту уочљиву границу.
Од рефакторисања се очекује да очува уочљиво понашање и истовремено унапреди унутрашњу структуру. Језички модел може предложити уверљиву прераду без потврђивања иједног дела тог захтева, па површинска уверљивост није довољна.
Новија истраживања раздвајају улоге на различите начине: модел може да препозна познату трансформацију коју ће извршити поуздан механизам или да генерише закрпу која се потом подвргава компилацији, тестовима, статичкој анализи и откривању рефакторисања. Обухват верификације важан је колико и сам модел.
Практичан поступак
Одредите намеравано рефакторисање
Уместо општег захтева за сређивање, навести структурну измену и понашање које мора остати стабилно.
За познате трансформације предност дати поузданом извршавању
Када механизам за рефакторисање подржава дату операцију, користите модел за откривање или избор параметара, а механизам за њену примену.
Проверите генерисане закрпе на нивоу репозиторијума
Компајлирајте, покрените релевантне тестове, примените статичке провере и потврдите да је намеравано рефакторисање спроведено без неповезаних измена.
Испитајте преостали ризик
Забележити непокривено понашање, нестабилне тестове, ефекте који захватају више датотека и случајеве у којима наизглед ваљана закрпа није могла бити верификована.
Неопходни докази
Тврдња је утемељена само онолико колико и својство измерено после генерисања или декодирања.
- Трансформација је прецизно одређена, а не описана само као побољшање квалитета кода.
- Након измене, компилација и релевантни тестови успешно пролазе.
- Статичке провере и откривање рефакторисања поткрепљују тврдњу о структури.
- Неповезане разлике изван предвиђеног опсега мере се или прегледају.
- Наведени су контекст репозиторијума и ограничења покривености тестовима.
Шта повезана студија наводи
- Рад на овом сајту о хијерархијском латентном управљању пружа сродне доказе о ограниченом генерисању, али није референтно мерило за рефакторисање уз очување понашања.
- Његова мерења стопе успешног рашчлањивања, слободе уређивања и разноврсности могу допринети пројектовању контролне површине, али не замењују компилацију, тестове нити откривање рефакторисања.
- Код тврдњи о рефакторисању, захтеви у погледу доказа треба и даље да узимају у обзир понашање и репозиторијум.
Граница обухвата
- Пролазак доступних тестова не доказује семантичку еквивалентност за непроверена понашања.
- Мањи diff није сам по себи исправно рефакторисање.
- Повезани експеримент на сајту обухвата кратке Python функције и не вреднује рефакторисање на нивоу репозиторијума.
Примарни и сродни извори
За изворне методе, мерења и наведена ограничења погледајте повезане радове.
- An Empirical Study on the Potential of LLMs in Automated Software Refactoring
Проучава рефакторисања која предлаже LLM и њихову поновну примену помоћу поузданог механизма за рефакторисање.
- SWE-Refactor: A Repository-Level Benchmark for Real-World LLM-Based Code Refactoring
Компилација и тестови на нивоу репозиторијума, као и евалуација усмерена на рефакторисање.
- Inspectable Control for Structure-Preserving Software Regeneration
Повезани докази о ограниченом генерисању и изричито наведена ограничења.