Assignment 3 Task Specification [ITECH2306]
ITECH2306 – Assignment 2 Task Specification (2021-S1) Page 1 of 10
ITECH2306 Agile Coding
Assessment task: Assignment 3
Real-Estate Agency GUI-based Records System
Overview
You will develop a moderate-sized Java program with another student, in order to demonstrate your
understanding of topics from weeks 1 to 10.
You are provided a detailed set of functional requirements which describe the behaviour that must be
exhibited by the program you create. These are all detailed in the remainder of the assignment. Make
sure you read it all carefully before you and your partner commence, so you understand what needs to
e achieved. Finally, there are a range of suggested Tasks to be completed (see next page).
If you have any questions about any of the requirements, please ask your teacher through their
prefe
ed means of communication.
For this assignment, you should work with one other student only. Neither you nor the other
student may get anyone else to do any of your work.
You may be asked to attend a private interview with the marker to explain portions of the code before
the assessment mark is finalised.
Timelines and Expectations
Percentage Value of Task: 20%
Due Date: Sunday 30th May at 11:59pm (end of Week 11)
Cut-off Date: Wednesday 9th June – after this date, you would get 0%
Minimum time expectation: 8 hours
Maximum time expectation: 20 hours
Learning Outcomes Assessed
The following course learning outcomes are assessed to some degree, by completing this
assessment:
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 used to create separate software releases.
S4. Select appropriate ways to represent data and collections of data.
S5. Incorporate pre-written classes, including those from an API, into software solutions.
S6. Develop object oriented programs which incorporate event driven aspects
A1. Design, develop, test, debug and release programs from supplied program specifications.
In particular, this assignment is focused on assessing your attainment of a range of the learning
objectives of weeks 1 through 10 of the course, with an emphasis on the later weeks. For more detail
on how you are marked, refer to the section at the back of this Task Specification document.
ITECH2306 – Assignment 3 Task Specification (2021-S1) Page 2 of 10
Tasks to be completed
The following is a description of the tasks you and your partner may want to complete to address the needs
of this assignment:
1. Read through the entire assignment task description to understand what the program needs to
achieve and how you will be assessed.
2. Decide which of you will be Person 1, and which of you will be Person 2, as there are specific tasks
to be done by each member of your small group.
3. You may like to develop a class diagram to organise your thoughts. (This is not marked.)
4. Decide a team name, perhaps made by combining your names. Then one of you needs to accept
the GitHub Classroom assignment by clicking the link in Moodle (underneath the link you clicked to
obtain this document) to create your team, then create your repository. Then the other student can
accept the assignment and select the team created by the first student,, then you will both have
access to the repository and will be able to clone/link it into your own IDE as you have done in some
of the lab classes.
5. Start coding, by working on one functional requirement to start with. Develop code to address it.
Once that functional requirement is fully addressed/working and tested, commit the code to the
epository (you can commit more frequently if you wish), then take another functional requirement
and repeat the process. Because you are now working with a partner, you will need to regularly pull
and merge the work of your partner. Refer back to earlier week’s labs for assistance on merging (if
equired). Develop code to address further requirements.
6. Complete the individual documentation requirements.
7. Submit the completed work.
Assessment Details
Overview
You are to develop a GUI-based application for use by a real estate agency. The real estate agency’s key
customers are owners of properties that want to sell those properties, or owners of properties who want the
agency to manage a lease
ental by a tenant of that property.
The program ultimately needs to persist data about the properties, between each run of the program. To
egin with you can read some default set of data from some files being provided to you.
There are also a set of domain classes provided that you can use to commence your coding.
The work for this assignment is to be done in pairs.
Context/Background Information
The real-estate agency is a business which interact with property owners, and either buyers or people called
tenants who want to use a property that is owned by someone else (because the owner has decided that the
property will be made available for a tenant to use, in exchange for a regular fee called the ‘rent’). The real-
estate agency provides a service to the owners (and also to tenants): for example, by making available a list
of properties for sale, a person can find out about the properties they might be interested to buy.
In order to keep track of all the properties, and the owners of the properties, the agency wants a computer
program which allows them to enter the information, and retrieve the information in the form of reports that
they could print-out.
Provided code files
You are being provided with code files that implement the key domain classes:
Seller represents a type of Owner who wants to sell a property through the real-estate agency.
ITECH2306 – Assignment 3 Task Specification (2021-S1) Page 3 of 10
Landlord represents a type of Owner who wants to let a tenant lease the property for a fee, paid
through the real-estate agency (for convenience and for a degree of separation mediated by staff
who are experienced in dealing with tenants).
SaleProperty represents a type of Property that is cu
ently being marketed for sale to anyone who
would like to buy it.
RentalProperty represents a type of Property that is cu
ently being leased by a tenant.
Provided Data Files
You are provided with 2 data files that conform to the following described file-formats. The files use a format
ased on the style called CSV (Comma Separated Values), which means that each field of a record is
separated by a comma, in a plain-text file. Microsoft Excel can interpret a CSV file and shows each field in a
separate column.
When marking your work, the marker may use different data files (e.g. with more data), but they will conform
to the format describe below. Your program should work with any conforming data files.
Property-Owners file (owners.csv):
The very first line is a number, specifying how many ‘records’ follow in the file. There are then that many
ecords on as many subsequent lines in the file. A record is a set of data items about an individual entity
(in this case, properties).
The format of each record for the property owners file is as follows:
The first column of the line (up to the first comma) is the full name of the owner of the property.
The second column is the address of the owner of the property. (Sometimes this is the address of the
property such as if the property is the house of the owner.)
The third column of the record is a unique “owner” code used by the Real Estate Agency to identify that
owner.
The fourth column of the record is a digit signifying whether this person is a Seller of a property (value 1), or
the Landlord of a property that others can rent/lease (2).
The remainder of the columns depend on whether the person is a Seller or a Landlord.
If they are a Seller, then the remaining columns are as follows:
The fifth column is the name of their conveyancer (a person from the legal profession who is
esponsible for the legal representation of the seller on the day ownership will change to the new
owner).
If they are a Landlord, then the remaining columns are follows:
The fifth column is the bank account details of the owner (into which the collected rental fees needs
to be paid). This is in the form of a BSB number (a 6 digit code identifying a specific bank
anch)
and then the bank account number after a colon.
The sixth column will be the amount of rent they receive each week from the tenants of the property
Properties file (properties.csv):
The very first line is a number, specifying how many ‘records’ follow in the file. There are then that many
ecords on as many subsequent lines in the file.
The format of each record for the property owners file is as follows:
The first column of the line (up to the first comma) is the street address of a property.
The second column of the line is the town/subu
in which the property is located.
The third column of the line is a unique code to signify this property within the system.
The fourth column of the line is a number which will co
espond to one of the codes that uniquely identifies
an owner (and which will appear in the property-owners file).
ITECH2306 – Assignment 3 Task Specification (2021-S1) Page 4 of 10
The fourth column of the line is a digit indicating whether the property is for sale (1) or whether it is being
leased (2).
The remaining columns of the line depend on whether the property is for sale or for lease.
If the property is for sale:
The fifth column will be the price (in dollars) that the owner hopes to receive from the sale.
The sixth column will be the area of the inside of the building, reported in square meters.
If the property is being leased:
The fifth column will be the name of the primary person who is responsible for paying the rent (the
tenant).
The sixth column will be the phone number of the tenants.
Tasks for Person