sábado, 5 de noviembre de 2011

Comentario Leyes de Murphy

Leyes de Murphy para la computación

En 1949, el capitán Ed. Murphy era un ingeniero que trabajaba en la base aérea de Edwards en California. Cuando un técnico que trabajaba en su laboratorio hizo algunas conexiones de cables incorrectos, Murphy dijo, ¨si hay alguna manera de hacer algo mal, él lo hará¨.

-         La gente siempre se acuerda de su último error.
-         Aquel que hace menos, es el que se lleva más crédito.
-         Mientras menos cuesta un periférico, mas cuesta su reparación.
-         Cuando usted llega al punto en que realmente entiende su sistema de computadora, probablemente es obsoleto.
-         Aquel que ríe de último, probablemente hizo un backup.
-         Mientras más distantes están los avances tecnológicos, más atractivas lucen.
-         Un programa de computadora siempre hará lo que usted le diga que haga, no lo que usted quiere que haga.
-         Un proyecto siempre se expande hasta ocupar toda la memoria disponible.
¿Programador o ingeniero?



¿Cuál es la diferencia?


Algunas personas llaman a sí mismos "programadores" y otros llaman a sí mismos "ingenieros de software". "Ingeniero" parece tener más prestigio en nuestra sociedad, para que más personas tratan de llamar a ingenieros (incluso si no lo son). Por supuesto, nadie puede llamarse lo que quieran - para lo que las personas llaman a sí mismos no hace mucha diferencia, sin embargo, existe una clara diferencia entre los dos.

Con el fin de explicar las diferencias, tengo que caricaturizar tanto al extremo - para el contraste. Darse cuenta de que la mayoría de la gente son una combinación de ambos atributos - pero al menos puede obtener algunas ideas sobre lo que debe buscar, si usted sabe los extremos.

Hay necesidades de ambos (ingenieros y programadores) - y las diferentes tareas requieren más de una o la otra. La mayoría de las tareas requieren sólo unos pocos ingenieros y bastante unos pocos programadores. El problema es que muchos gerentes no entienden la diferencia, o contratar a las equivocadas para un puesto de trabajo.

La programación no es difícil - es tedioso. ¡Tienes que ser capaz de romper las cosas complejas hacia abajo, en una serie larga de pasos sencillos. Eso es todo. ¿Cómo acercarse a ese problema será definir si usted es un programador o un ingeniero. Así que la mayor diferencia entre los dos es filosófica - y como la mayoría de las diferencias filosóficas, puede conducir a la tensión. Tipos arrogantes (a cada lado) puede llegar a estos complejos de superioridad poco ego que conducen a las tuercas del otro lado, y algunos pretenden que los "otros" son unos idiotas. No son idiotas - que acaba de tener diferentes objetivos, diferentes motivaciones y diferentes filosofías.

Los ingenieros tienen más experiencia (maduro (1)) que los programadores (especialmente en el software y la teoría del diseño), pero eso no quiere decir que son los que usted necesita para una tarea (o que siempre son mejores). Los ingenieros son los "diseñadores", los que han existido por años y entiende un montón de diferentes conceptos, o entender algunas especialidades muy bien. La mayoría de los ingenieros de un conocimiento no es aplicable a la tarea a realizar directamente, sino que se basan en su experiencia y la educación para resolver los grandes proyectos - al mismo tiempo evitar los errores. (En los sistemas complejos hay muchos escollos, y algunos pueden costar proyectos de "años" y millones de dólares).

(1) No se debe confundir la edad con la madurez - muchas personas no crecer nunca. El hecho de que un tipo es un programador de 50 años de edad codificador /, no significa que creció más allá del "hacker" fase - y hay un buen número de ingenieros de 20 años de edad. Así que busque en su personalidad y filosofía, así como su experiencia y educación, para saber que es probable que sean.


Los ingenieros son los que quieren (o al menos entender la necesidad de) diseñar, documentar, crear procesos y procedimientos para evitar problemas futuros. Ellos quieren tener un proyecto de principio a fin (con todos los pasos intermedios). Ellos tienden a ser más "anal" tipos, que quieren centrarse en los detalles (en la ingeniería del diablo está en los detalles). Los ingenieros a menudo son más académicos (voluntad de hacer más investigaciones antes de atacar un problema). Los ingenieros saben cómo establecer los horarios, y les siguen. Falla más grandes ingenieros sin experiencia es que a veces se "sobre-ingeniería" una solución, y tratar de resolver las cosas que nunca pueden ser los verdaderos problemas (que se gastan tiempo y dinero resolver problemas que no será un problema real de una década, y entonces los objetivos de tecnología o la empresa han cambiado lo suficiente que no habría sido un problema de todos modos). Los ingenieros también están los que hacen más lenta de un proyecto en las fases iniciales (pasar más tiempo en la investigación, diseño, análisis, documentación y debate) con el fin de evitar peligros potenciales (y ahorrar tiempo y dinero) en las últimas etapas de un proyecto . Esto es grande para los costos del proyecto a largo plazo (y que te dan la espalda tiempo / dinero) -, pero tenemos un montón de corto plazo, los pensadores de la sociedad (y negocio). Los ingenieros son los maduros "virtuosos", que tendrá un proyecto hecho y evitar sorpresas (por el pensamiento a todos antes de empezar) - y se aseguran de que su diseño y la documentación es tal que un proyecto será fácil de mantener. Metas a largo plazo (pensadores) - que hacen "inútiles" las cosas como poner en el código de pruebas automatizadas, crear "las normas de codificación", o quiere hacer revisiones de código (que a menudo resultan ser buenas ideas en el largo plazo). La mayor parte de las sorpresas (y costos) en el desarrollo de software se debe a que no había suficientes ingenieros (o no eran buenos ingenieros suficiente), o la gente no estaba escuchando.

Los programadores son los tipos más abajo y sucio. Que solían ser llamados "hackers", pero que ahora tiene un nuevo significado (2). Ahora los días son más propensos a referirse a sí mismos como codificadores o Código Jockeys. Los programadores no tienen que saber todo lo primero, simplemente disfrutar de la emoción de la solución de los problemas que se vienen. Son más los artistas excéntricos del mundo de la informática. A menudo pasan días sin dormir y vivir en la comida chatarra y Mountain Dew, sólo "hacer" - Go, Go, Go! Por supuesto, que a menudo pasan las semanas la solución de problemas que se han resuelto antes (si es que acababa de leer un libro e investigar los problemas antes de la mano) -, pero a veces (a veces) que resuelven los problemas de toda una nueva (e ingenuo) formas (y mejor que las soluciones enlatadas), o resolver problemas que no han sido resueltos antes. Son los jóvenes impetuosos del mundo - que la energía utilizada y el vigor para tratar de compensar la falta de experiencia y el diseño (y éxito). Ellos no saben lo que no pueden hacer, así que a veces lo imposible.

(2) hacking usa para significar (en los años 70 y principios de los 80) los programadores que se sumergía en un problema (sin documentación o una comprensión completa del problema, etc) y sólo el programa de su salida. No hay mucho pensamiento pasó de diseño (ya que pueden pensar y ejecutar más rápido de lo que podían de diseño). Que no era necesario "no manuales apestoso", que no hicieron la documentación (el código se explica por sí mismo), que acaba de resolver problemas a su manera. Sin embargo, ese nombre adquirió una connotación diferente, cuando muchas personas con esta "piratería" de la personalidad, que comenzó a utilizar la persistencia de romper la seguridad, o para encontrar la manera de violar la compañía telefónica en 16 formas diferentes. (Esta forma de pensar la fuerza bruta es muy bueno para romper la seguridad). Ahora los "hackers" se refiere a que los pequeños sub-conjunto de los piratas informáticos que a menudo se hacen los actos delictivos, como la piratería en los lugares (en lugar del código de hacking).


Los programadores se sumerge en algo antes de que entiende completamente las ramificaciones, y con frecuencia va a costar un montón de dinero porque las empresas de que la falta de experiencia (conocimiento), y los "errores" o el desperdicio de energía. Los ingenieros les gusta decir "trabajo inteligente, no es difícil". Muchos programadores encanta programar tanto que van a trabajar más duro, simplemente porque les gusta la programación y no como las otras cosas (diseño, documentación, soporte, añadiendo en el código de prueba, el marketing, las políticas corporativas, la mayoría de la humanidad, etc.) Los programadores no suelen gustar los horarios (los que son para los contadores de frijoles), y ellos la promesa del mundo (y descubrir más tarde que ellos no pueden ofrecer, o se matan tratando de entregar). La calidad de sus resultados es por todo el tablero (de mierda a excelente, a menudo con elementos de ambos) - pero por lo general, sus productos se pueden utilizar, pero de mantener sólo por ellos. Cuando los programadores de salir de una empresa que es programador pesados ​​(y lo hacen), o pasar a la siguiente cosa nueva (que es siempre más interesante que lo que están haciendo), le costó una fortuna para arreglar o cambiar cada vez que "la vieja" producto nuevo (ya que nadie entiende qué diablos está pasando en su código, y no hay documentación o de diseño para ayudar)

¿Qué se necesita?
Así que uno (los programadores o ingenieros) que necesita depende de la tarea. Lo ideal es tener un equilibrio en un proyecto, con unos pocos ingenieros haciendo el diseño arquitectónico de un proyecto y dar algunas orientaciones y evitar los problemas (y la documentación exigentes) - y unos pocos programadores, que son enviados en direcciones (bajo el control de ingenieros) para poner en práctica como un loco, y tenazmente a resolver los problemas que puedan surgir. Los programadores suelen briosos caballos que necesita un piloto experimentado (Ingeniero) para controlar y guiar a ellos - pero una vez que se señalan en la dirección correcta, el hombre puede correr. Los ingenieros a menudo no son los mayores productores de código (cantidad), o en el mejor depuradores - que prefieren el diseño de los problemas (y código) en el primer lugar. Los ingenieros se gritaba "diseñar, documentar, implementar". Los programadores se gritaba, "¡Deja de hablar de eso! Permite Código Código Código".

Se puede imaginar que es difícil encontrar a personas de un tipo que puede tolerar el otro tipo (o más raro encontrar personas que son un buen equilibrio de ambos) - Es sorta como el Congreso. Pero si lo hace a equilibrar, los resultados pueden ser lo mejor de ambos mundos. Empresas más triste no tener un equilibrio. Consiguen un líder de un tipo (o la otra), que no ve valor en el estilo de oposición - y por lo tanto la unidad a todos los que no piensan como ellos hacia fuera. O más común, la empresa no tiene ninguna pista acerca de las diferencias y no le importa - la política que permite que el que suceda lo mismo. Los resultados de cualquiera de los extremos puede ser feo, sin embargo, los ingenieros de muchos son lentos (er), muchos programadores pueden matar a una empresa o un producto.

Nuevas empresas y pequeñas empresas a menudo favorecen a los hackers / programadores. Estos chicos bofetada algo juntos (rápidamente), y tratar de venderla. A menudo funciona (apenas) por lo que se vende en la primera encarnación. Luego, una bofetada más en algunas de sus funciones, y se vende todavía. Luego, el plomo programador hojas (se aburren haciendo lo mismo durante más de 2 años), y las espirales del proyecto en código infierno. No se puede mantener el proyecto, y la empresa no va a invertir el dinero para "rediseñar". Así que a ningún lado, tratando de insectos de la calabaza, y todas las características que añaden (o bug que arreglar) crea nuevos errores. Pasan diez veces el dinero (y tiempo) tratando de arreglar las cosas como lo hizo en desarrollo en el primer lugar, y que solía pasar el tiempo o el dinero para hacerlo bien. Si estas empresas son un barco que se hunde, sino que va a contratar para rescatar los cuerpos de agua, sin embargo, no arreglar las goteras. La mayoría de las empresas están en este modo el programador pesada - y la mayoría no ingeniero de su salida (porque no entiende de ingeniería). En cambio, las empresas tratan de comprar su salida de los problemas (con los organismos) y ocultar los síntomas, en lugar de permitir que el producto (y problemas) que se fije, que suele conseguir algunos ingenieros y la creación de algún tipo de proceso (y curar la enfermedad).

Lo contrario de ese extremo son las empresas que favorecen a todos los ingenieros - como el aeroespacial, Gobierno, algunas grandes corporaciones.. Por supuesto, parte de eso es debido a los riesgos (y que muchas vidas a menudo la mano en el equilibrio de sus diseños). Estos tipos de diseño, documento, discutir, perfeccionar, volver al inicio, más de la ingeniería a los diablos de algo, y crear algo que sería un gran producto -, pero se necesitarán 10 años para crear. Procesan las cosas a la muerte, y requieren de 27 formularios a ser completados para usar el baño. Que el producto tendrá una arquitectura maravillosa, que puede durar hasta el próximo siglo - y que van a generar la documentación suficiente para matar a un bosque, y el producto será tan sobre-hecho que tendrá 5 años adicionales antes de la computación-caballos de fuerza ponerse al día (o el precio de las computadoras se reduce lo suficiente) para que el producto será realmente viable. Sin embargo, estos productos suelen tener una vida útil mucho más larga, y puede crecer durante mucho tiempo. A menos que fueron diseñados por un comité - y entonces será tan funcional como una mesa de dos patas. Por no mencionar el hecho de que todos los ingenieros en el mundo no puede compensar la mala (estúpido) requisitos - que causa mucha fricción entre los ingenieros y la comercialización (ya que ambos piensan que tienen todas las respuestas, y que ninguno de ellos).
La Industria
Apple y Microsoft se "hacker" pesados ​​en los años 70 y 80 (a pesar de que mejoró con el tiempo). IBM era el más "sobre-ingeniería" de estrategia. Lo que solía ser en broma que el proceso de IBM consistió en "Ready .. Objetivo ... Objetivo ... Objetivo ... Objetivo ...", donde, como proceso de Manzanas" fue "¡Fuego, Objetivo, ¿Listo?" Microsoft no haría, y prefieren ver otros tiradores disparar primero - entonces sólo se disparaba el tirador con el mejor resultado, y luego tomar el crédito por su trabajo.

Algunas compañías utilizan una estrategia que yo lo llamo "el diseño a través de adquisiciones". Ya que no se puede hacer "bien" a sí mismos (porque no entienden la ingeniería), que acaba de comprar-a quien los está superando a la vez, y luego el mercado a los diablos de esos productos. Ellos hacen tibios intentos de "arreglar las cosas" en los productos que han adquirido, pero a menudo sólo tienen las versiones posteriores de mal en peor (más funciones y más bugs). Symantec y Novell han hecho esto unas cuantas veces. Muchos de los "líderes del mercado" utilizar esta estrategia como una forma de compensar el hecho de que se olvidaron de lo que les hizo el líder en el primer lugar - por lo que sólo tratan de colgar a sus posiciones (de modo que de directivos senior pueden obtener sus programa de bonos) sin realmente ganando o perdiendo cuota de mercado - pero rara vez tienen éxito por mucho tiempo. Por lo general, alguien más hábil se acerca y "come su almuerzo".
En general, creo que la mayoría de las empresas de juego (y la mayoría de los arranques) son demasiado pesados ​​hackers (pero eso está cambiando). El sector aeroespacial es demasiado pesado de ingeniería (agravada por la burocracia). Las grandes empresas (Fortune500) es por todo el lugar, pero por lo general envuelto en el proceso, con la política (y quién está haciendo qué a quién) dictando un extremo u otro. Software comercial es un gran programador poco (pero varía según la empresa). BioMed fue el mejor equilibrio que he visto (pero que pueden haber sido las empresas que tratan). Todas las empresas varían, y varían en el tiempo (primero se cometen errores en un extremo y luego el siguiente) - y es raro encontrar un buen equilibrio, pero puede existir en cualquier industria.





La conclusión
Recuerde que en el mundo, a menudo se obtiene lo que paga (y lo que pides).
Si desea que un niño de impulso que puede abofetear un código junto a usted en ningún momento - y que van a hacer exactamente eso. Usted va a pagar por esa decisión por año (en mantenimiento) - pero usted consigue un producto en una fracción del tiempo.

Si usted pone el dinero y el tiempo (e ingenieros), para diseñar un producto adecuado, entonces usted consigue algo que te llevará muy lejos en el futuro - pero hay que esperar que sus competidores no le ganó de mano (con agua caliente-shot niños), y lo que necesita para asegurarse de que usted no está tratando a un exceso de resolver los problemas (y perder el tiempo / dinero).
Lo mejor de ambos mundos es de mezclar y combinar bien. Ponga en caliente disparos en las cosas a corto plazo - y luego usar esa ventaja de tiempo a hacer las cosas bien. (El desarrollo paralelo). O usted puede poner tanto en los mismos proyectos (si trabajan bien juntos) - y tiene el control de los ingenieros de los programadores (si es que puede hacerlo sin aplastarlas). Balance de los dos proyectos de manera que las tomas en caliente se conduce a los ingenieros a implementar más rápido, y los ingenieros están reduciendo los programadores hacia abajo (para que sepan cuáles son los costos a largo plazo son para muchas de sus decisiones, minimizar los riesgos, y para que puedan documento sobre la marcha). La madurez y la unidad. A veces se puede encontrar a personas que son un buen equilibrio de ambos - la mayoría de la gente tiene sus fortalezas y debilidades y se inclinan a un lado o del otro. De cualquier manera, entender las diferencias y las unidades son el primer paso para tomar las decisiones correctas. Esperemos que este artículo te ha dado una mejor comprensión de las cosas mejor.

Por: David K. Cada una adaptación de http://www.igeek.com/

La Quinta Disciplina


Dame Una Palanca y Moveré El Mundo

La construcción de una visión compartida alienta un compromiso a largo plazo.

- Un Cambio De Enfoque: A través del aprendizaje nos capacitamos para hacer algo que antes no podíamos.

- Llevando Las Ideas A La Practica: Todos entienden que para explotar deben desarrollar su propia capacidad, es decir, aprender.



Expo Camino Al Futuro



Comienza Una Revolución

- Casi ha llegado el día en que podremos dirigir negocios fácilmente, estudiar, explorar el mundo y sus culturas, disfrutar de un gran espectáculo, hacer amigos, ir a mercados locales y enseñar fotos a los parientes, sin que importe el lugar donde se encuentren, sin abandonar nuestra mesa de trabajo ü nuestro sillón. 

- Las experiencias de primera mano son personales y no transmitidas.

- Las herramientas son mediadoras, y una buena parte del progreso humano se ha producido porque alguien inventó una herramienta más sencilla y mejor.

- Las herramientas de la información son mediadores simbólicos que amplifican el intelecto más que el músculo de quienes las utilizan. 

- Una buena parte del trabajo actual implica toma de decisiones y conocimiento, de manera que las herramientas de la información se han convertido, y continuarán siéndolo cada vez más, en el objetivo de los inventores.

- El progreso vendrá de todas formas, necesitamos sacar el mayor provecho de él y no tratar de impedirlo.


Euris M. Acevedo S.

09-SIS3-1-008

Euris M. Acevedo S.
09-SIS3-1-008
Expo Dame Una Palanca y Moveré El Mundo

La construcción de una visión compartida alienta un compromiso a largo plazo.

- Un Cambio De Enfoque: A través del aprendizaje nos capacitamos para hacer algo que antes no podíamos.

- Llevando Las Ideas A La Practica: Todos entienden que para explotar deben desarrollar su propia capacidad, es decir, aprender.

Expo Si No Esta Roto, Rómpalo



Practique Su Mejor Juego


- Sáquele Brillo A La Piedra Pero No Le Cambie La Forma.

Todo el que tiene mentalidad sabe que “rómpalo”, nos impide pulir y perfeccionar nuestros puntos fuertes y “sacarle brillo a la piedra”.

No Se Concentre En Sus Puntos Débiles.

Obturar las fisuras de su juego le hace gastar mucho tiempo en algo que no funciona.

Lo Bien Acabado Es Plano.

Si usted trata de ser experto en un aspecto en que es débil, gastará muchísimo tiempo.

- Construir Sobre Lo Que Funciona

Cuando asume una nueva posición o inicia un nuevo proyecto, no es raro pensar que uno debe   
 cambiar y ser distinto.






Presentación

Elaborado por:

Euris Michel Acevedo Silverio

Matricula:

09-SIS3-1-008

Materia:

Ingeniería De Software

Tema:

Definiciones

Profesor:

Ing. Rafael Osborne

Fecha:

04/10/2011




1 - ¿Que es Software?

En sentido estricto- es todo programa o aplicación programado para realizar tareas específicas. El término "software" fue usado por primera vez por John W. Tukey en 1957.

Algunos autores prefieren ampliar la definición de software e incluir también en la definición todo lo que es producido en el desarrollo del mismo. La palabra "software" es un contraste de "hardware"; el software se ejecuta dentro del hardware.

2 - ¿Quien lo hace?

El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición. La concepción define el alcance del proyecto y desarrolla un caso de negocio.

La elaboración define un plan del proyecto, especifica las características y fundamenta la arquitectura. La construcción crea el producto y la transición transfiere el producto a los usuarios. Actualmente se encuentra en una etapa de madurez el enfoque Orientado a Objetos (OO) como paradigma del desarrollo de sistemas de información. El Object Management Group (OMG) es un consorcio a nivel internacional que integra a los principales representantes de la industria de la tecnología de información OO. El OMG tiene como objetivo central la promoción, fortalecimiento e impulso de la industria OO.

El OMG propone y adopta por consenso especificaciones entorno a la tecnología OO. Una de las especificaciones más importantes es la adopción en 1998 del Lenguaje de Modelado Unificado o UML (del inglés UnifiedModelingLanguage) como un estándar, que junto con el Proceso Unificado están consolidando la tecnología OO.

3 - ¿Por qué es importante el Software?

Es una nueva forma de crear tecnología dando más libertad a los usuarios y creando un mercado mucho más competitivo, con menos dependencia tecnológica y que propicia un mayor desarrollo en entornos locales. Todo ello es especialmente importante cuando se tienen necesidades particulares, o cuando no se tienen muchos medios para acceder a tecnologías avanzadas.

4 - ¿Cuáles son los pasos?

Conocido también como definición del problema o análisis del programa. En este paso se determinan la información inicial para la elaboración del programa. Es donde se determina qué es lo que debe resolverse con el computador, de qué presupuestos se debe partir. en definitiva, el planteamiento del problema.

- Determinación de objetivos del Programa:
Debe definirse claramente los problemas particulares que deberán ser resueltos o las tareas que hay que realizar, esto nos permitirá saber qué es lo que se pretende solucionar y nos proporcionará información útil para el planeamiento de la solución.

- Determinación de la salida Deseada:
Los datos seleccionados deben ser arreglados en una forma ordenada para producir información. Esta salida podría ser una salida de impresión o de presentación en el monitor.
- Determinación de los datos de Entrada:
Una vez identificada la salida que se desea, se pueden determinar los datos de entrada y la fuente de estos datos. Los datos deben ser recolectados y analizados. Es un proceso para convertir especificaciones generales de un sistema en instrucciones utilizables por la máquina, que produzcan los resultados deseados. Se le conoce también como desarrollo de software.

- Programación de lo Requerido:
Es una lista de instrucciones que la computadora debe seguir para procesar datos y convertirlos en información. Las instrucciones se componen de enunciados usados en lenguajes de programación como Basic, Pascal o C.

5 - ¿Cual es el producto obtenido?

Es obtener información o un diseño a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado.

Hoy en día (principios del siglo XXI), los productos más comúnmente sometidos a ingeniería son los programas de computadoras y los componentes electrónicos, pero, en realidad, cualquier producto puede ser objeto de un análisis. El método se denomina así porque avanza en dirección opuesta a las tareas habituales de ingeniería, que consisten en utilizar datos técnicos para elaborar un producto determinado. En general, si el producto u otro material que fue sometido a la ingeniería inversa fueron obtenidos en forma apropiada, entonces el proceso es legítimo y legal.

De la misma forma, pueden fabricarse y distribuirse, legalmente, los productos genéricos creados a partir de la información obtenida de la ingeniería inversa, como es el caso de algunos proyectos de Software libre amplia mente conocidos. El programa Samba es un claro ejemplo de ingeniería inversa, dado que permite a sistemas operativos UNIX compartir archivos con sistemas Microsoft Windows. El proyecto Samba tuvo que investigar información confidencial (no liberada al público en general por Microsoft) sobre los aspectos técnicos relacionados con el sistema de archivos Windows.

Lo mismo realiza el proyecto WINE para el conjunto de API de Windows y OpenOffice.org con los formatos propios de Microsoft Office, o se hace para entender la estructura del sistema de archivos NTFS y así poder desarrollar drivers para la lectura-escritura sobre el mismo (principalmente para sistemas basados en GNU/Linux).
Es a algo supone profundizar en el estudio de su funcionamiento, hasta el punto de que podamos llegar a entender, modificar y mejorar dicho modo de funcionamiento. Pero este término no sólo se aplica al software, sino que también se considera ingeniería inversa el estudio de todo tipo de elementos (por ejemplo, equipos electrónicos, micro controladores, u objeto fabril de cualquier clase). Diríamos, más bien, que la ingeniería inversa antecede al nacimiento del software, tratándose de una posibilidad a disposición de las empresas para la producción de bienes mediante copiado1 desde el mismo surgimiento de la ingeniería de sistema.