Codingassignmenthelper | Home Codingassignmenthelper | Samples

ITECH2306 Agile Coding Lab Assignment 1 sem3 2020

ITECH2306

ITECH2306 Agile Coding Lab Assignment 1 sem3 2020

		School of Engineering and Information Technology
ITECH2306 – Agile Coding

Lab Assignment 1, Sem3 2020, (2020/27)

__________________________________________________________________________________

Lab Assignment 1
Learning Outcomes Assessed
The following course learning outcomes are assessed by completing this assessment:
Skills:
S1.

Develop object-oriented programs involving several interacting classes.

S2.

Develop, compile and debug code using an appropriate IDE

S3.

Manage multiple versions of source code.

S4.

Select appropriate ways to represent data.

S5.

Incorporate pre-written classes including those from an API into a software solution

Application of Knowledge and Skills
A1.

Design, develop, test, debug and release programs from supplied program specifications

Timelines and Expectations
Marks: Assignment will be assessed based on a mark out of 60
The following information is a summary of important information about the assignment:
Percentage Value of Task: 15% of the course marks
Due: Sunday, Jan 10th, 2021 at 11:00pm
Minimum time expectation: 21 hours (per student)
This is a group assignment. Groups must contain two students. Students are expected to partner with another student
and engage in collaboration and paired programming to complete this assignment.

Purpose and Expectations
By completing this assignment students will:
•

Practice skills in reading a specification and developing functional requirements to inform your object oriented
code design and development.

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 1 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
•

Develop a multi-class system to meet functional specifications applying object oriented design principles.

•

Use a GitHub repository to maintain code. This repository will be shared with their partner.

•

Participate in a development and design process involving the creation of UML class diagrams.

•

Develop an understanding of and application of object-oriented programming techniques, in particular those
relating to inheritance and abstract classes.

•

Test code using thoughtful test cases and write some JUnit tests that can be run to test code.

It is expected that students will creatively design and update a system based on appropriate design choices. These
choices should address the requirements and be consistent with the design of the starting system. Before submission,
students should 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, students should 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
Students should 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
This assignment will be assessed by the student’s lecturer/tutor.
The assignment has both group work and individual work components.
Each student must make an individual submission in Moodle.

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 2 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
The submission must follow the format of a professional report.
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, students must demonstrate the ability to (more details specified in next section):
1. Author Junit test cases;
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/s and a
description under the author tag at the top of the class

b. correct use of control structures i.e. decisions and iteration/looping
c.

correct and appropriate use of abstraction, inheritance, encapsulation and polymorphism

d. appropriate use of naming and coding conventions
3. Create UML class diagrams to represent the system design at the beginning and end of their changes
4. Provide sufficient demonstration of updates to their GitHub repository
5. Using examples from their code, answer some general questions about OO concepts.
This exercise also requires students to:
•

access the GitHub Classroom

•

download some starter code

•

import that code into their eclipse local workspace linked to their own GitHub repository

•

review, comment and extend that code and

•

make multiple commits and pushes to save changes into an online source code repository in GitHub.

Students should use the handouts provided in the resources section of Moodle to help with how to use Eclipse and

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 3 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
GitHub.
The following description outlines the user requirements that are to be addressed in the computer system that
students develop.
Where there is not enough information provided, students may make assumptions as long as these are documented.
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:
Property Type
residential
commercial
vacant land

Additional Attributes
Type e.g. townhouse, house
Architectural style e.g. Victorian, Federation
business name
ABN
Overlay/s
Public or private status

hospital

Facilities
Number of floors

industrial

Hazard status
Heavy vehicle status

school

Classification – public, private or independent

community

Category e.g. cultural, sporting, health

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 4 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
Property Type

Additional Attributes

other

Special description

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 2021 rates.

Property Type

residential

CIV
Rate

0.40%

commercial

0.60%

vacant land

0.10%

hospital

industrial

CRICOS Provider No. 00103D

Extra Services

Extra
Services
Rate

Waste Management

1 x $400

Green Waste
Management

1 x $90

Fire Services Levy

$110 +
(0.007% of
CIV)

Waste Management

2 x $400

Fire Services Levy

$200 +
(0.007% of
CIV)

Fire Services Levy

$50 +
(0.007% of
CIV)

Industrial Waste
Disposal

4 x $600

Fire Services Levy

$200 +
(0.007% of
CIV)

Industrial Waste
Disposal

4 x $600

0.36%

0.65%

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 5 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
CIV
Rate

Property Type

school

Extra Services

Extra
Services
Rate

Fire Services Levy

$200 +
(0.007% of
CIV)

Industrial Waste
Disposal

2 x $600

Fire Services Levy

$200 +
(0.007% of
CIV)

Traffic Management
Levy

$200 + ($60
for small or
$80 for
medium or
$100 for
large
organisation
category)

Waste Management

1 x $400

Green Waste
Management

1 x $90

Fire Services Levy

$100 +
(0.007% of
CIV)

Traffic Management
Levy

Number of
events x
$200

Fire Services Levy

$150 +
(0.007% of
CIV)

0.30%

community

0.25%

other

0.25%

A school address is given a categorisation based on student and staff/member numbers:
small (1-50 members);
medium (51-500); and
large (501 upwards).
A number of events is allowed (maximum of 10) and attributed to a community type property. This number is then

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 6 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
used in the calculation of the Traffic Management Levy. For simplicity here we assume that a community property
does not exceed this number.
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:
$400,000 x 0.4% = $1600.00 +
Waste Management service (1 x $400) = $400.00 +
Green Waste Management service (1 x $90) = $90.00 +
Fire Services Levy ($110 + 0.007% of $400,000) = $138.00
Total rate charge = $2228.00
As the ratepayer has no charitable status no discount is applied. If they had a charitable status, then the $2228
would be reduced to $1921 x 80% = $1782.40.

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 7 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
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:
Council Rate Payer System
=========================
What would you like to do?
1. Add a Rate Payer
2. Add a Property
3. Calculate a Property Type's Yearly Rates Total
0. Exit Program
Enter a selection (0-3):

Item three presents a menu for selecting a type of property on which to estimate the total yearly rates:

Council Rate Payer System
=========================
CalculatePropertyTypeRates
What type of property are we dealing with?
1. Residential
2. Commercial
3. Vacant Land
4. Hospital
5. Industrial
6. School
7. Community
8. Other
0. To exit
Enter a selection (0-8):
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).
Enter a selection (0-8):1
What is the value of the property?
Enter a selection (100.00-50,000,000.00):400000
Does the rate payer have a charity status?
Enter a selection -(true or false)false

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 8 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
The answers to these questions help determine the total rate costs.
Details Selected: Property [description=Not Available, capitalImprovedValue=400000.0,
capitalImprovedRate=0.004]
Residential [
ServiceType [description=Waste Management][unit=1, rate=400.0]
ServiceType [description=Green Waste Management][unit=1, rate=90.0]
ServiceType [description=Fire Levy][base=110.0, percentage=7.0E-5, value=400000.0] ]
Owner Charity Status: false
Total Rate Costs: 2228.0

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 (including the two you are
already given) and their total yearly rate costs. You may also need to improve the formatting of some of the output.

Detailed Requirements
Students should 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:
•

Link to GitHub repository;

•

Answers to questions.

Students must form their team in the GitHub Classroom by going to the assignment link identified in Moodle.
They must download the starter code from the GitHub classroom.
They should then import the code into Enterprise Architect and produce a UML document of the system. They
should save the image in the project images folder in Eclipse.
Together they should create at least two JUnit test case files with sufficient methods for testing two classes that will
be modified.
Together they must add comments and make changes to the classes that are involved in producing a calculation for

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 9 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
the Industrial and Hospital 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 School property type and the other student
should add comments and make changes to the Community property type so that they can be selected in a working
system and produce an accurate calculation of rate costs.
Students must run the JUnit tests and capture screen shots of successful operation and store in the project images
folder.
Students must then import the code into Enterprise Architect and produce a UML document of the modified system.
They should save an image of the document in the project images folder.
Students must individually answer the following questions:
•

With respect to the pair’s code:
1. Name a super class and describe its purpose.
2. Name a sub class and describe what inheritance means for that class.
3. Name a method that is overridden in two sub classes.
4. Identify where a super constructor is referred to in the code.
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 the document and provide an explanation of the
concept using an example from the pair’s submitted code.
6. Overloading of a method or constructor
7. Overriding of concrete methods in sub classes
8. Abstract class
9. Abstract method and overriding of an abstract method
10. Information Hiding and Encapsulation

Students should then create a zip file of the Eclipse project (which should be up to date with all work).

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 10 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________
Students should complete their individual document with the link to their GitHub repository and their answers to the
questions and submit the individual document and the zipped Eclipse project.

Additional Information
General Comments
The submission must be presented in a professional, clear and concise manner. If a student needs further system
information they should use their initiative and make reasonable and logical assumptions. All assumptions should be
stated in the report submitted. A student may ask their lecturer or tutor for further information.

Readings
The text, course material and references listed on the Course Description will assist students 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

o

Federation University’s


Assignment Layout and Appearance Guidelines;



General Guide to Writing and Study Skills,



FedCite Referencing Tool (choose APA); and

Features of Academic Writing (from UEfAP.com)

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 11 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________

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 (students should confirm this with your tutor).

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 12 of 13

School of Engineering and Information Technology
ITECH2306 Agile Coding

Lab Assignment 1, Sem3 2020 (2020/27)

__________________________________________________________________________________

Marking Rubric
Marking Criteria
Group marks for code developed

Marks
awarded
50 marks

Sufficient Junit tests to prove that all calculations are correct

/8

Screenshots demonstrating that your JUnit tests prove that the system is worked as expected

/3

Correct coding of Industrial property rates calculation (appropriate use of abstraction,
inheritance, encapsulation and polymorphism)
Correct calculation of Industrial property rates

/5

Correct coding of Hospital property rates calculation appropriate use of abstraction,
inheritance, encapsulation and polymorphism)
Correct calculation of Hospital property rates

/5

Correct coding of School property rates calculation (appropriate use of abstraction,
inheritance, encapsulation and polymorphism)
Correct calculation of School property rates

/5

Correct coding of Community property rates calculation (appropriate use of abstraction,
inheritance, encapsulation and polymorphism)
Correct calculation of Community property rates

/5

UML class diagrams correctly represents code submitted and shows correct associations
between classes including isA relationships between sub-classes and super-class.
Answers to Questions – (individual mark)

/5

/3

/3

/4

/4

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

Name a method that is overridden in a sub class.

/1

Identify where a super constructor is referred to in the code.

/1

Explain the classes and methods involved in a calculation of extra services on a property type
of your choice
Description and Example provided for questions (individual mark)

/1
5 marks

Overloading of a method or constructor

/1

Overriding of concrete methods in sub classes

/1

Abstract class

/1

Abstract method and overriding of an abstract method

/1

Information hiding and Encapsulation

/1

TOTAL MARKS

/60

Mark out of 15%

/15

CRICOS Provider No. 00103D

ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020_202027.docx

Page 13 of 13


		
To Download Click Here > ITECH2306_Agile_Coding_Lab_Assignment1_sem3_2020.pdf
Codingassignmenthelper | Home Codingassignmenthelper | Home