Hamzeh Eyal-Salman

Hamzeh Eyal-Salman
Mu’tah University · Department of Information Technology

Associate Professor in Software Engineering

About

27
Publications
9,283
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
415
Citations

Publications

Publications (27)
Preprint
Full-text available
Identifying software identifiers that implement a particular feature of a software product is known as feature identification. Feature identification is one of the most critical and popular processes performed by software engineers during software maintenance activity. However, a meaningful name must be assigned to the Identified Feature Implementa...
Article
Full-text available
Identifying software identifiers that implement a particular feature of a software product is known as feature identification. Feature identification is one of the most critical and popular processes performed by software engineers during software maintenance activity. However, a meaningful name must be assigned to the Identified Feature Implementa...
Article
Full-text available
Context: In a social coding platform such as GitHub, a pull-request mechanism is frequently used by contributors to submit their code changes to reviewers of a given repository. In general, these code changes are either to add a new feature or to fix an existing bug. However, this mechanism is distributed and allows different contributors to submit...
Article
Context Recently, fork-based development has shown to be an easy and straightforward technique to reuse the source code of existing projects (upstream projects and their forks) in open source communities (for example, GitHub) and industry. This technique allows developers to tailor the existing forks to build their applications and thus reduce the...
Article
Full-text available
The K-nearest neighbor (KNN) classifier is one of the simplest and most common classifiers, yet its performance competes with the most complex classifiers in the literature. The core of this classifier depends mainly on measuring the distance or similarity between the tested examples and the training examples. This raises a major question about whi...
Article
Full-text available
This study provides a new Crowdsourcing-based approach to identify the most crowded places in an indoor environment. The Crowdsourcing Indoor Localization system (CSI) has been one of the most used techniques in locationbased applications. However, many applications suffer from the inability to locate the most crowded locations for various purposes...
Article
Full-text available
Software applications have become a fundamental part in the daily work of modern society as they meet different needs of users in different domains. Such needs are known as software requirements (SRs) which are separated into functional (software services) and non-functional (quality attributes). The first step of every software development project...
Article
Application programming interfaces (APIs) are important sources for supporting source code reuse as each API provides a large set of pre-implemented functionalities that support programmers to achieve their daily work in different contexts. However, APIs provide huge number of classes and methods that hinder programmers to understand and use APIs....
Article
Software developers increasingly rely on application programming interfaces (APIs) of frameworks to increase productivity. An API method is generally used within code snippets along with other methods of the API of interest. When developers invoke API methods in a framework, they often encounter difficulty to determine which methods to call due to...
Article
Software companies develop a large number of software products cater to the needs of customers in different domains. Each product offers a set of features to serve customers in a particular domain. Over the time, the product features (resp. their implementations) should be improved, changed or removed to meet new demands of customers. Identifying s...
Book
Software Product Line Engineering (SPLE) is a software engineering discipline providing methods to promote systematic software reuse for developing short time-to-market and quality products in a cost-efficient way. SPLE leverages what Software Product Line (SPL) members have in common and manages what varies among them. The idea behind SPLE is to bu...
Conference Paper
Software Product Line Engineering (SPLE) is a systematic reuse approach to develop a short time-to-market and quality products, called Software Product Line (SPL). Usually, a SPL is not developed from scratch but it is developed by reusing features (resp. their implementing source code elements) of existing similar systems previously developed by a...
Conference Paper
Locating source code elements relevant to a given feature is an important step in the process of re-engineering software variants, developed by an ad-hoc reuse technique, into a Software Product Line (SPL) for systematic reuse. Existing works on using Information Retrieval (IR) techniques do not consider the abstraction gap between feature and sour...
Conference Paper
Existing similar software variants, developed by ad-hoc reuse technique such as left clone-and-own right, represent a starting point to build a software product line (SPL) core assets. To re-engineer such legacy software variants into an SPL for systematic reuse, it is important to be able to identify a mapping between features and their implementi...
Conference Paper
Full-text available
Today, developing new software variant to meet new demands of customers by ad-hoc copying of already existing variants of a software system is a frequent phenomenon in the software industry. Typically, maintaining such variants becomes difficult and expensive over the time. To re-engineer such software variants into a software product line (SPL) fo...
Presentation
Full-text available
Mining Features from the Object-Oriented Source Code of a Collection of Software Variants Using Formal Concept Analysis and Latent Semantic Indexing
Conference Paper
Full-text available
Companies often develop a set of software variants that share some features and differ in other ones to meet specific requirements. To exploit existing software variants and build a software product line (SPL), a feature model of this SPL must be built as a first step. To do so, it is necessary to mine optional and mandatory features from the sourc...
Conference Paper
Full-text available
Formal Concept Analysis (FCA) is a theoretical framework which structures a set of objects described by properties. In order to migrate software product variants which are considered similar into a product line, it is essential to identify the common and the optional features between the software product variants. In this paper, we present an appro...
Data
Full-text available
PL/SQL is the most common language for ORACLE database application. It allows the developer to create stored pro-gram units (Procedures, Functions, and Packages) to improve software reusability and hide the complexity of the execu-tion of a specific operation behind a name. Also, it acts as an interface between SQL database and DEVELOPER. Therefore...
Conference Paper
Full-text available
Usually a software product line (SPL) is developed by exploiting available resources of a set of software variants that deem similar. In order to reengineer such variants that are developed by ad hoc reuse into software product line that are developed by systematic reuse, it is necessary to identify traceability links between features and source co...
Conference Paper
Usually software product variants, developed by clone-and-own approach, form often a starting point for building Software Product Line (SPL). To migrate software products that deemed similar into a product line, it is essential to trace variability among software artifacts because the distinguishing factor between traditional software engineering a...
Conference Paper
Usually software product variants, developed by clone-and-own approach, form often a starting point for building Software Product Line (SPL). To migrate software products that deemed similar into a product line, it is essential to trace variability among software artifacts. Variability tracing is used to support conversion from traditional software...
Poster
Full-text available
A methodology to recover feature models from object-oriented source code
Conference Paper
Full-text available
Software Product Line (SPL) is a development paradigm that targets the creation of software system variants that belong to the same domain. Usually software system variants, developed with clone-and-own approach, form a starting point for building SPL. To migrate software systems which are deemed similar to a product line, it is necessary to detect...

Network

Cited By

Projects

Project (1)
Archived project
Reverse engineering software product lines