Crowdsourced Machine Learning Based Recommender for Software Design Patterns

  • Sunbul Sajid Khowaja Software Engineering Department, Mehran University of Engineering and Technology, Jamshoro 76020, Pakistan
  • Dr Qasim Ali Software Engineering Department, Mehran University of Engineering and Technology, Jamshoro 76020, Pakistan
  • Erum Hamid Beijing University of Posts and Telecommunication, Beijing, China
  • Rajesh Kumar Hamdard University, Karachi, Pakistan
  • Gul Bano Software Engineering Department, Mehran University of Engineering and Technology, Jamshoro 76020, Pakistan
  • Jatendar Dharani Software Engineering Department, Mehran University of Engineering and Technology, Jamshoro 76020, Pakistan
  • Isma Farah Software Engineering Department, Mehran University of Engineering and Technology, Jamshoro 76020, Pakistan
  • Zainab Umair Software Engineering Department, Mehran University of Engineering and Technology, Jamshoro 76020, Pakistan
Keywords: Crowdsourcing, Design patterns, Machine Learning, Software Quality, Matchbox recommender, T-test.

Abstract

Software technology has become an essential part of human lives today. The role of software Engineers in making this technology as success is very fundamental. In software Engineering, the toughest stage is to design software as there is no particular rule or formula to covert requirements into design representation. A designer designs software using skills, critical thinking ability and previous experience only. To make this process easy, the design patterns came into existence which are the solutions that can be used repetitively to solve design problems. There have been several pieces of research presented regarding design Patterns but it is hard to find research regarding how the patterns are perceived and used in industries today and what nature of application uses which specific patterns. This paper uses a crowdsourced approach to acquire the finest practices that are being used in industries today including which quality attributes are affected most by the implementation of these patterns and which patterns are suitable for what type of applications. It also uses a machine learning supervised algorithm (Matchbox Recommender) to predict suitable design pattern for different nature of applications.

References

. S. Hussain, J. Keung, A. A. Khan, and K. E. Bennin, “A Methodology to Automate the Selection of Design Patterns,” 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC), 2016.

. B. B. Mayvan, A. Rasoolzadegan, and Z. G. Yazdi, “The state of the art on design patterns: A systematic mapping of the literature,” Journal of Systems and Software, vol. 125, pp. 93–118, 2017

. F. Khomh and Y.-G. Gueheneuc, “Design patterns impact on software quality: Where are the theories?,” 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER), 2018

. M. N. Riaz, “Impact of software design patterns on the quality of software: A comparative study,” 2018 International Conference on Computing, Mathematics and Engineering Technologies (iCoMET), 2018.

. A. Sarı, A. Tosun, and G. I. Alptekin, “A systematic literature review on crowdsourcing in software engineering,” Journal of Systems and Software, vol. 153, pp. 200–219, 2019..

. B. Lin, “Crowdsourced software development and maintenance,” Proceedings of the 40th International Conference on Software Engineering Companion Proceeedings - ICSE 18, 2018.

. B. Walter and T. Alkhaeir, “The relationship between design patterns and code smells: An exploratory study,” Information and Software Technology, vol. 74, pp. 127–142, 2016.

. F. Khomh and Y.-G. Gueheneuce, “Do Design Patterns Impact Software Quality Positively?,” 2008 12th European Conference on Software Maintenance and Reengineering, 2008

. Gautam, Shikha, and Brijendra Singh. "Assessing the Theoretical Impact of Design Patterns on Software Quality." Software Quality Professional 21.1 (2018).

. Pressman, Roger S. Software engineering: a practitioner's approach. Palgrave macmillan, 2005.

. D. Yu, Z. Zhou, and Y. Wang, “Crowdsourcing Software Task Assignment Method for Collaborative Development,” IEEE Access, vol. 7, pp. 35743–35754, 2019.

. A. Sarı, A. Tosun, and G. I. Alptekin, “A systematic literature review on crowdsourcing in software engineering,” Journal of Systems and Software, vol. 153, pp. 200–219, 2019

. R. Qiao, S. Yan, and B. Shen, “A Reinforcement Learning Solution to Cold-Start Problem in Software Crowdsourcing Recommendations,” 2018 IEEE International Conference on Progress in Informatics and Computing (PIC), 2018.

. A. J. Paramita and M. Z. C. Candra, “CODECOD: Crowdsourcing Platform for Code Smell Detection,” 2018 5th International Conference on Data and Software Engineering (ICoDSE), 2018

. X. Zhang, B. Gong, H. Ni, Z. Liang, and J. Su, “Identifying Participants Characteristics Influencing Participant Estimation in Knowledge-Intensive Crowdsourcing,” 2019 8th International Conference on Industrial Technology and Management (ICITM), 2019.

. J. Wang, S. Wang, J. Chen, T. Menzies, Q. Cui, M. Xie, and Q. Wang, “Characterizing Crowds to Better Optimize Worker Recommendation in Crowdsourced Testing,” IEEE Transactions on Software Engineering, pp. 1–1, 2019.

. E. Gamma, R. Helm, and R. Johnson, Design patterns elements of reusable object oriented software. Reading: Addison Wesley, 1998.

. Claude Y. Laporte and Alain April. “Software Quality Assurance (1st ed.)”. Wiley-IEEE Computer Society Pr, 2015.

. S. M. H. Hasheminejad and S. Jalili, “Design patterns selection: An automatic two-phase method,” Journal of Systems and Software, vol. 85, no. 2, pp. 408–424, 2012.

. S. Hussain, J. Keung, and A. A. Khan, “Software design patterns classification and selection using text categorization approach,” Applied Soft Computing, vol. 58, pp. 225–244, 2017

. R. Aliady and S. Alyahya, “Crowdsourced Software Design Platforms: Critical Assessment,” Journal of Computer Science, vol. 14, no. 4, pp. 546–561, Jan. 2018.

. Portugal, P. Alencar, and D. Cowan, “The use of machine learning algorithms in recommender systems: A systematic review,” Expert Systems with Applications, vol. 97, pp. 205–227, 2018.

. S. Belouafa, F. Habti, S. Benhar, B. Belafkih, S. Tayane, S. Hamdouch, A. Bennamara, and A. Abourriche, “Statistical tools and approaches to validate analytical methods: methodology and practical examples★,” International Journal of Metrology and Quality Engineering, vol. 8, p. 9, 2017

. T. Redkar and T. Guidici, Windows Azure Platform. Berkeley, CA: Apress, 2011.

. S. Unankard, “Prediction of Re-tweeting Activities in Social Networks Based on Event Popularity and User Connectivity,” Machine Learning and Data Mining in Pattern Recognition Lecture Notes in Computer Science, pp. 357–368, 2018.

. D. H. Stern, R. Herbrich, and T. Graepel, “Matchbox,” Proceedings of the 18th international conference on World wide web - WWW 09, 2009.

. Using SPSS to Perform Statistical Analyses,” An Introductory Guide to SPSS® for Windows®, pp. 61–90.

. Krzywinski, Martin, and Naomi Altman. "Points of significance: Significance, P values and t-tests." (2013): 1041.

. N. Pathan, Q. Ali, S. Iftikhar, G. Batool, and I. Memon, “Personality Type Recommendation System using Crowdsourcing,” 2019 2nd International Conference on Computing, Mathematics and Engineering Technologies (iCoMET), 2019.

. S. Taj, Q. Arain, I. Memon, and A. Zubedi, “To apply Data Mining for Classification of Crowd sourced Software Requirements,” Proceedings of the 2019 8th International Conference on Software and Information Engineering - ICSIE 19, 2019.

. Z. U. Kamangar, U. A. Kamangar, Q. Ali, I. Farah, S. Nizamani, and T. H. Ali, “To enhance Effectiveness of Crowdsource Software Testing by applying Personality Types,” Proceedings of the 2019 8th International Conference on Software and Information Engineering - ICSIE 19, 2019.

. S. S. Memon, A. S. Shah, I. H. Memon, Q. A. Arain, G. M. Morio, and W. A. Channa, “To Explore the Project Management towards Academic Discipline and Practical Approaches,” ENGINEERING SCIENCE AND TECHNOLOGY INTERNATIONAL RESEARCH JOURNAL, VOL.3, NO.3, Sep. 2019.

. I. Memon, H. Fazal, R. A. Shaikh, Q. A. Arain, and T. K. Khatri, “Big data, Cloud and 5G networks create smart and intelligent world: A survey,” University of Sindh Journal of Information and Communication Technology , pp. 185–192, 2019.

. K. N. Soomro, rabeea jaffri, I. Farah, and S. A. undefined, “Predictive analysis for employee churn in software industry using exploratory data analysis,” 1st international conference on computational sciences and technologies, Mehran University of Engineering and technology, 2019.

Published
2020-02-20
How to Cite
Khowaja, S. S., Ali, D. Q., Hamid, E., Kumar, R., Bano, G., Dharani, J., Farah, I., & Umair, Z. (2020). Crowdsourced Machine Learning Based Recommender for Software Design Patterns. International Journal of Computer (IJC), 36(1), 34-52. Retrieved from https://ijcjournal.org/index.php/InternationalJournalOfComputer/article/view/1541
Section
Articles