In this tutorial we present our work on spreadsheet engineering. We start by presenting a model-driven spreadsheet development environment (MDSDE), where a domain specific spreadsheet model is used to guide end-users in introducing correct data. The business logic of spreadsheet data is modeled via domain specific ClassSheet models. End users can not only (traditionally) edit/update the spreadsheet data, but also to evolve the model and/or the data. Our MDSDE automatically guarantees model/instance synchronization after a model/instance evolution.