77,258 research outputs found

    Software reverse engineering education

    Get PDF
    Software Reverse Engineering (SRE) is the practice of analyzing a software system, either in whole or in part, to extract design and implementation information. A typical SRE scenario would involve a software module that has worked for years and carries several rules of a business in its lines of code. Unfortunately the source code of the application has been lost; what remains is “native ” or “binary ” code. Reverse engineering skills are also used to detect and neutralize viruses and malware as well as to protect intellectual property. It became frighteningly apparent during the Y2K crisis that reverse engineering skills were not commonly held amongst programmers. Since that time, much research has been undertaken to formalize the types of activities that fall into the category of reverse engineering so that these skills can be taught to computer programmers and testers. To help address the lack of software reverse engineering education, several peer-reviewed articles on software reverse engineering, re-engineering, reuse, maintenance, evolution, and security were gathered with the objective of developing relevant, practical exercises for instructional purposes. The research revealed that SRE is fairly well described and most of the related activities fall into one of tw

    Modular Moose: A new generation software reverse engineering environment

    Get PDF
    Advanced reverse engineering tools are required to cope with the complexity of software systems and the specific requirements of numerous different tasks (re-architecturing, migration, evolution). Consequently, reverse engineering tools should adapt to a wide range of situations. Yet, because they require a large infrastructure investment, being able to reuse these tools is key. Moose is a reverse engineering environment answering these requirements. While Moose started as a research project 20 years ago, it is also used in industrial projects, exposing itself to all these difficulties. In this paper we present ModMoose, the new version of Moose. ModMoose revolves around a new meta-model, modular and extensible; a new toolset of generic tools (query module, visualization engine, ...); and an open architecture supporting the synchronization and interaction of tools per task. With ModMoose, tool developers can develop specific meta-models by reusing existing elementary concepts, and dedicated reverse engineering tools that can interact with the existing ones

    The use of non-formal information in reverse engineering and software reuse

    Get PDF
    This thesis was submitted for the degree of Doctor of Philosophy and awarded by Brunel University.Within the field of software maintenance, both reverse engineering and software reuse have been suggested as ways of salvaging some of the investment made in software that is now out of date. One goal that is shared by both reverse engineering and reuse is a desire to be able to redescribe source code, that is to produce higher level descriptions of existing code. The fundamental theme of this thesis is that from a maintenance perspective, source code should be considered primarily as a text. This emphasizes its role as a medium for communication between humans rather than as a medium for human-computer communication. Characteristic of this view is the need to incorporate the analysis of non-formal information, such as comments and identifier names, when developing tools to redescribe code. Many existing tools fail to do this. To justify this text-based view of source code, an investigation into the possible use of non-formal information to index pieces of source code was undertaken. This involved attempting to assign descriptors that represent the code's function to pieces of source code from IBM's CICS project. The results of this investigation support the view that the use of nonformal information can be of practical value in redescribing source code. However, the results fail to suggest that using non-formal information will overcome any of the major difficulties associated with developing tools to redescribe code. This is used to suggest future directions for research

    Reverse Engineering Encapsulated Components from Object-Oriented Legacy Code

    Get PDF
    Current component-directed reverse engineering approaches extract ADL-based components from legacy systems. ADL-based components need to be configured atcode level for reuse, they cannot provide re-deposition after composition for future reuse and they cannot provide flexible re-usability as one has to bind all the ports in order to compose them. This paper proposes a solution to these issues by extracting X-MAN components from legacy systems. In this paper, we explain our component model and mapping from object-oriented code to X-MAN clusters using basic scenarios of our rule base

    Identifying reusable abstract data types in code

    Get PDF
    The basic aim of this thesis is to analyse the state of the art in the field of the software reuse Software reuse is widely regarded as offering the opportunity for improving the software production process. It is expected that a massive increase in software reuse is the most promising way of overcoming the software crisis. It can lead to substantial increases in productivity and also to software systems which are more robust and more reliable. A Reuse Re-engineering process together with techniques from reverse engineering represent a method to achieve software reuse. A reference paradigm is established to implement the Reuse Re-engineering process. The reference paradigm is composed of five sequential phases, each characterised by the object it produces. This thesis deals mainly with the first phase of the reference paradigm. This phase is called Candidature and it is concerned with the analysis of the source code for the identification of sets of software components that can be candidate to make up a reusable component. Various methods involved in this phase exist in the literature. Each of them has different characteristic and different qualities. One of these approaches is analysed and it is extended in the new method to give a more precise set of reusable abstract data types. In this thesis the new method is presented. A formalisation followed by implementation of it and an evaluation of its quality through quality attributes is given

    Search-based amorphous slicing

    Get PDF
    Amorphous slicing is an automated source code extraction technique with applications in many areas of software engineering, including comprehension, reuse, testing and reverse engineering. Algorithms for syntax-preserving slicing are well established, but amorphous slicing is harder because it requires arbitrary transformation; finding good general purpose amorphous slicing algorithms therefore remains as hard as general program transformation. In this paper we show how amorphous slices can be computed using search techniques. The paper presents results from a set of experiments designed to explore the application of genetic algorithms, hill climbing, random search and systematic search to a set of six subject programs. As a benchmark, the results are compared to those from an existing analytical algorithm for amorphous slicing, which was written specifically to perform well with the sorts of program under consideration. The results, while tentative at this stage, do give grounds for optimism. The search techniques proved able to reduce the size of the programs under consideration in all cases, sometimes equaling the performance of the specifically-tailored analytic algorithm. In one case, the search techniques performed better, highlighting a fault in the existing algorith

    Reuseable Objects Software Environment (ROSE): Introduction to Air Force Software Reuse Workshop

    Get PDF
    The Reusable Objects Software Environment (ROSE) is a common, consistent, consolidated implementation of software functionality using modern object oriented software engineering including designed-in reuse and adaptable requirements. ROSE is designed to minimize abstraction and reduce complexity. A planning model for the reverse engineering of selected objects through object oriented analysis is depicted. Dynamic and functional modeling are used to develop a system design, the object design, the language, and a database management system. The return on investment for a ROSE pilot program and timelines are charted

    Frankenstein's Toolkit: Prototyping Electronics Using Consumer Products

    Full text link
    In our practice as educators, researchers and designers we have found that centering reverse engineering and reuse has pedagogical, environmental, and economic benefits. Design decisions in the development of new hardware tool-kits should consider how we can use e-waste at hand as integral components of electronics prototyping. Dissection, extraction and modification can give insights into how things are made at scale. Simultaneously, it can enable prototypes that have greater fidelity or functionality than would otherwise be cost-effective to produce

    Simultaneous minimisation of water and energy within a water and membrane network superstructure

    Get PDF
    A dissertation submitted to the Faculty of Engineering and the Built Environment, University of the Witwatersrand, Johannesburg, in fulfilment of the requirements for the degree of Master of Science in Engineering, 2015The scarcity of water and strict environmental regulations have made sustainable engineering a prime concern in the process and manufacturing industries. Water minimisation involves the reduction of freshwater use and effluent discharge in chemical plants. This is achieved through water reuse, water recycle and water regeneration. Optimisation of the water network (WN) superstructure considers all possible interconnections between water sources, water sinks and regenerator units (membrane systems). In most published works, membrane systems have been represented using the “black-box” approach, which uses a simplified linear model to represent the membrane systems. This approach does not give an accurate representation of the energy consumption and associated costs of the membrane systems. The work presented in this dissertation therefore looks at the incorporation of a detailed reverse osmosis network (RON) superstructure within a water network superstructure in order to simultaneously minimise water, energy, operating and capital costs. The WN consists of water sources, water sinks and reverse osmosis (RO) units for the partial treatment of the contaminated water. An overall mixed-integer nonlinear programming (MINLP) framework is developed, that simultaneously evaluates both water recycle/reuse and regeneration reuse/recycle opportunities. The solution obtained from optimisation provides the optimal connections between various units in the network arrangement, size and number of RO units, booster pumps as well as energy recovery turbines. The work looks at four cases in order to highlight the importance of including a detailed regeneration network within the water network instead of the traditional “black-box’’ model. The importance of using a variable removal ratio in the model is also highlighted by applying the work to a literature case study, which leads to a 28% reduction in freshwater consumption and 80% reduction in wastewater generation.GR201
    corecore