Automating Compliance by Taking a Model-Driven Approach