Rappresenta lo stesso stato con diverse azioni basate su un evento / azione

-4

Sto progettando un diagramma di stato per il mio software. Voglio rappresentare il seguente scenario

L'applicazione è nello stato X
--- > (stato X)

Può avere due eventi / azioni, ad es. azione A e azione B

Se l'azione A viene eseguita, passa allo stesso stato X e nuovamente all'azione A e l'azione B è disponibile.

Ma, se l'azione B viene eseguita, passa di nuovo nello stesso stato X, ma ora l'azione A e l'azione B non sono disponibili, invece due nuove azioni, l'azione C e l'azione D sono disponibili.

l'azione C e l'azione D torneranno di nuovo allo stesso stato X

Come posso rappresentarlo?

    
posta adi rohan 05.02.2018 - 08:58
fonte

2 risposte

3

Per rendersi conto che l'ultima azione era A vs. B, è necessario ricordare qualcosa.

In una macchina a stati, ricordare qualcosa che è accaduto in passato è fatto con stati separati !

Quindi, è necessario introdurre stati separati per ricordare se l'ultima azione è stata A o B.

Nello stato X puoi accettare A & B. Su A stai in stato X. Su B si passa a X ', che può accettare C & D, che ti riporta indietro a X o X '(a tua scelta).

X e X 'non sono lo stesso stato!

Solo perché i due o più stati sono molto simili non significa che puoi ottimizzarli in un singolo stato. In pratica, ottimizza prematuramente i tuoi stati.

    
risposta data 05.02.2018 - 15:37
fonte
0

Beh, sembra che tu stia dicendo questo

matuvuoichetuttociòsiaunostato.Ciònonhasenso,nonperchénonpuoiaverequellostatoecambiareglieventi/azionidisponibilicomedicitu,maperchéavereunsolostatononhasenso.QuindipermettimidiaggiungereunostatoYeunmodoperraggiungerloetornareindietro.

Ora questo potrebbe essere semplificato in una macchina a stati piuttosto che nidificandone uno dentro l'altro come se mi avessi fatto qui per soddisfare questo requisito torturato. Ma niente dice che devi. Se lo si semplifica, e diventa disponibile negli stati x1 e x2. Ciò viola le tue esigenze.

Quindi questa soluzione offre due macchine a stati che le soddisfano esplicitamente facendo in modo che lo stato x non abbia nulla a che fare con a, b, c o d. Allo stesso modo x non ha niente a che fare con e e f. Proprio come nelle tue esigenze.

    
risposta data 05.02.2018 - 10:12
fonte

Leggi altre domande sui tag