Ingeniería inversa
En el caso concreto del software, se conoce por ingeniería inversa a la actividad que se ocupa de descubrir cómo funciona un programa, función o característica de cuyo código fuente no se dispone, hasta el punto de poder modificar ese código o generar código propio que cumpla las mismas funciones. La gran mayoría del software de pago incluye en su licencia una prohibición expresa de aplicar ingeniería inversa a su código, con el intento de evitar que se pueda modificar su código y que así los usuarios tengan que pagar si quieren usarlo.
Escáner 3D
La ingeniería inversa de un componente mecánico requiere un modelo digital preciso de los objetos a ser reproducido. Antes que un conjunto de los puntos que un modelo digital preciso es representado típicamente por un conjunto de superficies tal como un conjunto de superficies triangulares planas, un conjunto de la planicie o superficies curvas de NURBS, o idealmente para componentes mecánicos un sólido de CAD que se compone de un subconjunto de CAD de superficies de NURBS. Un escáner 3D se puede usar para digitalizar forma libre o componentes formados gradualmente cambiantes de geometrías así como también prismáticas mientras que una CMM es usada generalmente sólo para que determine las dimensiones sencillas de un modelo sumamente prismático. Estos puntos de datos entonces se procesan para crear un usable modelo digital.