Come si converte correttamente questo testo in un diagramma di attività (problema con il timer)?

4

Questo è solo un estratto di un testo molto lungo, quello di cui non sono sicuro. Si tratta di una cabina fotografica (un automa che ti fa una foto se inserisci una moneta).

Gli automi hanno una telecamera che sta registrando una volta inserita una moneta. Il cliente ha 2 minuti per congelare il video subito dopo aver inserito la moneta, in modo tale che lui / lei abbia scattato una foto. Quindi il cliente può decidere se desidera stampare questa immagine o tornare alla modalità di registrazione in modo che la fotocamera stia registrando di nuovo in modo da poter riprendere un'immagine. Entro questi 2 minuti, il cliente può passare dalla modalità di registrazione a un'immagine fino a quando decide di stamparla.

Se il cliente ha accettato una foto, verrà stampata. Se dopo 2 minuti non è stata scattata alcuna foto da parte del cliente per la stampa, verrà selezionata e stampata l'ultima foto scattata. Se non è stata scattata alcuna foto, gli automi restituiscono la moneta che è stata inserita dal cliente.

Non sono sicuro dell'inizio. Quindi chiaramente abbiamo 2 cose simultanee all'inizio quando la moneta è inserita: la videocamera sta registrando E il timer da 2 minuti inizia a funzionare. Ma come lo mostri in un diagramma di attività? Posso mostrare entrambe queste cose come un'attività, come quella e andare avanti?

Modifica: qui il diagramma che dovrebbe rappresentare la soluzione di Christophe

Equestoèilmiovecchiodiagrammasbagliato:

    
posta tenepolis 24.11.2018 - 22:09
fonte

1 risposta

7

problema

Il tuo diagramma presenta diversi difetti. Ad esempio, è necessario un join per sincronizzare la registrazione della videocamera e il timer. Ma poi, la semantica significherebbe che entrambe le attività devono essere terminate prima di andare avanti, in modo che alla fine si dovrebbe aspettare almeno 2 minuti.

Soluzione

Per risolvere correttamente questo problema, devi racchiudere la sequenza di azioni che può essere interrotta in una regione interrompibile (punti tratteggiati).

Avresti quindi in questa regione un accetta l'azione dell'evento (o meglio, una azione del tempo di attesa ), che al termine del timer interromperebbe la regione, lasciandola attraverso un bordo di interruzione all'azione che verrà eseguita al timeout.

A proposito, potresti anche considerare un inviare l'azione del segnale rappresentare l'azione "scatta foto", che lascerebbe anche la regione interrompibile. Una volta che un evento / segnale ha causato l'abbandono della regione interrompibile, tutti i token che circolano nella regione vengono considerati immediatamente consumati.

In questa modellazione non avresti bisogno di una forchetta artificiale e ti unisci per un'attività parallela non esistente.

Troverai un esempio completo con timeout qui .

    
risposta data 24.11.2018 - 23:51
fonte

Leggi altre domande sui tag