CW2 Software Maintenance Spec Sheet
Academic Year 2019/2020
CW2 is about maintaining and extending a re-implementation of a classic retro game (Frogger). This
version has never been completed, but at least it runs, once it is set up properly.
More information about the original Frogger game and its history is available here. You can also pick
up some ideas for creating additional levels.
To get started download the original re-implementation from the following GitHub repository.
Then you should set up a JavaFX project in your preferred IDE (either Eclipse or IntelliJ) in your local
git repository, integrate the classes and resources you downloaded into your project, upload it to
GitLab, and start working on it.
The marks will be split as follows:
15% for git use (e.g. push, branch, merge, providing .gitignore)
30% for refactoring
30% for additions
15% for documentation (Javadocs + class diagram)
10% for a video, explaining your refactoring activities and additions
You should roughly spend 50 HOURS on this coursework
What to produce:
A README.md file (max. 500 words), documenting the work you conducted (highlighting the
key changes you made for maintenance and extension, where you made them, and why you
High level class diagram that shows the structure of the final version of your game (considering
only classes (excluding fields and methods, unless they are relevant for understanding design
principles/patterns), interfaces, relationships, and multiplicity). If you use software to reverse
engineer your class diagram, make sure the delivered diagram is correct and follows the above
The source code documentation (Javadocs) should be delivered in form of a Javadoc folder
inside your project folder. Besides reading your README.md file we will look at the Javadocs
to find out how you maintained and extended the game. If it is not obvious from there we
might miss it. Also we have only a limited amount of time to look at each coursework
submitted. So, please make sure to provide informative but concise Javadocs.
Finally, you have to make a video (very briefly) showing your software running and then (for
the main part) explaining your refactoring activities and additions. You should also highlight
two achievements you are most proud of.
This coursework is about maintaining and extending existing code. So, for the maintenance
part you have to use the existing code as a basis, and not write your own Frogger game from
For moderate marks:
Set up a git repository on the school’s git server https://projects.cs.nott.ac.uk/ and use it
actively for version control activities
Do some basic maintenance of the delivered code base (e.g. adding meaningful Javadocs,
organising files in a meaningful way into packages, breaking up large classes in a meaningful
way to support the idea of single responsibility, improving encapsulation, etc.)
Extend the delivered code base by adding:
o A START screen, displaying a picture related to the game and a button that provides
access to a INFO screen explaining the game operation.
o A HIGH SCORE popup, appearing at the end of each round, showing the scores from
each round, highest at the top
For higher marks: In addition to the previous, do some of the following…
Refactor the code by adding some design patterns to enhance maintainability
Organise the code to adhere to the MVC pattern
Create a permanent high score list (using a file to store scores)
Add interesting levels to the game (either follow the original Frogger game levels or come up
with your own ideas)
Add meaningful JUnit tests
Use build files (Ant or Maven or Gradle)
You have to use Java 10 or higher and JavaFX 10 or higher for the implementation. The project files
you are submitting need to be either compatible with Eclipse or IntelliJ.
Deliverables: Three separate files, uploaded to Moodle:
A zip file containing your entire project (including your README.md and Javadocs). It needs
to be possible to load (open/import) your project in one of the IDEs (either Eclipse or IntelliJ).
If any unusual steps are required, please mention this in your README.md file. To avoid
disappointment later, test your final version on a different computer. This should help to
uncover hardcoded path dependencies, which was a major issue in previous years.
Please name your zip file as follows: “Surname_FirstName_IDE_JavaVersion.zip”, where IDE
represents the name of the IDE you used (i.e. either Eclipse or IntelliJ) and JavaVersion the
Java version you used. Here is an example: “Siebers_Peer-Olaf_IntelliJ_12.zip”.
Your final class diagram as pdf. Please name your pdf as follows: “Surname_FirstName.pdf”.
Here is an example: “Siebers_Peer-Olaf.pdf”
A video of up to 2 minutes, as described above, in a common format that can be played on
the lab machines in A32. Please test your video on the lab machines before submitting it, to
avoid disappointment. Please name your video as follows: “Surname_FirstName.EXT”, where
EXT represents the extension related to your video format (e.g. mp4; mpg; avi). Here is an
Note: You are gently reminded that we are at liberty to use plagiarism detection software on your
submission. Plagiarism will not be tolerated, and academic offences will be dealt with in accordance
with university policy and as detailed in the student handbook. This means you may informally discuss
the coursework with other students but your submission must be your own work. Please also note
that it is not permitted for you to copy and paste text from another source without correct referencing.
If you are unclear about this process, please discuss with the module convenors during one of our lab
sessions or at the end of a teaching session.
This coursework is worth 50% of your module mark.
Dr Siebers and Dr Greensmith will of course be happy to answer questions and give high level
interim formative feedback on your assignment during the lab sessions. However, we might
refuse to answer very detailed technical questions, or very general questions like “What do
you think about my project so far?”.
Good luck, have fun, code well :).
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: [email protected] 微信:dmxyzl003