Common coupling increases the interdependencies between software modules. It should be avoided if possible. In previous work, we presented two types of categorization of common coupling, one is for single-kernel-based software, one is for multi-kernel-based-software. In this paper, we analyze the relationships between these two types of categorization and apply them to study the evolution of the complexity of Apple Darwin. The same conclusion about Darwin’s evolution is drawn based on the two types of categorization of common coupling: From version XNU-517 to version XNU-792, Darwin has restructured to reduce the number of difficulty-inducing high category (level) global variables in order to reduce the system complexity. However, due to the definition-use dependencies, the complexity of Darwin induced by global variables has increased from version XNU-517 to version XNU-792. |