An empirical study of software design practices | IEEE Journals & Magazine | IEEE Xplore