The final requirement of my undergradtuate degree program was the completion of a IT related project. The description of the course is:
The computing and IT project enables you to explore computing, information and communications technologies in substantial depth and it is the compulsory final module for our computing and IT qualifications. It offers you practical experience of independent learning and reflective practice. You’ll apply advanced principles and techniques to produce a solution to a problem which you have defined and write up your experience and findings in a substantial report. You’ll also be responsible for choosing your own topic, carrying out the project and writing it up, with the help of a supervisor to advise and guide you.
The 'problem' which I identified was that there is a local community of teenagers and adults who enjoy playing table top games together at the local community hall. The players enjoy playing top-table games because of the social interactions they get to experience, however sometimes situations arise which prohibits players from meeting together and thus prevent the players from playing.
I proposed to develop a software system which would allow the members of such a community to play top-table games together over the internet. This would be beneficial for those occasions when they would otherwise be unable to travel to the community center to play.
The definition of a final project in the context of TM470 is:
I based the project on the Open University modules M362 ‘Developing Concurrent and Distributed Systems’ because the solution concurrent systems communicating over a large network. The project was also based on TM354 ‘Software Engineering’, which is what I based the development process/lifecycle and artefact list on.
While the focus of the project is the design and development of the proposed software system, the only deliverable artefact is the so-called 'final project report' - an electronically marked assessment (EMA).
The creation of the EMA will be interative and incremental, mirroring the proposed development of the software. This will allow the final EMA document to evolve as the course progresses, and will enable my tutor to offer advice throughout the development process.
The proposed system allows miniature war gamers to take part in the whole game experience from home. This refered to both the preparation of game assets as well as playing the battles against other players. The developed system therefore had to be both distributed and concurrent, allowing remote access for administrations to manage the system as well as multiple players to play against each other simultaneously.
I chose to split up the architecture of the system into two isolated parts: a centeralized web server for data storage and system management, and a second part for the simulation of a miniature table-top game.
A web-application running on a centralized server and allows visitors, members and administrators to visit the website using a standard internet browser. The web server features a layered architecture, providing functionality (and a seperation thereof) of the presentation, business logic and the persistance of data. Communication between clients and the server is achieved using standard internet protocols (TCP/IP and http commands)
The Client software is used to simulate the table top battles in an interactive fashion between two players over the internet. It will allow members of the gaming club to login in, and automatically retrieves data assets from the web server. Two applications being used remotely then connect to each other using the UDP protocol. The webserver is used as a common mediator for initially communicating the IP addresses of both parties to each other.
An important aspect of the project management was managing the risk factors, and producing actions to be taken to mitigate any risks. This involed producing an intial list of risk points, and constantly re-evaluating risk points throughout the development process.
I also assigned a priority/criticality level to each risk point, which allowed to be prioritize the risk points, dealing with the highest risk first.
I based the project on a modified R.U.P development model, for the incremental development of a solution over iterations of development, with the following phases in each iteration:
An iteration report was produced at the end of each round and added to the EMA document.