Code Smells As System-Level Indicators of Maintainability: an Empirical Study