Verifica della robustezza del programma mediante l'analisi del codice statico

2

(Basandosi su questa domanda )

Se possiedi un analizzatore di codice statico come Checkstyle , è possibile mettere in relazione qualsiasi cosa che controlla per effettiva robustezza? Alcune delle cose controllate da Checkstyle sono ad esempio:

  • Design della classe : visibilità dei membri della classe, imposizione di public solo membri finali statici, nessun costruttore pubblico per le classi di utilità, eccezioni immutabili ecc.
  • Coding : condizionali in linea, nessuna istruzione vuota, nessuna istanza illegale e numeri magici
  • Duplicazione : controlla la duplicazione del codice,
  • Importa : controlla che i pacchetti siano importati correttamente
  • Metriche : controlla tutto dal numero di volte in cui gli operatori logici sono stati utilizzati in una dichiarazione al numero di classi che la classe data si basa su altre classi (accoppiamento) ecc.
  • Convenzioni di denominazione : controlla molte proprietà del nome della variabile, i nomi dei pacchetti, i nomi dei metodi, i nomi delle classi ecc.

Queste sono solo alcune delle cose principali che Checkstyle cerca. Qualcuno di queste aree può effettivamente "migliorare" la robustezza del codice rilevando "errori"? Voglio dire che aiuta con la leggibilità e altri odori di codice, ma non riesco a vedere come posso riferirlo alla robustezza.

Hai bisogno di consultare il codice in fase di esecuzione per ispezionare effettivamente i problemi di robustezza?

    
posta DSF 22.05.2014 - 21:40
fonte

2 risposte

4

Il codice che è ben progettato e ben scritto è più robusto, perché minimizza i casi limite e le lacune dei conigli che sono più prevalenti nel codice che non segue le "migliori pratiche".

L'analisi statica aiuta la robustezza del codice per gli stessi motivi dei tipi statici; incontri i problemi prima nel ciclo di codifica, perché il compilatore ti dirà che stai sbagliando. Le persone che usano linguaggi tipizzati dinamicamente beneficiano di uno stile di codifica più rilassato, ma devono compensare la mancanza di digitazione statica scrivendo più test unitari.

    
risposta data 22.05.2014 - 22:21
fonte
-1

Tutti i sei punti che hai menzionato aiutano la long-term robustezza e affidabilità del software durante la manutenzione.

Altri strumenti di analisi statica aiutano in diversi modi. Alcuni esempi:

  • SPARK prova a dimostrare che non verranno mai generate eccezioni durante l'esecuzione.
  • GCC tenta di rilevare variabili non inizializzate e rami morti.
risposta data 23.05.2014 - 08:32
fonte

Leggi altre domande sui tag