软件开发代写｜COMP2013-Developing Maintainable Software Coursework
Assessment: 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 (Readme file + source code documentation)
10% for the demonstration video, explaining your refactoring activities and additions
Questions: Questions can be asked either on Teams or in person during the lab. We will try to answer
them as quickly as possible.Please read the questions that have been already asked before you post yours,
to avoid duplication.
Summary: This coursework is about maintaining and extending a re-implementation of a classic retro
game called Breakout. The new implementation has never been completed, but at least it runs, once it is
set up properly. More information about the original Breakout game and its history is available on
Wikipedia (https://en.wikipedia.org/wiki/Breakout_(video_game)). In addition, you will find many
opportunities on the internet to play the original game online.
Basic Requirements (to pass the assessment with 40%):
1. Set up a PRIVATE git repository on the school’s GitLab server and use it actively for version control
activities. The URL is: https://projects.cs.nott.ac.uk/
2. Do some basic maintenance of the delivered code base (this should include things like providing
a meaningful Readme.md file and 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.)
3. Extend the delivered code base by adding:
3.1 A module-info.java file
3.2 A START screen (using JavaFX) with a colour theme choice for the GAME screen and a button
that allows going to the GAME screen.
3.3 A SCORE pop-up, appearing at the end of each round, showing the scores from each round
Additional Requirements: For higher marks: In addition to the previous, do some of the following:
A1. Refactor the code by adding some design patterns to enhance maintainability
A2. Organise the code to adhere to the MVC design pattern
A3. Translate code from Swing to Java
A4. Create a permanent high score list (using a file to store scores and player names)
A5. Add interesting levels to the game (based either on your own ideas or on the original game)
A6. Add game object pictures (sprites) to the game, for representing ball/paddle/bricks
A6. Add meaningful JUnit tests
A7. Use build files (Maven or Gradle)
A8. Come up with your own groundbreaking idea … surprise us 🙂
Java Version + IDE: You have to use Java 12 or higher and JavaFX 12 or higher for the implementation.
The project files you are submitting need to be compatible with IntelliJ.