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.