Managing Software Design Erosion with Design Conformance Checking