Il requisito che hai scritto non ha le caratteristiche di un buon requisito . In particolare, non è coeso, non è atomico e non è inequivocabile. A causa della mancanza di queste caratteristiche, non è anche facilmente verificabile.
Il requisito di stato iniziale è:
Il nome del file scaricato può contenere caratteri non ASCII e l'elaborazione di questo non deve causare l'arresto anomalo dell'applicazione
Vorrei raccomandare di rimuovere "... e l'elaborazione di questo non deve causare l'arresto anomalo dell'applicazione". Se hai un requisito che un software deve fare qualcosa, penso che sia giusto supporre che dovrebbe farlo senza crash del software.
Questo trasforma il requisito in:
Il nome del file scaricato può contenere caratteri non ASCII
Ora hai un requisito coesivo e atomico. Tuttavia, non sono sicuro che sia inequivocabile. Nella tua domanda, fai riferimento a diversi formati. Ci sono alcune opzioni
Alcuni raccomanderebbero un requisito separato e unico per ogni codifica del nome file che deve essere supportato. Ciò supporterebbe al meglio requisiti coerenti, atomici, tracciabili, non ambigui e verificabili. Sarebbe anche più facile specificare l'importanza di ogni requisito - forse il supporto per alcune codifiche è più importante o necessario prima.
Altri potrebbero raccomandare una tabella di formati supportati e questo requisito si collegherebbe a una tabella. Sarebbe meno completo (hai una frase testuale e una tabella da mantenere), ma sarebbero nello stesso documento o database. Tuttavia, se avessi intenzione di eseguire il collegamento in uno strumento di gestione dei requisiti, potrebbero essere collegati tra loro in modo che le modifiche a uno evidenzino il requisito collegato. Consentirebbe inoltre al testo di fluire verso altri pacchetti software così come sono, ma con una tabella diversa per codifiche diverse.
Tuttavia, il modo in cui documenti i requisiti dipende dalle tue esigenze specifiche.