COMP603: Program Design & Construction Projects
2019 Semester 2
Contents
Introduction 2 Requirements.2 Important dates.3 Final code submission .3 Note.3 Marking Guideline.4
1
Introduction
This semester you will complete a project to produce a software product. You can work individually or in groups of 2 students. You want to select a product type from the list below or come up with your own.
A virtual pet game.
Sudoku
A card game
A foreign language (vocabulary) learning software
Chess games
Board games
Deal or no deal
Who wants to be a millionaire
A RPG game
A soccer/rugby manager game
Requirements
The project contains 2 stages:
o In Stage 1, you will need to develop a Command-line User Interface (CUI) version of the
product. You will need to use text files to store input and output data from the program.
o In Stage 2, you will upgrade the product to a Graphical User Interface (GUI) version. Meanwhile, you will include a Database component to the product, implement design patterns and include necessary unit tests.
The source code of the CUI and GUI versions of your products will be submitted in Week 6 and Week 12, respectively. The source code for each stage weights 50% of your project grade (see the Marking Guideline in Page 3)
You need to use Apache Derby DB (also called JavaDB: http://db.apache.org/derby/) as the database management system of your project.
You need to develop the project by using NetBeans
You need to have unit tests for testing some important functionalities of the program (for Stage 2
only).
The program needs to be bug free and have robust error handling.
The program should be easy to build and run without any configuration (especially, for Stage 2, the DB should be setup automatically without any manual configurations).
You need to have an open mind about the functionality of your game, and try your best to make your program robust, interesting, and easy to use.
You will be expected to develop your own Java code for the projects. You may use the Java standard library. You may also use other external libraries with my permission.
2
Important dates
You need to register your project before Week3s labs by emailing your TA your project name and group member name
Stage 1 source code submission: 23/08/2019 (Friday, Week 6), 11:59pm
Stage 2 source code: 18/10/2019 (Friday, Week 12), 11:59pm
Final code submission
The project will be submitted via Blackboard;
You need to submit a compressed file which contains:
o The project folder which contains all the source codes, unit tests, and related files, e.g., image files, text files;
o In Stage 2, you also need to include the database folder which contains all the database files in the compressed file. You can set the DB directory inside your project folder.
Note
Minimum pass requirement applied for the project. To pass the course, the student needs to obtain at least a minimum pass (35%) in coursework (includes midterm exam and project) and (40%) in the final exam. And obtain at least 50% overall. (check the Week 1 slides for details).
Plagiarism and self-plagiarism will result zero mark in the assignment and be reported to the Faculty.
Late submission penalty will be applied (5% penalty per day up to a maximum of 5 days. Late
assessments after 5 days will not be accepted without a Special Consideration being granted)
You have the responsibility to keep and backup different versions of yourprograms. Losing of data (code) will not be considered as a valid reason for special consideration!
3
Marking Guideline
Requirement
Max mark
Stage 1
User interface (CUI)
Clear and well-designed interface
The program can handle users inputs from the CUI properly
The interface is easy for users to interact with
10
File IO
The program input and output data from/to text files successfully
File IO must contribute to the functionalities of the project.
Use classes/methods taught in this paper
10
Software functionality and usability
The program is easy to compile and run without any manual configurations (e.g.,
setup input/output files, import .jar files, etc.)
The program can be easily interact without any errors
The complexity of the functionality
10
Software design & implementation
The program can be compiled successfully
Highly readable code
Meaningful and appropriate comments
Executes without runtime errors
Robust error handling
Clear class structure
Complexity and robustness of the functionality
20
Stage 2
User interface (GUI)
Clear and well-designed graphical user interface
The interface is easy for users to interact with
10
Database
The program contains a database element
Can achieve database interactions and operations (input and output) in the program
JDBC must contribute to the functionalities of the project.
10
Software functionality and usability
The program is easy to compile and run without any manual configurations (e.g.,
setup DB, import .jar, etc.)
The program can be easily interact without any errors
The complexity of the functionality
10
Software design & implementation
The program can be compiled successfully
Highly readable code
Meaningful and appropriate comments
Executes without runtime errors
Robust error handling
Clear class structure
Implementation of design patterns
Good coding style
Good OO design
No obvious code smells
15
Unit testing
Correct tests
Tests cover important functionality well
Well-named tests
5
Total
100
4
Reviews
There are no reviews yet.