A significant aspect in applying the Software Reflexion Model analysis is mapping of components found in the source code onto the conceptual components defined in the hypothesized architecture. To date, this mapping is done manually, which requires a lot of work for large software systems. This thesis evaluates if and how cluster analysis can leverage the manual mapping of source code artifacts. For this evaluation, the HuGMe method has been developed, in which assets of existing clustering techniques are combined and applied to support the user in the mapping activity. The result is a semi-automated mapping approach that accommodates the automatic clustering of the source model with the user’s hypothesized knowledge about the system’s architecture. In addition, a user-interface is designed to support the semi-automated mapping of HuGMe. The core of HuGMe is what I call a supportive clustering algorithm. The term “supportive” means that the task of the algorithm is not only to automatically cluster entities but to support the user in the efforts to achieve a correct and complete map. The clustering algorithm maps only those source code artifacts without user-interaction for which a mapping decision is “easy enough” to be made automatically. For all other source code components, where such an automatic mapping is not possible, the clustering algorithm provides suggestions for the user to which subsystem the component might belong. This thesis also presents a case study in which the cluster analysis of HuGMe is successfully applied to extend a partial map of a real-world software application. Thus confirming the benefit cluster analysis brings into the mapping activity.
Download Full PDF Version (Non-Commercial Use)