Using design patterns and constraints to automate the detection and correction of inter-class design defects | IEEE Conference Publication | IEEE Xplore