L’intelligenza artificiale e gli standard di modellazione UML, SysML, BPMN

Gli standard di modellazione permettono di rappresentare efficacemente le caratteristiche dei sistemi organizzativi e informatici.

UML (Unified Modeling Language) è lo standard per rappresentare i sistemi software.

SysML (Systems Modeling Language) è lo standard per rappresentare sistemi complessi, costituiti da elementi hardware e software.

BPMN (Business Process Model and Notation) è lo standard per rappresentare i processi organizzativi.

Sono standard molto diffusi e molto utili, perché consentono di comunicare in modo efficace, efficiente e preciso sia all’interno di una singola organizzazione, sia quando organizzazioni distinte vogliono collaborare tra loro.

Quanto può essere utile l’intelligenza artificiale generativa per aiutare analisti e progettisti nell’uso di questi standard?

Lo si può vedere negli esempi che seguono, in cui ho usato ChatGPT di OpenAI nella versione Plus con accesso al modello GPT 4, che permette di usare file allegati come input e come output per l’interazione con il LLM (Large Language Model).


Creare diagrammi UML e SysML

[Prompt utente]: “Crea un diagramma UML che rappresenti il prelievo di denaro da un ATM bancario

[ChatGPT]:

Per rappresentare il processo di prelievo di denaro da un ATM usando la notazione UML, userò un diagramma di sequenza UML. Questo diagramma mostrerà le interazioni tra l’utente e l’ATM in ordine temporale, con i seguenti passaggi:

  1. Avvicinamento all’ATM: L’utente inizia l’interazione.
  2. Inserimento della carta: L’utente inserisce la carta nell’ATM.
  3. Richiesta e inserimento PIN: L’ATM richiede il PIN, e l’utente lo inserisce.
  4. Selezione dell’importo: L’utente seleziona l’importo del prelievo.
  5. Convalida della transazione: L’ATM convalida la transazione e verifica il PIN.
  6. Erogazione del denaro: L’ATM eroga il denaro.
  7. Fine dell’operazione: L’utente prende il denaro.

Ora creerò un diagramma di sequenza UML che rappresenta questi passaggi.

Ecco il diagramma di sequenza UML per il processo di prelievo di denaro da un ATM. Questo diagramma mostra chiaramente le interazioni tra l’utente e l’ATM, con le linee di vita verticali per ciascun partecipante e le frecce orizzontali che rappresentano le interazioni. Puoi utilizzare questo diagramma come riferimento per comprendere il flusso del processo.

Il diagramma è stato prodotto automaticamente con DALL-E. La conoscenza delle caratteristiche di un diagramma di sequenza UML, che ChatGPT esprime testualmente in modo sintetico ma sostanzialmente giusto, non si traduce invece nella capacità di creare un diagramma di sequenza corretto e comprensibile. Preso atto di questa incapacità, ho voluto verificare se il comportamento migliorasse nel caso di SysML.

[Prompt utente]: “Grazie. Puoi anche farlo in SysML?

[ChatGPT]:

Creare un diagramma in SysML (Systems Modeling Language) per rappresentare il processo di prelievo di denaro da un ATM è una sfida interessante. SysML è più orientato alla modellazione di sistemi complessi, quindi la rappresentazione di un processo come un prelievo ATM potrebbe non essere così diretta come in BPMN o UML. Tuttavia, posso creare un diagramma di blocco SysML che rappresenti i componenti coinvolti e le loro relazioni.

Il diagramma includerà:

  1. Blocchi per i partecipanti: Un blocco per l’utente e uno per l’ATM.
  2. Blocchi per le azioni: Blocchi separati per azioni come l’inserimento della carta, l’inserimento del PIN, la selezione dell’importo, la convalida della transazione e l’erogazione del denaro.
  3. Relazioni: Collegamenti che mostrano come le azioni sono correlate tra loro e ai partecipanti.

Ora procederò con la creazione del diagramma di blocco SysML.

Diagramma di blocco SysML creato con DALL'E

Ho creato un diagramma di blocco SysML per il processo di prelievo di denaro da un ATM. Questo diagramma mostra i blocchi per l’utente, l’ATM e le varie azioni, nonché le relazioni tra di essi, illustrando le interazioni e le dipendenze nel processo di prelievo. Puoi utilizzare questo diagramma per una visione basata su SysML del processo.

Anche in questo caso il diagramma prodotto con DALL-E presenta una sintassi poco comprensibile e dei testi illeggibili.


Valutare la correttezza di diagrammi UML (e SysML)

In questo secondo esercizio ho fornito a ChatGPT un diagramma, chiedendo di valutarne la correttezza in termini di UML (il risultato sarebbe lo stesso per SysML, in quanto nel caso specifico la sintassi è la medesima).

Diagramma UML da valutare

[Prompt utente]: “Descrivi in dettaglio e analizza il diagramma UML che ti allego. Ti sembra corretto?”

[ChatGPT]:

Il diagramma UML che hai caricato sembra essere un diagramma di attività, che è uno dei tipi di diagrammi utilizzati nella modellazione UML (Unified Modeling Language) per rappresentare i flussi di lavoro o i processi. Il diagramma mostra il flusso di azioni o attività in un sistema o processo. Vediamo cosa rappresenta ogni simbolo e come si legge il diagramma:

  1. Cliente: Il punto di partenza del diagramma, rappresentato da un simbolo di un omino, indica il ruolo o l’entità che avvia il processo.
  2. Modulo ordine: Questo rettangolo con i lati ondulati rappresenta un’attività o un’azione che deve essere compiuta, in questo caso, il completamento di un modulo d’ordine.
  3. Ordine valido?: Dopo che il modulo d’ordine è stato completato, c’è una decisione rappresentata da un rombo che indica un punto di controllo del flusso dove si decide se l’ordine è valido o meno.
  4. Si: Se l’ordine è valido, il flusso procede verso l’azione “fatturare”, indicata da un cerchio, che presumibilmente rappresenta la generazione di una fattura.
  5. No: Se l’ordine non è valido, il flusso si dirige verso un’altra azione o stato, che è “aspettare”, indicato da un triangolo capovolto.

L’analisi del diagramma suggerisce che c’è un processo lineare con una biforcazione basata sulla validità dell’ordine. Se l’ordine è valido, si procede con la fatturazione; altrimenti, si entra in uno stato di attesa, che potrebbe implicare un’ulteriore verifica o correzione dell’ordine.

Sulla base delle convenzioni standard di UML per i diagrammi di attività, il diagramma sembra essere correttamente strutturato. Tuttavia, ci sono alcune considerazioni da fare:

  • Clarity: Il diagramma è relativamente semplice e chiaro, ma potrebbe essere più descrittivo. Ad esempio, cosa succede dopo “aspettare”? C’è un ciclo di ritorno per la correzione dell’ordine?
  • Simboli UML: I simboli utilizzati sembrano aderire agli standard UML, ma di solito, lo stato di “attesa” è rappresentato in un modo diverso, come con un’azione o un’attività. Il triangolo potrebbe non essere standard.
  • Completeness: Il diagramma mostra un percorso molto basilare e non include eventuali azioni aggiuntive o flussi alternativi che potrebbero verificarsi.

In questo caso ChatGPT ha individuato correttamente gli elementi presenti nel diagramma, anche se li ha interpretati in modo creativo e non secondo lo standard. Interessanti i dubbi che vengono espressi in merito all’incompletezza del processo rappresentato.

Creare diagrammi BPMN

[Prompt utente]: “Crea un diagramma BPMN che rappresenta la collaborazione tra un ATM e l’utente dell’ATM che vuole effettuare un prelievo.

[ChatGPT]:

Per creare un diagramma BPMN che rappresenta la collaborazione tra un ATM e un utente che vuole effettuare un prelievo, includerò i seguenti passaggi:

  1. Inizio del processo: L’utente si avvicina all’ATM.
  2. Inserimento della carta: L’utente inserisce la carta nell’ATM.
  3. Richiesta PIN: L’ATM richiede il PIN all’utente.
  4. Inserimento PIN: L’utente inserisce il PIN.
  5. Verifica PIN: L’ATM verifica il PIN.
  6. Selezione dell’importo del prelievo: L’utente seleziona l’importo del prelievo.
  7. Convalida della transazione: L’ATM convalida la transazione.
  8. Erogazione del denaro: L’ATM eroga il denaro.
  9. Fine del processo: L’utente ritira il denaro.

Creerò un’immagine di questo diagramma.

Diagramma BPMN creato con ChatGPT e DALL'E

Ecco il diagramma BPMN che rappresenta la collaborazione tra un ATM e un utente che effettua un prelievo. Il diagramma illustra chiaramente i vari passaggi del processo, dalla fase iniziale di avvicinamento all’ATM fino al ritiro del denaro. Puoi visualizzarlo e usarlo come riferimento per il tuo processo.

Anche in questo caso la sequenza dei passi del processo sembra logicamente appropriata, mentre il diagramma creato non segue la sintassi dello standard BPMN.

Valutare diagrammi BPMN

[Prompt utente]: “Descrivi in dettaglio e analizza il diagramma BPMN che ti allego. Ti sembra corretto?

Diagramma BPMN errato sottoposto a ChatGPT

Il diagramma che hai caricato appare essere un diagramma di flusso del processo di business (BPMN). Ecco una descrizione dettagliata e analisi del diagramma:

  1. Elementi del diagramma: Il diagramma include due attività (rappresentate da rettangoli con angoli arrotondati) e una freccia che indica il flusso o la transizione da un’attività all’altra. Una delle attività è tratteggiata, il che potrebbe indicare che è un’attività opzionale, non ancora definita completamente, o un’attività che non è sempre eseguita.
  2. Suddivisione in “Piscine” e “Corsie”: Ci sono due “corsie” (swimlanes) suddivise in una “piscina” (pool). La corsia superiore è etichettata come “banca” e quella inferiore come “cliente”. Questo indica che il processo coinvolge due entità distinte: la banca e il cliente, e che ogni corsia rappresenta il flusso di lavoro o le responsabilità di ciascuna entità.
  3. Flusso del processo: Il processo inizia con l’attività “a” nella corsia della banca. Dopo l’attività “a”, il processo si sposta verso l’attività “b”, come indicato dalla freccia piena. Questo implica che, dopo il completamento dell’attività “a”, l’attività successiva sarà “b”. Infine, c’è una freccia che punta verso l’esterno dall’attività “b”, che potrebbe significare il termine dell’attività “b” o la transizione verso un’attività successiva non mostrata nel diagramma.
  4. Interazioni tra corsie: Una freccia tratteggiata punta verso il basso dalla corsia della banca alla corsia del cliente, il che suggerisce un’interazione o una comunicazione tra la banca e il cliente. Non è chiaro quale sia l’azione specifica poiché il diagramma non etichetta l’interazione.

Valutazione della correttezza:
Per valutare la correttezza del diagramma BPMN, occorrerebbe considerare il seguente:

  • Convenzioni di Modellazione: Bisogna assicurarsi che il diagramma segua le convenzioni standard di BPMN per quanto riguarda la notazione degli elementi e i flussi.
  • Completeness: Il diagramma dovrebbe rappresentare completamente il processo dal suo inizio alla fine. In questo caso, sembra che il processo finisca con l’attività “b”, ma non è chiaro se questo sia l’intento.
  • Chiarezza: Tutte le interazioni e le transizioni dovrebbero essere chiaramente etichettate e dovrebbero essere fornite abbastanza informazioni per comprendere le azioni e le decisioni prese in ogni passaggio.
  • Logica: La sequenza delle attività dovrebbe avere senso logico e dovrebbe corrispondere al flusso reale del processo aziendale che viene rappresentato.

In base a ciò che è mostrato, non posso confermare se il diagramma sia corretto o meno senza ulteriori dettagli sul processo specifico che sta tentando di rappresentare. Per migliorare il diagramma, considera l’aggiunta di etichette per le attività e le interazioni e assicurati che il flusso del processo sia completo e logicamente sequenziale.

Il diagramma sottoposto alla valutazione di ChatGPT presentava alcuni errori non rilevati:

  • due attività sono collegate da un flusso di messaggio (errore) invece che da un flusso di sequenza
  • i due pool coinvolti nella collaborazione sono collegati da un flusso di sequenza (errore) invece che da un flusso di messaggio
  • l’attività “b” nel pool “Banca” ha un flusso di sequenza privo di destinazione (errore)

Inoltre ChatGPT, come accade a volte, vede cose che non esistono:

  • un’attività tratteggiata (che non c’è)
  • un pool suddiviso in due corsie (lane), mentre il diagramma presenta due pool
  • una freccia tratteggiata che collega i due pool

Considerazioni

L’intelligenza artificiale generativa – o quantomeno ChatGPT nella sua versione Plus con GPT 4.0 – non è attualmente, gennaio 2024, in grado di fornire aiuti significativi per la valutazione della correttezza di diagrammi UML, SysML e BPMN. E neanche nella loro creazione.

Probabilmente le lacune attuali verranno superate da versioni future dei modelli, si vedrà.

Come per tutta l’intelligenza artificiale generativa, in ogni caso, bisogna evitare di correre il rischio di accettare ciò che l’IA generativa produce senza un controllo umano. Anche quando prende cantonate, lo fa in modo da sembrare convincente a chi non è esperto.

Vedi anche: Intelligenza artificiale e Data Modeling, Intelligenza artificiale e casi d’uso

Riferimenti per la formazione:

SysML: System Engineering

UML: analisi e progettazione software

BPMN in auto-istruzione

Analisi dei processi di business con BPMN

Prompt Engineering – usare al meglio l’intelligenza artificiale generativa