ITECH3201 Software Engineering: Analysis and Design

Click here to order this assignment Plagiarism.Written from scratch by professional writers.

ITECH3201 Software Engineering: Analysis and Design

ITECH3201 Software Engineering: Analysis and Design

Assignment 1 Overview

This is an individual assignment that requires you to document, test and refactor an existing application.

Timelines and Expectations

Percentage Value of Task: 20%

Due: Week 7

Minimum Time expectation: 10 hours

Learning Outcomes Assessed

The following course learning outcomes are assessed by completing this assessment:

• S1. Apply software design principles to design and document software that utilises design patterns

• S2. Analyse source code and develop comprehensive unit test suites

• S3. Operate CASE software to document the design of a piece of software

• S4. Apply refactoring to identify poor programming practice in existing source code and improve its structure and readability

• S5. Apply an appropriate software development methodology to the development of a software system

Assessment Details

You are required to document, test and refactor an existing application.

You will be given a copy of an existing C# application which is responsible for allocating animals to new owners for an animal rescue organisation. 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 five classes: AniMate, Branch, Animal, Adoption and Client.

Clients are able to adopt animals based on availability and choice of animal type.

Assignment Requirements

Step 1 – Rename the base code

1. Download the code from Moodle and unzip it in the filesystem

2. Rename the base folder to “Assignment 1 – yourid”(your id equals your student number)

3. Open the solution up in Visual Studio right click on the Solution and rename it as per (2)

4. Build the solution and inspect the output. Spend some time becoming familiar with the code before you do anything else.

Step 2 – Identify “code smells”

Open up a new document in Word (or equivalent), start documenting 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.

Step 3 – Create a class diagram of the initial code.

Do this in Enterprise Architect and copy the resultant diagram into your Word file. Ensure your EA file is saved and labelled as “starting code base”.

Step 4 – Refactor and unit test code

Ensure that your starting code and EA file is backed up. Once this is done, commence refactoring the code in Visual Studio. Document each change you make and provide an explanation of why you have done so.

Your final code should be fully refactored and have unit tests developed for every method (other than any ToString and Get and Set methods). These unit tests should be documented to demonstrate the results before and after the changes to confirm that the functionality of the code has not changed.

Step 5 – Create diagrams of the final code.

Do this in Enterprise Architect and copy the resultant diagram into your Word file. Create a class diagram of the final code, and a sequence diagram showing how a new adoption request is processed in the final code. Ensure your EA file is saved and labelled as “final code base”.

A word of caution: there is some software available that enables automatic generation of sequence diagrams. These tend to produce over-complicated sequence diagrams with considerably more detail than is useful to us. Only the key messages specifically relevant to processing a new adoption are to be included in the sequence diagram. You will not receive full credit for sequence diagrams if you provide excessively complex diagrams.


Your program code and all documentation should be zipped into a single file and loaded into the Assignment Box provided in Moodle by the due date and time. This includes:

• All code representing your refactored application and unit tests

• The accompanying Enterprise Architect file with model versions that correspond to your final code submission

• An electronic report, in Microsoft Word, containing your UML, identification of any problems with the initial code, and an explanation of your Refactorings.

IMPORTANT NOTE:Make sure that you submit the source code (.cs files) NOT the compiled program. Your work will NOT be marked if the .cs files are not provided.

Marking Criteria/Rubric

Student ID

Student Name


Available Marks

Student Mark

Documentation of Initial Code

• Report documenting “code smells” present in the initial code base


• Class diagram of the initial code provided in both Enterprise Architect AND the documented report.




• Completed refactored code base, eliminating the bad smells present in the initial code base

• Report identifying and documenting changes made to the code and justification of each change


Unit Testing

• A comprehensive set of unit test cases that covers all the required functionality in the provided code base


• Report documenting completed unit tests demonstrating that the refactored code has maintained previous functionality


Documentation of Final Code

• Class Diagram of final code in Enterprise Architect AND the report


• Sequence Diagram in Enterprise Architect AND the report showing the processing of a new adoption request. Note that full credit will not be given for overly complex diagrams – only key, relevant messages are to be included.





Assignments will be marked within 2 weeks of submission. Marks will be loaded in fdlGrades, and a completed marking sheet will be available via Moodle.


Plagiarism is the presentation of the expressed thought or work of another person as though it is one’s own without properly acknowledging that person. You must not allow other students to copy your work and must take care to safeguard against this happening. More information about the plagiarism policy and procedure for the university can be found at