Project: Tungrorum
School year: third bachelor year, first semester.
Also see the attached screencast 1.
For the Software Engineering course, our class was divided into teams of five people. Each were given the same assignment: build a variant called “Tungrorum” 2 on the Carcassonne game. The players (2 to 5) can put their pawns on roads (in which case they become robbers), in cities (knights), in cloister (monks) and on the fields (farmers). By placing land tiles and consequently placing their pawns tactically, the players try to get as many points as possible.
The goal of this course (and project) was to:
- build an extensible (easy to add new types of land tiles) and robust OO model that meets all of the game’s requirements
- gain insight into organizing teamwork, in terms of responsibilities, distribution of workload and general collaboration
- get experience with UML and design patterns
- gain insight in OO modeling according to a fairly verbose project methodology, which required the following documents: use cases (brief & fully-dressed), domain model, system sequence diagrams, contracts, collaboration diagrams, class diagrams and detailed log files of each team member’s activities
- unit tests for everything was a requirement
We were the only team to have a fully operational application at the end. Combined with the many other courses, we worked 10–13 hours most days — weekends included. You may consider this to be proof of poor performance, but in reality, we were just bogged down by the massive amount of required overhead: keeping the code, manifold diagrams, use cases and report in sync.
I built this together with Brecht Schoolmeesters, Kristof Bamps, Nick Gaens and Inneke Ponet.
-
I didn’t make a screencast back in 2008, so I decided to build the project using Qt 4.8 on OS 10.7 Lion (it was originally written for Qt 4.4 on OS X 10.5 Leopard). ↩︎
-
The name is based on the nearby (to the University of Hasselt) city of Tongeren, of which “Tungrorum” was the original Latin name — when Belgium was conquered by the Romans, it was a Roman administrative capital. Since the Carcasonne board game is somewhat reminiscent of the Roman era, this was an apt name. ↩︎