School of Computer Science – Coursework Issue Sheet
Session |
15-16 |
Semester |
Autumn |
Module Name |
Software Application Development |
Code |
G52SAD |
Module Convenor(s) (CW Convenor in Bold) |
Andrew French, Peer-Olaf Siebers |
Coursework Name |
Working with repository code |
Weight |
50% |
Deliverable (a brief description of what is to be handed-in; e.g. ‘software’, ‘report’, ‘presentation’, etc.) |
Source code check-in AND Moodle drop box (zipped up project folder) |
||
Format (summary of the technical format of deliverable, e.g. |
Java and associated source files, and comments in the Git repository |
Issue Date |
Issued w/b 9th November (lecture 7) |
Submission Date |
Thursday 10th December 2015, 4pm |
Submission Mechanism |
Via repository for the code, and Moodle dropbox |
Late Policy (University of Nottingham default will apply, if blank) |
Standard policy |
Feedback Date |
w/b 21st December |
Feedback Mechanism |
Individual comments via grading system on Moodle. |
Instructions |
The aim of this coursework is to demonstrate you can work effectively on larger software projects, by adding to a fairly complex existing software system, and that you understand the mechanics of the tools involved as well the real-world application of some object oriented principles. You will be supplied with some existing Java code in a folder on Moodle (CW2 src.zip). 1 ) Your first task is to get this code set up in a new private project on the CS Gitlab server (http://git.cs.nott.ac.uk/). Organise the repository as appropriate. * |
Name your git project “G52SAD-[yourISusername]” – e.g. G52SAD-sbzapf Once you have a local version of the code talking to the Git repository, you are ready to make some changes to this code. 2) Add an appropriate open source licence file to the project, and push it to the Gitlab server, in a ‘licence’ folder. In the Git comments for this file, give your reasons for choosing this licence. I will leave it up to you to justify the licencing – as long as your reasons match the licence specification that is fine. 3) Refactoring changes: In addNewAppliance in the Room class, you will see there is a case statement which switches between appliance IDs, setting power levels appropriately. This is simulating different kinds of appliances. The Boss has decided a better way to do this is with separate Appliance classes, representing individual appliances (e.g. Toaster, TV etc.) Using your knowledge of object oriented design, refactor the code to make it possible to have different types of appliances (the five listed at the top of the Room class), with the appropriate power values stored internally in the classes. Don’t forget to demonstrate good coding practice, and be sure to add Javadocs to your code changes to explain them. 4) Adding a GUI: We are going to want a visual way to set up and view the state of the Appliances in rooms. The GUI should perform two functions: a) Allow the user to select a room, and view the appliances in it, and the current states (power etc.) of the devices b) Allow the user to add, delete and change parameters for the devices. 5) You must comment any changes you make in the code with appropriate Javadoc comments. In your submitted source folder, there should be a subfolder called Docs, where you should render the Javadocs to HTML before submitting. Javadoc comments should include text describing what you are trying to do, and justifying your choice of implementation. WE WILL NOT MARK UNCOMMENTED CODE. Notes:
|
development, with appropriate comments to check in code. We will check for this. The marking team will need to be given access to your project – details will be provided nearer the time. 2) IN ADDITION, to confirm the submission time, you must zip up your source project folder and submit via the Moodle dropbox. |
|
Assessment Criteria |
Assessment will be both by examination of the submitted code, and by brief viva. Viva’s will be individual and will occur before the end of term. The purpose of the viva is to ensure you completed the work on your own, and you understand some fundamental concepts. To achieve high marks: You will need to have appropriately refactored the Appliance class and any affected sections in the other classes, using useful and well formatted Javadoc comments, and appropriate coding conventions. Your use of Git should be demonstrated (we will look at your repository, including looking for comments, number of check ins, licence file, and appropriate organisation of the source code tree.) The GUI should be attractive, should function well (be responsive, etc.) and it should be easy to see and edit values as required. Both a) and b) components of the GUI should be developed in their entirety. There should be evidence of relevant design patterns. A good mark: As for ‘high marks’ but with minor unfinished or unworking sections. Javadocs should illustrate the correct approach, even if all the code is not quite working. An excellent source code with poor javadocs and poor repository use will not get excellent marks. A pass mark: To at least pass, you must show you have attempted to implement the required changes sufficiently using sensible approaches, though the resulting code may not work fully or be completely finished. A GUI should still display and demonstrate some functionality. If the code is a mess and we cannot work out what you changed or why, we cannot mark your code! |