martes, 22 de abril de 2014

Descripción de la ingeniería inversa y sus aplicaciones


La ingeniería inversa, como su propio nombre indica, es un método de ingeniería que comienza del revés. Es decir, en vez de partir desde un estudio para conseguir fabricar o construir algo, se parte desde el objeto ya fabricado para tatar de investigar cómo funciona y cómo se ha hecho. 
La ingeniería directa comienza con el proyecto de ingeniería, de donde se parte con un prediseño del que se obtiene un diseño básico o abstracto de lo que queremos. Una investigación y un desarrollo nos aportan un diseño final que será el que se fabricará o empleará para el fin que queremos. 

En la ingeniería inversa pasa lo contrario, se parte del producto de la competencia o enemigo ya manufacturado, el cual queremos copiar o derivar implementando otras mejoras o funcionalidades. A partir de ese producto se obtiene un esquema o diseño que se analizará y estudiará para ver los fundamentos bajo los que ha sido creado. Finalmente, se realiza una ingeniería directa con la información obtenida para crear nuestro producto derivado o copiado. 
Por ejemplo, imagina que Volkswagen ha creado un motor y un chasis muy buenos que otros competidores no consiguen crear mediante sus métodos convencionales. Si por ejemplo Honda quisiese copiar o modificar el diseño del Volkswagen tendría que aplicar ingeniería inversa sobre el prototipo o vehículo de VW, ya que  por sus propios medios no puede. Para ello, se haría con un coche de la marca alemana y comenzaría a despiezarlo y estudiarlo minuciosamente para ver como funciona y como está hecho. Luego tendría la teoría y fundamentos necesarios para crear su propia versión y se pondría manos a la obra (ingeniería directa).
En el ámbito donde más se emplea este tipo de ingeniería es en el de la informática, por ejemplo ReactOS del que os hemos hablado es un caso en el que sus desarrolladores han empleado ingeniería inversa para ver como funciona o que hace Windows con el fin de implementar estas funcionalidades en ReactOS y que este sea compatible con el software para el sistema de Microsoft. también Wine o Samba son claros ejemplos en los que se ha empleado este tipo de ingeniería. 
También muchos drivers de código abierto para Linux y otros sistemas operativos libres han sido creados empleando técnicas de ingeniería inversa. Incluso se emplea en la electrónica, cuando empresas rivales tratan de ver como funciona un producto para copiarlo (véase las guerras entre AMD e Intel, por ejemplo). 
Pero lo cierto es que la ingeniería inversa se puede emplear casi en cualquier ámbito: industria, automoción, armamento,… Con la ventaja de poder tener un producto similar al de tu adversario que por ingeniería directa no sería posible debido a tus medios o implicaría un largo y costoso desarrollo.