Riassunto di Modellazione dei Dati e Processi Aziendali
Basato sulle lezioni di: Matteo Baldoni Bruni Christian
Indice
Indice iii
1 Introduzione 1
1.1 Triangle of Meaning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Concettualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Sistema Informativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Modelli Concettuali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 Linguaggi di Modellazione . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1.1 Open & Closed World . . . . . . . . . . . . . . . . . . . 4
1.3.2 Cos’è un Modello Concettuale . . . . . . . . . . . . . . . . . . . . . 4
1.3.2.1 Schema Concettuale . . . . . . . . . . . . . . . . . . . . . 5
1.3.2.2 Information Base . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2.3 Schema Strutturale e Comportamentale . . . . . . . . . . 5
1.3.3 Eventi e Aggiornamenti . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3.1 Integrità . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.4 Validazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.5 Business Processes . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Sviluppo di Sistemi Informativi . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Linguaggi di modellazione . . . . . . . . . . . . . . . . . . . . . . 8
2 Object Role Modeling 9
2.1 Entity-Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Unified Modeling Language . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Object Role Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1 Conceptual Schema Design Procedure . . . . . . . . . . . . . . . . 11
2.3.1.1 Passo 1. Trasformare gli Esempi in Fatti Elementari . . . 11
Procedura per il passo 1 . . . . . . . . . . . . . . . . . . . . 13
2.3.1.2 Passo 2. Disegnare i Fact Types . . . . . . . . . . . . . 14
Unary Fact Types . . . . . . . . . . . . . . . . . . . . . . . 15
Fact Type Eterogenei e Omogenei . . . . . . . . . . . . . . 16
Reificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1.3 Passo 3. Verificare la Presenza di Entity Type . . . . . . 17
Elementi Sovrapposti . . . . . . . . . . . . . . . . . . . . . . 17
Stesso tipo di Reference Mode . . . . . . . . . . . . . . . . . 17
Stessa Unità di Misura . . . . . . . . . . . . . . . . . . . . . 18
2.3.1.4 Passo 4. Aggiungere Vincoli di Unicità . . . . . . . . . . 20
Proiezione Concettuale . . . . . . . . . . . . . . . . . . . . . 23
iii
Indice iv
Vincolo di Unicità Esterno . . . . . . . . . . . . . . . . . . . 25
2.3.1.5 Passo 5. Aggiungere Vincoli di Ruolo Obbligatori . . . . 26
Exactly One . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Disjunctive Mandatory Constraint . . . . . . . . . . . . . . 27
Reference Scheme . . . . . . . . . . . . . . . . . . . . . . . . 27
Compound Preferred Reference Scheme . . . . . . . . . . . 27
Flattening, Nesting & Coreference . . . . . . . . . . . . . . 28
Logical Derivation Check . . . . . . . . . . . . . . . . . . . 29
2.3.1.6 Passo 6. Aggiungere Vincoli di Valore . . . . . . . . . . 30
Vincoli di Valore . . . . . . . . . . . . . . . . . . . . . . . . 30
Vincoli Insiemistici . . . . . . . . . . . . . . . . . . . . . . . 31
Vincoli di Sottotipo . . . . . . . . . . . . . . . . . . . . . . 34
Asserted Subtypes . . . . . . . . . . . . . . . . . . . . . 36
Semiderived Subtypes . . . . . . . . . . . . . . . . . . . 37
Preferred ID . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.1.7 Passo 7. Ultimi Vincoli e Controlli . . . . . . . . . . . . 39
3 Relational Mapping 43
3.1 Schema Relazionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.1 Rappresentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Algoritmo Rmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.1 Traduzione di Relazioni 1:1 . . . . . . . . . . . . . . . . . . . . . 46
3.2.2 Traduzione di UC esterni . . . . . . . . . . . . . . . . . . . . . . 48
3.2.3 Traduzione di Oggettificazioni . . . . . . . . . . . . . . . . . . . . 50
3.2.4 Traduzione di Sottotipi . . . . . . . . . . . . . . . . . . . . . . . 51
4 Business Process Management 55
4.1 Cos’è BPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.1.1 Aziende basate sui processi . . . . . . . . . . . . . . . . . . . . . . 56
4.2 Approccio sistemico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.1 Organizzazione funzionale . . . . . . . . . . . . . . . . . . . . . . . 57
4.3 Catena del Valore di Porter . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.4 Business Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4.1 Ciclo di vita di un BP . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4.2 Tipi di BP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Organizzativo e Operazionale . . . . . . . . . . . . . . . . . 61
Intra-organizzativo e Inter-organizzativo . . . . . . . . . . . 61
Livelli Estensionale e Intensionale . . . . . . . . . . . . . . . 61
4.4.3 Differenze tra Metamodelli . . . . . . . . . . . . . . . . . . . . . 62
4.4.3.1 Modello Strategico . . . . . . . . . . . . . . . . . . . . . 62
4.4.3.2 Modello Organizzativo . . . . . . . . . . . . . . . . . . . 62
4.4.3.3 Modello Funzionale . . . . . . . . . . . . . . . . . . . . 62
4.4.3.4 Modello dei Processi . . . . . . . . . . . . . . . . . . . . 63
4.4.4 Metamodello Business Process . . . . . . . . . . . . . . . . . . . 63
4.4.5 Activity Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4.6 Process Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.4.7 Process Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Indice v
5 Business Process Management and Notation 67
5.1 BPMN (parte Descrittiva) . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.1.1 Processo di BPMN . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.1.2 Struttura di BPMN . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.1.3 Elementi di Base . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.1.4 Token Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.1.4.1 Sottoprocessi . . . . . . . . . . . . . . . . . . . . . . . . 71
5.1.4.2 Organizzare i Sottoprocessi . . . . . . . . . . . . . . . . 72
5.1.5 Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.1.6 Start Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.1.7 End Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1.8 Flussi di Esecuzione . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.1.9 Pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.1.10 Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2 BPMN (parte Metodologica e Stilistica) . . . . . . . . . . . . . . . . . . . 80
5.2.1 Metodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.2 Stile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.3 BPMN (parte Analitica) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3.1 Eventi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3.1.1 Tipi di Evento . . . . . . . . . . . . . . . . . . . . . . . 91
5.3.1.2 Eventi Intermedi . . . . . . . . . . . . . . . . . . . . . . 93
Evento Intermedio di Throw . . . . . . . . . . . . . . . . . . 93
Evento Intermedio di Catch . . . . . . . . . . . . . . . . . . 93
Evento Intermedio di Catch sul Confine . . . . . . . . . . . 93
Intermediate Timer Event . . . . . . . . . . . . . . . . . . . 94
5.3.2 Messaggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.3.2.1 Send Task . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.3.2.2 Receive Task . . . . . . . . . . . . . . . . . . . . . . . . 96
5.3.2.3 Sincronia dei Messaggi . . . . . . . . . . . . . . . . . . 96
5.3.3 Eventi sul Confine . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.3.4 Scelte basate sugli eventi . . . . . . . . . . . . . . . . . . . . . . 97
5.3.5 Error event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.3.6 Escalation Event . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.3.7 Signal event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.3.8 Conditional Event . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.3.9 Event Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.3.10 Decoratori di attività . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3.11 Uno a Molti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.11.1 Uno a Molti con i Pool . . . . . . . . . . . . . . . . . . 103
5.3.12 Multipool Process . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.13 Batch Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.14 Gateway OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3.14.1 OR Join . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3.15 SESE Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.3.15.1 Semantica per i SESE Block . . . . . . . . . . . . . . . 106
5.3.16 Gateway Discriminator . . . . . . . . . . . . . . . . . . . . . . . 106
Indice vi
6 Reti di Petri in BPMN 107
6.1 Elementi di una Rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.1.1 Multiset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.1.1.1 Preset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.1.1.2 Postset . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.1.2 Marking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.1.3 Firing Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.2 Reti di Petri da BMPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.2.1 Traduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.2.2 Free Choice Net . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.2.3 Workflow Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.2.4 Proprietà Fondamentali di una Rete di Petri . . . . . . . . . . . . . 115
6.2.5 Marking Speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.2.6 Correttezza Workflow Net . . . . . . . . . . . . . . . . . . . . . . 116
6.2.7 Grafo di Raggiungibilità . . . . . . . . . . . . . . . . . . . . . . . . 116
6.2.8 Problema della Limitatezza . . . . . . . . . . . . . . . . . . . . . 117
6.2.8.1 Algoritmo di Copertura . . . . . . . . . . . . . . . . . . 118
Glossario 119
Capitolo 1
Introduzione
1.1 Triangle of Meaning
Nell’immagine viene rappresentata l’associazione tra una parola di un linguaggio ad un concetto, più è preciso il linguaggio e più è precisa l’interpretazione.
Un concetto rappresenta un’idea astratta o generale dedotta o derivata da casi specifici, viene utilizzato per attribuire significati a degli oggetti.
1.1.1 Concettualizzazione
La concettualizzazione è il modo in cui un agente percepisce la realtà, tramite un’astrazione di una specifica situazione e di un linguaggio.
L’agente deve separare le invarianti rilevanti da quelle irrilevanti, e questo viene fatto grazie agli obiettivi da raggiungere; quindi, al variare degli obiettivi, è possibile che due agenti trovino una concettualizzazione diversa per la stessa realtà.
L’obiettivo della concettualizzazione è trovare un linguaggio che riesca a rappresentare nel modo migliore quello che voglio esprimere.
1
Capitolo 1. Introduzione 2
La concettualizzazione è differente dall’ontologia in quanto viene fatta da un agente che persegue un obiettivo mentre l’ontologia è una descrizione formale della realtà che descrive la struttura e le proprietà di essa.
1.2 Sistema Informativo
Un Sistema Informativo, obiettivo della modellazione, è un sistema che colleziona, immagazzina, processa e distribuisce informazioni sullo stato del dominio per facilitare pianificazione, controllo, coordinazione e processo decisionale in una organizzazione.
Il dominio di interesse viene chiamato Universo del Discorso (UoD).
Un SI non è composto solo da un DB con le informazioni del dominio ma anche come i dati sono organizzati e la loro semantica.
Un SI ha tre funzioni:
- Memorizzazione: il SI ha una rappresentazione interna dei dati, questa rappresentazione può essere di due tipi:
- 1. Informazione intensionale: sono le colonne e le varie relazioni tra i dati; concetti e vincoli che descrivono la struttura del dominio.
- 2. Informazione estensionale: sono le istanze dei concetti, quindi i dati che popolano il SI; possono essere aggiornate così da rappresentare sempre al meglio la realtà.
Le informazioni vengono aggiornate tramite due modalità:
- 1. Su richiesta: l’utilizzatore informa il sistema ogni volta che questo cambiamento avviene.
- 2. Autonomo: il sistema osserva direttamente il dominio e aggiorna il suo stato interno.
- Informativa: possono essere richieste sia informazioni estensionali che intensionali tramite delle query fatte sul SI in due modalità:
- 1. Su richiesta: l’utente pone una query e il sistema risponde.
- 2. Autonomo: un utente definisce una condizione sullo stato mantenuto dall’SI ed è notificato ogni volta che tale condizione si verifica.
Le query effettuate possono essere estensionali, ovvero informazioni specifiche su un elemento particolare, o intensionali, ovvero riguardanti le proprietà di una classe, il livello intensionale corrisponde a concetti e vincoli.
Capitolo 1. Introduzione 3
- Funzione attiva: un SI esegue azioni che modificano lo stato del dominio. Un SI deve essere a conoscenza delle azioni che può svolgere, delle loro precondizioni e degli effetti, rappresentati tramite concetti nel SI.
Esistono due modalità di esecuzione delle azioni:
- 1. Su richiesta: in questa modalità, un utente autorizza il sistema a eseguire un’azione specifica.
- 2. Autonomo: in questa configurazione, il sistema è impostato in modo tale che quando una condizione specifica si verifica nello stato del dominio, viene triggerata l’esecuzione di un’azione.
1.3 Modelli Concettuali
Per funzionare correttamente, un SI richiede conoscenza del dominio di interesse e delle funzioni che deve poter eseguire.
La rappresentazione di un dominio ha bisogno dei dati che lo costituiscono e di uno schema concettuale.
Bisogna ricordare che il dominio evolve nel tempo quindi lo schema concettuale deve contenere aspetti sia statici che dinamici.
Non tutte le informazioni sono importanti perché alcune possono essere inferite tramite regole.
Un SI si aspetta che quello che modelliamo siano fatti primitivi, ovvero elementi di conoscenza semplici, ridotti al minimo termine (Ad esempio: A sposta B).
Usando fatti primitivi si garantisce stabilità per il SI, ovvero in caso di modifiche al modello concettuale, l’impatto deve essere il minore possibile.
I modelli concettuali per i SI mirano alla stabilità e sono indipendenti dallo specifico linguaggio di programmazione, in questo modo possiamo riutilizzare più facilmente il modello.
1.3.1 Linguaggi di Modellazione
Tipicamente un linguaggio di modellazione rappresenta le entità e le relazioni tra di esse; le entità sono concetti le cui istanze sono oggetti identificabili presenti nel dominio mentre le relazioni sono entità le cui istanze sono tuple di 2 o più entità.
Un modo semplice per modellare entità e relazioni è usare la logica First Order Logic (FOL): Le relazioni sono predicati e le entità sono costanti.
Capitolo 1. Introduzione 4
Lo stato di un dominio è costituito da proprietà rilevanti che obbediscono ai vincoli del dominio.
Esistono due tipi di proprietà rilevanti:
- Fatti primitivi (A sposta B).
- Fatti derivati.
Ed esistono tre tipi di vincoli:
- Statici: vincoli statici sui dati in uno stato, visualizzati come schemi concettuali; ad esempio:
- Dipendenze funzionali.
- Chiavi primarie.
- Vincoli di quantità.
- Temporali: vincoli temporali sulle evoluzioni consentite dei dati.
- Dinamici: vincoli dinamici sul modo in cui le attività possono essere eseguite nel tempo, visualizzati come schemi comportamentali; ad esempio vincoli sulla possibilità di effettuare delle azioni in base al tempo in cui vengono svolte.
1.3.1.1 Open & Closed World
Nel modellare una realtà devo anche sapere come modellare le affermazioni, ad esempio quando un fatto non viene specificato serve sapere come rappresentarlo; si utilizzano due metodi:
- Closed world: tutte le descrizioni sono presenti, quindi se un fatto non è esplicitato come vero si assume che sia falso (database).
- Open world: si sa solo se le informazioni sono vere o false, tutto il resto semplicemente non si sa (ontologie e web semantico).
1.3.2 Cos’è un Modello Concettuale
Un modello concettuale è l’insieme tra lo schema concettuale e l’Information Base (IB) o database concettuale.
Lo schema concettuale è il progetto del dominio all’interno del SI mentre l’IB è uno specifico stato del dominio del SI.
Per sviluppare un SI è necessario definire lo schema concettuale.
Capitolo 1. Introduzione 5
1.3.2.1 Schema Concettuale
Uno schema concettuale è l’unione di:
- Fact types: specificano quali entità sono coinvolte, i riferimenti agli oggetti del dominio e le relazioni.
- Vincoli: proprietà da soddisfare all’interno del SI.
- Regole di derivazione: come si derivano i nuovi fatti da quelli precedenti.
1.3.2.2 Information Base
L’IB è composta da fatti espressi in FOL; è importante specificare dei fatti il più primitivi possibile, così da evitare ridondanze, semplificare gli aggiornamenti e garantire consistenza.
1.3.2.3 Schema Strutturale e Comportamentale
Lo schema strutturale è lo studio di concetti e delle loro relazioni, ad esempio quali generi di dati
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Modellazione dei processi d'impresa (BPM)
-
Modellazione edificio CA - modellazione (1° parte)
-
Linguaggio di modellazione
-
Modellazione dei dati obiettivi - Modello E-R