Integrating Model Driven and Model Checking to Mine Design Patterns