Published: Nov. 21, 2023
Architecture erosion occurs when a software system's implemented architecture diverges from the intended over time. Studies show impacts development, maintenance, and evolution since it accumulates imperceptibly. Identifying early symptoms like architectural smells enables managing through refactoring. However, research lacks comprehensive understanding of erosion, unclear which are most common, detection methods. This thesis establishes an landscape, investigates symptoms, proposes identification approaches. A mapping study covers definitions, causes, consequences. Key findings: 1) "Architecture erosion" is used term, with four perspectives on definitions respective symptom types. 2) Technical non-technical reasons contribute to negatively impacting quality attributes. Practitioners can advocate addressing prevent failures. 3) Detection correction approaches categorized, consistency evolution-based commonly mentioned.An empirical explores practitioner communities, surveys, interviews. Findings reveal associated practices code review tools identify while collected measures address during implementation. Studying comments analyzes in practice. One reveals violations, duplicate functionality, cyclic dependencies frequent. Symptoms decreased time, indicating increased stability. Most were addressed after review. second violation projects, identifying 10 categories. Refactoring removing some disregarded.Machine learning classifiers using pre-trained word embeddings reviews. SVM word2vec achieved highest performance. fastText worked well. 200-dimensional outperformed 100/300-dimensional. 4) Ensemble classifier improved 5) found results valuable, confirming potential.An automated recommendation system identifies qualified reviewers for violations similarity file paths comments. Experiments common methods perform well, outperforming baseline approach. Sampling techniques impact
Language: Английский