AN EMPIRICALLY TESTED DESIGN PATTERN SELECTION FRAMEWORK BASED ON DEVELOPER EXPERIENCE
In most IT projects, software maintenance had always been a difficult task to perform especially when the software is not designed properly. This has led to numerous changes all over the places despite a minor change request. Design patterns are widely known for its proven solution to recurring problems. If fully utilized, design patterns can prevent such incident from happening as changes can often be added without affecting existing components. However, due to numerous design patterns that are available these days, it is difficult to select the right pattern. In addition, existing studies still lack a proven guideline to select the right pattern. This difficulty is faced by many beginners and experienced developers. The aim of this research is to propose a framework to select the most suitable design patterns in software development. The research methodology used is quantitative research where primary data are collected using survey and questionnaires. This is mainly to find out developers’ attitudes towards the use of design patterns. 25 out of 48 papers regarding design patterns are referenced in this paper. The framework developed is evaluated and empirically tested using expert judgement and controlled experiment. The result shows that the framework does help in evaluating and selecting the most suitable pattern. Therefore, the authors highly recommend developers to make use of this framework in software development.
The Standish Group, “The Standish CHAOS Report 2014,” Proj. Smart, p. 16, 2014.
S. Dehaghani and N. Hajrahimi, “Which Factors Affect Software Projects Maintenance Cost More?,” Acta Inform. Medica, vol. 21, no. 1, p. 63, 2013.
Omnext BV, “How to save on software maintenance costs: An Omnext white paper on software quality,” vol. 31, no. November, pp. 1–13, 2014.
S. Holzner, Design Patterns for Dummies®. Indianapolis: Wiley Publishing, 2006.
M. Oruc, F. Akal, and H. Sever, “Detecting design patterns in object-oriented design models by using a graph mining approach,” Proc. - 2016 4th Int. Conf. Softw. Eng. Res. Innov. CONISOFT 2016, pp. 115–121, 2016.
S. S. Thabasum and U. T. M. Sundar, “A Survey on Software Design Pattern Tools for Pattern Selection and Implementation,” Int. J. Comput. Sci. Commun. Networks, vol. 2, no. 4, pp. 496–500, 2019.
M. R. Jameel Qureshi and W. Al-Geshari, “Proposed Automated Framework to Select Suitable Design Pattern,” Int. J. Mod. Educ. Comput. Sci., vol. 9, no. 5, pp. 43–49, May 2017.
R. Subburaj, J. Gladman, and C. Hwata, “Impact of Object Oriented Design Patterns on Software Development,” Int. J. Sci. Eng. Res., vol. 3, no. 2, pp. 961–967, 2015.
M. O. Onarcan and Y. Fu, “A Case Study on Design Patterns and Software Defects in Open Source Software,” J. Softw. Eng. Appl., vol. 11, no. 05, pp. 249–273, 2018.
C. Zhang and D. Budgen, “What do we know about the effectiveness of software design patterns?,” IEEE Trans. Softw. Eng., vol. 38, no. 5, pp. 1–19, 2012.
C. Zhang, F. Wang, R. Xu, X. Li, and Y. Yang, “A quantitative analysis of survey data for software design patterns,” in Proceedings of the 2014 3rd International Workshop on Evidential Assessment of Software Technologies - EAST 2014, 2014, no. 111, pp. 48–55.
B. Walter and T. Alkhaeir, “The relationship between design patterns and code smells: An exploratory study,” Inf. Softw. Technol., vol. 74, pp. 127–142, Jun. 2016.
F. M. Alghamdi and M. R. J. Qureshi, “Impact of Design Patterns on Software Maintainability,” Int. J. Intell. Syst. Appl., vol. 6, no. 10, pp. 41–46, Sep. 2014.
K. Beck et al., “Industrial Experience with Design Patterns,” in Proceedings of the 18th International Conference on Software Engineering, 1996, pp. 103–114.
M. Ali and M. O. Elish, “A Comparative Literature Survey of Design Patterns Impact on Software Quality,” in 2013 International Conference on Information Science and Applications (ICISA), 2013, pp. 1–7.
N. Ahmad and M. W. Boota, “Evaluation Amid different Software Design Patterns,” Int. J. Comput. Appl., vol. 105, no. 11, pp. 28–34, 2014.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-oriented Software. Massachusetts: Addison-Wesley, 1995.
D. Yu, P. Zhang, J. Yang, Z. Chen, C. Liu, and J. Chen, “Efficiently detecting structural design pattern instances based on ordered sequences,” J. Syst. Softw., vol. 142, pp. 35–56, 2018.
V. Holmstedt and S. A. Mengiste, “The importance of program Design Patterns training,” in 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), 2017, pp. 559–560.
W. B. McNatt and J. M. Bieman, “Coupling of design patterns: common practices and their benefits,” in 25th Annual International Computer Software and Applications Conference. COMPSAC 2001, 2001, no. Compsac, pp. 574–579.
P. Wendorff, “Assessment of design patterns during software reengineering: lessons learned from a large commercial project,” in Proceedings Fifth European Conference on Software Maintenance and Reengineering, 2001, pp. 77–84.
F. Khomh and Y.-G. Gueheneuce, “Do Design Patterns Impact Software Quality Positively?,” in 2008 12th European Conference on Software Maintenance and Reengineering, 2008, pp. 274–278.
P. Hegedüs, D. Bán, R. Ferenc, and T. Gyimóthy, “Myth or Reality? Analyzing the Effect of Design Patterns on Software Maintainability,” in Communications in Computer and Information Science, 2012, vol. 340, pp. 138–145.
F. Khomh and Y.-G. Gueheneuc, “Design Patterns Impact on Software Quality : Where Are the Theories ?,” in IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER), 2018, pp. 15–25.
H. Marouane, C. Duvallet, A. Makni, R. Bouaziz, and B. Sadeg, “An UML profile for representing real-time design patterns,” J. King Saud Univ. - Comput. Inf. Sci., vol. 30, no. 4, pp. 478–497, 2017.
A. Abdullah, M. H. Khan, and R. Srivastava, “Flexibility: A Key Factor to Testability,” Int. J. Softw. Eng. Appl., vol. 6, no. 1, pp. 89–99, Jan. 2015.
C. Gravino and M. Risi, “How the Use of Design Patterns Affects the Quality of Software Systems: A Preliminary Investigation,” in 2017 43rd Euromicro Conference on Software Engineering and Advanced Applications (SEAA), 2017, pp. 274–277.
G. Scanniello, C. Gravino, M. Risi, G. Tortora, and G. Dodero, “Documenting Design-Pattern Instances: a Family of Experiments on Source Code Comprehensibility,” ACM Trans. Softw. Eng. Methodol., vol. 24, no. 3, pp. 1–35, May 2015.
M. N. Riaz, “Impact of software design patterns on the quality of software: A comparative study,” in 2018 International Conference on Computing, Mathematics and Engineering Technologies (iCoMET), 2018, pp. 1–6.
H. Zhu and I. Bayley, “On the Composability of Design Patterns,” IEEE Trans. Softw. Eng., vol. 41, no. 11, pp. 1138–1152, Nov. 2015.
The submitter hereby warrants that the Work (collectively, the “Materials”) is original and that he/she is the author of the Materials. To the extent the Materials incorporate text passages, figures, data or other material from the works of others, the undersigned has obtained any necessary permissions. Where necessary, the undersigned has obtained all third party permissions and consents to grant the license above and has all copies of such permissions and consents.
The submitter represents that he/she has the power and authority to make and execute this assignment. The submitter agrees to indemnify and hold harmless the COMPUSOFT from any damage or expense that may arise in the event of a breach of any of the warranties set forth above. For authenticity, validity and originality of the research paper the author/authors will be totally responsible.