Mohamed Wiem Mkaouer Headshot

Mohamed Wiem Mkaouer

Assistant Professor
Department of Software Engineering
Golisano College of Computing and Information Sciences

585-475-4616
Office Location

Mohamed Wiem Mkaouer

Assistant Professor
Department of Software Engineering
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.

Currently Teaching

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-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)
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-352
3 Credits
Concepts and techniques for testing soft ware and assuring its quality. Topics cover software testing at the unit and system levels; static vs. dynamic analysis; functional testing; inspections; and reliability assessment.
SWEN-561
3 Credits
The first course in a two-course, senior-level, capstone project experience. Students work as part of a team to develop solutions to problems posed by either internal or external customers. Problems may require considerable software development or evolution and maintenance of existing software products. Culminates with the completion and presentation of the first major increment of the project solution. Students must have co-op completed to enroll.
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-562
3 Credits
This is the second course in a two-course, senior-level capstone project experience. Students submit one or more additional increments that build upon the solution submitted at the end of the first course. Students make major presentations for both customers as well as technical-oriented audiences, turn over a complete portfolio of project-related artifacts and offer an evaluation of the project and team experience.
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-749
3 Credits
This course explores the concepts of software evolution and reengineering and introduces approaches and support tools used to extract the information needed to assess existing software systems. Major maintenance activities are presented including estimating maintenance costs, managing change and predicting maintainability with software quality metrics. Organizational issues relative to product maintenance are discussed. Principles of software reuse and reverse engineering techniques are demonstrated through the use of class activities, team projects and case studies.
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.

Select Scholarship

Published Conference Proceedings
D, Newman, Christian, et al. "A Study on Developer Perception of Transformation Languages for Refactoring." Proceedings of the 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 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.
Journal Paper
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.