Comments in source code are very important to understand the existing source code, as software evolves day by day in the era of AI. 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 code, which makes those comments inconsistent. These types of comments gradually affect the performance of software maintenance and evolution.
Student:
Mushfiqur Rahman; MSc Student at IIT DU (2025 to till)
Fazle Rabbi, awarded Master of IIT from IIT DU in 2021
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]
Android applications’ acceptance rate is growing rapidly because of its enormous number of end users, which creates a huge competition among developers. To build an acceptable and successful application, user reviews are a very important source of information. Especially for a better release of new version apps, it is necessary to know the user demand. This project analyzes the user feedback as text or rating, or thumbs, to prioritize and predict a better release plan.
Student:
Oishi Mahmud, awarded Master of IIT from IIT DU in 2019
Niloy Nisat, awarded BSc. in Software Engineering from IIT DU in 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]
Test case prioritization reorders test cases based on faulty module detection capability to detect maximum faults with minimum execution. Test case prioritization reorders test cases to provide earlier feedback to software testers and managers about faulty modules, which are especially exigent in regression testing. This type of testing revalidates the modified software when new components are included to adapt to the change requirements, which may adversely impact existing software. This re-validation procedure considers both old and new test cases to ensure software functionalities, which is costly and time-consuming.
Student:
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 are developed based on some formatted functional and non functional requirements. Functional requirements are directly collected from customers, while non-functional requirements are the expected quality requirements furnished from the designer's end. Basically, Non Functional Requirements (NFRs) describe a set of quality attributes required for software, such as security, reliability, performance, etc. Extracting and considering NFR from the 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 to distinguish them.
Student:
Md. Ariful Haque was awarded a 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 is 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 designs such as Java, GoLang, Python, etc. That architecture still has some code smells that should be leveraged by refactoring in the 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]