Ingeniería inversa
Pero este término no solo 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, microcontroladores, u objeto fabril de cualquier clase). Se puede decir, 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 copiado desde el mismo surgimiento de la ingeniería.
Apache Cayenne
Cayenne soporta la ingeniería inversa y la generación de estructuras en materia de bases de datos, disponiendo además de un motor generador de clases basado en Velocity. Todas estas funciones se pueden controlar directamente por medio del "CayenneModeler", una herramienta GUI plenamente funcional. No rquiere de configuraciones basadas en XML o anotaciones. Permite realizar rápidamente un mapeo directo de todo un esquema de base de datos a un conjunto de objetos Java, gracias a la herramienta gráfica CayenneModeler. Estas características hacen de Cayenne una herramienta de interés para los usuarios que recién se inician en la informática empresarial.