Download the zip folder and read the requirements html file and the attached code. You only need to do part 2 of the requirements file which you need to write a document on what needs to be refactored. The deadline is in **8 HOURS**
THE BUDGET IS 30-40 CAD
In Part II we want you to analyse the code provided, make a refactoring recommendation, and then implement it. Here is your chance beat up on our code for a change.
Thoroughly examine the solution code provided and find something about it that you DON'T like. That is, find something (other than the collections problem from part I) that you think should be refactored. This can be based on the current state of the code or something you think will become a problem as the code scales up or grows in complexity.
Remember refactoring is not about fixing bugs but about reorganizing code that already works. If you are in doubt about your intended refactoring please discuss it with us before you proceed. (If you do find bugs please report them so we can fix them.)
Here are the specific itemized requirements that specify the task. Some of the requirements call for written explanations or pictures. Provide a Part II Analysis document in .pdf format that has the itemized explanations and documentation asked for below. Submit this document file with your code files.
FR3.2.1) Identify the aspect of the code you DON'T like and describe what it is. Provide some sample lines from the provided code to make it clear what you have identified.
FR3.2.2) Provide an explanation of what you find objectionable about the code you've identified and explain why you think it should be refactored.
FR3.2.3) Your refactoring recommendation should be warranted. It should make a real improvement. Don't suggest, for example, replacing a chain of if-else statements with a switch statement instead. Something that trivial is not worthy of being considered a refactoring. (If you are in doubt discuss your planned modifcation with us ahead of time.)
FR3.2.4) Explain your refactoring strategy and how you intend to refactor the code. Provide some sample code or pseudo-code to illustrate your strategy.
FR3.2.5) Provide two UML class diagrams of the classes that will be involved in, or affected b,y your refactoring. They should show the classes involved before and after the refactoring. The diagrams should both show the relationships the classes have to one another. (It is possible that the diagrams will look identical depending on what your refactoring modification is.).
FR3.2.6) The code you submit for this assignment should include your part II refactoring.
FR3.2.7) The code, after your part II refactoring should behave the same as originally (That is, still meet all the functional requirements it did before).
FR3.2.8) Provide a test script called [url removed, login to view] that you feel illustrates that your refactoring did not alter the intended behaviour of the code. That is, provide a script that executes commands that could have been affected by your refactoring if not done correctly. This is called "Regression Testing" where you provide test cases in which you hope that nothing has changed from before the code change.