| Computer Science & Software Engineering |
| ||
|
Programming Project
Final Submission Due date: 5 pm, Monday 31 October 2011 (week 13)
This project is worth 20% of the total marks for CITS1220 Aim & Project Description
The project is designed to give you experience developing a Java software application using software engineering tools and techniques for producing high quality Java code.
In this project you will create a Project Task Management tool that keeps track of the staff involved in a project and the project tasks that need to be completed. The system should be accessed through a Java Swing graphical user interface. A user should be able to initialize a new project, add tasks and employess to the project, and check due dates for tasks. The system must include the following Java classes: Task: is the basic class for each task in the project. It should have a name, a start date, and an end date, a description, and a staff member assigned to this task, and a boolean variable indicating whether it is completed or not. Staff: is a class to represent a person who works on a project. Each member of staff has an employee number, a name, and a role. Project: a class to represent a project. Each project has a name, and a project manager, who is a member of staff on the project. It also has a collection of Staff who are assigned to work on that project, and a collection of Tasks that make up the project. ProjectGUI: a user interface for Project Task Manager. The interface must be user friendly and robust to user errors such as mis-typed entries and mis-sequenced interactions. You should also provide appropriate test assets (that is, test programs in JUnit or test scripts) for each of your classes. Your test assets will demonstrate the functionality and quality of each class and the whole system. Your project submission will demonstrate your ability to deliver a high quality software system using the software engineering tools Eclipse, JavaDoc, JUnit and VioletUML. The project is based on CITS1220 laboratory exercises, and successfully completing the lab exercises is essential proeparation for the project. The system must satisfy the following acceptance test. Submit a test script to demonstrate this acceptance test. You are welcome to substitute your own scenario in the acceptance test below, so long as the same functionality is demonstrated. 1. The project Generic Software is created, and three staff are added. They are: Bob, the manager; Alice, the developper; and Charlie, the intern. The following tasks are created: Requirements Analysis assigned to Bob, to start September 1 and finish October 1 System Design assigned to Alice , to start September 15 and finish October 15 Code (A) assigned to Charlie to start October 1 and finish November 1 Code (B) assigned to Alice to start October 1 and finish November 1 Testing assigned to Bob to start October 15 and finish November 1 Documentationassigned to Charlie to start September 15 and finish November 1 2. 3. 4. 5. 6. 7. 8. This section is not compulsory, but is provided for students who complete all of the required functions for the project to the required quality level before the deadline. For bonus marks, your system may provide one or more of the following optional functions: 1. Allow the tasks to be sorted by start date, end date, or assigned staff member 2. Allow a user to save and load projects from file. 3. Use the actual date to highlight which tasks are overdue. 1. Hard Copy Report: A project report, documenting your system, is to be submitted to the CSSE Office by the due date. The report should include: 2. Electronic Submission of Code: All project code and lab exercises must be submitted electronically by the due date to the appropriate area using cssubmit at Submit all Java source files. Do not submit class files. Submit a jar file and xml test script(s) for running the acceptance test(s) on the GUI. Submit files individually, do not zip them. The code will be marked on the CSSE Lab's Windows system; you are responsible for ensuring that all your code compiles and runs in that environment. Multiple submissions to cssubmit are allowed, and so you should follow an iterative project management method, using the cssubmit system for version control to submit working versions of code and documentation at regular intervals throughout the project period. Each submission is stored as a new version. |
Assessment The project is worth 20% of the total mark for CITS1220. The project will be marked according to three criteria: A. Project Report (30%) 1) A clearly written report, documenting your system, using the format given in the Project Description. B. Source Code and Tests (40%) 1) All Java code is to be laid out in a clear and logical fashion, with basic Javadoc documentation for each method, satisfying the Checkstyle CITS1220 Beginners rules. 2) Comprehensive JUnit4 test cases should be provided for the Task, Staff and Project classes, to test normal, boundary and exceptional cases for each method, except the getter and setter methods. 3) The whole system should pass the client acceptance test given in the Project Description, and a runnable test script should be provided to demonstrate this. C. Usability & Robustness (30%) 1) The user interface should be highly robust to user errors, and satisfy usability criteria outlined in lectures. Late submissions will be subject to a penalty of 20% per day (or part thereof) according to the CS&SE policy on late submissions at
Projects will not be marked unless they are correctly submitted, and late penalties will apply according to the time at which a submission is done correctly if the original submission is incorrect. Please double check that your project and lab submissions are made to the correct CITS1220 cssubmit areas and that all required items are submitted. You must ensure that your name, student number and the creation date is included in each submitted file. Where you have modified a class provided in the lab classes, include both your details and those of the original author. Plagiarism This project is required to be �€œthe effort of a individual student who may have discussed general principles with others in order to understand the topic, but who is responsible for submitting an individual piece of work. Reuse of code provided in labs is encouraged, providing the original authors as well as your contribution are listed in the @authors documentation. The CSSE policy on plagiarism applies to this project. For details see |
| ||
|
|