Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
2007
…
16 pages
1 file
Reverse engineering is pivotal in software engineering, facilitating the understanding and modification of existing systems through the identification of components and their relationships. This paper explores various methods and tools supporting reverse engineering, highlighting its applications across software maintenance, testing, and security audits. Emphasizing the importance of tool maturity and interoperability, the authors address the challenges of empirical assessment and advocate for advancements in reverse engineering practices and technologies.
Software reverse engineering is a subfield of software engineering that is concerned with the analysis of an existing software system-often legacy-with the goal to synthesize information about the target system so that certain aspects of it can be reasoned about. System artifacts such as requirements specification, design documents, source code, version histories, documentation, use cases, or execution traces are analyzed with the goal to reveal or synthesize abstractions and to generate visualizations that expose call graphs, subsystem structures, high-level architectures, functional decompositions, code duplications, metrics, and run-time behavior. An important aspect of reverse engineering is that it generates information about the subject system at various levels of abstraction, ranging from code-centric views such as program slices to domain knowledge such as business rules. This synthesized information includes mappings and concept assignments between abstraction layers. Thus, reverse engineering provides valuable input for evolving software systems including activities such as program comprehension, reengineering, or maintenance.
Abstract Reverse engineering is a crucial task to support software comprehension and maintenance, especially when software systems lack of up-to-date and adequate documentation. This paper overviews key achievements in different areas of reverse engineering, discusses the role of reverse engineering in today's' software development practice, and outlines new challenges deriving from new and emerging software development scenarios.
2004
Currently, the demand for the reverse engineering has been growing significantly. The need of different business sectors to adapt their systems to Web or to use other technologies is stimulating the research for methods, tools and infrastructures that support the evolution of existing applications. In this paper, we present the main research trends on reverse engineering, and discuss how should be an efficient reverse engineering approach, aiming at higher reuse levels.
Journal of Software Maintenance and Evolution: Research and Practice, 2000
2000
By the early 1990s the need for reengineering legacy systems was already acute, but recently the demand has increased significantly with the shift toward web-based user interfaces. The demand by all business sectors to adapt their information systems to the Web has created a tremendous need for methods, tools, and infrastructures to evolve and exploit existing applications efficiently and cost-effectively. Reverse engineering has been heralded as one of the most promising technologies to combat this legacy systems problem. This paper presents a roadmap for reverse engineering research for the first decade of the new millennium, building on the program comprehension theories of the 1980s and the reverse engineering technology of the 1990s.
Instability is the nature of any application. An Application may strive for and helps a business or company for some time (may be 10 or 15 years), during that time it has been corrected, adapted and enhanced many times. But every time a change is made into the application, unexpected and serious side effects occur. Yet the application must continue to evolve. Unmaintainable software is not a new problem. In the following sections, we are going to analyze the Software Re-engineering and Reverse-engineering processes and how they help any application to maintain the Quality standards.
Empirical Software Engineering, 2007
Starting with the aim of modernizing legacy systems, often written in old programming languages, reverse engineering has extended its applicability to virtually every kind of software system. Moreover, the methods originally designed to recover a diagrammatic, high-level view of the target system have been extended to address several other problems faced by programmers when they need to understand and modify existing software. The authors' position is that the next stage of development for this discipline will necessarily be based on empirical evaluation of methods. In fact, this evaluation is required to gain knowledge about the actual effects of applying a given approach, as well as to convince the end users of the positive cost-benefit trade offs. The contribution of this paper to the state of the art is a roadmap for the future research in the field, which includes: clarifying the scope of investigation, defining a reference taxonomy, and adopting a common framework for the execution of the experiments.
Reverse engineering is a process to extract designing knowledge from the use of any human-made by analysis its structure . Using this science in research is very common and the major difference of Reverse engineering with conventional science research is that the goal of this science is to study how to design and technology is used in the humanmade , while the natural sciences are following the analysis of the current phenomenon in the nature , in addition in Reverse engineering by study and analysis of variance components and the technologies used in a produced and released product , the structure will be recognized And the possibility of similar production and even adding some positive characteristics will be provided for the scholars and researchers .
International Journal of Software Engineering and Its Applications, 2017
As the stages of software development reveal, the method of analysis comprises of all the stages starting from specifications to the final product release. Although prevalent, this method has resulted in neglecting the final stages of development such as maintenance and evolution. One other approach to software development known as reverse engineering, is the synthesis process of software development and integration. Initially, it was introduced and used just for the modernization of old legacy systems. With time, the usage of software reverse engineering has become more extensive. It can be used with virtually every kind of software system that exists, making it one of the most powerful tools of development. Understanding the already existing system to improve the capabilities and performance is the in-thing today.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
Proceedings of the 17th international conference on Software engineering - ICSE '95, 1995
Science of Computer Programming, 2000
Proceedings of the conference on The future of Software engineering - ICSE '00, 2000
Computer, 2001
Reverse Engineering, 2004. …, 2005
International Research Journal of Modernization in Engineering Technology and Science, 2024
Working Conference on Reverse Engineering, 2011
2011 18th Working Conference on Reverse Engineering, 2011
Ibm Systems Journal, 1994
Journal of Software Maintenance: Research and Practice, 1995
Electronic Notes in Theoretical Computer Science, 2004