Supponiamo di avere tre Organizzazioni (A
, B
, C
), tre Prodotti (X
, Y
, Z
) e un Referente delegato secondo la seguente matrice:
A | B | C | |
---|---|---|---|
X | • | • | |
Y | • | ||
Z | • |
Il backoffice di un Prodotto per un'Organizzazione è rappresentato dalla tupla (P,O)
.
La navigazione da SelfCare Dashboard avviene settando entrambi i valori P
e O
stateDiagram-v2
SC --> (X,A): nav(X,A)
La navigazione tra backoffice avviene cambiando uno solo dei due valori.
stateDiagram-v2
(X,A) --> (X,B): nav(_,B)
Il Prodotto si cambia dal menu laterale, l'Organizzazione dallo switch nel header.
Uno stato invalido è una tupla con un Prodotto e un'Organizzazione che non sono associati - viene indicato con !403.
A seconda di cosa viene visualizzato nel menu laterale si concretizzano diversi scenari di navigazione
stateDiagram-v2
SC --> (X,A): nav(X,A)
SC --> (X,B): nav(X,B)
SC --> (Y,B): nav(Y,B)
SC --> (Z,C): nav(Z,C)
(X,A) --> (X,B): nav(_,B)
(X,A) --> !403: nav(_,C)
(X,A) --> !403: nav(Y,_)
(X,A) --> !403: nav(Z,_)
(X,B) --> (X,A): nav(_,A)
(X,B) --> !403: nav(_,C)
(X,B) --> (Y,B): nav(Y,_)
(X,B) --> !403: nav(Z,_)
(Y,B) --> !403: nav(_,A)
(Y,B) --> !403: nav(_,C)
(Y,B) --> (X,B): nav(X,_)
(Y,B) --> !403: nav(Z,_)
(Z,C) --> !403: nav(_,A)
(Z,C) --> !403: nav(_,B)
(Z,C) --> !403: nav(X,_)
(Z,C) --> !403: nav(Y,_)
stateDiagram-v2
SC --> (X,A): nav(X,A)
SC --> (X,B): nav(X,B)
SC --> (Y,B): nav(Y,B)
SC --> (Z,C): nav(Z,C)
(X,A) --> (X,B): nav(_,B)
(X,A) --> !403: nav(Y,_)
(X,A) --> !403: nav(Z,_)
(X,B) --> (X,A): nav(_,A)
(X,B) --> (Y,B): nav(Y,_)
(X,B) --> !403: nav(Z,_)
(Y,B) --> (X,B): nav(X,_)
(Y,B) --> !403: nav(Z,_)
stateDiagram-v2
SC --> (X,A): nav(X,A)
SC --> (X,B): nav(X,B)
SC --> (Y,B): nav(Y,B)
SC --> (Z,C): nav(Z,C)
(X,A) --> (X,B): nav(_,B)
(X,A) --> !403: nav(_,C)
(X,B) --> (X,A): nav(_,A)
(X,B) --> !403: nav(_,C)
(X,B) --> (Y,B): nav(Y,_)
(Y,B) --> !403: nav(_,A)
(Y,B) --> !403: nav(_,C)
(Y,B) --> (X,B): nav(X,_)
scenario | che succede |
---|---|
1 | C'è la massima libertà di navigazione, ma il 75% delle transizioni porta ad uno stato non valido |
2 | Lo switch non è consitente (il contenuto cambia quando si naviga dal menù), 50% delle transizioni porta ad uno stato non valido |
3 | Lo menù laterale non è consitente (il contenuto cambia quando si naviga dallo switch), 50% delle transizioni porta ad uno stato non valido |