This 1-year course gives students the opportunity to develop a considerable software system following a rigorous software development process. Over two semesters, students develop a strategic, turn-based, distributed, 2D game following a model-driven engineering approach. The project takes the students through all the phases of a software’s life‐cycle, from requirements elicitation and specification, to architecture design and detailed design, to implementation, deployment and maintenance. Throughout the project, students follow a model-driven engineering approach, where models of the software that is being developed are built at different levels of abstraction using different modelling formalisms. The final implementation is done by the students using an object-oriented programming language of their choice.