MORCoRA: Multi-Objective Refactoring Recommendation Considering Review Availability

Das Paper stellt MORCoRA vor, eine multi-objective Suchmethode, die nicht nur Code-Qualitätsverbesserungen und semantische Korrektheit anstrebt, sondern auch sicherstellt, dass die empfohlenen Refactoring-Sequenzen von verfügbaren und fachkundigen Entwicklern zeitnah geprüft werden können.

Lei Chen, Shinpei Hayashi

Veröffentlicht Tue, 10 Ma
📖 4 Min. Lesezeit☕ Kaffeepausen-Lektüre

Each language version is independently generated for its own context, not a direct translation.

MORCoRA: Der kluge Assistent für sauberen Code – der auch auf die Zeit der Entwickler achtet

Stellen Sie sich vor, Sie sind der Chef einer großen Baustelle (ein Software-Projekt). Ihre Arbeiter (die Entwickler) bauen ein Haus (den Code). Manchmal ist das Haus etwas wackelig, die Wände sind krumm oder die Leitungen liegen falsch. Um das zu reparieren, müssen Sie den Bauplan ändern. Das nennt man im Programmier-Jargon „Refactoring".

Das Problem ist: Nicht jeder Bauleiter weiß sofort, welche Änderungen am besten sind. Und selbst wenn er es weiß, gibt es ein riesiges Problem: Wer soll die neuen Pläne prüfen?

Das Problem: Der überlastete Prüfer

In der alten Welt gab es Werkzeuge, die automatisch die besten Baupläne vorschlugen. Sie sagten: „Hey, wenn wir diesen Balken hier verschieben, wird das Haus stabiler!" Das war toll für die Qualität. Aber diese Werkzeuge vergaßen eine wichtige Sache: Die Menschen.

Stellen Sie sich vor, Ihr Werkzeug schlägt vor, einen riesigen Umbau durchzuführen. Aber der einzige Experte, der diesen Umbau verstehen und genehmigen kann, ist gerade dabei, drei andere Häuser zu bauen, hat eine Grippe und sitzt in drei Meetings. Wenn Sie ihm den Plan schicken, wird er ihn wahrscheinlich ignorieren oder auf später verschieben. Das Ergebnis? Der Umbau passiert nie, und das Haus bleibt wackelig.

Die Forscher Chen und Hayashi haben sich gedacht: „Das ist wie ein Koch, der ein fantastisches Rezept erfindet, aber keine Zeit hat, es zu kochen, weil er schon mit dem Abwasch beschäftigt ist."

Die Lösung: MORCoRA

Die Autoren haben ein neues Werkzeug namens MORCoRA erfunden. Man kann es sich wie einen sehr klugen, einfühlsamen Bauleiter vorstellen, der drei Dinge gleichzeitig im Blick hat:

  1. Qualität: Das Haus muss stabiler werden (besserer Code).
  2. Sinnhaftigkeit: Der Umbau muss logisch sein. (Man verschiebt den Balken nicht in ein Zimmer, wo er nichts zu suchen hat).
  3. Verfügbarkeit (Der neue Clou): Der Umbau muss von jemandem geprüft werden können, der Zeit hat und Verstand besitzt.

Wie funktioniert das? (Die Analogie)

Stellen Sie sich MORCoRA als einen Talent-Agenten vor, der für ein Theaterstück Besetzungen sucht.

  • Der alte Agent (alte Tools): Sucht nur nach dem besten Schauspieler für die Rolle. Er findet einen genialen Schauspieler, aber der hat gerade eine Tournee und kann nicht proben. Das Stück fällt aus.
  • Der MORCoRA-Agent: Sucht nicht nur nach dem besten Schauspieler, sondern fragt auch: „Wer ist gerade frei? Wer hat keine anderen Verabredungen? Und wer kennt das Stück schon gut?"

MORCoRA rechnet also nicht nur aus, wie gut der Code wird, sondern schaut auch in den Kalender der Entwickler:

  • Wer hat in den letzten Wochen viel an diesem Teil des Codes gearbeitet? (Das ist Expertise).
  • Wer hat gerade zu viele offene Aufgaben oder Pull Requests (Anträge auf Änderungen)? (Das ist Arbeitslast).

Wenn ein Entwickler zu viel zu tun hat, schlägt MORCoRA ihn nicht als Prüfer vor. Stattdessen sucht er jemanden, der zwar vielleicht nicht der allerbeste Experte ist, aber dafür Zeit hat, sich das anzusehen. Oder er findet eine kleine Gruppe von zwei Leuten, die beide Zeit haben und zusammen das nötige Wissen abdecken.

Was haben sie herausgefunden?

Die Forscher haben MORCoRA an sechs großen, echten Software-Projekten getestet (wie bei Mockito oder Glide, die Sie vielleicht kennen).

  • Das Ergebnis: MORCoRA fand Lösungen, die fast genauso gut für die Code-Qualität waren wie die alten Tools.
  • Der große Unterschied: Die Lösungen von MORCoRA waren 433 % besser darin, tatsächlich geprüft und umgesetzt zu werden.

Warum? Weil die alten Tools oft Pläne vorschlugen, die niemand prüfen konnte, weil die Experten zu beschäftigt waren. MORCoRA schlägt nur Pläne vor, die jemand wirklich abhaken kann.

Fazit in einem Satz

MORCoRA ist wie ein kluger Assistent, der nicht nur den besten Weg für das Haus findet, sondern auch sicherstellt, dass die Handwerker, die den Weg bauen sollen, nicht gerade am anderen Ende der Welt feststecken. Es erinnert uns daran: Gute Software ist nicht nur ein technisches Problem, sondern auch ein menschliches. Man muss die Zeit und Energie der Entwickler respektieren, sonst bleiben die besten Ideen nur auf dem Papier.