Automatic Formative Assessment in Computer Science: Guidance to Model-Driven Design