Engineering – Java

The aim of this coursework is to test the following:
• ability to tackle a programming project as part of a group
• ability to apply good object-oriented design to a programming problem
• ability use a sophisticated design to achieve sophisticated goals
• ability to write good and clear code
• ability to document your work
Your marks will reflect this.

Design, implement, justify and document a quiz game. It should have the following minimum characteristics.
• There should be multiple-choice questions (modelled with a class called QuestionMC).
• There should be at least 10 multiple-choice questions and these should be loaded from a text file.
• There should also be non-multiple-choice questions questions (modelled using a different class. An example would be a maths-based question where contestants type in a numerical answer.
• The player’s score needs to be kept tracked of based on which questions they have answered correctly.
• Names and scores of past players need to be stored (in memory or to disk).
• There must be some random element to the game (e.g. questions being asked in a different order).
• It must be easy to start. I should be able to use and test it without setting up anything extra myself. Clearly indicate the class with the main method.
Higher marks will be obtained if you implement additional functionality that makes the design and implementation of your game more challenging. These should be listed in the “design and justification” section. However, if you do not do this, you may still still achieve a first-class level mark though it’s less likely.
You may use either a text-based user-interface or a graphical user interface.
Design and write a Java application (60%)
You should implement the quiz game, which applies, implements and discusses good object-oriented design.
What to submit: A blueJ project folder.
This section will be marked on:
• How well does it work?: How well does it work and does it do what it should?
• Sophistication of functionality: how sophisticated is the functionality?
• Sophistication of design: how sophisticated is the way in which the functionality is realised?
• Clarity of code: use of comments, appropriate variable names, indenting and clear code structure.
Design and justification (20%)
Write a document with a maximum of 4 pages, in 4 parts:
• The UML diagram (use the one that BlueJ gives you). This should take half a page. See the example in the individual coursework description.
• For each class on the UML diagram, describe what it represents, its responsibilities, its dependencies on other classes and justify in terms of object oriented principles. You may include considerations such as extending the program later and reusing component. For example:
• List any additional functionalities that you provided and a very brief description of how you implemented it
• Very briefly, say how the team operated and who worked on what.
What to submit: PDF or Word document.
This section will be marked on:
• Suitability of the design: how appropriate are the classes as depicted in the UML diagram?
• Justification of the classes: how appropriate are the classes as depicted in the UML diagram?
• Sophistication extra functionalities: how sophisticated were the extra functionalities and their implementation?
JavaDoc Documentation (10%)
Insert appropriate JavaDoc comments in your code so that complete you can generate complete standard documentation (using Tools -> Project documentation in BlueJ) for public fields and methods. This will be inside a doc folder.
What to submit: This should be the doc folder in your blueJ project folder.
This section will be marked on:
• Quality: How well the Javadoc describes the classes and methods? This should be both precise and concise and should enable a programmer be able to use them.
• Completeness: how complete is the documentation?
User instructions (10%)
Write a user guide with a maximum of 4 pages.
The software should be easy for me to use without me having to install other things. Don’t make it hard for me to mark! I need to know:
• what the software does.
• a list of it main functionalities (these first two steps will be based on the previous coursework, but they don’t have to be the same.
<li
which class contains the main() method and whether there are any required parameters to run the software.
</li
• How to use each of the functionalities.
What to submit: A PDF or Word document up to 4 pages.
This section will be marked on:
• Quality of instructions: Instructions should be clear yet concise and should cover all the functionality that you wish the marker to consider.
Relative contribution of members
List each group member and give each a weight corresponding to the degree of contribution. The group must agree this weighting. It is expected that most groups will make equal contribution. If not, and one person out of the four did half the work of everyone else, you’d weight them as 1,2,2,2. If contributions are not equal, you’ll need to justify them.
What to submit: A table containing the above information in the form shown below. as a PDF or Word document.
Method Contribution weight Justification (a few words)
… … …
How it’s marked: Marks will be adjusted slightly per member according to these weights
Submission
Your group submission should be submitted to the group submission area and should be a zip file that contains:
• A BlueJ project folder (your software)
• A Word or PDF of up to 4 pages (your justification)
• A Javadoc folder (called “doc”) within the BlueJ project folder (your JavaDoc)
• A Word or PDF of up to 4 pages (your user guide)
• A word of PDF file of the relative contribution of members
A few notes
More lectures: You haven’t learnt all you need yet. There’ll be more information in the coming practical and lectures.
Help: We will provide high-level help in lab sessions. Before asking for help, please try and think of some solutions yourself first. We will discuss different ways of doing things with you and point you to resources, but all the work needs to be yours.
Groupwork: You must ensure that everyone in your group has the chance to contribute. But it is also the responsibility of each group member to take part, be reliable, ensure the group knows what to expect and take part from the start. If you just come at the last minute, it’s too late! Use the Moodle group discussion boards to coordinate.
Plagiarism: You must only work together within your groups. Any evidence of copying between groups will be referred to the Academic Misconduct Panel and may result in the whole group getting a zero for the module! Don’t risk it!

This question has been answered.

Get Answer

Leave a Reply