Refactorización por temas de estilo y mejoras de diseño:

- Refactoritzat AppEvaluation.run() pels següents problemes:
 - Funció massa llarga.
 - Declaració de variables no acotades al seu àmbit d'ús (s'ha d'intentar reduir la visibilitat).
 - Declaració de variables allunyades del seu ús.
 - Nom de variables no descriptiu (cP, gsv, ...). L'ús de noms curts hauria de restringir-se als índexs dels bucles i poca cosa més.
 - La signatures a comparar tenien el mateix problema que els patrons. S'estaven calculant per cada threshold.

- Ús de OutlierFeatureSignatureValidator com a classe d'alt nivell per executar l'algorisme.
 - El GenericSignatureValidator es queda com a Validador genèric de qualsevol implementació. Només implementa la seqüència de passos de: preprocessat, extracció de features i algorisme de check (Determiner).

- Afegida GenericSignatureValidator.check( Signature ) / OutlierFeatureSignatureValidator.check( Signature )
 - Aquest mètode és discutible ja que trenca l'ortogonalitat del Validador. En principi el validators només haurien de rebre mostres sense processar (CaptureData). S'ha afegit per optimitzar el càlcul del FRR i FAR.

- Els constructors del Validators reben la llista de mostres que conformaran el patró (en comptes de per paràmetre del check). Això ja estava així, suposo que no em vaig explicar bé quan et vaig dir allò de que 'l'estat viatgés com a paràmetre del mètodes'. Em referia, per exemple, als vectors que recopilaven el veredicte de si una feature passava o no. En aquest cas, el patró sembla inherent al validador.

- Eliminada la llista de features a OutlierFeatureSignaturePattern, ara es calcula a partir de les features que vénen a les mostres. S'ha de minimitzar el nombre de llocs a tocar si s'afegeix (o es treu) una feature.

- Construcció del vector de pesos de OutlierFeatureSignaturePattern de forma estàtica. Per ara aquest vector no depèn de les dades, si depengués es posaria com atribut de l'objecte i no de la classe.

- Eliminats els atributs OutlierFeatureSignaturePattern.FRVector i OutlierFeatureSignaturePattern.FRVectorValues. Ara l'estat de l'operació compare 'viatja' com a paràmetre del mètodes (featureCheckResults).

- Responsabilitats entre OutlierFeatureSignaturePattern i PatternsStatistics re-distribuïdes. PatternsStatistics només manté l'estat del patró, el OutlierFeatureSignaturePattern fa servir aquest estat. El PatternsStatistics es pot veure com una classe privada del OutlierFeatureSignaturePattern.
 - Eliminat PatternsStatistics.compareFunctions

- Els dos bucles de OutlierFeatureSignaturePattern.insidersRateCompute s'han fusionat.

- Eliminada la llista de features a PatternsStatistics, ara es fan servir les que venen a les mostres. S'ha de minimitzar el nombre de llocs a tocar si s'afegeix (o es treu) una feature.
 - La primera mostra es fa servir com model de les features que tindrà el patró
 - Si alguna mostra de la resta presenta features diferents a la primera, es considera un error.

- El constructor PatternsStatistics presentava uns problemes d'estil similars al AppEvaluation.run().

- Eliminat CreatePatterns. Té a veure amb la generalització de GenericSignatureValidator i amb la visió externa que ha de tenir la classe PatternsStatistics.

- Afegida la interficie FunctionComparator. Aquesta interfice representa els algorismes per mesurar la distancia entre dues funcions. S'ha afegit per estalviar el càlcul del camí de warping en els casos que no fos necessari (com en el nostre). Veien com a canviat la implementació de GeneralDTW s'entén millor.

- Creat el FunctionFeatureComparator que compara features basat en un FunctionComparator. Ara fa servir el FastDTW que és un 'adaptor' sobre la llibreria fastdtw.
 - Ara el OutlierFeatureSignaturePattern fa servir aquesta classe.

- Eliminada la classe Statistics. S'ha reemplaçat per el DescriptiveStatistics.