
Nora BounourBadji Mokhtar - Annaba University | UBMA · Département d'informatique
Nora Bounour
Doctor
About
44
Publications
3,789
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
94
Citations
Citations since 2017
Introduction
Dr Nora Bounour is presently working in the department of computer science at the University of Badji Mokhtar -Annaba (UBMA), Algeria as associate professor.
She is the head of the research group on reengineering and evolution of software systems at the Laboratory of complex system engineering (LISCO). Her research interests include software evolution and reverse engineering methodologies, aspect oriented programming, assistance of software maintenance by using Artificial intelligence techniques.
Additional affiliations
December 1996 - October 2016
Publications
Publications (44)
As a swarm-based optimization heuristic, the Ant System (AS) was proposed to deal with the Traveling Salesman Problem (TSP). Classifified as a constructive approach, AS was inspired by the ants’ social behavior.In Practice, its implementation reveals three basic variants that exploit two operating models: a fifirst “natural” model, where ants move...
Discussions concerning mobile applications
development are growing significantly in the recent years in
questions and answers websites such as Stack Overflow (SO).
Developers commonly resort to Stack Overflow to solve their
technical issues and seek professional help. In this paper, we
aim to analyze developers’ discussions about Android APIs
in or...
In Model-driven engineering (MDE), models constitute the basis source of information to specify and automatically generate an executable system. The evolution history analysis of software system models helps us to discover interesting logical couplings between its artifacts; which is not possible with the analysis of a single version of the model....
Since the emergence of term “Ontology” in the philosophical sphere, its application is widespread in multiplicity of research fields. In software engineering ontologies were adopted more than two decades ago, including requirements analysis, specification and design phases. Unfortunately, this vivacity and richness in software engineering is not th...
Software maintainability is one of the most important aspects when evaluating the quality of a software product. It is defined as the ease with which the existing software can be modified. In the literature, several researchers have proposed a large number of models to measure and predict maintainability throughout different phases of the Software...
Nowadays bio-inspired approaches are widely used. Some of them became paradigms in many domains, such as Ant Colony Optimization (ACO) and Genetic Algorithms (GA). Despite the inherent challenges of surviving, in the natural world, biological organisms evolve, self-organize and self-repair with only local knowledge and without any centralized contr...
Ant Colony Optimization (ACO) is a meta-heuristic that was first used for symmetric Traveling Salesman Problem (TSP), but is now used for various NP-hard discrete Combinatorial Optimization Problems (COP). An Ant System (AS) or merely Ant Algorithm (AA) uses a population-based approach which is a particular Distributed Artificial Intelligence (DAI)...
Ant Colony Optimization (ACO) is a meta-heuristic that was first used for symmetric Traveling Salesman Problem (TSP), but is now used for various NP-hard discrete Combinatorial Optimization Problems (COP). An Ant System (AS) or merely Ant Algorithm (AA) uses a population-based approach which is a particular Distributed Artificial Intelligence (DAI)...
Evolution is inherent in software systems because of the rapid improvement of technologies. As metamodels are the cornerstone of model driven engineering and they evolve iteratively, their evolution affects the rest of artefacts involved in a development process, e.g., models or transformation rules. Therefore, co-evolution tools for models and oth...
Software is evolutionary in nature. From the time a software product is defined until it is no longer used, it changes. We focus in this paper on the aspect-oriented (AO) software evolution. Although AO software engineering is the subject of ongoing research, AO software evolution has received less attention. AO programming is a mature technology t...
The existence of crosscutting concerns scattered or tangled in the source code complicates the software comprehension, maintenance, evolution and reuse. To improve the modularity of software systems, several approaches aimed to identify the crosscutting concerns to allow their modelling by aspects, in order to take advantage of the benefits of the...
The existence of crosscutting concerns scattered or tangled in the source code complicates the software comprehension, maintenance, evolution and reuse. To improve the modularity of software systems, several approaches aimed to identify the crosscutting concerns to allow their modelling by aspects, in order to take advantage of the benefits of the...
Software is evolutionary in nature. From the time a software product is defined until it is no longer used, it changes. We focus in this paper on the aspect-oriented (AO) software evolution. Although AO software engineering is the subject of ongoing research, AO software evolution has received less attention. AO programming is a mature technology t...
The evolution of Aspect oriented (AO) software would degrade and modify its structure and its modularity. In this scenario, one of the main problems is to evaluate the modularity of the system, is the evolved AO software still has a good modularity or not? Unfortunately, this research area is not explored yet. This paper presents a history-based ap...
In the Islamic legislation, the Fatwā consists in the exhibition of a legal opinion in respect of the Islamic precepts. In this paper we focus our interest on reasoning modes in legal domain and more exactly in Islamic legislation field. Our approach consists in solving a new problem by reusing the solution of a similar problem already met, and sto...
Evolution is an inevitable aspect which affects metamodels. When metamodels evolve, model conformity may be broken. Model co-evolution is critical in model driven engineering to automatically adapt models to the newer versions of their metamodels. In this paper we discuss what can be done to transfer models between versions of a metamodel. For this...
In the Islamic legislation, the Fatwa consists in the exhibition of a legal opinion in respect of the Islamic precepts. In this paper we focus our interest on reasoning modes in legal domain and more exactly in Islamic legislation field. Our approach consists in solving a new problem by reusing the solution of a similar problem already met, and sto...
International audience
The existence of crosscutting concerns tangled or scattered, complicates the understanding and evolution of object oriented source code. The industrial adoption of aspect-oriented paradigm has led to research new approaches supporting aspect oriented migration. This migration requires the identification of crosscutting concer...
In Model-Driven Engineering, analogously to any software artifact, metamodels are equally prone to evolution. When a metamodel undergoes modifications, all the related artifacts must be accordingly adapted in order to remain valid. Manual co-evolution of models after these metamodel changes is error-prone. In this setting, this paper introduces a s...
Interesting information and Meta-information about software systems can be extracted by analyzing their evolution histories. This information has been proved useful for understanding software evolution, predicting future changes, and performing an efficient change impact analysis. A rich source code repository is a prerequisite for a high quality e...
Traceability is a key issue to promoting software development quality and productivity. It was recognized as crucial for several software development and maintenance activities. Despite their importance, traceability links are often sacrificed during software evolution due to market pressure. In this work we present an approach to recover them betw...
Model Driven Software Engineering has matured over the last few years and is now becoming an established technology. As a consequence dealing with evolving metamodels and the necessary co-evolution of instances of this metamodel is becoming increasingly important. Several approaches have been proposed to solve model co-evolution problem. In this pa...
Software engineering is concerned with the phenomenon of software evolution since software was developed. Real software systems require a continuous change to satisfy the user's new needs, and to avoid the degradation of software structure. To treat the evolution phenomenon, there is some works that suggest software evolution models. Others have be...
Existence of crosscutting concerns scattered or tangled in the source code complicates the software maintenance, evolution and reuse. To support the improved modularity of software systems, taking advantage of the benefits of aspect-oriented paradigm, several approaches aim to identify the crosscutting concerns, to allow their modeling in aspects....
To support the improved modularity of software systems, taking advantage of the benefits of as-pect-oriented paradigm, several approaches aim to identify the crosscutting concerns, to allow their modeling in aspects. We classify these approaches in two classes. The first one regroups approaches from a develop-ment perspective. This class considers...
L’existence des préoccupations non fonctionnelles
qui entrecoupent le code, rend ce dernier difficile à
comprendre, et par conséquent difficile à maintenir et
à réutiliser.
L’aspect mining est un processus de rétro-ingénierie,
visant l’extraction de ces préoccupations. L’objectif est
de faciliter la compréhension du code, ou sa migration
vers le pa...
During the lifetime of a software system, series of changes are made to the software. So many versions will be produced. Version control systems contain significant amounts of data that could be exploited in the study of software evolution. Analyzing the source code of these versions can help to identify necessary changes, understand the impact of...
La programmation orienté objet est l’approche de choix pour la plupart des projets logiciels actuels. Elle est généralement efficace dans l’expression des fonctionnalités dites verticales. Par contre, elle s’avère particulièrement limitée dans l’expression des fonctionnalités dites horizontales ou transversales, celles exprimant les aspects techniq...
Afin de supporter la modularité améliorée des systèmes logiciels, en profitant des avantages du paradigme orienté aspect, plusieurs approches visent à identifier les préoccupations, et les modulariser dans des aspects. Ces approches opèrent sur différentes phases du cycle de développement du logiciel, de différentes manières.
Nous proposons, dans c...
Développer des logiciels de grande taille est une tâche difficile. Les maintenir et les faire évoluer au cours de nombreuses années l'est plus encore. En l'absence d'une vision globale, les logiciels tendent naturellement à se déstructurer au fur et à mesure des modifications. Comprendre le logiciel est alors de plus en plus difficile. Plusieurs tr...
Developing software of large size is a difficult task. To maintain them and to make them evolve during numerous years is more difficult again. In the absence of a global vision, the software structure aim to be destroyed naturally with the progression of the modifications. Understanding the software is then more and more difficult. Several works at...
Développer des logiciels de grande taille (des millions de lignes de code) est une tâche difficile. Les maintenir et les faire évoluer au cours de nombreuses années l'est plus encore. En l'absence d'une vision globale, les logiciels tendent naturellement à se déstructurer au fur et à mesure des modifications. Comprendre le logiciel est alors de plu...
L'évolution des systèmes logiciels est devenue une matière vitale dans l'industrie du logiciel. La loi d'entropie du logiciel dicte que la qualité de la plupart des systèmes a tendance à se dégrader progressivement dans le temps, à moins que les systèmes soient maintenus et soient adaptés aux nouvelles exigences. L’un des objectifs importants du gé...
In object oriented paradigm, the implementation of a concern is typically scattered overmany locations and tangled with the implementation of other concerns, resulting in a system that ishard to explore and understand. Identifying such code automatically greatly improves both themaintainability and the evolveability of the application. Aspect minin...
The term software process joins all activities that have to be achieved in order to developsoftware. It has been shown that modeling such processes is difficult and expensive task. It's confirmedby diversity of software processes modeling approaches which are however, not satisfactory. Thisstudy deals with an area of growing importance and presents...
Aspect mining aims to identify crosscutting concerns in legacy systems. The code implementing a crosscutting concern is often spread over many different parts of an application. Identifying such code automatically greatly improves the maintainability of the application and enables migration of exsisting (object-oriented) programs to aspect oriented...
The fact that crosscutting concerns (aspects) cannot be well modularized in object oriented software is an impediment to program comprehension: the implementation of a concern is typically scattered over many locations and tangled with the implementation of other concerns, resulting in a system that is hard to explore and understand. Aspect oriente...
Modelling software processes is a difficult and expensive task. It's confirmed by diversity of software processes modelling approaches which are however, not satisfactory. This paper presents roles and coordination as valuable abstractions for specifying and modelling methodological aspects of this processes, by formally defining the policy that le...
Change impact analysis plays a crucial role in software maintenance; it can determine the effect of a change in an entity on the other entities of software. Several techniques of impact analysis for various paradigms were proposed in the literature. But little of them treat this problem in aspect-oriented programs. In this paper we propose a new ap...
Projects
Projects (2)
Architecture Description Languages, Evolution of Software Architectures
the objectif is to provide an intelligent assistance to software evolution