Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Amr Kamel is active.

Publication


Featured researches published by Amr Kamel.


working conference on reverse engineering | 2007

Swing2Script: Migration of Java-Swing Applications to Ajax Web Applications

Hani Samir; Eleni Stroulia; Amr Kamel

Platform migration is a core problem in software reengineering, since applications are frequently deemed useful in environments other than the ones in which they were originally implemented. The World-Wide-Web in particular is becoming a target platform of choice because of its pervasiveness, and a substantial class of applications that could benefit from migration to the Web is that of Java graphical user interface (GUI) desktop applications. To that end, we have recently developed Swing2Script, an interaction-reengineering approach for automatically migrating Java-Swing applications to Ajax-enabled Web- based applications. The approach reverse engineers the structure and behavior of Java Swing GUIs, using aspects woven unobtrusively in the original application. Based on the extracted model, it automatically builds an Ajax-enabled front end, which drives the relevant workflows of the original application. In this paper, we describe our migration approach and the middleware on which it relies, and we illustrate it with a case study.


2007 ITI 5th International Conference on Information and Communications Technology | 2007

Automated reverse engineering of Java graphical user interfaces for web migration

Hani Samir; Amr Kamel

The World Wide Web is increasingly becoming an important medium for business growth. The migration of existing applications to the web is a core problem in software reengineering, since applications are frequently deemed to be useful when their functionalities are accessible via the Web. A substantial class of applications that could benefit from migration to the Web is that of Java Graphical User Interface (GUI) desktop applications. An emerging approach to Web migration is interaction-based reengineering, in which the User Interface (UI) of the existing application is wrapped with a software layer that exports a Web accessible interface and hides the original one. A major barrier to such migration approaches is the reverse engineering of the User Interface, which is usually a time consuming and highly manual task. We present a new approach to automatically Reverse Engineer various structural and behavioral features of a GUI from an executing Java-Swing desktop application. The approach is based on source code independent techniques, such as Aspect J. In this paper, we describe our GUI reverse engineering approach and we illustrate it with a case study.


international conference on information technology: new generations | 2013

Software Effort Estimation Using Artificial Neural Networks: A Survey of the Current Practices

Haitham S. Hamza; Amr Kamel; Khaled Mohamed Shams

The value of Artificial Neural Networks (ANNs) methods in performing complicated pattern recognition and nonlinear estimation tasks has been demonstrated across an impressive spectrum of applications. ANNs methods are also used in software development process, since it is a complex environment with many interrelated factors affecting development effort and productivity. Accurate forecasting has proved difficult since many of these interrelationships are not fully understood. This paper provides an overview on the use Artificial Neural Networks methods to estimate the development effort for software development projects. In this survey an explanation, on why those methods are used and how accurate they are.


international conference on informatics and systems | 2016

A Framework for Measuring Similarity between Requirements Documents

Fatma A. Mihany; Hanan Moussa; Amr Kamel; Ehab Ezat

Reusability of software components can save effort, time, and cost. The ability to take a decision for which software components will be reused is not an easy task. Before starting a new project or while working on a project similarity checks between the project requirements and requirements of already developed projects can be done to consider reusable components. In this paper we propose a framework to measure similarity between requirements documents targeting improving reusability.


wireless and optical communications networks | 2009

Grove data model for efficient representation of XML documents

Yasmin Anwar; Amr Kamel; Aziza Saad Ahmed

through the recent decades, XML became the most standard method for representing and exchanging information on the Web environments due to its flexibility in textual visualization, information modeling, information retrieval, document exchange, document management, and data mining. XML can provide hierarchal arrangement of data through some major techniques available for accessing and manipulating the XML documents. DOM is a widely used data model for memory representation of the documents, but had shown some shortage in parsing and representing large or very large documents. Wasting resources and processing time overhead are results of applying large XML documents to the DOM parser. SGML is the XML parent. It was using GROVE (Graph Representation of Property Value) as its abstract data model to solve the problems that encountered into the SGML family and as a standardized data model that represents the information contained within the SGML document. Grove is defined formally by a data modeling language called property set. In this paper, the grove idea is popularized as a data model that might solve DOMs problems. The grove is being built by a grove builder. Using Grove will provide addressing and enable the messages between sites to specify which nodes are to be affected. Groves also will bring acceptable results of the memory overhead and the time required for processing an xml file.


international conference on computer engineering and systems | 2008

Capture-recapture techniques in software verification

Maye Nour Eldin; Amr Kamel; Osman Hegazy

Software verification is the process that assures that a software product conforms to its predefined specifications. Software inspection is the main verification technique used at early development stages. The inspection effectiveness; number of defects remaining in the artifact relative to number of identified defects; is typically used to measure the quality of the inspection process. Many approaches have been developed to judge the inspection effectiveness such as comparing the inspection results to organizationpsilas historical data, establishing an organizational baseline for defect density, or estimating the number of remaining defects. Towards that end, capture-recapture techniques, originally proposed by biologists for animal population estimation, could be used to estimate the number of remaining defects in a software artifact. This paper reviews the different concepts for defect prediction techniques, provides an elaboration for basic concepts of capture-recapture models with their estimators, its applicability to software defect prediction, state of the art of research for this technique in software inspection and an overall evaluation for capture-recapture technique with its challenges.


International Journal of Advanced Computer Science and Applications | 2018

Reverse Engineering State and Strategy Design Patterns using Static Code Analysis

Khaled Abdelsalam Mohamed; Amr Kamel

This paper presents an approach to detect behavioral design patterns from source code using static analysis techniques. It depends on the concept of Code Property Graph and enriching graph with relationships and properties specific to Design Patterns, to simplify the process of Design Pattern detection. This approach used NoSQL graph database (Neo4j) and uses graph traversal language (Gremlin) for doing graph matching. Our approach, converts the tasks of design pattern detection to a graph matching task by representing Design Patterns in form of graph queries and running it on graph database.


Proceedings of the 3rd Africa and Middle East Conference on Software Engineering | 2017

Detecting Design Patterns from Source Code using Static Analysis Techniques

Khaled Abdelsalam Mohamed; Amr Kamel

This paper presents an approach to detect design patterns from source code using static analysis techniques. It depends on the concept of Code Property Graph and enriching graph with relationships and properties specific to Design Patterns, to simplify the process of Design Pattern detection. This approach used NoSQL graph database (Neo4j) and uses graph traversal language (Gremlin) for doing graph matching. Our approach, converts the tasks of design pattern detection to a graph matching task by representing Design Patterns in form of graph queries and running it on graph database.


Proceedings of the 2nd Africa and Middle East Conference on Software Engineering | 2016

An Automated System for Measuring Similarity between Software Requirements

Fatma A. Mihany; Hanan Moussa; Amr Kamel; Ehab Ezzat; Muhammad Ilyas

Recently, usage of text similarity has increased rapidly to be involved in different areas such as document clustering, information retrieval, short answer grading, text summarization, machine learning and natural language processing. Lexical-based similarity and semantic-based similarity are the two main categories of text similarity. Reusability of software components increases productivity and quality. In this paper, we propose that there is some linkage between text similarity and software reusability. In an organization, whenever a new incoming project is received, similarity test can be done to identify some similar projects and therefore some components to be reused such as design, code and test cases instead of starting building software from scratch. In this paper, we present an interactive system to measure the lexical similarity between a new incoming project and a set of completed projects exist in the repository and therefore identify some components to be reused.


digital information and communication technology and its applications | 2015

ACUAI framework for automatic composition of web services using gaming AI

Mohamed Y. Fayyad; Amr Kamel; Akram Salah

In a domain SOA environment, multiple services exist to help in executing the users requests but manually handling each request is time wasting and very tiring thus the idea of automatic composition of web services emerged. This paper describes the ACUAI framework which is an AI automatic composer for web services with learning capabilities, since games have the most developed dynamic system adaptation to user action this framework uses two AI techniques which are used in games development they are decision trees and the finite state machines, the user request will be handled in the same way games react to user input then a decision is taken based on current state of the orchestration and then the algorithm changes the state of the orchestration according to the last decision taken to be able to guide the orchestration towards the goal and get a successful composition then each successful composition and its template request are saved to be used later on in enhancing the execution time.

Collaboration


Dive into the Amr Kamel's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge