Progetto
Consultazione 2021/61: Modifica dell’ordinanza sui diritti politici (ODP) e dell’ordinanza della CaF concernente il voto elettronico (OVE) · 47 pagine
Fedlex · Progetto · Pagina 43Fedlex · Progetto
Ordinanza della CaF concernente il voto elettronico RU …
25.9 Modularità
25.9.1 Per modularità si intende la proprietà del software di fornire una struttura
di moduli altamente indipendenti.
25.9.2 Il compito dei singoli moduli è definito in modo chiaro.
25.9.3 Il compito dei singoli moduli dovrebbe essere ristretto e mirato e gli
obiettivi di due moduli non dovrebbero accavallarsi.
25.9.4 I moduli non condividono dati attraverso una memoria volatile comune (p.
es. variabile globale).
25.10 Semplicità
25.10.1 Per semplicità si intende l’implementazione delle funzioni nel modo più
comprensibile possibile. In generale, si tratta di evitare le pratiche che aumentano la complessità.
25.10.2 Nella concezione è applicato un approccio top-down (struttura gerarchi-
ca).
25.10.3 La concezione non prevede alcuna duplicazione di funzioni fra i moduli. 25.10.4 La concezione non prevede dati globali, ossia dati che possono essere
utilizzati da tutti senza essere passati quali parametri.
25.10.5 Nel codice sorgente sono evitate complicate combinazioni booleane.
25.10.6 Nel codice sorgente nessuna variabile viene riutilizzata per scopi diversi
da quelli inizialmente previsti.
25.10.7 Nel codice sorgente il numero di imbricazioni è il più possibile limitato. 25.10.8 La complessità ciclomatica e cognitiva nel codice sorgente è il più possi-
bile limitata.
25.11 Concisione
25.11.1 Per concisione si intende la situazione in cui una funzione può essere
implementata nel codice sorgente con un minimo di istruzioni.
25.11.2 Il software non contiene alcun codice morto («dead code») nel codice
sorgente.
25.11.3 Il codice sorgente non contiene alcuna variabile inutile.
25.11.4 Il codice sorgente non contiene alcuna ripetizione.
25.12 Intelligibilità
25.12.1 Per intelligibilità si intende la capacità del destinatario di riconoscere gli
obiettivi, le ipotesi, le limitazioni, gli input e gli output, le componenti e lo stato del software.