ITECH3201/7201
Software Engineering: Analysis & Design
School of Science, Information Technology & Engineering
CRICOS Provider No. 00103D (VIC); 01266K (NSW); 02235J (SA) Page 1 of 6
Assignment 1
Sem3, 2013
Weight: 20%
Due date: Refer course description
Objectives
? You are required to document, test and refactor an existing application.
Disclaimer:
You must use the code (from Application Code Base for Assignment I in Moodle) supplied by your lecturer. Do not use code given to you by another student (or past student) as the codebase will be different and you will be awarded ZERO MARKS for the assignment task.
Plagiarism:
This is an individual assignment you are not to attempt this assignment (or any part thereof) in conjunction with any other parties. All work handed in for marking should be your own and any help received should be explicitly acknowledged.
It is important to learn from the work of others and you are encouraged to explore the library, World Wide Web resources and have discussions with other students. However work for assessment must be entirely the student’s own work.
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. In cases of copying, normally all students involved will be penalised equally; an exception will be if you can demonstrate the work is your own and you took reasonable care to safeguard against copying.
Plagiarism is a serious offence. As set out in the University Regulation 6.1.1 students who are caught plagiarising will, for a first offence, be given a zero mark for that task. A second offence will result in a failing grade for the Unit(s) involved and any subsequent offence will be referred to the Student Discipline Committee.
ITECH3201/7201
Software Engineering: Analysis & Design
School of Science, Information Technology & Engineering
CRICOS Provider No. 00103D (VIC); 01266K (NSW); 02235J (SA) Page 2 of 6
Introduction
The UB Health Services is a medium size hospital capable of handling few tens of patients. The hospital is to develop diet control software for the patients who are recovering from their illness. In the current scenario, the hospital does have software, capable of finding the diet requirement for a given patient. However, the existing software is poorly designed and developed by the previous IT team. You have joined this hospital as multifaceted IT person who has capacity to play dual roles — as a system analyst and as a developer.
In UB Health Services, you are given an application for calculating the recommended daily intake of calories. The application has the following general requirements:
1. The application has the formula for calculating daily recommended calories and the calculation is based on the patient’s personal data and it varies according to the patient’s gender. Here are the formulas:
Male: 66 + (6.3 × body weight in lbs.) + (12.9 × height in inches) – (6.8 × age in years)
Female: 655 + (4.3 × weight in lbs.) + (4.7 × height in inches) – (4.7 × age in years)
2. The application is also required to calculate an ideal-weight. The idea was for the application to be able to calculate a patient’s ideal weight based on height, along with calculating daily calories. As before, the calculation depends on gender, so there are separate formulas for men and women. Here are the formulas:
Male: 50 + 2.3 kg per inch over 5 feet
Female: 45.5 + 2.3 kg per inch over 5 feet
3. The next requirement is to save patient historical data so that doctors could easily track his patients’ progress. Therefore, for this requirement, application needed to capture some data that could be used to identify the patient.
4. Identification of the patient by using Medicare number.
5. Separation of the calculation operation and the operation of persisting patient data: These two actions should be separated to be able to perform some ad hoc calculations without having to input a patient’s name and Medicare number. In addition, users could save the data only when they were sure that all the entries were correct.
6. For implementing persistence of a patient’s history, a few alternatives are available, such as a flat file, a database (e.g., Access), or even a spreadsheet. In the given application, a flat file was used. You are required to change this to a database or XML file. (only for ITECH7201 students)
ITECH3201/7201
Software Engineering: Analysis & Design
School of Science, Information Technology & Engineering
CRICOS Provider No. 00103D (VIC); 01266K (NSW); 02235J (SA) Page 3 of 6
The system analyst role is to design and analysis the requirements by drawing a use case diagram, class diagram and sequence diagram for finding the correct diet intake in calories for a given patient. While the developer role is to produce the code, however, in this scenario, you have given the written code for the application developed by the previous IT team. 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). You are only required to refactor the written code and test them based on the analysis and design produced by you as a system analyst. Finally, a report is given to the management about the defects in the design of the existing software by identifying the bad smells etc.
Your report should be written in the same manner as Fowler has done in the prescribed text – small refactoring’s with code comparisons and UML diagrams (refer Fowler pp.1-65). Ask your tutor if you have any doubts.
Marks
This assignment consists of a number of tasks for you to perform as detailed in the following:
Tasks
Marks
Report detailing any “code smells” present in the code, and how you intend to refactor them out of the application.
3
A refactored version of the system eliminating all identified code smells present in the initial code.
3
A class diagram illustrating the initial code and another class diagram illustrating the final refactored code (including all relevant dependencies
2
A sequence diagram illustrating how the final refactored system processes a new patient’s
recommended daily intake of calories
2
Extensive NUnit tests for the complete refactored system
3
Implementing persistence of a patient’s history (database or XML) – ITECH 7201 students only
3
Code written for Lab 4 exercise
3
Code written for Lab 5 exercise
3
Code written for Lab 6 exercise
3
Total
25 (Scaled to 20%)
[13 + 9 = 22 marks will be scaled to 20%] ITECH 3201
[16 + 9 = 25 marks will be scaled to 20%] ITECH 7201
ITECH3201/7201
Software Engineering: Analysis & Design
School of Science, Information Technology & Engineering
CRICOS Provider No. 00103D (VIC); 01266K (NSW); 02235J (SA) Page 4 of 6
NOTE: 9 marks out of the total marks (before scaling) have been allocated to show the working of your code to your tutor / lecturer before submitting to Moodle. The written codes in the labs should also be submitted along with the assignment.
? Writing Simple C# programs with Unit testing in Lab of Week 4 – 3 marks
? Unit tests and Refactoring of code in Lab of Week 5 – 3 marks
? Adding extra functionality in the program in Lab of Week 6 – 3 marks
Submission
You are required to submit an electronic copy before the due date.
Electronic copy submission
You are required to submit the assignment consisting of:
? A Zip file containing the following (submitted via Moodle under the Assignment 1 link)
o All code representing your refactored application and NUnit tests
o The accompanying Enterprise Architect file with model versions that correspond to your final code submission.
o An electronic report, in MS-Word, with all requirements as above mentioned.
Name your zip file as:
FAMILYNAME_ GivenName _StudentID _Assign1
For example: SMITH_John_30091234_Assign1.zip
ITECH3201/7201
Software Engineering: Analysis & Design
School of Science, Information Technology & Engineering
CRICOS Provider No. 00103D (VIC); 01266K (NSW); 02235J (SA) Page 5 of 6
University of Ballarat
School of Science, Information Technology and Engineering
ITECH3201/ITECH7201 Software Engineering: Analysis and Design
Sem1, 2013
Assignment 1
A mark is awarded for each of the sections shown. Within each section, items affecting the category mark are listed.
Student ID:
Student Name:
Marker’s Name:
Report detailing any “code smells” present in the code, and how you intend to refactor them out of the application. Your report should be complete and follow the guidelines for the presentation of academic work. The style of your report should be the same as that used by Fowler in his book ‘Refactoring’.
A refactored version of the system eliminating all identified code smells present in the initial code.
A class diagram illustrating the initial code and another class diagram illustrating the final refactored code (including all relevant dependencies).
3
3
2
ITECH3201/7201
Software Engineering: Analysis & Design
School of Science, Information Technology & Engineering
CRICOS Provider No. 00103D (VIC); 01266K (NSW); 02235J (SA) Page 6 of 6
A sequence diagram illustrating how the final refactored system processes a new patient’s recommended daily intake of calories
Extensive NUnit tests for the complete refactored system.
Code written in Lab 4
Code written in Lab 5
Code written in Lab 6
Implementing persistence of a patient’s history (database or XML) – ITECH 7201 students only
2
3
3
3
3
3
Total
Out of 20 =
ITECH3201
/22
Total
Out of 20 =
ITECH7201
/25
Comments:
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.
Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.
Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.
Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.
Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.
Read more