Research

Mobile Apps Review Analysis and Prioritize

Android applications’ acceptance rate is growing rapidly because of its enormous number of end users, which creates a huge competition among the developers. To build an acceptable and successful application, user reviews are very important source of information. Especially for a better release of new version apps, it is necessary to know the user demand. This project analysis the user feedback as text or rating or thumbs to prioritize and predict better release plan.

Student:

  1. Oishi Mahmud, awarded Master of IIT from IIT DU at 2019

  2. Niloy Nisat, awarded BSc. in Software Engineering from IIT DU at 2018

Publications:

  • Md Abdur Rahman, Oishi Mahmud, Nishat Tasnim Niloy, and Md Saeed Siddik, “Prioritize Android App Reviews for Effective Version Release”, ASM Science Journal (Scopus Indexed), Vol. 13, No. 2, pp. 21-30, March, 2020. [Link]

  • O. Mahmud, N. T. Niloy, M. A. Rahman and M. S. Siddik, "Predicting an Effective Android Application Release Based on User Reviews and Ratings," 7th International Conference on Smart Computing & Communications (ICSCC), IEEE, Sarawak, Malaysia, 2019, pp. 1-5. doi: 10.1109/ICSCC.2019.8843677 [Link]

Code Comments Inconsistency

Comments in source code is very important to understand the existing source code, where software evolve day by day. In large scale software development, developers need to analyze existing codes and they often depend on these comments. However, it is very common to ignore changing comments with respect to changing codes, which make those comments inconsistency. These types of comments gradually affect the performance of software maintenance and evolution.

Student:

  1. Fazle Rabbi, MSc Student at IIT DU (2019 - till)

Publications:

  • Fazle Rabbi and Md Saeed Siddik, “Detecting Code Comment Inconsistency using Siamese Recurrent Network” accepted for publication in the proceedings IEEE/ACM 28th International Conference on Program Comprehension (ICPC 2020) to be held 5-11 October 2020 in Seoul, Republic of Korea. [Link]

Test Case Prioritization

Test case prioritization reorders test cases based on faulty module detection capability to detect maximum faults by minimum execution. Test case prioritization reorders test cases for providing earlier feedback to software testers and managers about faulty modules, which are exigent specially in regression testing. This type of testing re-validates the modified software when new components included to adapt the change requirements which may adversely impact on existing software. This re-validating procedure considers both old and new test cases to ensure software functionalities, which is costly and time consuming.

Student:

  1. Md Abu Hasan, awarded MSc in Software Engineering from IIT DU at 2018

Publications:

  • Md Saeed Siddik, M Abdur Rahman and Sakib Kazi. ‘Prioritising test cases by collaborating artifacts of software development life cycle’, International Journal of Forensic Software Engineering, Inderscience Publishers, Vol. 1, No. 1, pp.47–72, December 2019. [Link]

  • A. Rahman, Md. A. Hasan, K. Shah and Md. S. Siddik, “Multipartite Based Test Case Prioritization Using Failure History”, International Journal of Advanced Science and Technology (IJAST), ISSN: 2005-4238(Print); 2207-6360(Online), SCI Indexed, Australia, (2019), Vol. 125, pp. 25-42. [Link]

  • Md. Abu Hasan, Md. Abdur Rahman, and Md. Saeed Siddik “Test Case Prioritization Based on Dissimilarity Clustering using Historical Data Analysis.” International Conference on Information Communication and Computing Technology, Springer, May 2017, Pages: 267-281. [Link]

  • Md Saeed Siddik, and Kazi Sakib. "RDCC: An Effective Test Case Prioritization Framework using Software Requirements, Design and Source Code Collaboration." in 17th Inter. Conf. on Computer and Information Technology (ICCIT’14), IEEE, 22-23 December 2014. [Link]

Software Requirement Analysis

Software are developed based on some formatted functional and non functional requirements. Functional requirements are directly collected from customers, where non functional requirements are the expected quality requirements furnished from the designer end. Basically, Non Functional Requirements (NFRs) describes a set of quality attributes required for software such as security, reliability, performance,etc. Extracting and considering NFR from software requirement specification can help developers to deliver quality software which meets users' expectations completely. Since, the functional and non-functional requirements are mixed together within the same SRS; it requires a lot of human effort for distinguishing them.

Student:

  1. Md. Ariful Haque awarded Master of IT from IIT DU at 2019

Publications:

  • M. A Rahman, M. A Haque, N A Tawhid, and Saeed Siddik. “Classifying Non-functional Requirements using RNN Variants for Quality Software Development”. In Proc. of the 3rd ACM SIGSOFT Int. Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE ’19), pp. 25-30. August , 2019, Collocated with FSE’19, Tallinn, Estonia, DOI: https://doi.org/10.1145/3340482.3342745 [A* Conference] [Link]

  • M. A. Haque, M. Abdur Rahman and M. S. Siddik, "Non-Functional Requirements Classification with Feature Extraction and Machine Learning: An Empirical Study," 1st International Conference on Advances in Science, Engineering and Robotics Technology (ICASERT), IEEE, Bangladesh, 2019, pp. 1-5. [Link]

  • Mirza Rehenuma Tabassum, Md. Saeed Siddik, Mohammad Shoyaib, Shah Mostafa Khaled, “Determining Inter dependency Among Non-functional Requirements to Reduce Conflict”, 3rd International Conference Informatics, Electronics & Vision (ICIEV’14), IEEE, April 2014. [Link]

Software Architectural Design Analysis

Software are developed based on several well known architectures such as Structured, Object Oriented, Component Based etc. which are quite similar in their underlying dependencies, but different in top level usages. Legacy software, often written in procedural languages such as C, C++, COBOL, etc. could be a major concern for organizations due to low maintainability, which can be resolved by modern reusable design such as Java, GoLang, Python, etc. Those architecture still have some code smells which should be leveraged by refactoring in source code.

Publications:

  • Yasir, Rafed Muhammad, Moumita Asad, Asadullah Hill Galib, Kishan Kumar Ganguly, and Md Saeed Siddik. "GodExpo: an automated god structure detection tool for Golang." In Proceedings of the 3rd International Workshop on Refactoring (IWoR), pp. 47-50. May 2019 Collocated with ICSE’19, Canada, IEEE Computer Society. DOI: https://doi.org/10.1109/IWoR.2019.00016 [A* Conference] [Link]

  • Md. Saeed Siddik, Alim Ul Gias, Md. Selim, Shah Khaled, Kazi Sakib, “A Direction of Migrating Procedural Paradigm to Object Based Architecture by forming Cluster of Functions using Local Search Heuristics”, 3rd Int. Conf. Informatics, Electronics & Vision (ICIEV’14),IEEE, April 2014. [Link]

  • Md Saeed Siddik, A. U. Gias, and S. M. Khaled, “Optimizing software design migration from structured programming to object oriented paradigm,” in 16th International Conference on Computer and Information Technology (ICCIT’13), IEEE, December 2013. Pages 1-6. [BEST STUDENT PAPER AWARD] [Link]

  • Md. Selim, Saeed Siddik, Alim Ul Gias, Shah Mostafa Khaled, and M. Abdullah-Al-Wadud, “A Genetic Algorithm for Software Design Migration from Structured to Object Oriented Paradigm” in 8th International Conference on Computer Engineering and Applications (CEA14), Spain. Jul 23, 2014, Pages 187–192. Dblp Indexed. [Link]