Pericial de software

Se encarga un informe pericial de software. Dictaminar si un ex-empleado habia utilizado código fuente para producir un producto similar para otra empresa. El informe se realizó a encargo de la fiscalía.

Base documental:

  • Estudio de la documentación presentada, inclusive informe de la policía.
  • Análisis del disco duro del imputado.
  • Comparativa de código fuente, con las versiones del mismo en la empresa y con otros desarrollos en curso.
  • Búsqueda de otras evidencias en el disco duro, como código compilado, documentos remitidos a terceros relacionadas con el tema, inspección de los eMails enviados/recibidos, etc.

Partes de la pericial

El software controlaba dos máquinas herramienta. Tenía fuerte interacción con hardware y programación a bajo nivel. La tarea era compleja con desarrollos de más de 80.000 líneas de código. Estaba codificado en visual basic de Microsoft.

Para conocer si se había realizado plagio en el software se procedió las siguientes tareas:

Clonado de dos máquinas virtuales con las dos versiones

Se clonaron en sendas máquinas vituales que emulaban el comportamiento de las máquinas / herramienta controladas (entorno de test). En ellas corría el mismo software que en la máquina herramienta. Así se podía emular su comportamiento en un PC.

Estudio de los dispositivos controlados por el software

Las dos máquinas controladas fueron también objeto de comparación. Se encontraron similitudes entre las mismas, al tener una funcionaliad similar por eso se estudiaron las coincidencias, para saber hasta que punto forzaban una coincidencia en el software.

Comparativa estadística

A nivel estadístico, se dictaminó sobre las líneas de código que componían ambas versiones y su estructuración. El objetivo era identificar patrones comunes y conocer si había habido un cambio en el estilo y las directrices de programación.

Búsqueda de nombres comunes

Se compararon los nombre de las funciones, procedimientos y definiciones en búsqueda de coincidencias. Todas los nombre coincidentes se compararon lado a lado.

Comparativa de la estructuración del software

El software estaba estucturado en tres capas: Gráfica / Lógica / de interacción con hardware. Seguía parcialmente el paradigma MVC. La estructura de ambos códigos fue comparada para determinar partes plagiadas.

Comparativa de la interficie gráfica

Documentar los parecidos en la interficie gráfica. En algunos aspectos, los parámetros recogidos por la interficie gráfica no podían diferir. Estudiar la manera en que se implementó la misma. Era un modelo de vistas común a ambos proyectos.

Estudio de la documentación

Se estudia toda la documentación obrante en expediente judicial: Informe policial, demanda y contestación, para encontrar las bases y las claves del procedimiento.

Dictamen sobre las funcionalidades o partes comunes del software

Se dictaminó sobre todas las coincidencias y el motivo de las mismas. Una coindicencia no necesariamente indica que haya habido plagio. Dos funciones pueden ser iguales:

  • Al formar parte de una librería externa importada
  • Por implementar un mismo algoritmo de uso y conocimiento común
  • Siendo implementaciones rutinarias o incluso generadas automáticamente (getters / setters, interficies etc)

Resultados obtenidos:

El informe aclaró:

  • Que pártes del código fueron reaprovechadas.
  • El posible lucro ilegítimo con el reaprovechamiento de código.
  • La existencia de mala fe.
  • Si la re-utilización de metodologías aducida por la empresa era punible, o podía quedar dentro de lo que es habitual.