Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
INFS2200/7903 PROJECT ASSIGNMENT
This assessment supports the following learning outcomes:
CLO 1: explain how iterative software engineering processes can facilitate software development
CLO 2: evaluate requirements for a software system
CLO 5: communicate effectively with others, especially regarding the progress of the system development and the content of the design by means of reports and presentations. Use appropriate design, version control and collaboration tools to work effectively as a team.
CLO 6: recognise and describe current trends in the area of software engineering.
CLO 7: Design and carry out tests using various testing techniques and tools.
This assignment will assess your ability in terms of writing quality unit tests, test cases,user stories, acceptance tests, and working with Git/GitHub. You will be asked to implement and test some small functions in the Real Estate project. Then you need to move your source codes to GitHub. You also need to write five user stories for the Real Estate project, along with their acceptance criteria, following the templates and structures taught in the lectures.
General Description
Based on the requirements collected for the Real Estate project in Assessment 1, you need to do the following activities for the Real Estate project.
Activities in Assessment Task 4
Activity 1: Git and Unit Test (15 points): In the Uber Eat platform, there is a class called House. The House class has two functions called “AddHouse” and “UpdateHouse”. You are asked to test and implement these two functions. The House class has the following attributes. The type of house can be “Apartment”, “Unit”,“Townhouse”, etc.
public class House 1
private String houseID;
private String houseAddress;
private String houseType; // such as Apartment, Unit, Townhouse, etc.
private double housePrice;
private int numBedrooms;
private int numBathrooms;
private int numCarspace; // number of available parking
private double sizeHouse;
private String descript ionHouse;
public House (String id, String address, String type, double price, int bedrooms, int bathrooms ,
int carspace, doubLe size, String description)
{
}
public boolean AddHouse ( )
// Add the information of a new house to a TXT file
// if the house information meets the def ined conditions ,
//the information should be added to the TXT file and the function should return t rue
// if the house info rmation does not meet the defined conditions, the info rmation
//should not be added to the TXT file and the function should return false
return true;
}
public boolean UpdateHouse (String newAddress, String newType, double newPrice, int newBedrooms ,
int newBathrooms, int newCarspace, double newSize, St ring newDesc ription )
{
// Update the information of a given house in a TXT file
// if the house’s new information meets the defined conditions ,
//the house information should be updated in the TXT file and the function should return true.
// if the house’s new information does not meet the defined conditions ,
//the house information should not be updated in the TXT file and the function should return false.
return true;
}
}
However, the following conditions should be considered when adding houses. If the house information meets the following conditions, the information should be added to the TXT file and the function should return true. If the house information does not meet the following conditions, the information should not be added to the TXT file and the function should return false.
Condition 1. House ID should be exactly 10-character long and the first three characters should be upper case letters (A-Z) and the rest should be numbers between 1-9.
Condition 1. The House description should be between 5 and 10 words long.
Condition 2. It should not be possible to add houses that have more than 4 bedrooms and the number of their bathrooms is 2 or less.
Condition 3. It should not be possible to add houses with less than < 50 m size and their price is more than $350000.
Condition 4. Houses with the type “Apartment” should have at least one car space.
The other types of houses can have zero or more care spaces.
Condition 5. The price of each house should be between $100000 and $1500000.
Condition 6. The price of houses with less than 3 bedrooms and 2 bathrooms cannot exceed $750000.
Condition 1. All constraints discussed for the AddHouse function also need to be considered in the UpdateHouse function.
Condition 2. It should not be possible to increase the price of houses with less than three bedrooms by more than 10%. The price of other houses can be increased by up to 20%
Condition 3. For all types of houses, except for “Townhouse”, it should not be possible to change the address.
Condition 4. The size of a house can be increased by between 5% and 10%.
In this activity, each student is requested to do the following tasks:
Activity 1.1 Develop and write down a reasonable number of test cases (use this template (https://rmit.instructure.com/courses/90718/files/27243883/download?download_frd=1) ) for these TWO functions and implement unit tests using JUnit (7 points: unit test and test cases for each function have 3.5 points)
Activity 1.2 Implement these two functions in Java using Eclipse (7 points: each function has 3.5 points)
Activity 1.3 Move the implemented functions and their unit tests to a private GitHub repository (1 point).
Note 1. There is no need to store the house information in a Database Management System like SQL Server, MySQL, Oracle, etc. You can simply use a TXT file to store,retrieve, and update houses.
Note 2. You need to use a TXT file to store, retrieve, and update houses.
Note 3. You MUST write enough meaningful comments to explain your code in JUnit 5 and Java.
Note 4. You MUST develop your code (the implementation of functions and JUnit test code) in Eclipse and use JUnit 5 (JUnit Jupiter) for tests.
Note 5. You just need to develop a Console-based program (application). There is no need to add Graphic User Interfaces to your program.
Note 6. The code written above is just a placeholder. You are allowed to edit it and add new functions (e.g., adding getter and setter, new constructors, etc).
Note 7. Once you create the private repository and move (commit) the codes into the
private repository, you then need to add ONLY your tutor as a collaborator to this private GitHub repository. So, only your tutor can see and access this private repository.
Please invite Emad Alasadi to your repository, if your Practical/Tutorial class is on Monday (4:30 pm – 6:30 pm).
Please invite Mojtaba Shahin to your repository, if your Practical/Tutorial class is on Wednesday (5:30 pm – 7:30 pm).
Please invite Vu Huy Mai to your repository, if your Practical/Tutorial class is on Thursday (11:30 am – 1:30 pm).
Activity 2: User Story and Acceptance Criteria (10 points): Based on the requirements collected for the Real Estate project, each student is asked to write five user stories and three acceptance criteria for each user story. Each user story and its acceptance criteria have 2 points. The user stories and acceptance criteria should be written based on the template and principles taught in class.