  Background: The process of mapping a source code entity onto an architectural
module is to a large degree a manual task. Automating this process could
increase the use of static architecture conformance checking methods, such as
reflexion modeling, in industry. Current techniques rely on user
parameterization and a highly cohesive design. A machine learning approach
would potentially require fewer parameters and better use of the available
information to aid in automatic mapping. Aim: We investigate how a classifier
can be trained to map from source code to architecture modules automatically.
This classifier is trained with semantic and syntactic dependency information
extracted from the source code and from architecture descriptions. The
classifier is implemented using multinomial naive Bayes and evaluated. Method:
We perform experiments and compare the classifier with three state-of-the-art
mapping functions in eight open-source Java systems with known
ground-truth-mappings. Results: We find that the classifier outperforms the
state-of-the-art in all cases and that it provides a useful baseline for
further research in the area of semi-automatic incremental clustering.
Conclusions: We conclude that machine learning is a useful approach that
performs better and with less need for parameterization compared to other
approaches. Future work includes investigating problematic mappings and a more
diverse set of subject systems.
