Pericial de programari

S' encarrega un informe pericial de programari. Dictaminar si un ex-empleat havia utilitzat codi font per produir un producte similar per a una altra empresa. L'informe es va fer a encàrrec de la fiscalia.

 

Base documental:

  • Estudi de la documentació presentada, inclusivament informe de la policia.
  • Anàlisi del disc dur de l' imputat.
  • Comparativa de codi font, amb les versions del mateix a l' empresa i amb altres desenvolupaments en curs.
  • Recerca d'altres evidències en el disc dur, com codi compilat, documents remesos a tercers relacionades amb el tema, inspecció dels eMails enviats/rebuts, etc.

 

Parts de la pericial

El programari controlava dues màquines eina. Tenia forta interacció amb maquinari i programació a baix nivell. La tasca era complexa amb desenvolupaments de més de 80.000 línies de codi. Estava codificat en visual basic de Microsoft.

Per conèixer si s' havia realitzat plagi en el programari es va procedir les següents tasques:

Clonat de dues màquines virtuals amb les dues versions

Es van clonar en sengles màquines vituals que emulaven el comportament de les màquines / eina controlades (entorn de test). Hi corria el mateix programari que a la màquina eina. Així es podia emular el seu comportament en un PC.

Estudi dels dispositius controlats pel programari

Les dues màquines controlades van ser també objecte de comparació. Es van trobar similituds entre aquestes, en tenir una funcionaliad similar per això es van estudiar les coincidències, per saber fins a quin punt forçaven una coincidència en el programari.

Comparativa estadística

A nivell estadístic, es va dictaminar sobre les línies de codi que componien ambdues versions i la seva estructuració. L'objectiu era identificar patrons comuns i conèixer si hi havia hagut un canvi en l'estil i les directrius de programació.

Recerca de noms comuns

Es van comparar els nom de les funcions, procediments i definicions en recerca de coincidències. Totes els noms es van comparar a banda.

Comparativa de l' estructuració del programari

El programari estava estucturat en tres capes: Gràfica / Lògica / d'interacció amb maquinari. Seguia parcialment el paradigma MVC. L' estructura d' ambdós codis va ser comparada per determinar parts plagiades.

Comparativa de la interfície gràfica

Documentar els semblants en la interfície gràfica. En alguns aspectes, els paràmetres recollits per la interfície gràfica no podien diferir. Estudiar la manera com es va implementar la mateixa. Era un model de vistes comú a ambdós projectes.

Estudi de la documentació

S' estudia tota la documentació obrant en expedient judicial: Informe policial, demanda i contestació, per trobar les bases i les claus del procediment.

Dictamen sobre les funcionalitats o parts comunes del programari

Es va dictaminar sobre totes les coincidències i el motiu d' aquestes. Una coindicència no necessàriament indica que hi hagi hagut plagi. Dues funcions poden ser iguals:

  • En formar part d' una llibreria externa importada
  • Per implementar un mateix algoritme d' ús i coneixement comú
  • Sent implementacions rutinàries o fins i tot generades automàticament (getters / setters, interfícies etc)

 

Resultats obtinguts:

L' informe va aclarir:

  • Que pàrtes del codi van ser reaprofitades.
  • El possible lucre il·lícit amb el reaprofitament de codi.
  • L' existència de mala fe.
  • Si la re-utilització de metodologies adduïda per l' empresa era punible, o podia quedar dins del que és habitual.