Using topology complexity as a software architecture design quality assessment

The quality of a software architecture is very important for the success of a project. Wrong architectures will result in unnecessary time spent refactoring components and can even result in the failure of a system or project in the worst case. Research shows the software industry is making a migration from a
monolithic architecture to the usage of microservices. This shift brings along the problem which is finding the correct granularity for the amount of microservices and how much work they should do individually.

This problem is currently often handled by creating services as one sees fit at that moment which can result in the need to refactor services further on when they are incorrectly defined. In this research, we will investigate the main research question How to effectively assess the design quality of software architecture from the topology of system components?

Current research shows various formulas for calculating the complexity of architecture given certain partitions but does not yet contain a clear comparison between these methods given this context. To these existing measures, we add a not yet tested formula that was created within the research company and stems from industry experience. We test the effectiveness of different formulas in their ability to assess architecture design quality using complexity as an indicator. Such a comparison between formulas has not been done in related research and will give further insight into a new possibility to use these formulas. We test the accuracy of formulas by creating a baseline measurement from interviews with professionals in the field about various architecture topologies.

We then compare the formulas to this baseline measurement to assess their accuracy in representing these perceived best-quality architecture topologies. Using this method we were able to determine that the formula from industry practice is the best at calculating the optimal architecture topology whereas a clustering formula from related work is best at representing the total overall opinion of experts in the field. This means different formulas can be used in different situations depending on the context.