A Short Software Engineering and Systems Development Exercise
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: _0206girl
Your task is to gamify the process of putting into place at least some of the components of a community
communications network. The working game is one of your deliverables, but it must be based on a credible
real
world scenario
, even if, to make the gameplay easier to understand, the real-world scenario is simplified and
represented by just some of its key elements.
In your report, you will set out the requirements for the game in the form of a use case diagram and use case
descriptions. You will show how the use cases are to be realised. You will document the design of the software,
showing your classes and their associations, and you will and set out and complete your testplan. The main body of
the report should be no more than 10 pages. Your title page, and any recommended Appendices (see below), do
not count towards the 10-page limit.
Alongside the report you must code and test the game itself. The main logic of the game must be written in Java (it
should contain several software classes). If you choose to give your game a graphical user interface, you may use
Java Swing, JavaFX or another GUI-building toolkit of your choice. The game must satisfy the requirements set out
below.
The Scenario
To better appreciate the scenario on which the game is based, think what you would have to do if you were the
manager of a team whose mission is to create a ‘community network’ and so become an independent Internet service
provider. That means that your community network will be largely independent from the ‘big’ service providers. In this
case the community network is intended to serve the needs of an urban community that was formerly an economic and
industrial powerhouse, but that more recently has suffered social and economic deprivation as heavy engineering has
declined. Many of the members of the community are now refugees and people seeking asylum. Govan, in Scotland, is
such a community. It featured in this year’s Engineering for People Design Challenge
(
https://canvas.qub.ac.uk/courses/19149/files/3247272?module_item_id=876007
). You can create a solution for
Govan specifically, or for another community – real or imagined – that faces similar challenges. One of the goals of the
community network is to help residents feel more a part of their immediate community and better able to access public
resources and services.
The concept of ‘community networks’ is outlined in the text
Telecommunications Reclaimed: A Hands-On Guide to
Networking Communities
, which you will find here:
https://www.netcommons.eu/sites/default/files/telecom
reclaimed-web-single-page.pdf
.
Telecommunications Reclaimed
and other similar reading material are listed on
website of
NYC Mesh
, where you will find many practical tips on how to start a community network ‘in the real world’:
https://www.nycmesh.net/blog/how/
. At least some of the steps of setting up, launching and maintaining a real
community network should feature in your game.
The requirements of the game.
Your game will concentrate on this goal: creating a successful community network.
Conceptually your game will be a boardgame, but it can be a game with fewer squares than the boardgames with
which you might already be familiar. Movement around the board will be determined by the roll of a virtual die or dice.
Each square will represent part of the network solution – e.g., acquiring permissions to install the network; acquiring
and installing network hardware; acquiring and making available end-user equipment; informing and educating
members of the community so that they can access the network and use it safely and productively. Each part of the
solution is completed over a number of steps.
The game can be played by one or more players. When they land on a square, players have the opportunity to
contribute to the task that the square represents. They contribute with whatever resources are appropriate – that
might be money, expertise, time, or some combination of these. By contributing to a task, they help move the task a
step closer to completion. There is a square on which players collect resources – decide what this square would
represent in the real world and give it an appropriate name. When all the tasks are completed, the game ends and
there are suitable on-screen celebrations. If one player runs out of resources, the game ends for all players, and there
are suitable on-screen commiserations. As developer, you decide whether your game is played ‘text-only’ through the
console of the development environment, or whether you will give it a graphical user interface (GUI, see below also).
Whichever you choose, you must ensure that the events of the game and the state of play are conveyed clearly to the
players of the game.
As well as the
basic
functionality described above, you should aim to include some
value-added
features. These could include some of the following, but you might be able to devise some very original value-added features of your own:
-
a facility that writes to a text file a neatly formatted record of the steps that were taken on the path to
completing the community network;
-
an attractive graphical user interface that might encourage people to use the game as a teaching aid in the
real world;
-
a text user interface that prompts players, and lets them formulate their responses, in a very natural,
conversational manner, so that that the process of building the community network ‘comes to life’.