ITECH2306 Agile Coding- Create Separate Software Releases
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 be 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 preferred 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.
Learning Outcomes Assessed
The following course learning outcomes are assessed to some degree, by completing this assessment:
1. Develop object-oriented programs involving several interacting classes.
2. Develop, compile and debug code using an appropriate IDE
3. Manage multiple versions of source code used to create separate software releases.
4. Select appropriate ways to represent data and collections of data.
5. Incorporate pre-written classes, including those from an API, into software solutions.
6. Develop object oriented programs which incorporate event driven aspects
7. 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.
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/rental by a tenant of that property.
The program ultimately needs to persist data about the properties, between each run of the program. To begin 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. : Include a “reflection and overview” document
At the end of the work period, just before you submit the code, you need to prepare an individually written document which should not be done in conjunction with your partner. This document needs to contain firstly a reflection about the experience, covering the following matters:
1. Your feelings about working collaboratively to code a program with another person – what worked well, and what could have been done better / improved?
2. What were the frustrations? What were the joys?
3. What would you suggest as advice to students next semester who need to do a similar assignment in a group, for how to collaborate better in a small group to do a similar assignment? The document also needs to give an explanation of the following things regarding code which you personally wrote:
a) Explain how you have used a Layout Manager, and why you have chosen the particular layout in that context.
b) Explain how you decided which GUI components to use for one of the frames which was creating new data for the system – name the components as you discuss your decisions.
c) Explain how you made use of exception handling, and how you decided what was appropriate response to at least 2 different types of exceptions.
d) For either owners, or properties, (whichever one you were responsible for the reading in of the default data), explain how you have written the mechanism which stores the aggregation of them all.
e) For the object for which you were to make the report (either FR-9 or FR-10) explain how you have written the mechanism for searching for the specific objects that match the criteria