Academic Positions

  • Present 2014

    Teaching Asssistant

    University of Montreal, Canada

Education & Training

  • Ph.D. 2018

    Ph.D. Computer Science

    University of Montreal, Canada

  • M.Sc2013

    Master of Artificial Intelligence

    University of Tunis (Tunisia)

  • B.Sc.2011

    B.Sc. in Computer Science

    University of Tunis (Tunisia)

Honors, Awards and Grants

  • 2014
    Best paper (Journal First) from the top SE journal: IEEE Transactions on Software Engineering (2014).
     
  • 2014-2018
    Scholarships for Excellence from the Univeristy of Montreal during every year of my PhD studies
     
  • 2013-2017
    Scholarship for Excellence from the Tunisia government for 4 years to continue my PhD studies in Canada
     
  • 2011 - 2013
    Regional Award from the governor of Tunis based on my MSc GPA
    Only one student selected from each school in the region of Tunis
  • 2009-2011
    Regional Award from the governor of Tunis based on my BSc GPA
    Only one student selected from each school in the region of Tunis

Research Projects

  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

  • Metamodel Co-Evolution with Related Model-Driven Engineering Artifacts: A Multi-Objective Search Framework

    See details..

    In this project, we developed a generic framework that co-evolves different MDE artifacts with metamodels. Although we illustrate its use with the co-evolution of models, transformation rules and OCL constraints, MDE community can use the framework, with a minimum of effort, to co-evolve other artifacts such as test cases.

    From another perspective, our work explores two visions on how to support the designers in the co-evolution tasks: automated recommendation vs interactive co-evolution. The first one is the agile, on-the-fly, automated-recommendation strategy of co-evolutions. Unlike existing work which uses predefined strategies to co-evolve artifacts depending on the metamodel changes, we propose an approach that builds co-evolutions according to some objectives regardless of the metamodel changes. The second vision that we explore in this work is the integration of user feedback to solve artifacts’ co-evolution by deciding which solution to consider, and potentially, which additional changes to apply, modify or reject. Both visions bring novel representation of the co-evolution problem and its resolution. We believe that MDE research teams with build on and improve our contributions.

    Finally, our work broadens the nomenclature of MDE automation problems that can be modeled as optimization problems and solved using search-based algorithms and techniques.

     

     

  • A Cooperative and Competitive Search-Based Software Engineering Approach for Code-Smells Detection

    See details..

    Our project is part of the search-based software engineering (SBSE) contributions. SBSE uses a search-based approach to solve optimization problems in software engineering. Once a software engineering task is framed as a search problem, by de fining it in terms of solution representation, fittness function and solution change operators, there are many search algorithms that can be applied to solve that problem. Based on the survey proposed by Mark Harman, our work represents the first work in the literature that use cooperative and competitive evolutionary algorithms to solve code-smells detection problem.

     

     

  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Filter by type:

Sort by year:

Automated Co-Evolution of Meta-models and Transformation Rules: A Search-Based Approach

Wael Kessentini, Houari Sahraoui, Manuel Wimmer
Conference Papers 10th Symposium on Search-Based Software Engineering, SSBSE 2018.

Abstract

Metamodels frequently change over time by adding new concepts or changing existing ones to keep track with the evolving problem domain they aim to capture. This evolution process impacts several depending artifacts such as model instances, constraints, as well as transformation rules. As a consequence, these artifacts have to be co-evolved to ensure their conformance with new metamodel versions. While several studies addressed the problem of metamodel/-model co-evolution, the co-evolution of metamodels and transformation rules has been less studied. Currently, programmers have to manually change model transformations to make them consistent with the new metamodel versions which require the detection of which transformations to modify and how to properly change them. In this paper, we propose a novel search-based approach to recommend transformation rule changes to make transformations coherent with the new metamodel versions by finding a trade-off between maximizing the coverage of metamodel changes and minimizing the number of static errors in the transformation and the number of applied changes to the transformation. We implemented our approach for the ATLAS Transformation Language (ATL) and validated the proposed approach on four co-evolution case studies. We demonstrate the outperformance of our approach by comparing the quality of the automatically generated co-evolution solutions by NSGA-II with manually revised transformations, one mono-objective algorithm, and random search..

Automated Metamodel/Model Co-Evolution: A Search-Based Approach

Wael Kessentini, Houari Sahraoui, Manuel Wimmer
Journal Paper Information and Software Technology 2018
image

Metamodels evolve over time to accommodate new features, improve existing designs, and fix errors identified in previous releases. One of the obstacles that may limit the adaptation of new metamodels by developers is the extensive manual changes that have be applied to migrate existing models. Recent studies addressed the problem of automating the metamodel/model co-evolution based on manually defined migration rules. The definition of these rules requires the list of changes at the metamodel level which are difficult to fully identify. Furthermore, different possible alternatives may be available to translate a metamodel change to a model change. Thus, it is hard to generalize these co-evolution rules.

We propose an alternative automated approach for the metamodel/-model co-evolution. The proposed approach refines an initial model instantiated from the previous metamodel version to make it as conformant as possible to the new metamodel version by finding the best compromise between three objectives, namely minimizing (i) the non-conformities with new metamodel version, (ii) the changes to existing models, and (iii) the textual and structural dissimilarities between the initial and revised models.

We formulated the metamodel/model co-evolution as a multi-objective optimization problem to handle the different conflicting objectives using the Nondominated Sorting Genetic Algorithm II (NSGA-II) and the Multi-Objective Particle Swarm Optimization (MOPSO).

A Cooperative Parallel Search-Based Software Engineering Approach for Code-Smells Detection

Wael Kessentini, Marouane Kessentini, Houari Sahraoui, Slim Bechikh, Ali Ouni
Journal Paper IEEE Transactions on Software Engineering (TSE), Volume 40(Issue 9): 841-861 (2014).

Abstract

We propose in this paper to consider code-smells detection as a distributed optimization problem. The idea is that different methods are combined in parallel during the optimization process to find a consensus regarding the detection of code-smells. To this end, we used Parallel Evolutionary algorithms (P-EA) where many evolutionary algorithms with different adaptations (fitness functions, solution representations, and change operators) are executed, in a parallel cooperative manner, to solve a common goal which is the detection of code-smells. An empirical evaluation to compare the implementation of our cooperative P-EA approach with random search, two single population-based approaches and two code-smells detection techniques that are not based on meta-heuristics search. The statistical analysis of the obtained results provides evidence to support the claim that cooperative P-EA is more efficient and effective than state of the art detection approaches based on a benchmark of nine large open source systems where more than 85 percent of precision and recall scores are obtained on a variety of eight different types of code-smells.

Integrating the Designer in-the-loop for Metamodel/Model Co-Evolution via Interactive Computational Search

Wael Kessentini, Manuel Wimmer, Houari Sahraoui
ACM/IEEE 21th International Conference on Model Driven Engineering Languages and Systems, MODELS 2018
Conference Papers

Abstract

Metamodels evolve even more frequently than programming languages. This evolution process may result in a large number of instance models that are no longer conforming to the revised metamodel. On the one hand, the manual adaptation of models after the metamodels’ evolution can be tedious, error-prone, and timeconsuming. On the other hand, the automated co-evolution of metamodels/models is challenging especially when new semantics is introduced to the metamodels. In this paper, we propose an interactive multi-objective approach that dynamically adapts and interactively suggests edit operations to developers and takes their feedback into consideration. Our approach uses NSGA-II to find a set of good edit operation sequences that minimizes the number of conformance errors, maximizes the similarity with the initial model(reduce the loss of information) and minimizes the number of proposed edit operations. The designer can approve, modify, or reject each of the recommended edit operations, and this feedback is then used to update the proposed rankings of recommended edit operations. We evaluated our approach on a set of metamodel/model co-evolution case studies and compared it to fully automated coevolution techniques.

Automated Metamodel/Model Co-evolution Using a Multi-objective Optimization Approach

Wael Kessentini, Houari Sahraoui, Manuel Wimmer
Conference Papers 12th IEEE European Conference on Modelling Foundations and Applications, ECMFA2016

Abstract

We propose a generic automated approach for the metamodel/model co-evolution. The proposed technique refines an initial model to make it as conformant as possible to the new metamodel version by finding the best compromise between three objectives, namely minimizing (i) the non-conformities with new metamodel version, (ii) the changes to existing models, and (iii) the loss of information. Consequently, we view the co-evolution as a multi-objective optimization problem, and solve it using the NSGA-II algorithm. We successfully validated our approach on the evolution of the well-known UML state machine metamodel. The results confirm the effectiveness of our approach with average precision and recall respectively higher than 87% and 89%..

Heuristic-Based Recommendation for Metamodel - OCL Coevolution.

Edouard Batot, Wael Kessentini, Houari Sahraoui, Michalis Famelis
Conference Paper ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems, MODELS 2017

Abstract

We propose a novel approach for solving the problem of co-evolution between metamodels and OCL constraints. Unlike existing solutions, our approach does not rely on predefined update rules and explicit tracking of high level changes to the metamodel. Rather, we pose it as a multi-objective optimization problem, exploring the space of possible OCL modifications to identify solutions that (a) do not violate the structure of the new version of the metamodel, (b) minimize changes to existing constraints, and (c) minimize loss of information. Finally, we recommend an appropriate subset of solutions to the user. We evaluate our approach on three cases of metamodel and OCL co-evolution. The results show that we recommend accurate solutions for updating OCL constraints, even for complex evolution changes.

Competitive Coevolutionary Code-Smells Detection

Mohamed Boussaa, Wael Kessentini, Marouane Kessentini, Slim Bechikh, Soukeina Ben Chikha
Conference Paper 5th IEEE International Symposium on Search-based Software Engineering (SSBSE) SSBSE 2013

Abstract

Software bad-smells, also called design anomalies, refer to design situations that may adversely affect the maintenance of software. Bad-smells are unlikely to cause failures directly, but may do it indirectly. In general, they make a system difficult to change, which may in turn introduce bugs. Although these bad practices are sometimes unavoidable, they should be in general fixed by the development teams and removed from their code base as early as possible. In this paper, we propose, for the first time, the use of competitive coevolutionary search to the code-smells detection problem. We believe that such approach to code-smells detection is attractive because it allows combining the generation of code-smell examples with the production of detection rules based on quality metrics. The main idea is to evolve two populations simutaneously where the first one generates a set of detection rules (combination of quality metrics) that maximizes the coverage of a base of codesmell examples and the second one maximizes the number of generated “artificial” code-smells that are not covered by solutions (detection rules) of the first population. The statistical analysis of the obtained results shows that our proposed approach is promising when compared to two single population-based metaheuristics on a variety of benchmarks.

Design Defects Detection and Correction by Example

Marouane Kessentini, Wael Kessentini, Houari Sahraoui, Mounir Boukadoum, Ali Ouni
Conference Paper 19th IEEE International Conference on Program Comprehension ICPC 2011

Abstract

Detecting and fixing defects make programs easier to understand by developers. We propose an automated approach for the detection and correction of various types of design defects in source code. Our approach allows to automatically find detection rules, thus relieving the designer from doing so manually. Rules are defined as combinations of metrics/thresholds that better conform to known instances of design defects (defect examples). The correction solutions, a combination of refactoring operations, should minimize, as much as possible, the number of defects detected using the detection rules. In our setting, we use genetic programming for rule extraction. For the correction step, we use genetic algorithm. We evaluate our approach by finding and fixing potential defects in four open-source systems. For all these systems, we found, in average, more than 80% of known defects, a better result when compared to a state-of-the-art approach, where the detection rules are manually or semiautomatically specified. The proposed corrections fix, in average, more than 78%of detected defects.

Teaching Assistant

  • 2018 2016

    IFT 2255 - Software Design and Tools/Software Engineering II

  • Present 2014

    IFT 2720 - Introduction to Multimedia

  • 2018 2015

    IFT 1800 - Introduction to Computer Science

  • 2018 2017

    IFT 1810 – Introduction to programming in C and Java

  • Fall 2018

    IFT 1969 - Advanced programming in C

  • Fall 2016

    IFT 1935 -Computer Graphics

  • Fall 2014

    IFT 3911 – Software Analysis and Design