Reference no: EM132507427
ITECH2309 - Software Engineering Assignment - Federation University, Australia
Overview - This is an individual assignment that requires you to document, test and refactor an existing application.
Learning Outcomes Assessed - The following course learning outcomes are assessed by completing this assessment:
1. Apply software engineering principles to design and implement software applications.
2. Operate CASE software to develop appropriate models of software systems.
3. Develop comprehensive unit test suites.
4. Write integrated reports, using appropriate models, providing detailed analysis of given textual scenarios.
5. Implement software applications, using appropriate software engineering techniques, from a given textual scenario.
Assessment Details - You are given a copy of an existing Java application which is used to manage the allocation of Goodie Boxes containing merchandise for various fandom groups in a Fan Club. This application is badly in need of refactoring and even a casual viewing of the source code reveals many examples of the "code smells" talked about in Fowler's book. The base application consists of four classes - Main, FandomClu b, GoodieBox and Recipient. A recipient can be a subscriber or a guest purchaser and is handled differently depending on their type. Recipients receive goodie boxes according to the availability of the boxes and their specified preferences.
Assignment Requirements -
Step 1 - Rename the base code
1. Create a new project in Eclipse and "Assignment 1 - yourid" (your id equals your student number)
2. Import the four files - Main.java, F andomClub.java, G oodieBox.java and R ecipient.java - into the project you have just created.
3. Run the program. You will find that it has created a file called "MyOutput.txt" in the working directory.
If you wish to use a different folder you will need to update the output file in Main.java. The output of the program will be displayed on the console and written on the output file.
Step 2 - Identify "code sme lls"
Open up a new document in Microsoft Word (or equivalent) and start jotting down any code smells you identify in the code in point form. You might want to cut and paste the code into Word to illustrate the problems. This will form a report that you will need to include in your assignment submission. There are two important bad smells you must address - the long method in the F andomClub class and the long class smell of the Recipient class. However, there are others you should look at as well.
Step 3 - Create a class diagram of the initial code.
Create a class diagram of the given code in Enterprise Architecture (EA). This should be included in your final submission. The diagram should be in your report as well.
Step 4 - Start refactoring and developing your unit tests.
Ensure that starting code files, initial output file and EA file is backed up, and once this is done jump back into Eclipse and get to work refactoring. Each time you complete a refactoring, run the program and then test if the program output is the same as the output before refactoring. You can rename the output file so that you can check them. You can write a simple Java program to check if two output files are the same or not so that you do not have to manually inspect t hem. If the two output files (before and after refactoring) are different, it is because the output has been changed. Refactoring should not change the output so you will need to look at the code you have already written before you move on.
Step 5 - Create a diagram of the final code after refactoring
Create a second class diagram in Enterprise Architecture of the final refactored code. This should be included in your final submission. The diagram should be in your report as well.
Attachment:- Software Engineering Assignment Files.rar