Mehdi Amoui
University of Waterloo
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Mehdi Amoui.
Journal of Systems and Software | 2012
Mehdi Amoui; Mahdi Derakhshanmanesh; Jürgen Ebert; Ladan Tahvildari
In this article, we present a generic model-centric approach for realizing fine-grained dynamic adaptation in software systems by managing and interpreting graph-based models of software at runtime. We implemented this approach as the Graph-based Runtime Adaptation Framework (GRAF), which is particularly tailored to facilitate and simplify the process of evolving and adapting current software towards runtime adaptivity. As a proof of concept, we present case study results that show how to achieve runtime adaptivity with GRAF and sketch the frameworks capabilities for facilitating the evolution of real-world applications towards self-adaptive software. The case studies also provide some details of the GRAF implementation and examine the usability and performance of the approach.
software engineering for adaptive and self managing systems | 2011
Mahdi Derakhshanmanesh; Mehdi Amoui; Greg O'Grady; Jürgen Ebert; Ladan Tahvildari
One approach for achieving runtime adaptability in software is to use application frameworks that are tailored for the development of self-adaptive systems. In this paper, we present the Graph-based Runtime Adaptation Framework (GRAF), which enables adaptivity by creating, managing, and interpreting graph-based models of software at runtime. Having a generic graph representation in our approach allows for flexible adaptation via query and transformation operations. The framework is especially suited for the migration of legacy applications towards adaptive software and attempts to reduce necessary changes to the original software. As a proof of concept, we conduct a comprehensive case study of migrating the legacy game Jake2 to achieve runtime adaptivity using GRAF.
International Journal of Software Engineering and Knowledge Engineering | 2009
Mehdi Amoui; Mazeiar Salehie; Ladan Tahvildari
Predicting changes in software entities (e.g. source files) that are more likely to change can help in the efficient allocation of the project resources. A powerful change prediction tool can impro...
conference on software maintenance and reengineering | 2011
Mehdi Amoui; Mahdi Derakhshanmanesh; Jürgen Ebert; Ladan Tahvildari
Runtime adaptivity is a promising direction towards achieving adaptive behavior for software systems that operate within highly dynamic and non-deterministic environments. Model-centric approaches have proven to be able to successfully address various aspects of runtime adaptivity. In this paper, we propose a target architecture for self-adaptive software systems and show how it facilitates adaptation by interpreting models at runtime. Our approach supports adaptivity using models, which are causally connected to the software application. These models can be queried and transformed dynamically in reaction to changes in the software systems operating environment. We demonstrate how to implement an infrastructure to support the target architecture, and how to prepare and integrate non-adaptive software to comply with this architecture.
mining software repositories | 2013
Mehdi Amoui; Nilam Kaushik; Abraham Al-Dabbagh; Ladan Tahvildari; Shimin Li; Weining Liu
Duplicate defects put extra overheads on software organizations, as the cost and effort of managing duplicate defects are mainly redundant. Due to the use of natural language and various ways to describe a defect, it is usually hard to investigate duplicate defects automatically. This problem is more severe in large software organizations with huge defect repositories and massive number of defect reporters. Ideally, an efficient tool should prevent duplicate reports from reaching developers by automatically detecting and/or filtering duplicates. It also should be able to offer defect triagers a list of top-N similar bug reports and allow them to compare the similarity of incoming bug reports with the suggested duplicates. This demand has motivated us to design and develop a search-based duplicate bug detection framework at BlackBerry. The approach follows a generalized process model to evaluate and tune the performance of the system in a systematic way. We have applied the framework on software projects at BlackBerry, in addition to the Mozilla defect repository. The experimental results exhibit the performance of the developed framework and highlight the high impact of parameter tuning on its performance.
high assurance systems engineering | 2015
Mahsa Emami-Taba; Mehdi Amoui; Ladan Tahvildari
Targeted and destructive nature of strategies used by attackers to break down the system require mitigation approaches with dynamic awareness. In the domain of adaptive software security, the adaptation manager of a self-protecting software is responsible for selecting countermeasures to prevent or mitigate attacks immediately. Making a right decision in each and every situation is one of the most challenging aspects of engineering self-protecting software systems. Inspired by the game theory, in this research work, we model the interactions between the attacker and the adaptation manager as a two-player zero-sum Markov game. Using this game-theoretic approach, the adaptation manager can refine its strategies in dynamic attack scenarios by utilizing what has learned from the systems and adversarys actions. We also present how this approach can be fitted to the well-known MAPE-K architecture model. As a proof of concept, this research conducts a study on a case of dynamic application-layer denial of service attacks. The simulation results demonstrate how our approach performs while encountering different attack strategies.
working conference on reverse engineering | 2009
Mehdi Amoui
The increasing demand for autonomic computing calls for modernizing existing software into self-adaptive ones. However, evolving legacy software to cover adaptive behaviors is a risky and error-prone task due to the extensive changes it requires in the majority cases. The focus of this research is to propose a cost-efficient systematic approach for evolving software according to adaptation requirements. The novelty of this research is a new evolution process to assist with adding adaptive features to an existing software. Such a process includes unique properties and novel concepts of self-adaptive software, namely: a co-evolutionary model of self-adaptive software, and primitive effecting operations. Our proposed approach formulates the problem of defining software specifications as an optimization problem of finding a mapping from goal/action models to a set of primitive operations that can be added to the original software by a set of transformations.
international conference on software testing verification and validation | 2013
Nilam Kaushik; Mehdi Amoui; Ladan Tahvildari; Weining Liu; Shimin Li
Defect prioritization is a decision making process wherein stakeholders determine the temporal order of open defects to be fixed. It is critical to the software development lifecycle as the decisions made during this process directly affect release planning, resource management, and maintenance costs. In fact, defect prioritization is complex as many factors need to be taken into consideration and the decisions made can be subjective or incorporate inherent knowledge and intuition of decision makers. We believe that managing the complexities of the decision making process can provide valuable support and help in uncovering any inconsistencies in the interpretation of criteria to prioritize defects. In this paper, we explore the defect triaging process in Research In Motion to gain a better understanding of the shortcomings and challenges of the current practices. Based on our findings, we sketch some research directions to improve industrial software defect prioritization.
international conference on program comprehension | 2010
Mehdi Amoui; Sen Li; Edson A. Oliveira; Ladan Tahvildari
To modernize legacy software into adaptable software, a program understanding procedure is needed to study software for identifying the mechanisms that support adaptability. Though the procedure can benefit from modeling techniques, current software meta-models do not fully support particular aspects of software adaptability. The goal of this research is to develop a meta-model, which facilitate comprehending applications for adaptability by annotating a set of pre-determined adaptability factors in software models. To this end, we investigate application-level sensing and effecting mechanisms, identify the core adaptability factors, and propose a meta-model for adaptability.
Archive | 2006
Mehdi Amoui; Siavash Mirarab; Sepand Ansari; Caro Lucas