SAVE YOUR HIGHER GRADE WITH ACQUIRING REFACTORING ASSIGNMENT HELP & QUALITY HOMEWORK WRITING SERVICES OF EXPERTSMINDS.COM
ITECH2309 Software Engineering - Federation University
Refactoring Assignment
Learning Outcome 1: Apply software engineering principles to design and implement software applications.
Learning Outcome 2: Operate CASE software to develop appropriate models of software systems.
Learning Outcome 3: Develop comprehensive unit test suites.
Learning Outcome 4: Write integrated reports, using appropriate models, providing detailed analysis of given textual scenarios.
Learning Outcome 5: Implement software applications, using appropriate software engineering techniques, from a given textual scenario.
DO WANT TO HIRE TUTOR FOR ORIGINAL REFACTORING ASSIGNMENT SOLUTION? AVAIL QUALITY REFACTORING ASSIGNMENT WRITING SERVICE AT BEST RATES!
Clinic Management System
Smells in the Code
1. Duplicated Code in Animal.java - Refactored using Extract Method. Separate methods were written for the repetitive codes in the method assignVeterinarian() in the class.
intvets = listOfVeterinarians.size();
mvToANewVet (this.animalType);
for (intii = 0; ii<vets; ii++){// choose which vet to allocate - find a vet with room left in list of registered animals
Veterinarian temp2 = (Veterinarian)(listOfVeterinarians.get(ii));
if (temp2.listOfAnimals.size() <temp2.maxNumOfAnimals){
temp2.listOfAnimals.add(this);
System.out.println("Allocating "+ this.getName() + " to " + temp2.name + "\n");
this.assignedVeterinarian = temp2;
returntrue;
}
}
intvets = listOfVeterinarians.size();
for (inti = 0; i<vets; i++){// choose which vet to allocate - search for a vet at this clinic with room left in list of registered animals
Veterinarian temp = (Veterinarian)(listOfVeterinarians.get(i));
if (temp.listOfAnimals.size() <temp.maxNumOfAnimals){
temp.listOfAnimals.add(this);
this.assignedVeterinarian = temp;
returntrue;
}
}
2. Long Method - Animal.Java :Refactored using Extract Method. The method assignVeterinarian() had separate functions in if-else condition. These were grouped together in appropriate methods.
public final boolean assign Veterinarian(ArrayList<Veterinarian>listOfVeterinarians)
ENROL WITH REFACTORING ASSIGNMENT HELP AND HOMEWORK WRITING SERVICES OF EXPERTSMINDS.COM AND GET BETTER RESULTS IN REFACTORING ASSIGNMENTS!
3. Long Method - Clinic.java :Refactored using Extract Method and Decompose Conditional.The method run() had separate functions in if-else condition. These were grouped together in appropriate methods. Besides there was a lot of processing at the end for forming the output string. These were also written into appropriate methods.
public final String run()
4. Large Class -Animal.java : Implemented using Extract Subclass. The class had a lot of attributes. So a separate subclass animalInsuredUninsured is created to distinguish between insured and uninsured animals.
public Veterinarian assignedVeterinarian=null; // Veterinarian assigned to Animal
privatestaticintpIdNo = 100000; // No get and set methods - internal use only
private String name;
privateint age;
private String identifier; // Animal identifier - unique for each animal in the system
public String animalType="Uninsured"; // can be "Insured" or "Uninsured" - Uninsured should be "default"
private String preferredVeterinarian=null; // Only useful for "Insured" - null for Uninsured animal
private String insuredHealthFundNo; // Fund number for animals with insured health
privateinthoursTreated; // No of hours animal treated by Veterinarian
private String animalBreed;
5. Large class - Veterinarian.java. Implemented using Extract Subclass.There were a lot of attributes in the class. A subclass specialiseVet is created to distinguish vets on the basis of their speciality.
private String specialisation; // Veterinarian's special skill
publicArrayList<Animal>listOfAnimals; // Veterinarian's personal list of animals responsible for care
publicintmaxNumOfAnimals; // Maximum no. of animals a Veterinarian can have at one time
privatedoublehourlyRate; // Hourly rate of pay
privatestaticintvetIdNo = 1000; // Internal use only - no get/set methods
public String name; // Name of Veterinarian
privateintage; // Age of Veterinarian
private String identifier; // Veterinarian's staff id
24/7 AVAILABILITY OF TRUSTED REFACTORING ASSIGNMENT WRITERS! ORDER ASSIGNMENTS FOR BETTER RESULTS!
6. Data clumps - Implemented using Extract Class. The identifier variable along with vetIdNo was moved to a new class VetIdentifier.This class acts as a type class.
Public final void setIdentifier(){
this.identifier = "V" + String.valueOf(vetIdNo++);
7. Data clumps - Implemented using Extract Class. The identifier variable along with vetIdNo was moved to a new class animalIdentifier.This class acts as a type class.
Public final void SetIdentifier(){
this.identifier = "P" + pIdNo++;
Class Diagram : Old Code Class Diagram : Refactored Code
HELPING STUDENTS TO WRITE QUALITY REFACTORING ASSIGNMENT AT LOW COST!
Hire Expertsminds and get best assignment help for other courses and units such as -
- ITECH2000 MOBILE DEVELOPMENT FUNDAMENTALS ASSIGNMENT HELP
- ITECH1101 IT PROBLEM SOLVING ASSIGNMENT HELP
- ITECH2003 WEB DESIGN ASSIGNMENT HELP
- ITECH1102 NETWORKING AND SECURITY ASSIGNMENT HELP
- ITECH2001 GAME DEVELOPMENT FUNDAMENTALS ASSIGNMENT HELP
- ITECH1400 FOUNDATIONS OF PROGRAMMING ASSIGNMENT HELP
- ITECH1104 CLOUD AND ENTERPRISE COMPUTING ASSIGNMENT HELP
- ITECH2002 SYSTEMS MODELLING ASSIGNMENT HELP
- ITECH1300 MOBILE COMPUTING PLATFORMS AND DEVELOPMENT FUNDAMENTALS ASSIGNMENT HELP
- ITECH1103 BIG DATA AND ANALYTICS ASSIGNMENT HELP