Reverse Engineering in Information SystemsIt is called reverse engineering the process by which part of an object, device, or system to discover the technological process by which it has been made ​​by studying its structure, operation and function, with special attention to analyze the details of each it forms part, with the aim of unraveling the manner in which it operates and, also the ability to recreate such a system or object from scratch, in aidentical or similar way.

 

 

What makes reverse engineering?

The breakdown of an information system (or deconstruction) is similar to the construction in reverse. Begin by identifying the implementation, within which the first track will be seen for the subsequent reconstruction, which is the structural design; act followed is to identify the so-called architectural design, an instance in which you might see the more subtle features in detail and which can lead to the identification of problems then, to define accurately provide the ability to resolve them in the subsequent reconstruction the system, thereby improving it. Of course, such analysis covers databases, applications, processes, various operational and safety standards, all about hardware and software, network and also other factors.

Reverse engineering computer systems

We can consider two types of reverse engineering: one based on the source code (which should be available) and other (ignoring the code) from the executable program and seeking to decipher this code. For such necessities, there are various tools and programs that can be used.

Some of them are:

1. Imagix 4D: You can reverse source codes C, C++ y Java to facilitate analysis, documentation and improve existing software showing the same design issues through a variety of graphical UML.

URL: http://www.imagix.com/products/source-code-analysis.html

2. Green UML: It serves both to reverse engineer or traditional, with this tool you can create a UML class diagram from source code or generate drawing a class diagram has a simple editor features (points and clicks) and was developed to pedagogical students to focus on the design, although its use is not limited to this field

URL: http://green.sourceforge.net/

3. WinTranslator: Used for general class models or CRC cards software written in C++, C#, Java, PHO, Delphi o ADA, works by partitioning large software systems into multiple diagrams with objects linked to related source code.

URL: http://www.excelsoftware.com/wintranslator.html

4. CodeLogic: This system is used to find and plot the deeper internal logic of any Java code, just point your project CodeLogic any Java or C++, and the developer can get an intuitive view of how the code works exactly.

URL: http://www.logicexplorers.com/products/codelogic/

Application of reverse engineering in information systems

To implement reverse engineering in an information system, begin by identifying the use cases (representing mechanism in more detail the functional requirements that seeks to satisfy a system) and build a network of relationships (mechanism based on the relationship between the various devices used in various stages of development seeks to connect) to connect those (use cases) with the source code. This begins by identifying the use cases and the relationships among them, build a graph with these relationships, to which he added the artifacts located by finding the source files for each use case and entities derived source; since this can identify the relationship between source entities and devices must connect the source code together with the previous level of the graph. Finally generates a final version of the graph of relationships, if it lacks the executable code is made the same process from source code.

The deconstruction process allows not only learn a specific and system information, but structurally understand and thereby to identify the correct points subsequent to restructuring thereof, dividing problems in large manipulative elements, thus simplifying systems to raise the effectiveness yet understand the usefulness of a methodology for developing structural systems, which generates a correct level systems or rather, documentation desirable.

 

comments powered by Disqus