An empirical study on the developers' perception of software coupling