Menu principale

News:

Ritornati online con una nuova veste grafica

[INFO] Criteri di valutazione di un Software

Aperto da Vincent Vega, 30 Ottobre 2008, 19:10:35

Discussione precedente - Discussione successiva

Vincent Vega

In base a cosa valutate un Software? Faccio questa domanda per capire come posso fare anch'io una valutazione nella maniera più completa e precisa possibile. Di quali strumenti vi servite?
Generalmente mi limito a verificare il consumo di memoria attraverso il Task Manager di Windows o Process Lasso (Diverso da Process Governor).
Vi ringrazio anticipatamente :).

MoNrOo

Io in base a come fa quello per cui è stato programmato. :D
-=#§ MeTaL RuLeZ §#=-

Vincent Vega

Citazione di: Monroo il 30 Ottobre 2008, 21:09:18
Io in base a come fa quello per cui è stato programmato.
E come cap**** come agisce un Software? Spesso non viene resa disponibile molta documentazione :mellow:.

MoNrOo

Beh è semplice.... Se un software mi deve rinominare tutti i file di una cartella come voglio io e lo fa con un clik ed in modo intuitivo lo reputo bene; se un altro magari fa lo stesso lavoro ma devo impostarlo tutto per benino e magari vuole anche il net.framework che all'altro non serve, lo reputo "peggiore" dell'altro.

Esempio stupido per rendere l'idea, ovviamente. Poi, che c'entra...si può stare a disquisire sull'uso di Ram e altre cose, ma conta l'atto pratico... Se un software fa quello per cui lo installo e lo fa meglio di altri lo reputo migliore...
Cioè, non vedo la tua difficoltà :D
-=#§ MeTaL RuLeZ §#=-

Vincent Vega

Vorrei capire come lo fa...
Per farti un esempio, io so, a grandi linee, che se vado su Start > Spegni Computer richiamo l'applicazione denominata shutdown, contenuta in %systemroot%\system32.
Quel che mi chiedo è se esiste un qualche metodo per capire come un programma fa una determinata cosa.

MoNrOo

Beh...secondo me ti stai facendo un po' di pippe mentali, comunque senti MsZ... Lui ha una risposta a tutto...

Strano che non abbia ancora notato questa discussione...
-=#§ MeTaL RuLeZ §#=-

Walter

L'ho notata :P

L'unico modo pratico per capire che cosa un programma faccia realmente è avere davanti agli occhi il codice sorgente. E, ovviamente, capirlo.
Se non c'è si può fare ricorso ad un debugger.

Un debugger serio fa la traccia completa di tutte le chiamate di sistema e non, della memoria e delle letture/scritture delle periferiche da e per il processore. Meglio di così non si potrebbe volere, ma il fatto è che non tutti sanno interpretare i messaggi di un debugger. Tanto varrebbe leggersi il codice oggetto del binario, ma sarebbe ancora più impervio determinare che cosa fa in quale punto.

Però, anche avendo un debugger, si può solo sperare che nel binario ci siano sufficienti informazioni di debug leggibili dal debugger. L'ottimizzazione della compilazione comprende anche il discard dei simboli: in GNU/Linux esiste il tool strip che cancella i simboli di debug dai binari o dalle librerie. Stesso effetto si può ottenere passando l'opzione -OX (quella che sembra uno zero è in realtà una O maiuscola) con, al posto di X, un numero da 0 a 3, che fa più ottimizzazioni mano a mano che il numero sale. Il minimo è -O0 che non passa flag di ottimizzazione al compilatore e tutti i simboli vengono mantenuti. Un eseguibile compilato con -O0 è molto più "corposo" di uno compilato con -O3, sebbene abbia molte più informazioni di debug. Ogni scelta ha un prezzo.

Non usate strip --strip-all sulle librerie condivise. I simboli di rilocazione verranno cancellati e le librerie verranno distrutte.

CitazioneIn base a cosa valutate un Software?
Oltre a quanto già detto da Monroo, per me sono fondamentali le risorse utilizzate: memoria e processore. Più un programma è semplice, ottimizzato e completo (entro i limiti del possibile) migliore è per me. E' un delicato equilibrio che misura anche la capacità dello sviluppatore.
L'unica banalità sta nel giudizio.

Vincent Vega

#7
Citazione di: MsZ il 31 Ottobre 2008, 14:52:33
L'unico modo pratico per capire che cosa un programma faccia realmente è avere davanti agli occhi il codice sorgente. E, ovviamente, capirlo.
Non sarei in grado, purtroppo, e spero per poco, di capire del codice.
Citazione di: MsZ il 31 Ottobre 2008, 14:52:33
Se non c'è si può fare ricorso ad un debugger.
Sapevo che alcuni Sistemi Operativi Microsoft contenevano un Debugger di Default. Dovrò informarmi meglio in materia. Per ora provo OllyDbg; speriamo di capirci qualcosa. Il problema è che Software del genere, sono spesso Sharware.
Citazione di: Monroo il 31 Ottobre 2008, 13:25:25
Beh...secondo me ti stai facendo un po' di pippe mentali...
Non sei la prima persona che me lo dice ^-^.