Affiliation:
1. Department of Mathematics and Computer Science, Karlstad University, Karlstad, Sweden
Abstract
Software architecture consistency checking (SACC) is a popular method to detect architecture degradation. Most SACC techniques require software engineers to manually map a subset of entities of a system's implementation onto elements of its intended software architecture. Manually creating such a "seed mapping" for complex systems is a time-consuming activity.
The objective of this paper is to investigate if creating seed mappings semi-automatically based on mapping recommendations for training automatic, machine learning-based mappers can reduce the effort for this task.
To this end, we applied InMap, a highly accurate, interactive code-to-architecture mapping approach, to create seed mappings for five opensource systems with known architectures and mappings. Three different machine learning-based mappers were trained with these seed mappings and analysed regarding their predictive performance. We then compared the manual effort involved in using the combination of InMap and the most accurate automatic mapper and the manual effort of mapping the systems solely with InMap.
The results suggest that InMap, with a minor adaption, can be used to seed an accurate mapper at a size of 20--25% based on Naive Bayes. A full mapping with only InMap though turns out to involve slightly less manual effort on average; this is, however, not consistent across all systems. These results give evidence that more advanced ways of combining automatic mappers with InMap may further reduce that effort.
Publisher
Association for Computing Machinery (ACM)