Design Patterns
Coursework
The coursework is 40% of the assessment for the module.
Learning Outcomes
1. Alter a software program by incorporating design refinements appropriately to improve software quality. (A4, PLO6)
2. Make a selection between candidate design patterns based upon an empirical evaluation of the different patterns available for a particular context. (C5, PLO7)
Assessment Criteria
IMPORTANT: This is an individual assignment, all submitted components must be your own work or appropriately accredited. You are encouraged to make any assumptions you deem necessary when analysing the requirements outlined in the question, however, these must be clearly stated in the report.
Your report should address the following two sections:-
Section 1: Design Refinements (20 marks)
Section 2: Empirical Evaluation (20 marks)
PLAGIARISM: Verbatim reproduction of material from external sources (web pages, books, papers, etc.) is not acceptable. If you are paraphrasing external content (or even your own prior work) or were otherwise influenced by them while completing your assignments, projects or exams, you must clearly acknowledge them. When in doubt, add a citation.
Deliverables
• The assignment deliverable includes a report structured according to the tasks of the assignment.
• You should submit an electronic copy of the assignment.
• All of your referenced work should be cited properly.
• The electronic copy of your assignment should contain a folder named “Referenced Articles” which should contain the journals and articles referenced in the assignment.
• Instructions on how to install and run the program should be provided in an Appendix.
• Include UML diagrams and Java codes in a zipped file.
Problem Description
Delivering quality software products to the users is among the utmost important requirements of any organization to succeed as well as to sustain from competitive pressure. One of the very significant quality model presented by Jim McCall (also known as the General Electrics Model of 1977) details 11 Quality Factors that describe the external view of the software, as viewed by the users.
Following are 5 quality factors taken from the McCall’s Model which are crucial for any given application.
1. (TPXXXX1 and TPXXXX6) Reliabilitisy: The system’s ability of not to fail.
2. (TPXXXX2 and TPXXXX7) Maintainability: Effort required to locate and fix a fault in the program within its operating environment.
3. (TPXXXX3 and TPXXXX8) Testability: The ease of testing program to ensure that it is error-free and meets its specification.
4. (TPXXXX4 and TPXXXX9) Reusability: The ease of reusing software in a different context.
5. (TPXXXX5 and TPXXXX0) Portability: The effort required to transfer a program from one environment to another.
Many studies indicate that design patterns improve the quality of object-oriented software systems. You are required to choose one of the stated quality attributes based on the last digit of your TP number and justify with the help of empirical evidence that the use of design patterns help in improving the selected quality factor.
Section 1 (20%) – Design Refinements
Description
In this section, you are required to provide a sample application design using UML class diagram and implement it using Java programming language. Then you will need to refine the UML design using two appropriate design patterns and implement the refined design again for comparison. The selection of the design patterns should be made by considering the chosen quality attribute.
This section of your report should include the following:
Design and Implementation using Simpler Solution (10%) – Use UML for Design and Java for implementation.
Design and Implementation using Design Patterns based Solution (10%) – Use UML for Design and Java for implementation.
Section 2 (20%) – Empirical Evaluation
Description
In this section, you are required to present detailed results based on the evaluation of design pattern based solutions and their equivalent simpler solutions (i.e., solutions without using design patterns) so as to quantify which of them is more suitable towards improving the selected quality attribute.
To further elaborate this context, you can assume that there are two different design solutions, S1 and S2 exists for a single problem in designing a software product. Obviously before applying a solution, a software engineer needs to know that applying S1 would be more appropriate than applying S2, or vice versa, in terms of the chosen quality attribute. A good software engineer should measure both S1 and S2 beforehand (in terms of the selected quality attribute) by using specific metrics made for this very purpose. The resulted quantified values would assist him/her to select the better design inclined towards improving the chosen quality attribute and contributing to improve the overall software quality.
You are required to provide the empirical evidence to support the claims of improved quality factor when applying design patterns. Use an experimental-based evaluation technique. The measurements and evaluation processes should be clearly stated and formulated into a guideline.
This section of your report should include the following:
Measuring technique(s) for the Selected Quality Attribute (5%) – State appropriate measuring technique(s) for calculating an empirical value of the selected quality factor. Cite the references accordingly.
Analysis of the Results (10%) – This is where you compare and contrast the results of the design pattern based solutions with their equivalent simpler solutions.
Conclusion (5%) – In this section you need to conclude your findings.
For this short paper activity, you will learn about the three delays model, which explains…
Topic : Hospital adult medical surgical collaboration area a. Current Menu Analysis (5 points/5%) Analyze…
As a sales manager, you will use statistical methods to support actionable business decisions for Pastas R Us,…
Read the business intelligence articles: Getting to Know the World of Business Intelligence Business intelligence…
The behaviors of a population can put it at risk for specific health conditions. Studies…