Lab Assignment 1: Learning Outcomes Assessed
Lab Assignment 1: Learning Outcomes Assessed
__________________________________________________________________________________
Lab Assignment 1
Learning Outcomes Assessed
The following course learning outcomes are assessed by completing this assessment:
Skills:
S5. Incorporate pre-written classes including those from an API into a software solution
A1. Design, develop, test, debug and release programs from supplied program specifications
This is a group assignment. Groups must contain two students. You are expected to partner with another student and
engage in collaboration and paired programming to complete this assignment.
• You will practise skills in reading a specification and developing functional requirements to inform your object
oriented code design and development.
__________________________________________________________________________________
• You will develop a multi-class system to meet functional specifications applying object oriented design
principles.
• You will use a GitHub repository to maintain your code. This repository will be shared with your partner.
• Your development and design process will involve creating UML class diagrams.
• You will develop your understanding of and application of object-oriented programming techniques, in
particular those relating to inheritance and abstract classes.
• You will test your code using thoughtful test cases and write some JUnit tests that can be run to test your
code.
It is expected that students will creatively design and update a system based on appropriate design choices that
address the requirements and is consistent with the design of the starting system. Before you submit, read over the
entire assignment and understand all the tasks.
All code must conform to stylistic conventions including proper commenting, appropriate choice of identifier names
(including case), proper indentation and other readability issues. If the code does not follow consistent style and
formatting standards, marks will be deducted. For examples of coding style guides, please consult:
• http://yohanan.org/steve/projects/java-code-conventions
• http://www.oracle.com/technetwork/java/codeconventions-150003.pdf
• Item 68, p. 262 of Bloch, J. (2018). Effective Java. 3rd edn. Boston, MA: Addison-Wesley (item 68, p. 262)
• Chapter 7 of Evans, B. J. & Flanagan, D. (2015). Java in a Nutshell (6th ed.). Sebastopol, CA: O'Reilly Media
Inc
General Requirements
Demonstrate an understanding of particular concepts covered in lectures, workshops, laboratories and reading to
provide the details requested. This may require further reading and research beyond the material discussed in class.
Assessment Details
The assignment has both group work and individual work components.
__________________________________________________________________________________
All developed code should also be committed into the pair’s GitHub repository in the GitHub Classroom.
It is important there is evidence of each student contributing to the assignment and pushing to GitHub. If there is no
evidence of each student committing code regularly to GitHub, that student will be given zero marks.
Generally, each individual student must at a minimum (more details specified in next section):
2. Write code to demonstrate their understanding of the requirements and the starter system by correctly
implementing four property classes and the code associated with their use. In this coding students should be
able to demonstrate:
a. appropriate understanding of the classes modified/changed by including their name and a description
under the author tag at the top of the class
3. Assist with the creation of UML class diagrams to represent the system design at the beginning and end of their
changes
5. Using examples from their code, answer some general questions about OO concepts.
Each student group must modify a system to address the user requirements in the next section.
• import that code into your eclipse local workspace linked to your own Git repository
__________________________________________________________________________________
• make multiple commits and pushes to save changes into an online source code repository in GitHub.
Use the handouts provided in the resources section of Moodle to help with how to use Eclipse and GitHub.
The following description outlines the user requirements that are to be addressed in the computer system that you
develop.
Where there is not enough information provided, you may make assumptions as long as you document these.
Further information is given in the Detailed Requirements and Marking Criteria sections of this document.
System Specification
“A city council is looking for a new computer system in which to keep a register of all rate payers that pay rates on
properties within the council boundary. Each rate payer will be one person or legal entity identified at Australian law
e.g. public or private company, trust, partnership or other incorporated body e.g. sport club. For each ratepayer, the
system will store their name and postal address. The address will be stored in one text field containing the postal
address e.g. “75 Boundary Street, SomeSuburb, City”. Their postcode will be stored in a separate field. There will be
an optional field for the rate payer’s telephone number. Their type as identified e.g. individual or public company etc.
above will also be stored.
The council also has a record of each ratepayer’s property. Each ratepayer has only one property. Properties can be
of seven types: residential, commercial, vacant land, hospital, industrial, school/community and other. Each type has
additional attributes. These details are displayed in the following table:
__________________________________________________________________________________
For all property types there will be a description (lot number and portfolio according to state government registration
index), location (address format as defined above), an area in square metres, site value, capital improved value
(CIV), net annual value and valuation date. The capital improved value is a separate valuation performed at the
same time as the site (land) valuation and is greater than the land value for all cases except vacant land where it is
the same value. The valuation date is stored in the format DD MMM YYYY.
The total rates charged for a property depends on the CIV of the property and the type of property. The amount
charged is calculated by multiplying the CIV by the CIV rate for that type of property and then adding relevant extra
service levies designated for that property type. The table below indicates the 2020 rates.
Extra
CIV
Property Type Extra Services Services
Rate
Rate
Waste Management 1 x $350
Green Waste
1 x $75
Management
residential 0.39%
$110 +
Fire Services Levy (0.006% of
CIV)
Waste Management 2 x $350
__________________________________________________________________________________
Extra
CIV
Property Type Extra Services Services
Rate
Rate
Industrial Waste
4 x $500
Disposal
industrial 0.59% $200 +
Fire Services Levy (0.006% of
CIV)
Industrial Waste
2 x $500
Disposal
$200 +
Fire Services Levy (0.006% of
CIV)
$200 + ($60
school/community 0.25%
for small or
$80 for
Traffic Management medium or
Levy $100 for
large
organisation
category)
$150 +
other 0.30% Fire Services Levy (0.006% of
CIV)
If the ratepayer has a charitable status, a discount is applied to the total rate amount. The discount is 20% off the
total rate calculation.
As an example a property classified as a residential property having a CIV value of $350,000 would have a rate
charged for a calendar year of:
__________________________________________________________________________________
As the ratepayer has no charitable status no discount is applied. If they had a charitable status, then the $1921
would be reduced to $1921 x 80% = $1536.80.
At this stage a proof of concept system has been developed. It runs in the Eclipse console and although three menu
items are listed only item 3 is implemented:
Item three presents a menu for selecting a type of property on which to estimate the total yearly rates:
__________________________________________________________________________________
When a user selects a type of property they are asked a number of questions (NB: only the Residential and Other
property types currently produce a rate calculation).
The answers to these questions help determine the total rate costs
After the calculation is displayed, the user has the opportunity to generate another rate notice for another type of
property or return to the main menu and exit the system.
The code for the system is present in a GitHub repository. You are asked to continue the coding of that system so
that it provides sufficient functionality that can demonstrate at least six property types and their total yearly rate
costs. You may also need to improve the formatting of some of the output.
__________________________________________________________________________________
Detailed Requirements
Create a document named surnameStudentIDAssignment1.doc/pdf. This document is to be completed
independently by each student. The document should be presented as a business or management style report which
adheres to academic writing presentation standards. As well as a title page, table of contents and details of the two
students in the team it should contain headings and sections for:
• Answers to questions.
Form your team in the GitHub Classroom by going to the assignment link identified in Moodle.
Import the code into Enterprise Architect and produce a UML document of the system.
Together create at least two JUnit test case files with sufficient methods for testing two classes that you will modify.
Together add comments and make changes to the classes that are involved in producing a calculation for the
Industrial and SchoolCommunity property types so that they can be selected in a working system and produce an
accurate calculation of rate costs.
Individually, one student should add comments and make changes to the Commercial property type and the other
student should add comments and make changes to the Hospital property type so that they can be selected in a
working system and produce an accurate calculation of rate costs.
Run your JUnit tests and capture screen shots of successful operation.
Import the code into Enterprise Architect and produce a UML document of the modified system.
2. Name a sub class and describe what inheritance means for that class.
__________________________________________________________________________________
5. Explain the classes and methods involved in a calculation of extra services on a property type of your
choice.
• For each concept listed below, provide a description in your document and provide an explanation of the
concept using an example from your submitted code.
8. Abstract class
Complete your individual document including the diagrams and appropriate links.
Additional Information
General Comments
The submission must be presented in a professional, clear and concise manner. If you need further system
information please use your initiative and make reasonable and logical assumptions. State your assumptions in your
report. Ask your lecturer or tutor for further information.
Readings
Your text, course material and references listed on the Course Description will assist you with this assignment.
Submission
Each student should submit an electronic copy of thei r report and eclipse project via Moodle. Please refer to the
Course Description for information regarding late assignments, extensions, special consideration, and plagiarism. A
reminder all academic regulations can be accessed via the university’s website, see:
__________________________________________________________________________________
http://federation.edu.au/staff/governance/legal/feduni-legislation/feduni-statutes-and-regulations
Marking Criteria
Work will be assessed according to the details within the Assessable Tasks/Requirements section of this document
and at a more specific level, according to the Marking Rubric below.
Individual reports submitted should be presented as business or management style report which adhere to academic
writing presentation standards. Marks may be deducted if this is not the case. Where applicable, the reports must
contain high quality academic presentation, expression and features as outlined in:
o Federation University’s
Assignment Layout and Appearance Guidelines;
General Guide to Writing and Study Skills,
FedCite - referencing tool; and
Feedback
Assessment marks will be made available in fdlMarks, Feedback to individual students will be provided via Moodle.
Plagiarism
Plagiarism is the presentation of the expressed thought or work of another person as though it is one's own without
properly acknowledging that person. You must not allow other students to copy your work and must take care to
safeguard against this happening. More information about the plagiarism policy and procedure for the university can be
found at:
http://federation.edu.au/students/learning-and-study/online-help-with/plagiarism.
Any support material must be compiled from reliable sources such as the academic resources in Federation University
library which might include, but not be limited to: the main library collection, library databases and the BONUS+ collection
as well as any reputable online resources (you should confirm this with your tutor).
__________________________________________________________________________________
Marking Rubric
Marking Criteria Marks
awarded
Group marks for code developed 40 marks
Sufficient Junit tests to prove that all calculations are correct /5
Screenshots demonstrating that your JUnit tests prove that the system is worked as expected /5
Correct coding of Industrial property rates calculation (appropriate use of abstraction, /5
inheritance, encapsulation and polymorphism)
Correct calculation of Industrial property rates /3
Correct coding of SchoolCommunity property rates calculation appropriate use of abstraction, /5
inheritance, encapsulation and polymorphism)
Correct calculation of SchoolCommunity property rates /4
Correct coding of either Commercial or Hospital property rates calculation (appropriate use of /5
abstraction, inheritance, encapsulation and polymorphism)
Correct calculation of Commercial or Hospital property rates /3
UML class diagrams correctly represents code submitted and shows correct associations /5
between classes including isA relationships between sub-classes and super-class.
Answers to Questions – (individual mark) 5 marks
Give an example of a super class and describe its purpose. /1
Name a sub class and describe what inheritance means for that class. /1
Abstract class /1