Adnane Ghannem - Academia.edu (original) (raw)

Papers by Adnane Ghannem

Research paper thumbnail of A context model development process for smart city operations

2015 IEEE International Conference on Service Operations And Logistics, And Informatics (SOLI), 2015

Systems enabling smart city operations are highly adaptive complex systems that pose great challe... more Systems enabling smart city operations are highly adaptive complex systems that pose great challenges in their development and operation. Current user-driven techniques for system domain modeling and requirements engineering are not adequate for supporting the development of such systems. In this paper, we propose a development process and an environment-driven modeling approach for the Requirement Engineering Context Awareness methodology to be used for smart city applications. To this end, we propose the use of ontologies to build the environment context model. We show that the environment dimension is the most important dimension of context with the highest impact of changes in a dynamic context. We illustrate our approach by presenting an ontology-based context model of I-Parking. We present dynamic models of typical scenarios of interactions. We propose our approach as an important step in developing highly adaptive context-aware systems for smart city operations where uncertainty and changing conditions in the environment need to be carefully modeled and addressed.

Research paper thumbnail of Detecting model refactoring opportunities using heuristic search

Model-driven engineering (MDE) is an approach to software development where the primary focus is ... more Model-driven engineering (MDE) is an approach to software development where the primary focus is on models. To improve their quality, models continually evolve due, for example, to the detection of "bad design practices", called design defects. Presence of these defects in a model suggests refactoring opportunities. Most of the research work that tackle the problem of detecting and correcting defects, concentrate on source code. However, detecting defects at the model level and during the design process can be of great value to designers in particular within an MDE process. In this paper, we propose an automated approach to detect model refactoring opportunities related to various types of design defects. Using Genetic Programming, our approach allows automatic generation of rules to detect defects, thus relieving the designer from a fastidious manual rule definition task. We evaluate our approach by finding three potential design defect types in two large class diagrams. ...

Research paper thumbnail of Importance of CapabilityDriven Requirements for Smart City Operations

Qatar Foundation Annual Research Conference Proceedings Volume 2018 Issue 3

Capability oriented requirements engineering is an emerging research area where designers are fac... more Capability oriented requirements engineering is an emerging research area where designers are faced with the challenge of analyzing changes in the business domain, capturing user requirements, and developing adequate IT solutions taking into account these changes and answering user needs. In this context, researching the interplay between design-time and run-time requirements with a focus on adaptability is of great importance. Approaches to adaptation in the requirements engineering area consider issues underpinning the awareness of requirements and the evolution of requirements. We are focusing on researching the influence of capability-driven requirements on architectures for adaptable systems to be utilized in smart city operations. We investigate requirements specification, algorithms, and prototypes for smart city operations with a focus on intelligent management of transportation and on validating the proposed approaches. In this framework, we conducted a systematic literatur...

Research paper thumbnail of A systematic classification of requirements engineering approaches for adaptive systems

Proceedings of the Second International Conference on Internet of things, Data and Cloud Computing, 2017

Requirements Engineering for Adaptive Systems (REAS) is a wide-open research area that aims to im... more Requirements Engineering for Adaptive Systems (REAS) is a wide-open research area that aims to improve the adaptation of the systems according to the requirements known (adaptability) or newly detected (adaptivity). While existing work proposed methodologies to deal with the adaptivity problem, few of them have classified and evaluated these proposals in order to give insight for system development in application domains such as Smart City Operations (SCO's). In this paper, we investigate the modeling methodologies, Requirements Engineering (RE) activities, and application domains based on relevant papers that tackled REAS in the literature. To this end, we conduct a systematic literature review by searching relevant papers and extracting data in order to answer specific research questions. We provide an updated review of the state of the art, supporting researchers to better understand trends in REAS in general and SCO's in particular.

Research paper thumbnail of Test des applications WEB : modélisation et génération de séquences de test basées sur le contrôle

ABSTRACT Modélisation et génération de séquences de test basées sur le contrôle. Le Web a évolué ... more ABSTRACT Modélisation et génération de séquences de test basées sur le contrôle. Le Web a évolué très rapidement et la technologie Internet a été adoptée par des utilisateurs appartenant à des domaines de plus en plus diversifiés. Comparées aux applications traditionnelles, les Applications Web (AW) présentent plusieurs caractéristiques propres. Le besoin de mettre au point des principes et méthodes spécifiques au développement de ce type d'applications, d'une manière générale, et à l'assurance de leur qualité, en particulier, se fait de plus en plus ressentir dans l'industrie du logiciel. L'évaluation de la qualité de ce type d'applications ainsi que leur test sont des sujets très importants qui suscitent de plus en plus l'intérêt des chercheurs. C'est dans ce contexte, dans un objectif d'assurance qualité, que s'insère notre travail. La méthodologie de test (génération et vérification) présentée est basée sur les interactions dynamiques entre les différents composants et tient compte de plusieurs aspects reliés à leur contrôle. Lors de la modélisation, l'AW est subdivisée en quatre niveaux : le niveau application, le niveau module, le niveau page et finalement le niveau script. Ces niveaux suivent un classement hiérarchique permettant ainsi la construction d'un graphe de contrôle complet. Le concept de contrôle s'avère, grâce à notre approche, un moyen efficace pour générer tous les chemins (séquences de test) réels dans une AW. Les séquences générées correspondent, en fait, aux différents scénarios, spécifiés durant les phases d'analyse et de conception. Elles permettent de vérifier, pour chaque scénario, la conformité de son implémentation à sa spécification. Nous présentons avec cette approche, le prototype que nous avons développé et qui permet la génération de l'arbre complet des chemins à partir duquel, nous générons d'une façon automatique tous les chemins (séquences de test) qui peuvent exister lors d'une navigation dans une AW. Adnane Ghannem, Linda Badri et Mourad Badri Département de mathématiques et d'informatique {Ghannem, Linda_Badri, Mourad_Badri}@uqtr.ca Avril 2005 Affiche scientifique, Édition 2005 Département de mathématiques et informatique Les applications Web (AW's) sont devenues des programmes complexes, sophistiquées et basées sur les nouvelles technologies du monde Web. Bien que puissantes, ces technologies apportent de nouveaux défis aux développeurs et aux testeurs. Les exigences du marché, la compétition, et les transactions monétaires via Internet font surgir l'épineux problème de la fiabilité et de la sécurité de ces applications. Les AW's ont été intégrées dans des domaines de plus en plus diversifiés (commerce électronique, éducation, loisir, etc.) [GHA 02]. De plus, force est de constater que ces applications évoluent très rapidement. Applications Client-Serveur Traditionnelles Applications Web Architecture Les rôles respectifs des clients et des serveurs ainsi que leurs interactions sont prédéfinis (statiques) Les programmes clients et leurs contenus peuvent être générés dynamiquement. Flux de contrôle Gérés par le programme L'utilisateur peut interrompre ces flux sans même avertir le contrôleur de l'application Maintenance Moins prioritaire Prioritaire, fréquente et doit être efficace. => Importance de proposer de nouvelles techniques de test. Les AW's possèdent leurs propres caractéristiques qui les différencient des applications traditionnelles. Dans un cadre comparatif, Ye Wu et al. [YEW 02] ont présenté une brève comparaison entre les applications traditionnelles et les AW's mettant en évidence les caractéristiques les plus importantes telles que l'architecture, les facteurs de qualité, les aspects importants reliés au contrôle ainsi que la maintenance. L'approche proposée est caractérisée par la génération de cas de test basée sur le contrôle. Dans ce contexte, l'AW est subdivisée en quatre niveaux (Tableau 2). Il s'agit, ensuite, d'associer un graphe de contrôle à chaque niveau . Niveaux Composants Architectural Application Module Page Web Script Navigateur (client) / Serveur / BD Pages p 1 , p 2 , p 3 , …p j Scripts, HTML Graphe de contrôle complet intégrant toutes les structures de contrôle. Le processus de test des applications Web (AW's) que nous proposons est illustré par la figure (1). Il est essentiellement organisé en deux étapes principales : 1-La génération de séquences de test: représente un affinement et une extension de la technique proposée dans [BAD 04]. Elle s'appuie sur une description formelle du comportement des composants incluant le concept de contrôle et de transfert de contrôle relatif aux interactions entre les différents composants. 2-La vérification lors de l'exécution: consiste à instrumenter le code pour supporter l'analyse dynamique ainsi que l'évaluation des couvertures de test (conformité aux…

Research paper thumbnail of Search-Based Requirements Traceability Recovery

Several software maintenance tasks, such as regression testing, require that the requirements tra... more Several software maintenance tasks, such as regression testing, require that the requirements traceability should be up-to-date. Generating requirements traceability consumes a lot of time and is error-prone. Currently most available tools do not offer the automated recovery of traceability links. In the approach presented in this paper, we formulate requirements traceability recovery as a search problem using Genetic Algorithms. Our approach takes as input the software system and a requirement set and produces a set of traces between the classes of the system and the requirements introduced in the input as output. A solution consists of assigning each requirement to one or many classes of the system that should maximize as much as possible the textual similarity between the description of the requirements and the name of code elements, API documentation, and comments. The validation results on three different open source projects show that our approach is effective in correctly gen...

Research paper thumbnail of Intelligent Parking Management by Means of Capability Oriented Requirements Engineering

Capability Oriented Requirements Engineering (CORE) is an emerging research area where designers ... more Capability Oriented Requirements Engineering (CORE) is an emerging research area where designers are faced with the challenge of analyzing changes in the business domain, capturing user requirements, and developing adequate IT solutions taking into consideration these changes and answering user needs. CORE aims at providing continuously a certain level of quality (business, service, security, etc.) in dynamically changing circumstances such as smart city operations. Intelligent management of transportation is a complex smart city operation, and hence, an optimal application domain for CORE. A specific application within the domain of intelligent management of transportation is the smart management of parking. In this paper, we propose dealing with the intelligent management of parking spaces by using CORE. In an I-Parking system that offers personalized advice to users, we deal with change and introduce smartness by means of “Goal Models”, “Informational Models”, “Capability Models”...

Research paper thumbnail of Example-based model refactoring using heuristic search

Software maintenance is considered the most expensive activity in software systems development: m... more Software maintenance is considered the most expensive activity in software systems development: more than 80% of the resources are devoted to it. During the maintenance activities, software models are very rarely taken into account. The evolution of these models and the transformations that manipulate them are at the heart of model-driven engineering (MDE). However, as the source code, the model changes and tends to become increasingly complex. These changes generally have a negative impact on the quality of models and they cause damage to the software. In this context, refactoring is the most used technique to maintain an adequate quality of these models. The refactoring process is usually done in two steps: the detection of elements of the model to correct (design defects), then the correction of these elements. In this thesis, we propose two main contributions related to detection and correction of defects in class diagrams. The first contribution aims to automate the design defe...

Research paper thumbnail of Requirements traceability recovery for the purpose of software reuse: an interactive genetic algorithm approach

Innovations in Systems and Software Engineering

Research paper thumbnail of Example-based model refactoring using multi-objective optimization

Research paper thumbnail of Search-based requirements traceability recovery: A multi-objective approach

Software systems nowadays are complex and difficult to maintain due to the necessity of continuou... more Software systems nowadays are complex and difficult to maintain due to the necessity of continuous change and adaptation. One of the challenges in software maintenance is keeping requirements traceability up to date automatically. The process of generating requirements traceability is time-consuming and error-prone. Currently, most available tools do not support the automated recovery of traceability links. In some situations, companies accumulate the history of changes from past maintenance experiences. In this paper, we consider requirements traceability recovery as a multi objective search problem in which we seek to assign each requirement to one or many software elements (code elements, API documentation, and comments) by taking into account the recency of change, the frequency of change, and the semantic similarity between the description of the requirement and the software element. We use the Non-dominated Sorting Genetic Algorithm (NSGA-II) to find the best compromise betwee...

Research paper thumbnail of Knowledge Incorporation in Requirements Traceability Recovery

Research paper thumbnail of Model refactoring by example: A multi-objective search based software engineering approach

Journal of Software: Evolution and Process

Declarative rules are frequently used in model refactoring in order to detect opportunities in th... more Declarative rules are frequently used in model refactoring in order to detect opportunities in the refactoring and to apply the appropriate ones. However, a high number of rules is required to obtain a complete specification of refactoring opportunities. In some situations, companies have accumulated examples of refactorings from past maintenance experiences. Based on these observations, we consider the model refactoring problem as multi objective problem by suggesting refactorings sequences that should maximize two objectives. The first objective is to maximize both structural and textual similarity between a given model (the model to be refactored) and a set of bad designed models in the base of examples (models that have undergone some refactorings). The second objective is to minimize the structural similarity between a given model and a set of well designed models in the base of examples (models that do not need any refactoring). To this end, we use the Non-dominated Sorting Genetic Algorithm (NSGA-II) to find a set of representative Pareto optimal solutions that present the best trade-off between structural and textual similarities of models. The validation results on eight real world models taken from open-source projects confirm the effectiveness of our approach with more than 80% of average correctness of our refactoring recommendations. In addition, our approach outperforms five other refactoring approaches.

Research paper thumbnail of MultiObjective SearchBased Requirements Traceability Recovery for Adaptive Systems

Qatar Foundation Annual Research Conference Proceedings Volume 2018 Issue 3

Complex adaptive systems exhibit emergent behavior. This type of behavior occurs in volatile envi... more Complex adaptive systems exhibit emergent behavior. This type of behavior occurs in volatile environments involving cyber-physical systems, such as those aimed at smart cities operations. Adaptive systems’ maintenance aims at improving their performance by dealing with the treatment of continuous and frequently changing requirements. Adaptive systems’ behavior requires therefore up-to-date requirements traceability. To this end, we need to understand the requirements and to localize the program parts that should be modified according to the description of the new requirements. This process is known as Requirements Traceability Recovery (RTR). The process of generating requirements traceability, when done by a human (e.g., system maintainer), is time consuming and error-prone. Currently, most of the approaches, in the literature, are time consuming and semi-automatic that always need the intervention of the user. In our work, we are specifically interested in following the link betwe...

Research paper thumbnail of Adaptive Tutoring System based on Fuzzy Logic

International Journal of Advanced Intelligence Paradigms

In recent years, education method has changed and has become very innovative and modern. In this ... more In recent years, education method has changed and has become very innovative and modern. In this way, online adaptive learning seems to be a revolutionary competitive method. The advancement of computer and networking technologies is the key to this whole change from the classic education to the modern online adaptive education. The majority of E-learning systems are based on Boolean logic. In fact, the system considers that the learner like or not a course characteristic but the user can prefer gradually this parameter (low, medium, high). To this end, the proposed approach exploits semantic relations between data elements and learners' preferences to determine adapted UI components appropriate to learners' characteristics based on fuzzy logic. The results of evaluation confirm the efficiency of our technique with an average of more than 77% of precision and recall.

Research paper thumbnail of L'analyse de logiciels, phylogénie et histoire

www-etud.iro.umontreal.ca

D'une part, les programmes industriels actuels nécessitent le développement de logiciels de ... more D'une part, les programmes industriels actuels nécessitent le développement de logiciels de plus en plus complexes et de très bonne qualité du point de vue de la maintenabilité et de la réutilisabilité. Dans l'industrie, le coût de la maintenance est estimé à 50% et 75% de son ...

Research paper thumbnail of An adaptive I-Parking application: An ontology-based approach

2016 Future Technologies Conference (FTC), 2016

Research paper thumbnail of Test des applications Web: Modélisation et génération des séquences de test basées sur le contrôle

Modélisation et génération de séquences de test basées sur le contrôle. Le Web a évolué très rapi... more Modélisation et génération de séquences de test basées sur le contrôle. Le Web a évolué très rapidement et la technologie Internet a été adoptée par des utilisateurs appartenant à des domaines de plus en plus diversifiés. Comparées aux applications traditionnelles, les Applications Web (AW) présentent plusieurs caractéristiques propres. Le besoin de mettre au point des principes et méthodes spécifiques au développement de ce type d'applications, d'une manière générale, et à l'assurance de leur qualité, en particulier, se fait de plus en plus ressentir dans l'industrie du logiciel. L'évaluation de la qualité de ce type d'applications ainsi que leur test sont des sujets très importants qui suscitent de plus en plus l'intérêt des chercheurs. C'est dans ce contexte, dans un objectif d'assurance qualité, que s'insère notre travail. La méthodologie de test (génération et vérification) présentée est basée sur les interactions dynamiques entre les dif...

Research paper thumbnail of Example-based Model Refactoring using Multi-Objective Optimization

Research paper thumbnail of A Tool Supporting Web-Based Applications Testing: A Control Flow Model Based Approach

The Web has evolved rapidly. Furthermore, Internet technology was adopted by users from diversifi... more The Web has evolved rapidly. Furthermore, Internet technology was adopted by users from diversified domains. Compared to traditional applications, Web-based applications present several specific characteristics. They evolve, in particular, rapidly. Testing activities constitute, in this context, an important issue in their quality assurance. We present, in this paper, a testing technique (generation and verification) for Web-based applications. It is based on dynamic interactions between their different components. The technique considers several aspects related to their control. The testing sequences generation technique is based on a tree, built by a static analysis of the source code, and representing the different control paths in the application. The generated sequences, in a compacted form, correspond to the potential navigation scenarios. They are used to verify the execution of each scenario. We also present the architecture and the components of the associated tool. The too...

Research paper thumbnail of A context model development process for smart city operations

2015 IEEE International Conference on Service Operations And Logistics, And Informatics (SOLI), 2015

Systems enabling smart city operations are highly adaptive complex systems that pose great challe... more Systems enabling smart city operations are highly adaptive complex systems that pose great challenges in their development and operation. Current user-driven techniques for system domain modeling and requirements engineering are not adequate for supporting the development of such systems. In this paper, we propose a development process and an environment-driven modeling approach for the Requirement Engineering Context Awareness methodology to be used for smart city applications. To this end, we propose the use of ontologies to build the environment context model. We show that the environment dimension is the most important dimension of context with the highest impact of changes in a dynamic context. We illustrate our approach by presenting an ontology-based context model of I-Parking. We present dynamic models of typical scenarios of interactions. We propose our approach as an important step in developing highly adaptive context-aware systems for smart city operations where uncertainty and changing conditions in the environment need to be carefully modeled and addressed.

Research paper thumbnail of Detecting model refactoring opportunities using heuristic search

Model-driven engineering (MDE) is an approach to software development where the primary focus is ... more Model-driven engineering (MDE) is an approach to software development where the primary focus is on models. To improve their quality, models continually evolve due, for example, to the detection of "bad design practices", called design defects. Presence of these defects in a model suggests refactoring opportunities. Most of the research work that tackle the problem of detecting and correcting defects, concentrate on source code. However, detecting defects at the model level and during the design process can be of great value to designers in particular within an MDE process. In this paper, we propose an automated approach to detect model refactoring opportunities related to various types of design defects. Using Genetic Programming, our approach allows automatic generation of rules to detect defects, thus relieving the designer from a fastidious manual rule definition task. We evaluate our approach by finding three potential design defect types in two large class diagrams. ...

Research paper thumbnail of Importance of CapabilityDriven Requirements for Smart City Operations

Qatar Foundation Annual Research Conference Proceedings Volume 2018 Issue 3

Capability oriented requirements engineering is an emerging research area where designers are fac... more Capability oriented requirements engineering is an emerging research area where designers are faced with the challenge of analyzing changes in the business domain, capturing user requirements, and developing adequate IT solutions taking into account these changes and answering user needs. In this context, researching the interplay between design-time and run-time requirements with a focus on adaptability is of great importance. Approaches to adaptation in the requirements engineering area consider issues underpinning the awareness of requirements and the evolution of requirements. We are focusing on researching the influence of capability-driven requirements on architectures for adaptable systems to be utilized in smart city operations. We investigate requirements specification, algorithms, and prototypes for smart city operations with a focus on intelligent management of transportation and on validating the proposed approaches. In this framework, we conducted a systematic literatur...

Research paper thumbnail of A systematic classification of requirements engineering approaches for adaptive systems

Proceedings of the Second International Conference on Internet of things, Data and Cloud Computing, 2017

Requirements Engineering for Adaptive Systems (REAS) is a wide-open research area that aims to im... more Requirements Engineering for Adaptive Systems (REAS) is a wide-open research area that aims to improve the adaptation of the systems according to the requirements known (adaptability) or newly detected (adaptivity). While existing work proposed methodologies to deal with the adaptivity problem, few of them have classified and evaluated these proposals in order to give insight for system development in application domains such as Smart City Operations (SCO's). In this paper, we investigate the modeling methodologies, Requirements Engineering (RE) activities, and application domains based on relevant papers that tackled REAS in the literature. To this end, we conduct a systematic literature review by searching relevant papers and extracting data in order to answer specific research questions. We provide an updated review of the state of the art, supporting researchers to better understand trends in REAS in general and SCO's in particular.

Research paper thumbnail of Test des applications WEB : modélisation et génération de séquences de test basées sur le contrôle

ABSTRACT Modélisation et génération de séquences de test basées sur le contrôle. Le Web a évolué ... more ABSTRACT Modélisation et génération de séquences de test basées sur le contrôle. Le Web a évolué très rapidement et la technologie Internet a été adoptée par des utilisateurs appartenant à des domaines de plus en plus diversifiés. Comparées aux applications traditionnelles, les Applications Web (AW) présentent plusieurs caractéristiques propres. Le besoin de mettre au point des principes et méthodes spécifiques au développement de ce type d'applications, d'une manière générale, et à l'assurance de leur qualité, en particulier, se fait de plus en plus ressentir dans l'industrie du logiciel. L'évaluation de la qualité de ce type d'applications ainsi que leur test sont des sujets très importants qui suscitent de plus en plus l'intérêt des chercheurs. C'est dans ce contexte, dans un objectif d'assurance qualité, que s'insère notre travail. La méthodologie de test (génération et vérification) présentée est basée sur les interactions dynamiques entre les différents composants et tient compte de plusieurs aspects reliés à leur contrôle. Lors de la modélisation, l'AW est subdivisée en quatre niveaux : le niveau application, le niveau module, le niveau page et finalement le niveau script. Ces niveaux suivent un classement hiérarchique permettant ainsi la construction d'un graphe de contrôle complet. Le concept de contrôle s'avère, grâce à notre approche, un moyen efficace pour générer tous les chemins (séquences de test) réels dans une AW. Les séquences générées correspondent, en fait, aux différents scénarios, spécifiés durant les phases d'analyse et de conception. Elles permettent de vérifier, pour chaque scénario, la conformité de son implémentation à sa spécification. Nous présentons avec cette approche, le prototype que nous avons développé et qui permet la génération de l'arbre complet des chemins à partir duquel, nous générons d'une façon automatique tous les chemins (séquences de test) qui peuvent exister lors d'une navigation dans une AW. Adnane Ghannem, Linda Badri et Mourad Badri Département de mathématiques et d'informatique {Ghannem, Linda_Badri, Mourad_Badri}@uqtr.ca Avril 2005 Affiche scientifique, Édition 2005 Département de mathématiques et informatique Les applications Web (AW's) sont devenues des programmes complexes, sophistiquées et basées sur les nouvelles technologies du monde Web. Bien que puissantes, ces technologies apportent de nouveaux défis aux développeurs et aux testeurs. Les exigences du marché, la compétition, et les transactions monétaires via Internet font surgir l'épineux problème de la fiabilité et de la sécurité de ces applications. Les AW's ont été intégrées dans des domaines de plus en plus diversifiés (commerce électronique, éducation, loisir, etc.) [GHA 02]. De plus, force est de constater que ces applications évoluent très rapidement. Applications Client-Serveur Traditionnelles Applications Web Architecture Les rôles respectifs des clients et des serveurs ainsi que leurs interactions sont prédéfinis (statiques) Les programmes clients et leurs contenus peuvent être générés dynamiquement. Flux de contrôle Gérés par le programme L'utilisateur peut interrompre ces flux sans même avertir le contrôleur de l'application Maintenance Moins prioritaire Prioritaire, fréquente et doit être efficace. => Importance de proposer de nouvelles techniques de test. Les AW's possèdent leurs propres caractéristiques qui les différencient des applications traditionnelles. Dans un cadre comparatif, Ye Wu et al. [YEW 02] ont présenté une brève comparaison entre les applications traditionnelles et les AW's mettant en évidence les caractéristiques les plus importantes telles que l'architecture, les facteurs de qualité, les aspects importants reliés au contrôle ainsi que la maintenance. L'approche proposée est caractérisée par la génération de cas de test basée sur le contrôle. Dans ce contexte, l'AW est subdivisée en quatre niveaux (Tableau 2). Il s'agit, ensuite, d'associer un graphe de contrôle à chaque niveau . Niveaux Composants Architectural Application Module Page Web Script Navigateur (client) / Serveur / BD Pages p 1 , p 2 , p 3 , …p j Scripts, HTML Graphe de contrôle complet intégrant toutes les structures de contrôle. Le processus de test des applications Web (AW's) que nous proposons est illustré par la figure (1). Il est essentiellement organisé en deux étapes principales : 1-La génération de séquences de test: représente un affinement et une extension de la technique proposée dans [BAD 04]. Elle s'appuie sur une description formelle du comportement des composants incluant le concept de contrôle et de transfert de contrôle relatif aux interactions entre les différents composants. 2-La vérification lors de l'exécution: consiste à instrumenter le code pour supporter l'analyse dynamique ainsi que l'évaluation des couvertures de test (conformité aux…

Research paper thumbnail of Search-Based Requirements Traceability Recovery

Several software maintenance tasks, such as regression testing, require that the requirements tra... more Several software maintenance tasks, such as regression testing, require that the requirements traceability should be up-to-date. Generating requirements traceability consumes a lot of time and is error-prone. Currently most available tools do not offer the automated recovery of traceability links. In the approach presented in this paper, we formulate requirements traceability recovery as a search problem using Genetic Algorithms. Our approach takes as input the software system and a requirement set and produces a set of traces between the classes of the system and the requirements introduced in the input as output. A solution consists of assigning each requirement to one or many classes of the system that should maximize as much as possible the textual similarity between the description of the requirements and the name of code elements, API documentation, and comments. The validation results on three different open source projects show that our approach is effective in correctly gen...

Research paper thumbnail of Intelligent Parking Management by Means of Capability Oriented Requirements Engineering

Capability Oriented Requirements Engineering (CORE) is an emerging research area where designers ... more Capability Oriented Requirements Engineering (CORE) is an emerging research area where designers are faced with the challenge of analyzing changes in the business domain, capturing user requirements, and developing adequate IT solutions taking into consideration these changes and answering user needs. CORE aims at providing continuously a certain level of quality (business, service, security, etc.) in dynamically changing circumstances such as smart city operations. Intelligent management of transportation is a complex smart city operation, and hence, an optimal application domain for CORE. A specific application within the domain of intelligent management of transportation is the smart management of parking. In this paper, we propose dealing with the intelligent management of parking spaces by using CORE. In an I-Parking system that offers personalized advice to users, we deal with change and introduce smartness by means of “Goal Models”, “Informational Models”, “Capability Models”...

Research paper thumbnail of Example-based model refactoring using heuristic search

Software maintenance is considered the most expensive activity in software systems development: m... more Software maintenance is considered the most expensive activity in software systems development: more than 80% of the resources are devoted to it. During the maintenance activities, software models are very rarely taken into account. The evolution of these models and the transformations that manipulate them are at the heart of model-driven engineering (MDE). However, as the source code, the model changes and tends to become increasingly complex. These changes generally have a negative impact on the quality of models and they cause damage to the software. In this context, refactoring is the most used technique to maintain an adequate quality of these models. The refactoring process is usually done in two steps: the detection of elements of the model to correct (design defects), then the correction of these elements. In this thesis, we propose two main contributions related to detection and correction of defects in class diagrams. The first contribution aims to automate the design defe...

Research paper thumbnail of Requirements traceability recovery for the purpose of software reuse: an interactive genetic algorithm approach

Innovations in Systems and Software Engineering

Research paper thumbnail of Example-based model refactoring using multi-objective optimization

Research paper thumbnail of Search-based requirements traceability recovery: A multi-objective approach

Software systems nowadays are complex and difficult to maintain due to the necessity of continuou... more Software systems nowadays are complex and difficult to maintain due to the necessity of continuous change and adaptation. One of the challenges in software maintenance is keeping requirements traceability up to date automatically. The process of generating requirements traceability is time-consuming and error-prone. Currently, most available tools do not support the automated recovery of traceability links. In some situations, companies accumulate the history of changes from past maintenance experiences. In this paper, we consider requirements traceability recovery as a multi objective search problem in which we seek to assign each requirement to one or many software elements (code elements, API documentation, and comments) by taking into account the recency of change, the frequency of change, and the semantic similarity between the description of the requirement and the software element. We use the Non-dominated Sorting Genetic Algorithm (NSGA-II) to find the best compromise betwee...

Research paper thumbnail of Knowledge Incorporation in Requirements Traceability Recovery

Research paper thumbnail of Model refactoring by example: A multi-objective search based software engineering approach

Journal of Software: Evolution and Process

Declarative rules are frequently used in model refactoring in order to detect opportunities in th... more Declarative rules are frequently used in model refactoring in order to detect opportunities in the refactoring and to apply the appropriate ones. However, a high number of rules is required to obtain a complete specification of refactoring opportunities. In some situations, companies have accumulated examples of refactorings from past maintenance experiences. Based on these observations, we consider the model refactoring problem as multi objective problem by suggesting refactorings sequences that should maximize two objectives. The first objective is to maximize both structural and textual similarity between a given model (the model to be refactored) and a set of bad designed models in the base of examples (models that have undergone some refactorings). The second objective is to minimize the structural similarity between a given model and a set of well designed models in the base of examples (models that do not need any refactoring). To this end, we use the Non-dominated Sorting Genetic Algorithm (NSGA-II) to find a set of representative Pareto optimal solutions that present the best trade-off between structural and textual similarities of models. The validation results on eight real world models taken from open-source projects confirm the effectiveness of our approach with more than 80% of average correctness of our refactoring recommendations. In addition, our approach outperforms five other refactoring approaches.

Research paper thumbnail of MultiObjective SearchBased Requirements Traceability Recovery for Adaptive Systems

Qatar Foundation Annual Research Conference Proceedings Volume 2018 Issue 3

Complex adaptive systems exhibit emergent behavior. This type of behavior occurs in volatile envi... more Complex adaptive systems exhibit emergent behavior. This type of behavior occurs in volatile environments involving cyber-physical systems, such as those aimed at smart cities operations. Adaptive systems’ maintenance aims at improving their performance by dealing with the treatment of continuous and frequently changing requirements. Adaptive systems’ behavior requires therefore up-to-date requirements traceability. To this end, we need to understand the requirements and to localize the program parts that should be modified according to the description of the new requirements. This process is known as Requirements Traceability Recovery (RTR). The process of generating requirements traceability, when done by a human (e.g., system maintainer), is time consuming and error-prone. Currently, most of the approaches, in the literature, are time consuming and semi-automatic that always need the intervention of the user. In our work, we are specifically interested in following the link betwe...

Research paper thumbnail of Adaptive Tutoring System based on Fuzzy Logic

International Journal of Advanced Intelligence Paradigms

In recent years, education method has changed and has become very innovative and modern. In this ... more In recent years, education method has changed and has become very innovative and modern. In this way, online adaptive learning seems to be a revolutionary competitive method. The advancement of computer and networking technologies is the key to this whole change from the classic education to the modern online adaptive education. The majority of E-learning systems are based on Boolean logic. In fact, the system considers that the learner like or not a course characteristic but the user can prefer gradually this parameter (low, medium, high). To this end, the proposed approach exploits semantic relations between data elements and learners' preferences to determine adapted UI components appropriate to learners' characteristics based on fuzzy logic. The results of evaluation confirm the efficiency of our technique with an average of more than 77% of precision and recall.

Research paper thumbnail of L'analyse de logiciels, phylogénie et histoire

www-etud.iro.umontreal.ca

D'une part, les programmes industriels actuels nécessitent le développement de logiciels de ... more D'une part, les programmes industriels actuels nécessitent le développement de logiciels de plus en plus complexes et de très bonne qualité du point de vue de la maintenabilité et de la réutilisabilité. Dans l'industrie, le coût de la maintenance est estimé à 50% et 75% de son ...

Research paper thumbnail of An adaptive I-Parking application: An ontology-based approach

2016 Future Technologies Conference (FTC), 2016

Research paper thumbnail of Test des applications Web: Modélisation et génération des séquences de test basées sur le contrôle

Modélisation et génération de séquences de test basées sur le contrôle. Le Web a évolué très rapi... more Modélisation et génération de séquences de test basées sur le contrôle. Le Web a évolué très rapidement et la technologie Internet a été adoptée par des utilisateurs appartenant à des domaines de plus en plus diversifiés. Comparées aux applications traditionnelles, les Applications Web (AW) présentent plusieurs caractéristiques propres. Le besoin de mettre au point des principes et méthodes spécifiques au développement de ce type d'applications, d'une manière générale, et à l'assurance de leur qualité, en particulier, se fait de plus en plus ressentir dans l'industrie du logiciel. L'évaluation de la qualité de ce type d'applications ainsi que leur test sont des sujets très importants qui suscitent de plus en plus l'intérêt des chercheurs. C'est dans ce contexte, dans un objectif d'assurance qualité, que s'insère notre travail. La méthodologie de test (génération et vérification) présentée est basée sur les interactions dynamiques entre les dif...

Research paper thumbnail of Example-based Model Refactoring using Multi-Objective Optimization

Research paper thumbnail of A Tool Supporting Web-Based Applications Testing: A Control Flow Model Based Approach

The Web has evolved rapidly. Furthermore, Internet technology was adopted by users from diversifi... more The Web has evolved rapidly. Furthermore, Internet technology was adopted by users from diversified domains. Compared to traditional applications, Web-based applications present several specific characteristics. They evolve, in particular, rapidly. Testing activities constitute, in this context, an important issue in their quality assurance. We present, in this paper, a testing technique (generation and verification) for Web-based applications. It is based on dynamic interactions between their different components. The technique considers several aspects related to their control. The testing sequences generation technique is based on a tree, built by a static analysis of the source code, and representing the different control paths in the application. The generated sequences, in a compacted form, correspond to the potential navigation scenarios. They are used to verify the execution of each scenario. We also present the architecture and the components of the associated tool. The too...