What a model is and why we need it in programming