Supponiamo che tu abbia un diagramma di transizione di stato. Qual è il modo migliore per i requisiti di scrittura "Formalmente" che catturano le transizioni di stato illustrate nel diagramma. Nel corso degli anni ho usato due approcci e entrambi funzionano, ma ogni volta che lavoro con nuove persone sembrano esserci disaccordi sul modo migliore per "Formalmente" catturare le transizioni dello stato. L'acquisizione "formale" è necessaria perché vengono utilizzate le matrici di tracciabilità associate a "Casi di test" e "Unità software (ad esempio classi e / o moduli)".
Metodo 1
- Il sistema deve passare tra stati come illustrato nella Figura 1 Diagramma di transizione XYZ.
o
Metodo 2
Guarda il diagramma e scrivi un requisito per ogni transizione.
- All'accensione il sistema inizierà nello stato Comms-Init.
- Una volta stabilite le comunicazioni, il sistema passerà allo stato di inizializzazione.
- (es. un requisito per ogni transizione di stato)
Il vantaggio del metodo 1 è che è un requisito e molto facile da scrivere.
Il confronto con il metodo 1 è che le immagini non funzionano bene con le matrici di tracciabilità ed è più difficile verificare di aver coperto tutte le transizioni.
Il vantaggio del metodo 2 è che ogni transizione può essere associata ai casi e ai moduli di test espliciti nelle rispettive matrici di tracciabilità.
Il problema è che è più lavoro scrivere tutti i requisiti extra e talvolta mettere in parole chiare e accurate ciò che l'immagine mostra chiaramente non è così facile come sembra. Inoltre, i requisiti aggiuntivi sembrano aggiungere più confusione rispetto al valore, il che rende la lettura dei requisiti meno comprensibile piuttosto che più.
Mentre sospetto che la risposta nel caso semplice come quello che ho descritto sia che dipende dal progetto o che non ha molta importanza. Il problema sul mio nuovo progetto è che le cose sono leggermente più complicate (ci sono modi oltre agli stati che interagiscono). Pertanto, il metodo 2 esploderà potenzialmente in molti requisiti.
Quindi sto facendo la domanda perché questa è una di quelle "pratiche" che ho fatto senza sapere veramente "Perché". In genere non mi piace lavorare in questo modo, quindi spero che qualcuno possa indicare valide ragioni per cui un approccio è "più corretto" rispetto all'altro e nel processo imparerò il "Perché", che mi permetterà di capire il modo migliore per personalizzare gli scenari leggermente più complicati.