🏠 Home

⬅️ Back


Coreografia

(
  (
    request: a → acme;                                      // Richiesta dall'acquirente
    
    ( 
      ( askDist: acme → dist; replyDist: dist → acme )* ;   // Ciclo di proposta case
       proposal: acme → a; proposalReply: a → acme
    )*;

    1 
      +  
    ( 
      (
        askAvail: acme → v;                                 // Accordo sulla disponibilita'
        availReply: v → acme; 
        sendMeetingProposal: acme → a;
        meetingProposalReply: a → acme; 
        
        1
          +
        (
          sendMeetingProposal: acme → v;
          meetingProposalReply: v → acme
        )
      );
        
      (
        meetDenies: acme → v | meetDenies: acme → a         // No accordo, no incontro
      )
        + 
      (
        (
          meetAgree: acme → v | meetAgree → acme → a        // Incontro fatto
        );
                
        (
          (
            1                                               // Richiesta di prestito opzionale
              +  
            (
              loanRequest: a → bank; 
              loanReply: bank → a
            )
          );
                      
          (                                                 // No offerta dopo l'incontro
            noOffer: a → acme;                              // o dopo prestito rifiutato  
            noOffer: acme → v 
          )   
            + 
          (
            offer: a → acme;                                // Offerta
                            
            (
              (
                ( 
                  askCada: acme → cada;                     // Richiesta al catasto
                  replyCada: cada → acme    
                );
                                      
                1                                           // Ok
                  +                                         // oppure
                ( 
                  askCada: acme → cada;                     // Risistemo indirizzo
                  replyCada: cada → acme;
                                          
                  1                                         // Ok
                    +                                       // oppure
                  sendAgent: acme → cada                    // Invio personale
                )
              )
                |                                           // parallelamente
              ( 
                askDist: acme → dist;                       // Richiesta distanza notaio
                replyDist: dist → acme 
              )* ;                                          // Per ogni notaio in lista
            );
        
            offer: acme → v;                                // Proposta al venditore
      
            (
              (
                denyOffer: v → acme                         // Venditore rifiuta
                vendorDenied: acme → a
              )
                + 
              (
                agreeOffer: v → acme;                       // Venditore accetta
                vendorAgreed: acme → a;
                (
                    pay: a → bank;                          // Invia la caparra
                    confirmPayment: bank → a
                )*;
                notifyPayment: bank → v;
                                  
                ( 
                  signContract: a → nota | signContract: v → nota 
                );

                (
                    contractDone: nota → a
                    |
                    contractDone: nota → acme
                    |
                    contractDone: nota → v
                );

                (
                    pay: a → bank;                          // Pagamento ad acme
                    confirmPayment: bank → a
                )*;
                notifyPayment: bank → acme;
                
                (
                    pay: a -> bank;                         // Pagamento al venditore
                    confirmPayment: bank → a
                )*;
                notifyPayment: bank → v
              )
            )
          ) 
        )
      )
    )         
  ) 
    | 
  (
    offer: v → acme                                         // Offerta di casa dal venidtore
  )
)

Coreografia in BPMN (sources)

Le coreografie BPMN delle istanze di processo avviate in risposta alle richieste di acquirente e venditore sono state realizzate usando Lucidachart come editor online.

Analisi di Connectedness

La coreografia riportata sopra gode della proprietĂ  di connectedness. Di seguito si effettua una analisi dettagliata per dimostrarlo:


➡️ Next