Understanding, analysis, and handling of software architecture erosion
Promotie: | Dhr. R. (Ruiyin) Li |
Wanneer: | 09 januari 2024 |
Aanvang: | 14:30 |
Promotors: | P. (Paris) Avgeriou, Prof, prof. dr. P. Liang |
Waar: | Academiegebouw RUG |
Faculteit: | Science and Engineering |
Erosie van software vroegtijdig signaleren
Naarmate softwareontwikkelaars aanpassingen maken aan bestaande softwaresystemen, raakt de grotere, achterliggende structuur van zo'n systeem nogal eens buiten beeld. Die achterliggende structuur wordt ook wel de softwarearchitectuur genoemd, en het verlies daarvan architectuurerosie. Een manier om architectuurerosie te beheren is door vroegtijdige symptomen te identificeren.
In zijn promotieonderzoek bestudeerde Ruiyin Li het landschap van architectuurerosie en bracht hij veelvoorkomende erosiesymptomen in kaart. Li geeft vier perspectieven op definities en bijbehorende symptoomtypen van architectuurerosie, en constateert dat er verschillende detectie- en correctiebenaderingen zijn, waarbij consistentie- en evolutiegebaseerde benaderingen vaak worden genoemd.
Met een empirische studie onderzocht Li de percepties van softwareontwikkelaars uit de beroepspraktijk. De meest voorkomende symptomen waren schending, duplicerende functionaliteit en cyclische afhankelijkheid. Symptomen namen af in de loop van de tijd, wat wijst op toenemende stabiliteit. Schendingen vereisen de meeste aandacht, voornamelijk aangepakt via refactoring en het verwijderen van code.
Li ontwikkelde classificatoren om automatisch schendingssymptomen te identificeren in code-reviews, met behulp van machine learning en deep learning met vooraf getrainde woordembeddings. Een ensemble-classifier presteerde het beste. Softwareontwikkelaars uit de beroepspraktijk vonden de resultaten waardevol en bevestigden het potentieel. Li beveelt gekwalificeerde code-reviewers aan voor schendingen, met behulp van detectiemethoden voor gelijkenis, en bevestigde de prestaties daarvan in experimenten.
Ruiyin Li voerde zijn onderzoek uit bij het Bernoulli Institute for Mathematics, Computer Science and Artificial Intelligence, afdeling Software Engineering, met financiering van het Chinese Scholarship Council. Hij vervolgt zijn loopbaan als postdoc bij Wuhan University.