Software design : concepts and methods - Stevens, Wayne P. (Pratical software engineering series, 1991)