A Model-Driven Approach for the Management and Enforcement of Coding Conventions