Mohamed Wiem Mkaouer Headshot

Mohamed Wiem Mkaouer

Adjunct Faculty

Golisano College of Computing and Information Sciences

Mohamed Wiem Mkaouer

Adjunct Faculty

Golisano College of Computing and Information Sciences

Education

BS, University of Tunis (Tunisia); MS, University of Geneva (Switzerland); Ph.D. University of Michigan

Bio

Mohamed Wiem Mkaouer is currently an Assistant Professor in the Software Engineering Department, in the B. Thomas Golisano College of Computing and Information Sciences at the Rochester Institute of Technology. He received his PhD in 2016 from the University of Michigan-Dearborn under the supervision of Professor Marouane Kessentini. His research interests include software quality, systems refactoring, model-driven engineering and software testing. His current research focuses on the use computational search and evolutionary algorithms to address several software engineering problems such as software quality, software remodularization, software evolution and bug management.


Areas of Expertise

Select Scholarship

Journal Paper
Makram, Soui,, et al. "Assessing the quality of mobile graphical user interfaces using multi-objective optimization." Soft Computing. (2019): 1-30. Web.
Alrubaye, Hussein and Mohamed Wiem. "Variability in library evolution." Software Engineering for Variability Intensive Systems: Foundations and Applications. (2019): 295-320. Web.
Nuri, Almarimi,, et al. "Web service API recommendation for automated mashup creation using multi-objective evolutionary search." Applied Soft Computing. (2019): 1-13. Web.
Saidani, Islem, et al. "Towards Automated Microservices Extraction Using Muti-objective Evolutionary Search." International Conference on Service-Oriented Computing. (2019): 58-63. Web.
Cai, Alizadeh, Vahid, Marouane Kessentini, Wiem Mkaouer, Mel Ocinneide, Ali Ouni, and Yuanfang. "An Interactive and Dynamic Search-Based Approach to Software Refactoring Recommendations." IEEE Transactions on Software Engineering. (2018): 1-30. Web.
McBurney, Paul W., et al. "Towards Prioritizing Documentation Effort." IEEE Transactions on Software Engineering PP. 99 (2017): 1-17. Web.
Mkaouer, Mohamed Wiem, et al. "A Robust Multi-objective Approach to Balance Severity and Importance of Refactoring Opportunities." Empirical Software Engineering 22. 2 (2017): 894-927. Web.
Published Conference Proceedings
Hussein, Alrubaye,, Mohamed Wiem Mkaouer., and Stephanie Ludi. "Comparison of block-based and hybrid-based environments in transferring programming skills to text-based environments." Proceedings of the In Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering. Ed. ACM. Toronto, Canada: ACM, 2019. Web.
Hussein, Alrubaye,, Mohamed Wiem Mkaouer., and Stephanie Ludi. "Comparison of block-based and hybrid-based environments in transferring programming skills to text-based environments." Proceedings of the In Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering. Ed. ACM. Toronto, Canada: ACM, 2019. Web.
Peruma, Anthony, et al. "On the distribution of test smells in open source Android applications: an exploratory study." Proceedings of the Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering. Ed. IEEE. Toronto, Canada: IBM Corp, 2019. Web.
Peruma, Anthony, et al. "Contextualizing rename decisions using refactorings and commit messages." Proceedings of the 2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM). Ed. IEEE. Toronto, Canada: IEEE, 2019. Web.
AlOmar, Eman Abdullah, et al. "On the impact of refactoring on the relationship between quality attributes and design metrics." Proceedings of the 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). Ed. IEEE. clevliend, Ohio: IEEE, 2019. Web.
Alshoaibi, Deema, et al. "PRICE: Detection of Performance Regression Introducing Code Changes Using Static and Dynamic Metrics." Proceedings of the International Symposium on Search Based Software Engineering. Ed. IEEE. celvin, Ohio: IEEE, 2019. Web.
Messaoud, Montassar Ben, et al. "A Multi-label Active Learning Approach for Mobile App User Review Classification." Proceedings of the International Conference on Knowledge Science, Engineering and Management. Ed. ACM. Toronto, Canada: ACM, 2019. Web.
AlOmar,, Eman Abdullah, et al. "Do design metrics capture developers perception of quality? an empirical study on self-affirmed refactoring activities." Proceedings of the arXiv preprint arXiv:1907.04797. Ed. IEEE. Toronto, Canada: IEEE, 2019. Web.
Alrubaye,, Hussein, Ali Ouni, and Mohamed Wiem Mkaouer,. "MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method Level." Proceedings of the 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME). Ed. ACM. Toronto, Canada: ACM, 2019. Web.
AlOmar, Eman, Ali Ouni, and Mohamed Wiem Mkaouer,. "Can refactoring be self-affirmed? an exploratory study on how developers document their refactoring activities in commit messages." Proceedings of the 2019 IEEE/ACM 3rd International Workshop on Refactoring (IWoR). Ed. IEEE. Toronto, Canada: IEEE, 2019. Web.
Alrubaye, Hussein, Ali Ouni, and Mohamed Wiem Mkaouer,. "On the use of information retrieval to automate the detection of third-party java library migration at the method level." Proceedings of the 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC). Ed. IEEE. Toronto, Canada: IEEE, 2019. Web.
Safdari, Nasir, et al. "Learning to rank faulty source files for dependent bug reports." Proceedings of the Big Data: Learning, Analytics, and Applications. Ed. ACM. celvien, Ohio: ACM, 2019. Web.
Gharbi,, Sirine, et al. "On the classification of software change messages using multi-label active learning." Proceedings of the Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing. Ed. ACM. Celvin, Ohaio: ACM, 2019. Web.
D, Newman, Christian, et al. "A Study on Developer Perception of Transformation Languages for Refactoring." Proceedings of the 2nd International Workshop on Refactoring. Ed. ACM. France, Montpellier: ACM, 2018. Web.
Newman, Peruma, Anthony, Mohamed Wiem Mkaouer, Michael J. Decker, and Christian D. "An Empirical Investigation of How and Why Developers Rename Identifiers." Proceedings of the 2nd International Workshop on Refactoring. Ed. ACM. France, Montpellier: ACM, 2018. Web.
Alrubaye, Hussein and Mohamed Wiem Mkaouer. "Automating the Detection of Third-party Java Library Migration at the Function Level." Proceedings of the Alrubaye, Hussein, and Mohamed Wiem Mkaouer. \"Automating the detection of third-party Java library migration at the function level.\" Proceedings of the 28th Annual International Conference on Computer Science and Software Engineering. Ed. IBM Corp. Toronto, Ontario: n.p., 2018. Web.
Chester, Piper, et al. "M-perm: A Lightweight Detector for Android Permission Gaps." Proceedings of the International Conference on Mobile Software Engineering and Systems. Ed. ACM/IEEE. Buenos Aires, BA: ACM/IEEE, 2017. Web.
Krutz, Daniel E, et al. "Who Added that Permission to My App? An Analysis of Developer Permission Changes in Open Source Android Apps." Proceedings of the nternational Conference on Mobile Software Engineering and Systems. Ed. ACM/IEEE. Buenos Aires, BA: ACM/IEEE, 2017. Web.
Dennis, Colton, Daniel E. Krutz, and Mohamed Wiem Mkaouer. "P-Lint: A Permission Smell Detector for Android Applications." Proceedings of the nternational Conference on Mobile Software Engineering and Systems. Ed. ACM/IEEE. Buenos Aires, Buenos Aires: ACM/IEEE, 2017. Web.
McAfee, Patrick, Mohamed Wiem Mkaouer, and Daniel E Krutz. "CATE: Concolic Android Testing Using Java Pathfinder for Android Applications." Proceedings of the nternational Conference on Mobile Software Engineering and Systems. Ed. ACM/IEEE. Buenos Aires, BA: ACM/IEEE, 2017. Web.
Shoenberger, Ian, Mohamed Wiem Mkaouer, and Marouane Kessentini. "On the Use of Smelly Examples to Detect Code Smells in JavaScript." Proceedings of the European Conference on the Applications of Evolutionary Computation. Ed. ACM. Amsterdam, ND: ACM, 2017. Web.
Almhana, Rafi, et al. "Recommending Relevant Classes for Bug Reports using Multi-objective Search." Proceedings of the International Conference on Automated Software Engineering. Ed. IEEE and ACM. New York City, NY: n.p., 2016. Web.
Mkaouer, Mohamed Wiem. "Interactive Code Smells Detection: An Initial Investigation." Proceedings of the International Symposium on Search Based Software Engineering. Ed. Sarro, Federica and Deb, Kalyanmoy. Raleigh, NC: Springer International Publishing, 2016. Web.
Mkaouer, Mohamed Wiem, et al. "High Dimensional Search-based Software Engineering: Finding Tradeoffs Among 15 Objectives for Automating Software Refactoring using NSGA-III." Proceedings of the Conference on Genetic and Evolutionary Computation. Ed. ACM. Vancouver, BC: ACM, 2014. Web.
Mkaouer, Mohamed Wiem, et al. "Software Refactoring Under Uncertainty: A Robust Multi-Objective Approach." Proceedings of the Conference on Genetic and Evolutionary Computation. Ed. ACM. Vancouver, BC: ACM, 2014. Web.
Mkaouer, Mohamed Wiem, et al. "Recommendation System for Software Refactoring Using Innovization and Interactive Dynamic Optimization." Proceedings of the ACM/IEEE International Conference on Automated Software Engineering. Ed. ACM/IEEE. Vasteras, VA: ACM/IEEE, 2014. Web.
Published Game, Application or Software
Kessentini, Marouane, Mohamed Wiem Mkaouer, and Vahid Alizadeh,. Interactive And Dynamic Search Based Approach To Software Refactoring Recommendations. Software. ACM. 2019.

Currently Teaching

DSCI-644
3 Credits
This course focuses on the software engineering challenges of building scalable and highly available big data software systems. Software design and development methodologies and available technologies addressing the major software aspects of a big data system including software architectures, application design patterns, different types of data models and data management, and deployment architectures will be covered in this course.
SWEN-599
1 - 3 Credits
The student will work independently under the supervision of a faculty adviser on a topic not covered in other courses (proposal signed by a faculty member)
SWEN-777
3 Credits
This course explores the concepts of process and product quality assurance and introduces approaches and support tools used to extract the information needed to assess and evaluate the quality of existing software systems. Major maintenance activities are detailed including unit and regression testing, test case generation, software refactoring, API migrations, bug localization and triage, and predicting technical debt. Students will participate in an active learning approach by exercising and practicing code reviews, software testing tools, and quality frameworks.
SWEN-780
3 - 6 Credits
This course provides the student with an opportunity to explore a project-based research experience that advances knowledge in that area. The student selects a research problem, conducts background research, develops the system, analyses the results, and builds a professional document and presentation that disseminates the project. The report must include an in-depth research report on a topic selected by the student and in agreement with the student's adviser. The report must be structured as a conference paper, and must be submitted to a conference selected by the student and his/her adviser.
SWEN-781
0 Credits
This course provides the student with an opportunity to complete their capstone project, if extra time if needed after enrollment in SWEN-790. The student continues to work closely with his/her adviser.
SWEN-790
6 Credits
This course provides the student with an opportunity to execute a thesis project, analyze and document the project in thesis document form. An in-depth study of a software engineering topic will be research focused, having built upon the thesis proposal developed prior to this course. The student is advised by their primary faculty adviser and committee. The thesis and thesis defense is presented for approval by the thesis adviser and committee.
SWEN-791
0 Credits
This course provides the student with an opportunity to complete their thesis project once having enrolled in both thesis courses (SWEN-794, SWEN-795) if extra time is needed. The student continues to work closely with his/her adviser and thesis committee.
SWEN-799
3 - 6 Credits
This course provides the graduate student an opportunity to explore an aspect of software engineering in depth, under the direction of an adviser. The student selects a topic, conducts background research, develops the system, analyses results, and disseminates the project work. The report explains the topic/problem, the student's approach and the results. (Completion of 9 semester hours is needed for enrollment)