Corso di Ingegneria del Software Paolo Bottoni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Ingegneria del Software Paolo Bottoni"

Transcript

1 Corso di Paolo Bottoni Lezione 5: Modellazione di sistema e UML

2 Obiettivi Introdurre tipi di modelli di sistema Descrivere modellazione comportamentale, dei dati, e degli oggetti Introdurre alcune notazioni usate in Unified Modeling Language (UML) 2

3 Modellazione di sistema Aiuta analista a capire funzionalità sistema e comunicare con clienti Modelli diversi presentano sistema da prospettive diverse esterna mostra contesto o ambiente sistema dinamica mostra comportamento sistema strutturale mostra architettura sistema o dati 3

4 Tipi di modello Modello di elaborazione dati: organizzato in stadi Modello di composizione: struttura entità Modello architetturale: sottosistemi principali Modello di classificazione: caratteristiche comuni entità Modello dinamico: comportamenti Autonomi Reattivi Collaborativi 4

5 Metodi strutturati Metodi strutturati incorporano modellazione di sistema come parte inerente metodo Definiscono: insieme di modelli processo per derivarli regole e linee-guida da applicare a modelli Strumenti CASE supportano modellazione di sistema come parte di metodo strutturato 5

6 Debolezze dei metodi Non modellano requisiti di sistema non-funzionali Solitamente non includono informazione su appropriatezza metodo a dato problema Possono richiedere troppa documentazione Modelli sistema a volte troppo dettagliati e difficili da capire per utenti 6

7 Modelli di contesto Illustrano contesto operativo sistema Cosa si trova fuori confini sistema Definizione confini influenzata da aspetti sociali e organizzativi Modelli architetturali mostrano sistema e relazioni con altri sistemi In UML forniti da casi d uso 7

8 Contesto di sistema Bancomat Sistema di sicurezza Sistema tenuta conti agenzia Base dati conti clienti Sistema distributore automatico Sistema sportello agenzia Base dati utilizzo Sistema di manutenzione 8

9 Diagramma UC per modello di contesto 9

10 Modello dei Casi d'uso Modello di sistema con attori, casi d'uso e loro relazioni. Può utilizzare package. Utilizzabile anche per descrivere contesto sistema (attori) 10

11 Attore (umano, dispositivo, sistema) Definisce ruolo Cosa farà in processo 11

12 Descrizione del Caso d uso I Fatta dal punto di vista degli attori Specifica di insieme di azioni eseguite da sistema (o elemento che può avere comportamento, subject) Produce risultato osservabile Tipicamente risultato ha valore per uno o più attori / stakeholder di subject Rappresenta dichiarazione di comportamento offerto Comportamento svolto in collaborazione con uno o più attori Può includere varianti, comportamenti eccezionali, gestione errori Risultato: cambiamento stato subject e/o comunicazione con ambiente Specifica unità di funzionalità utile offerta agli utenti Iniziata da attore primario Deve essere completata Non ci si aspettano altri ingressi Caso d uso può ricominciare da capo o in stato di errore 12

13 Descrizione del Caso d uso II Comportamento Normalmente in linguaggio naturale Uso di diagrammi statechart, activity, collaboration, sequence Descrizione di sequenza di azioni Azioni subject durante esecuzione caso d'uso Interazioni con attori Comportamento richiede pre-, asserisce post-condizioni. Di subject, non di situazione! Casi d'uso sono atomici. Non interagiscono. Ogni caso d uso descrive uso completo subject 13

14 Specifica comportamento in caso d uso Diagrammi di interazione Diagrammi di attività Diagrammi di stato Pre e post-condizioni Testo in linguaggio naturale (strutturato) Descrizione indiretta tramite collaborazioni Descrizioni possono essere combinate 14

15 Cosa includere in una descrizione Stato di partenza come precondizione Precondizioni per esecuzione Precondizioni per successo Come e quando parte (trigger) Ordine di esecuzione azioni Come e quando finisce Possibili stati finali come postcondizioni Cammini di esecuzione non permessi Flussi alternativi inlined in flusso base Flussi alternativi estratti Interazioni con attori e messaggi scambiati Uso di oggetti, valori e risorse in sistema Separare responsabilità fra sistema e attore 15

16 Specifica testuale del flusso 16

17 Pre e post-condizioni NON: L utente vuole leggere un area NON: L utente ha letto l area Assunzione verificabile SOLO durante il corso del flusso 17

18 Specifica con activity diagram 18

19 Specifica con diagramma di sequenza 19

20 Relazioni fra attori e casi d uso 20

21 Raffinamento: include Caso d uso includente contiene comportamento definito in caso d uso di addizione Usata quando ci sono parti comuni a due o più casi d uso. Parte comune estratta e riutilizzabile Caso d uso includente incompleto senza addizione Comportamento addizione eseguito in locazione caso d uso includente Terminata addizione riprende esecuzione includente 21

22 Raffinamento: extend Specifica condizione per inserimento comportamento che estende in caso d uso esteso Estensione avviene in specifici punti di estensione definiti in caso d uso esteso Caso d uso esteso indipendente da estensioni Caso che estende definisce comportamento modulare eseguito in specifiche condizioni Comportamento può estendere più casi d uso Può essere esteso a sua volta 22

23 Differenza fra include e extend include indica frammento sempre eseguito durante esecuzione caso d uso principale extend indica frammento eseguito in determinate circostanze 23

24 Distribuzione casi d uso in package 24

25 Casi d'uso essenziali Formato a due colonne Intenzione attore Responsabilità sistema Indipendenti da tecnologia Nessun riferimento a interfaccia utente 25

26 Esempio di caso d'uso essenziale 26

27 Esempio di caso d'uso di sistema 27

28 Modelli dei dati semantici Struttura logica dati elaborati Modello a entità-relazioni-attributi Usato in progetto basi dati Implementato rapidamente con basi di dati relazionali Esprimibili in UML con diagrammi di classi 28

29 Modello semantico per biblioteca 1 delivers n Article title authors pdf file fee published-in m fee-payable-to 1 n 1 Source title publisher issue date pages 1 in 1 Order order number total payment date tax status Copyright Agency name address 1 in 1 Country copyright form tax rate 1 places Buyer name address billing info 29

30 Dizionari di dati Liste nomi usati in modelli sistema Includono descrizioni entità, relazioni, attributi Vantaggi Supporta gestione nomi ed evita duplicati Memorizza conoscenza organizzazione per collegare analisi, progetto e implementazione Molti strumenti CASE supportano dizionari 30

31 Elementi nel dizionario dei dati Name Description Type Date Article authors Buyer feepayable-to Address (Buyer) Details of the published article that may be ordered by peopleusing LIBSYS. The names of the authors of the article who may be due a share of the fee. The person or organisation that orders a co py of the article. A 1:1 relationship between Article and the Copyright Agency who should be paid the copyright fee. The address of the buyer. This is used to any paper billing information that is required. Entity Attribute Entity Relation Attribute

32 Elementi di modellazione delle classi Classi definiscono modello per costruzione istanze Struttura Interfaccia Vincoli su implementazione Diagramma classi definisce famiglia di modelli Relazioni fra classi Associazioni, dipendenze, generalizzazioni Vincoli su realizzazioni Molteplicità Vincoli da metamodello Vincoli specifici 32

33 Classe Descrive insieme di oggetti con stessa specifica di caratteristiche, vincoli e semantica Ogni oggetto deve contenere valore per ogni attributo classe, in accordo con tipo e molteplicità Se attributo ha default, se istanza non riceve valore iniziale per attributo, inizializzato a default Operazioni classe invocabili su oggetto, insieme di sostituzioni per parametri Caratteristiche sono di istanza o di classe 33

34 Associazioni Dichiara possibile presenza collegamenti fra istanze tipi in associazione Relazione semantica possibile tra istanze tipate Almeno due capi, rappresentati da proprietà, ognuna connessa a tipo Possibili più capi con stesso tipo Capi possono essere dichiarati unici e ordinati Capi posseduti da associazione o classificatore. Se posseduto da classificatore, navigabile 34

35 Diagrammi di classi Diagramma rappresenta vista su modello Person owner Account 35

36 Specifica di istanza Rappresentazione entità a un istante (snapshot) Specificare esistenza di entità in sistema Esempio di possibile entità in sistema Entità conforme a specifica di classificatore Attributi in classificatori rappresentati da slot in istanza Dettagli specifica possono essere incompleti Parti trascurate non di interesse in modello Modello cambiamenti:specifica per ogni snapshot Istanze hanno: identità e stato comportamento vincolato da appartenenza a classe 36

37 Collegamenti (link) Specifica di istanza di associazione Tupla con valore per capo associazione Ogni valore istanza tipo per capo Possono rappresentare valori di attributi, navigabili da istanza che possiede attributo a istanza che rappresenta valore Decorati con nome attributo Connessione semantica fra due oggetti che permette accesso efficiente 37

38 Diagrammi di istanza validi e non validi Assunzione che diagramma classi precedente sia unica specifica 38

39 Diagrammi di istanza validi e non validi jim : Person name = Jim Arlow age = 23 39

40 Decorazioni su associazioni Orientamento: semantica per utente, opzionale Navigabilità: semantica per sistema, obbligatoria o implicita Molteplicità: forma di vincolo, non implicita 40

41 Classi d'associazione Elemento con proprietà di classe e di associazione Relazione semantica fra classificatori Caratteristiche proprie relazione, non di classificatori Insieme di oggetti implicati da classe e corrispondenti a unico link con tipo associazione Corrispondenza 1-1con relazione semantica fra istanze Semantica statica/dinamica di associazione e classe 41

42 Istanze di classe di associazione 42

43 Associazioni riflessive 43

44 Relazione di generalizzazione Relazione tassonomica fra classificatori Classificatore più generale e classificatore più specifico Istanza di specifico istanza indiretta di generale Specifico eredita caratteristiche di generale Vincoli e associazioni Proprietà di sostituibilità Classificatore può partecipare a più relazioni sia come sorgente sia come bersaglio 44

45 Relazione di Generalizzazione 45

46 Ereditarietà multipla Caratteristica può essere ripetuta in diversi classificatori da cui si eredita Stessa proprietà statica o di istanza Per ogni slot in istanza deve esistere classificatore con attributo corrispondente Per ogni attributo di classificatore (eventualmente ripetuto), al più uno slot definito da esso in istanza 46

47 Dipendenze Relazione fra elementi. Semantica, non strutturale. Elemento (cliente) ha bisogno di altri elementi (fornitore) per specifica o implementazione Semantica clienti dipende da definizione fornitori Non ha conseguenze su semantica a run-time 47

48 Tipi di dipendenza Usage: Definizione o implementazione cliente usa fornitore Abstraction: Fornitore più astratto di cliente Permission: Forme di accesso a contenuto fornitore Binding: Specializzazioni di template 48

49 Dipendenze Usage <<use>> Operazione client usa parametro fornitore Operazione client restituisce tipo fornitore Operazione client usa tipo fornitore per implementazione non come attributo <<call>> Client e fornitore sono operazioni. Prima invoca seconda <<send>> Fornitore di tipo signal, spedito da client <<create>> Client è operazione che crea istanze fornitore <<instantiate>> Client è classificatore, contiene operazione che istanzia fornitore 49

50 Dipendenze Abstraction <<trace>> Fornitore e client in modelli in fasi o flussi di lavoro diversi <<refine>> Tra elementi di stesso modello, non storica <<derive>> Informazione cliente derivabile da informazione fornitore 50

51 Dipendenze Permission <<access>> Package client vede elementi pubblici package fornitore Namespace restano separati <<import>> Namespace fornitore fuso in namespace cliente <<friend>> Accesso a elemento fornitore, indipendentemente da visibilità 51

52 Notazione 52

53 Aggregazione Relazione parte_di Intero domina. Se navigabilità unidirezionale, parte può non conoscere intero Aggregato può esistere indipendentemente da parti Parti possono esistere indipendentemente da aggregato Aggregato incompleto se parti mancanti Parti possono essere condivise fra aggregati 53

54 Vincoli su aggregazione Transitività Asimmetria (oggetto non può essere parte di sé stesso, neanche indirettamente) 54

55 Gestione di aggregazioni riflessive a:product * Product * b:product c:product Trasformare in associazione d:product a:product * Product * b:product c:product d:product 55

56 Composizione Analogo ad aggregazione, ma più vincolato Parti non hanno vita indipendente In ogni momento parte appartiene esattamente a un composto Composto ha responsabilità per creazione / distruzione parti Creazione composto comporta creazione parti Parti possono essere rilasciate solo verso altro composto Se composto è distrutto, deve distruggere sue parti, o cederne responsabilità ad altro composto 56

57 Diagrammi di interazione Descrivono collaborazioni necessarie a realizzare caso d uso Descrivono ordine invio messaggi in scenario Rappresentano specifico insieme di messaggi e interazioni tra oggetti 57

58 Modelli comportamentali Descrivono comportamento generale sistema Due tipi: Elaborazione dati. Mostrano come dati sono elaborati e fluiscono in sistema Macchine a stati. Mostrano risposte sistema ad eventi Prospettive diverse, necessarie entrambe In UML elaborazione dati come conseguenza scambio messaggi, in diagrammi di interazione 58

59 Interazioni Unità di comportamento focalizzata scambio osservabile informazione Informazione scambiata fra elementi Composte di frammenti di interazione Semantica data da coppia di insiemi di tracce Sequenza di occorrenze di eventi Tracce valide e non valide Rappresentazioni: comunicazione e sequenza 59

60 Diagrammi di sequenza Mettono in luce scambio di messaggi su linee di vita Specifiche di esecuzione ordinate su linee di vita Pieno uso di costrutti composti 60

61 Esempio: visualizza info paziente Chapter 5 System Modeling 30/10/

62 Esempio: trasferimento dati Chapter 5 System Modeling 30/10/

63 Sintassi Notazione alternativa per frammento parallelo se ordine occorrenze irrilevante Comunicazione tramite gate 63

64 Definizione di interazione 64

65 Usi di interazione 65

66 Costrutti temporali 66

67 Occorrenze annotate con vincoli Durata messaggio Code misurata Vincolo su ricezione OK dipendente da osservazione Vincolo su durata emissione carta Vincolo su completamento emissione Primitiva now fornisce osservazione temporale 67

68 Regioni critiche r100 s100 r101 s101 r911 s911 r100 r911 s911 r101 s101 s100 r100 r911 s100 s911 68

69 Regione critica Vincolo su tracce Non si ammettono altre occorrenze Regione trattata atomicamente da frammento includente Limita effetto parallelismo 69

70 Iterazioni Annidamento di loop Regione interna iterata a ogni iterazione regione includente 70

71 Modelli di elaborazione dati Diagrammi di flusso di dati modellano elaborazione dati in sistema Mostrano passi di elaborazione mentre dati fluiscono in sistema Parte intrinseca di molti metodi di analisi Notazione semplice e intuitiva per clienti Mostra elaborazione dati da inizio a fine 71

72 Diagrammi di flusso dei dati Prospettiva funzionale Tracciano associazione dati/processi Sviluppano comprensione generale sistema DFD anche usati per mostrare scambio di dati fra sistema e altri sistemi in contesto Notazione ausiliaria in UML Rappresentazione flusso informazione fra elementi 72

73 DFD per pompa a insulina Sangue Sensore zucchero in sangue Parametri sangue Analisi zucchero in sangue Livello zucchero in sangue Calcolo richiesta insulina Insulina Pompa insulina Comandi controllo pompa Controllore rilascio insulina Richiesta insulina 73

74 Modelli di macchine a stati Comportamento sistema in risposta a eventi Eventi esterni o interni Spesso usati per sistemi a tempo reale Stati nodi, transizioni su eventi archi fra nodi Quando evento accade, sistema transisce di stato Statecharts parte integrale di UML Rappresentano modelli di macchina a stato Condizioni associabili a transizioni 74

75 Macchine a stati Modelli di comportamento discreto con stati finiti Behavioral state machines: variante Statecharts Associate a elementi di modello Comportamenti di classi attive, oparazioni, processi Protocol state machines: transizioni di stato Associabili a classificatori, interfacce porte Definisce aspetti comportamentali invocabili in stato Comportamento modellato come attraversamento di grafo di nodi stato interconnessi da archi di transizione, attivati da occorrenze di eventi 75

76 Macchina a stati Può essere posseduta da BehavioredClassifier Definisce trigger e attributi e operazioni disponibili Trigger dipendono da operazioni e ricezioni in contesto Può essere associata a BehavioralFeature Rappresenta metodo Parametri macchina corrispondono a parametri feature Se manca classificatore contesto, trigger indipendenti Può definire template per macchine a stati Punti di connessione solo a stati iniziali o di uscita 76

77 Semantica Eventi presenti in pool Legata a istanza di classificatore o a classificatore che possiede la BehavioralFeature Occorrenze eventi gestite una alla volta Elaborazione run-to-completion Evento gestito solo se gestione precedente completata Stato stabile: reazione a eventi completata Se invocazione sincrona, completamento a fine esecuzione Evento estratto scartato se transizioni non abilitate Possibilità di eventi differiti 77

78 Transizioni Trigger: occorrenza evento interno o esterno Guard: condizione booleana valutata prima Effect: comportamento associato Sequenza di esecuzione Uscita da stato sorgente principale Esecuzione ordinata comportamenti associati a transizioni Se si incontra decisione, selezione dinamica cammino Entrata in stato bersaglio principale Tipi di transizione local: parte da punto di ingresso o stato composto e resta external: originabile a qualunque vertice, uscirà da vertice internal: origine e bersaglio nello stesso stato 78

79 Regioni Parte ortogonale di stato composto o statemachine Possesso esclusivo stato o macchina a stati Contiene stati e transizioni Può avere al più un vertice iniziale Contiene vertici e transizioni fra vertici Transizioni composte per risposte complete a eventi Possono attraversare fork, join, choice, merge o junction Hanno trigger, guardia e comportamento associato Transizione abilitata se: Tutti stati sorgente in configurazione di stato attiva Uno dei trigger è soddisfatto da tipo occorrenza evento corrente Esiste almeno un cammino da configurazione sorgente a bersaglio 79

80 Comportamenti entry: eseguita a ogni ingresso in stato Atomica. Nessun altro comportamento eseguibile prima exit: eseguita ad ogni uscita da stato Solo dopo ogni transizione in stato completata do: iniziata eseguita fino a che si permane in stato, o fino a completamento, primo dei due. Produce evento di completamento Trigger differiti. Mantenuti da macchina se non attivano transizione esterna, fino a che non si raggiunge configurazione in cui non più differito 80

81 Sintassi grafica 81

82 Segnali Pacchetto di informazione comunicato asincronamente fra due oggetti Evento di segnale avviene quando oggetto riceve segnale Invio Ricezione oggetto:bersaglio 82

83 Stati Modellano situazioni in cui vale invariante Statica: es. attesa di evento. Dinamica: es. esecuzione di processo Stato semplice non ha regioni Stato composto: una o più regioni (ortogonali) Regioni hanno insiemi di vertici mutuamente esclusivi Ogni regione può avere stato finale e pseudostato iniziale Transizione a stato esterno è verso pseudostato iniziale Ogni sottostato eredita transizioni stato genitore Se conflitto, priorità transizione da stato annidato. 83

84 Diagramma di stato per operazioni forno 84

85 Stati composti 85

86 Transizioni locali e esterne Non provocano azioni di ingresso / uscita per stato composto Provocano azioni di ingresso / uscita 86

87 Stati composti concorrenti (from [3]) 87

88 Stati di sottomacchina Inserimento specifica di macchina a stati Permette fattorizzazione e riuso di comportamenti comuni Stessa sottomacchina può occorrere più volte Equivalente a stato composto 88

89 Sottomacchine 89

90 Pseudostati I initial - transizione a stato default per regione Può avere effetto, ma non trigger o guard deephistory - configurazione più recente composto shallowhistory - sottostato attivo più recente join fonde transizioni da vertici ortogonali fork divide transizione per vertici ortogonali junction concatena transizioni multiple Merge - fonde transizioni che convergono su un cammino Branch - divide transizione in casi (statico) choice valutazione dinamica, un solo selezionato 90

91 Pseudostati II entry point punto di ingresso a stato composto. Indica transizione a un vertice exit point fa uscire da macchina o stato composto. Attiva azione di exit terminate esecuzione da parte di oggetto contesto terminata. Non si compiono altre azioni 91

92 Riferimento a sottomacchine 92

93 Modelli di processo Mostrano processo generale e processi supportati da sistema Modelli flusso dati usati per mostrare processi e flussi di informazione. In UML supportati da modelli di attività 93

94 Processo di acquisizione equipaggiamento Specify equipment required Equipment spec. Supplier database Equipment spec. Validate specification Find suppliers Supplier list Checked spec. Get cost estimates Choose supplier Spec. + supplier + estimate Delivery note Order notifica tion Order details plus blank order form Accept delivery of equipment Place equipment order Delivery note Check delivered items Install equipment Installation instructions Installation acceptance Checked and signed order form Accept delivered equipment Equipment details Equipment database 94

95 Diagrammi di attività Modellano processo come collezione di attività e transizioni fra attività. Enfasi su sequenza e condizioni coordinamento comportamenti di basso livello, non su classificatori. Flusso di controllo e flusso di oggetti In ultima analisi definita da azioni Azioni e attività vengono eseguite Condizioni di coordinamento per inizio azioni Completamento esecuzione azioni Disponibilità di oggetti e dati Eventi esterni 95

96 Livelli di complessità Attività fondamentali definite come sequenze Costrutti per parallelismo e scelte alternative Strutture di controllo iterative Costrutti per flussi di dati, eccezioni, etc. 96

97 Relazioni fra attività e azioni Attività con nodi attività e flussi di controllo e di dati Azioni caso particolare di nodi di attività Nodi oggetto e nodi controllo Attività possono formare gerarchie di attivazioni In modelli OO invocate indirettamente come metodi legate a operazioni invocate direttamente Possono descrivere computazioni procedurali Attività non può essere autonoma Contesto: classificatore o feature comportamentale 97

98 Semantica attività Basata su flusso di token Dipendenza fra esecuzioni di nodi rappresentata da archi fra nodi. Token contiene un oggetto, dato, o luogo di controllo, presente in diagramma a nodo particolare Tutti token distinti fra loro, anche se stesso valore Nodo comincia esecuzione quando condizioni su token di input soddisfatte 98

99 Flusso token Quando nodo inizia esecuzione, token accettati da sottoinsieme ingressi e un token piazzato su nodo Quando nodo completa esecuzione, token rimosso da nodo e token offerti su sottoinsieme archi uscita. Offerta: token possono essere rifiutati Regole per offrire e accettare token su archi 99

100 Concorrenza Vincoli su ordine esecuzione di due o più azioni esplicitate fra relazioni di flusso Se azioni non ordinate direttamente o indirettamente da relazioni di flusso, possono eseguire concorrentemente Esecuzione parallela, non richiesta ma possibile 100

101 Relazione con contesto Activity in contesto classificatore: se metodo di behavioral feature invocata quando feature invocata se non metodo di behavioral feature invocabile dopo istanziazione classificatore Ovverriding di attività usate come metodi ereditati Invocabile anche direttamente da altre attività Non solo tramite chiamata a behavioral feature Possibilità ottimizzazione indipendente da classificatore 101

102 Flussi Realizzati mediante edge source e target in stessa attività Permettono passaggio di token Specifica weight per minimo numero di token su arco quando raggiunto, tutti token presenti offerti a bersaglio condizioni valutate e minimo numero deve superarle se weight illimitato tutti i token offerti devono superarle Flussi di controllo e di oggetti stessa notazione 102

103 Flussi di oggetti Flussi oggetti offrono token di tipo dato o oggetti Possibilità di avere pin per indicare cosa passato Offerti a target stesso ordine in cui presi da source anche in caso di offerta simultanea di più token se associato con selezione, trascura ordine Flussi da stesso nodo oggetto competono Duplicazione possibile tramite fork Associabile con trasformazione prima di dare a target trasformazione non può avere effetti collaterali 103

104 Gestione pesi 104

105 Nodi di controllo Vincoli su flussi entranti o uscenti DecisionNode ha flussi dello stesso tipo Comportamento di decisione non ha effetti collaterali Ogni token entrante attraversa un solo arco uscente ForkNode divide flusso in vari flussi concorrenti Se almeno un token accettato, tutti token offerti rimossi da source e copia su ogni flusso accettante Token non accettato causa fallimento bersaglio: pendente JoinNode emette token se condizione su entranti Se entranti sia dati sia controllo, solo dati offerti MergeNode non sincronizza, ma propaga 105

106 Coordinamento di attività 106

107 Comportamenti su scelte 107

108 Specifiche di join 108

109 Terminazione attività Token che raggiunge nodo finale fa cessare intera attività ( o nodo strutturato) Fa terminare ogni azione in esecuzione Distrugge tutti i token in nodi oggetto, tranne quelli in nodi parametro di output dell attività Se termina azione invocazione sincrona, terminano anche comportamenti in attesa ritorno da azione. Possibili più nodi finali per ogni attività Primo nodo con token fa terminare tutto 109

110 Terminazione flussi Nodi per finale di flusso. Se si usa singola esecuzione per ogni invocazione, si distruggono token solo su flusso che ha raggiunto nodo Se si usano esecuzioni separate, token per una invocazione non influenzano altre. 110

111 Uso di terminazioni 111

112 Partizioni Modo per raggruppare nodi con aspetti comuni es. unità organizzative in modelli di business Mostrano vista nodi contenuti Possono condividere contenuto Permettono allocare risorse fra nodi di una attività 112

113 Gestione ordine con partizioni 113

114 Dimensioni multiple 114

115 Strutture di controllo: Condizionale Scelta esclusiva fra alternative Un body eseguito fra tutti quelli con test positivi isassured: almeno un test ha successo isdeterminate: al più un test ha successo Scelta non deterministica se ordine non definito tramite successor e predecessor Se produce valori in uscita, ogni body deve produrli 115

116 Strutture di controllo: Loop Sezioni di inizializzazione, test e corpo Ogni sezione regione annidata. Nodi loop seguono ogni predecessore del loop e precedono ogni successore Test può precedere o seguire corpo. Risultato su pin raggiunto con decider Inizializzazione eseguita una volta prima di corpo Test e corpo eseguiti ripetutamente fino a test falso Risultati ultima esecuzione test o corpo disponibili 116

117 Strutture di controllo: Sequenza Nodi eseguiti nell ordine specificato. Se combinate in flussi, azioni devono anche soddisfare ingressi di controllo e dati 117

118 Regioni interrompibili Tipo di gruppo di attività Archi che lasciano regione designati interrompibili Se token lascia regione su arco interrompibile, ogni flusso in regione viene terminato Token uscito da regione non viene terminato Atomicità: se token lascia regione su arco non interrompibile, completa trasferimento 118

119 Cancellazione di ordini 119

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13 UML Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2012/13 1 Che cosa è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare

Dettagli

Corso di Ingegneria del Software Paolo Bottoni

Corso di Ingegneria del Software Paolo Bottoni Corso di Paolo Bottoni Lezione 9: Modellazione e UML Obiettivi Introdurre tipi di modelli di sistema Descrivere modellazione comportamentale, dei dati, e degli oggetti Introdurre alcune notazioni usate

Dettagli

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa Lezioni precedente: Descrizione del dominio: modello statico Questa lezione Descrizione del dominio:

Dettagli

UML UNIFIED MODELING LANGUAGE

UML UNIFIED MODELING LANGUAGE UML UNIFIED MODELING LANGUAGE Cos è UML E un linguaggio di progettazione, da non confondere con i linguaggi di programmazione (C, C++, Java, ) Fornisce una serie di diagrammi per rappresentare ogni tipo

Dettagli

Order details + blank order form Complete order form Completed order form Validate order Signed order form Order details Signed order form Record order Orders file Signed order form Send to supplier Adjust

Dettagli

Corso di Ingegneria del Software. Activity Diagram

Corso di Ingegneria del Software. Activity Diagram Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it Diagrammi di attività Diagrammi di attività 1. La notazione 2. Uso dei diagrammi di attività 3. TOOL di supporto 4.

Dettagli

I Diagrammi di Flusso OO

I Diagrammi di Flusso OO Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - I Diagrammi di Flusso OO Generalità I diagrammi di attività vengono usati per modellare processi a

Dettagli

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Introduzione ad UML E. TINELLI UML È un linguaggio (e notazione) universale per rappresentare qualunque

Dettagli

Progettazione Object-Oriented

Progettazione Object-Oriented Progettazione Object-Oriented Generalità, Relazione fra OOA e OOD Concetti di base: Classi e Oggetti, Relazioni fra oggetti, Ereditarietà e Polimorfismo La specifica del Progetto: notazione UML Una metodologia

Dettagli

Ingegneria del Software 8. Diagrammi di attività. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 8. Diagrammi di attività. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 8. Diagrammi di attività Dipartimento di Informatica Università di Pisa A.A. 2014/15 so far Modello del dominio Modello statico: diagrammi delle classi Modello dinamico : diagrammi

Dettagli

LEZIONE 7 - STATE MACHINE DIAGRAM

LEZIONE 7 - STATE MACHINE DIAGRAM Laboratorio di Ingegneria del Software a.a. 2013-2014 LEZIONE 7 - STATE MACHINE DIAGRAM Catia Trubiani Gran Sasso Science Institute (GSSI), L Aquila catia.trubiani@gssi.infn.it Un po di storia su state

Dettagli

Elementi di UML (6): Diagrammi dinamici di flusso

Elementi di UML (6): Diagrammi dinamici di flusso Elementi di UML (6): Diagrammi dinamici di flusso Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio di Sistemi

Dettagli

Esempio Modello DFD per ordini. Modelli di comportamento. Diagramma delle attività. Diagramma attività UML per ordini. Attività: Apri file da browser

Esempio Modello DFD per ordini. Modelli di comportamento. Diagramma delle attività. Diagramma attività UML per ordini. Attività: Apri file da browser Modelli di comportamento Esempio Modello DFD per ordini Sono usati per descrivere il comportamento globale del sistema Data processing model (ovvero Data Flow Diagram, DFD) Mostrano i passi per l elaborazione

Dettagli

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato Introduzione all UML UML come abbozzo UML - Unified Modeling Language E una famiglia di notazioni grafiche per la modellazione visuale del software Modellazione: rappresentazione di elementi che corrispondono

Dettagli

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base SOMMARIO Introduzione Concetti base INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 2 rcardin@math.unipd.it SOMMARIO Introduzione

Dettagli

Analisi dei Casi d Uso

Analisi dei Casi d Uso Generalità Concetti di base: Attore, Caso d Uso, Associazioni Il Diagramma dei casi d uso Descrizione di un caso d uso Passi per la costruzione di un modello di casi d uso 1 Generalità Strumento impiegato

Dettagli

SOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.

SOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base. SOMMARIO Introduzione Concetti base INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 rcardin@math.unipd.it 2 SOMMARIO Introduzione

Dettagli

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 9. Macchine a stati Dipartimento di Informatica Università di Pisa A.A. 2014/15 so far Modello del dominio Modello statico: diagrammi delle classi Modello dinamico : diagrammi di

Dettagli

Microsoft Visio 2002 UML Sergio Colosio

Microsoft Visio 2002 UML Sergio Colosio Microsoft Visio 2002 UML Sergio Colosio Casi d uso Prima di definire un caso d uso è necessario definire cosa s intende per scenario. Uno scenario è una sequenza di passi che descrivono l interazione tra

Dettagli

Class diagram COMPORTAMENTO associazioni

Class diagram COMPORTAMENTO associazioni Class diagram Rappresenta le classi che compongono il sistema, cioè le collezioni di oggetti, ciascuno con il proprio stato e COMPORTAMENTO (attributi ed operazioni) Specifica, mediante associazioni, le

Dettagli

Diagrammi di stato e di attività: esercizi

Diagrammi di stato e di attività: esercizi Diagrammi di stato e di attività: esercizi Angelo Di Iorio (in parte di: Gianpiero Favini) A.A. 2012-2013 Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013

Dettagli

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Progetto ID 24063 Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi universitari

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un

Dettagli

Il PROCESSO UNIFICATO

Il PROCESSO UNIFICATO Corsi di laurea triennale in Ingegneria Informatica Corso di Ingegneria del software Il PROCESSO UNIFICATO Modellazione ed Implementazione di un Sistema Software per la gestione informatizzata di un ristorante

Dettagli

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per

Dettagli

Note sugli Statechart Diagrams

Note sugli Statechart Diagrams Note sugli Statechart Diagrams Giacomo Gabrielli Sorgente: [Bolognesi05] 1 Diagrammi di Stato I diagrammi di stato (statechart diagram) permettono di descrivere il comportamento dinamico di un oggetto

Dettagli

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring TITLE Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi

Dettagli

Ingegneria del Software 18. Realizzazione casi d uso. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 18. Realizzazione casi d uso. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 18. Realizzazione casi d uso Dipartimento di Informatica Università di Pisa A.A. 2014/15 diagrammi di interazione Descrizione dinamica, che elenca i messaggi scambiati tra istanze

Dettagli

Classi. Meccanismi di Rappresentazione e Scoperta. Andrea Polini

Classi. Meccanismi di Rappresentazione e Scoperta. Andrea Polini Classi Meccanismi di Rappresentazione e Scoperta Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L31 Univesità di Camerino (Laboratorio di Ingegneria del Software) Classi

Dettagli

UML I diagrammi implementativi

UML I diagrammi implementativi Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - UML I diagrammi implementativi E. TINELLI I diagrammi implementativi In UML 2.x esistono 3 tipi di

Dettagli

Modulo 11. Interazioni Diagrammi di sequenza Diagrammi di collaborazione. Descrivere il comportamento di un sistema software

Modulo 11. Interazioni Diagrammi di sequenza Diagrammi di collaborazione. Descrivere il comportamento di un sistema software Modulo 11 Interazioni Diagrammi di sequenza Diagrammi di collaborazione Descrivere il comportamento di un sistema software In un sistema object-oriented, gli oggetti interagiscono scambiandosi messaggi

Dettagli

UML e i diagrammi di attività

UML e i diagrammi di attività UML e i diagrammi di attività S i n t a s s i e L i n e e G u i d a Dr. Andrea Baruzzo andrea.baruzzo@dimi.uniud.it Page 2 Attività: che cosa sono e a cosa servono Un diagramma di attività mostra il flusso

Dettagli

2. Modellazione dei casi d uso

2. Modellazione dei casi d uso 2. Modellazione dei casi d uso Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica (Laboratorio di Ingegneria del Software) 2. Modellazione dei casi d uso 1 / 20 Sommario

Dettagli

Activity Diagrams (lezione 3)

Activity Diagrams (lezione 3) Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering Laboratory Activity Diagrams (lezione 3) Antonino Sabetta antonino.sabetta@isti.cnr.it Una vista d'insieme introduzione

Dettagli

Relazioni. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino

Relazioni. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino Relazioni Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino (Ingegneria del Software) Relazioni 1 / 13 Relazione Relazione - da teoria degli

Dettagli

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi D1_3 V3.

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi D1_3 V3. Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE Paolo Salvaneschi D1_3 V3.4 UML Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi B1_2 V2.3 UML

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi B1_2 V2.3 UML Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi B1_2 V2.3 UML Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto

Dettagli

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering and Dependable Computing Laboratory LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM Laboratorio di Ingegneria del Software

Dettagli

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Richiami dei diagrammi di base per l utilizzo nel corso di RPPI Rielaborazione delle slide proposte da M. Cossentino 1 Perchè usare la progettazione visuale? Mary Loomis,

Dettagli

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring TITLE Laboratorio di Sistemi Software UML per Design Patterns e Refactoring Luca Padovani (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi Class Diagram Object

Dettagli

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base SOMMARIO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2012 2013 2 rcardin@math.unipd.it SOMMARIO 3 4 Analisi dei Requisiti, Specifica

Dettagli

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Catia Trubiani. Laboratorio di Ingegneria del Software a.a Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli Studi

Dettagli

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 4. Introduzione a UML Dipartimento di Informatica Università di Pisa A.A. 2014/15 e per i modelli iterativi analisi peliminare analisi e progettazione realizzazione Necessità di

Dettagli

AUTOMA A STATI FINITI

AUTOMA A STATI FINITI Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate

Dettagli

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) È una famiglia di notazioni grafiche che si basano su un singolo meta-modello Serve per definire, progettare, realizzare e documentare sistemi sw (in particolare quelli

Dettagli

Il Modello a scambio di messaggi

Il Modello a scambio di messaggi Il Modello a scambio di messaggi 1 Interazione nel modello a scambio di messaggi Se la macchina concorrente e` organizzata secondo il modello a scambio di messaggi: PROCESSO=PROCESSO PESANTE non vi è memoria

Dettagli

Descrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento

Descrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento Diagrammi di interazione Diagrammi di sequenza Diagrammi di comunicazione (ex collaborazione) Diagrammi di interazione generale Diagrammi di temporizzazione Descrivono la collaborazione di un gruppo di

Dettagli

Antinisca Di Marco. Laboratorio di Ingegneria del Software a.a

Antinisca Di Marco. Laboratorio di Ingegneria del Software a.a Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2014-2015 Antinisca Di Marco Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli

Dettagli

A.A ALLIEVI DEL III ANNO IN INGEGNERIA INFORMATICA

A.A ALLIEVI DEL III ANNO IN INGEGNERIA INFORMATICA A.A. 2013-2014 ALLIEVI DEL III ANNO IN INGEGNERIA INFORMATICA PRIMA PARTE DEL PROGETTO DA PRESENTARE OBBLIGATORIAMENTE COME PROVA (NON ESCLUSIVA) D ESAME DELL INSEGNAMENTO INGEGNERIA DEL SOFTWARE (9 CFU)

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

Ciclo di vita di un sistema informativo

Ciclo di vita di un sistema informativo Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi e le priorità di realizzazione. Raccolta e analisi dei requisiti individua proprietà

Dettagli

SOMMARIO DIAGRAMMI DI ATTIVITÀ

SOMMARIO DIAGRAMMI DI ATTIVITÀ SOMMARIO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica, A.A. 2010 2011 2 ingegneria.software.math.unipd@gmail.com SOMMARIO 3 4 Analisi

Dettagli

Progettazione Logica e Modello Realizzativo

Progettazione Logica e Modello Realizzativo Progettazione Logica e Modello Realizzativo Metodologia di SI PREFERIBILMENTE ITERATIVA (1) Analisi dei Requisiti (Modello di Business): analisi di scenario, individuando i processi, gli attori coinvolti

Dettagli

CLASS DIAGRAM PARTE 1

CLASS DIAGRAM PARTE 1 Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering Laboratory CLASS DIAGRAM PARTE 1 UML The Unified Modeling Language Guglielmo De Angelis guglielmo.deangelis@isti.cnr.it

Dettagli

UML2. Package di Analisi. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino

UML2. Package di Analisi. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino UML2 Package di Analisi Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino (Laboratorio di Ingegneria del Software) UML 2 Package di Analisi

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi

Dettagli

Use Case Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Use Case Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM)- Università degli Studi

Dettagli

Verifica Formale in Spin di WF-nets e Diagrammi delle Attività UML

Verifica Formale in Spin di WF-nets e Diagrammi delle Attività UML Verifica Formale in Spin di WF-nets e Diagrammi delle Attività UML Seminario per il corso di Metodi Formali nell Ingegneria del Software Professore: Toni Mancini Autore: Stefano Menotti Obiettivi Principali

Dettagli

UML2. Attività di Progettazione. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino

UML2. Attività di Progettazione. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino UML2 Attività di Progettazione Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino (Laboratorio di Ingegneria del Software) UML 2 Attività di

Dettagli

Verifica parte IID. Test in grande. Test e modularità. Test di modulo

Verifica parte IID. Test in grande. Test e modularità. Test di modulo Test in grande Verifica parte IID Rif. Ghezzi et al. 6.3.5-6.3.6 Molte delle tecniche viste finora hanno alta complessità, o non sono automatizzabili. Possono quindi essere applicate solo a programmi piccoli,

Dettagli

Progettazione e pianificazione

Progettazione e pianificazione Lezione 2: Modellazione concettuale Progettazione concettuale nel ciclo di vita di un SIT Il modello E/R Specifica vs Progettazione concettuale Integrazione di schemi Peculiarità dei SIT Modellare i dati

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Fondamenti di Informatica e Programmazione

Fondamenti di Informatica e Programmazione Fondamenti di Informatica e Programmazione Prof. G ianni D Angelo Email: giadangelo@unisa.it A. A. 2018/19 Dati e Basi di Dati 1/4 I dati sono importanti poiché costituiscono una risorsa aziendale La loro

Dettagli

Attività vs. Stato. Elementi di UML (4) Activity diagram. Activity diagram: notazione (1/3) Activity diagram: notazione (2/3)

Attività vs. Stato. Elementi di UML (4) Activity diagram. Activity diagram: notazione (1/3) Activity diagram: notazione (2/3) Elementi di UML (4) Attività vs. Stato UML 1! Attività: Un insieme di azioni che deve essere necessariamente ed interamente completato prima di potersi considerare terminato.! Stato: Un punto ben preciso

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti Microsoft Access Nozioni di base Contatti: Dott.ssa Silvia Bonfanti silvia.bonfanti@unibg.it Introduzione In questa lezione vedremo lo strumento Microsoft Access ed impareremo come realizzare con esso

Dettagli

SOMMARIO. DIAGRAMMI DEI CASI D USO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Cosa sono gli Use Case. Specifica Use Case

SOMMARIO. DIAGRAMMI DEI CASI D USO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Cosa sono gli Use Case. Specifica Use Case SOMMARIO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2017 2018 Use Case: Inclusione Use Case: Estensione Use Case: Generalizzazione

Dettagli

INTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a

INTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a INTRODUZIONE ALLA PROGETTAZIONE Patrizio Dazzi a.a. 2017-2018 COMUNICAZIONI Lezione odierna e successive Metodologia di progetto Progettazione concettuale Progettazione logica Fondamentali per il secondo

Dettagli

Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2006/2007

Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2006/2007 Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2006/2007 1 Che cos è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare

Dettagli

Corso di Ingegneria del Software. Casi d uso

Corso di Ingegneria del Software. Casi d uso Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it 1. 2. 2.1 Il linguaggio dei casi d uso 2.2 Esempi 3. Bibliografia Sommario 1. 2. 2.1 Il linguaggio dei casi d uso

Dettagli

Il Dimensional Fact Model

Il Dimensional Fact Model Il Dimensional Fact Model Per le slides si ringrazia il Prof. Stefano Rizzi (http://www-db.deis.unibo.it/~srizzi/) e il Dott. Angelo Sironi Quale formalismo? Mentre è universalmente riconosciuto che un

Dettagli

Modello Entità - Relazione. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G2 D B M G4 D B M G6. Progettazione di basi di dati

Modello Entità - Relazione. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G2 D B M G4 D B M G6. Progettazione di basi di dati di basi di dati Modello Entità-Relazione concettuale logica Normalizzazione Sistemi informativi D B M G D B M G2 Modello Entità-Relazione di basi di dati di basi di dati Entità e relazioni Attributi Identificatori

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema

Dettagli

Fondamenti di Informatica II 21. Standard UML

Fondamenti di Informatica II 21. Standard UML Premessa In questa lezione sono descritte importanti dello standard UML alcune caratteristiche piu Fondamenti di Informatica II 21. Standard UML Lo standard UML verrà trattato in maniera piu approfondita

Dettagli

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Introduzione ai sottoprogrammi Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Introduzione al corso, Paolo Bison, FI06, 2007-02-06 p.1 Struttura programma formato da vari elementi

Dettagli

Corso di Ingegneria del Software. Esempi di casi d uso

Corso di Ingegneria del Software. Esempi di casi d uso Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it Casi d uso Sommario 1. 2. 3. Casi d uso e specifica dei requisiti 4. Esempio: sistema iscrizione ed esami 5. Bibliografia

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Premessa In questa lezione sono descritte alcune caratteristiche piu importanti dello standard UML Fondamenti di Informatica 24. Standard UML Lo standard UML verrà trattato in maniera piu approfondita

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente

Dettagli

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Progetto ID 24063 Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi universitari

Dettagli

Relazioni tra le classi e rappresentazione mediante diagrammi delle classi UML. Relazioni tra le classi Ereditarietà (is a)...

Relazioni tra le classi e rappresentazione mediante diagrammi delle classi UML. Relazioni tra le classi Ereditarietà (is a)... Sommario Relazioni tra le classi... 2 Ereditarietà (is a)... 2 Associazione (has a)... 2 Composizione... 2 Aggregazione... 2 Dipendenza (using)... 3 Unified Modeling Language (UML)... 3 Diagramma delle

Dettagli

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni SOMMARIO Introduzione Proprietà e Operazioni DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica,

Dettagli

Sistemi informativi D B M G

Sistemi informativi D B M G Sistemi informativi D B M G Progettazione di basi di dati Modello Entità-Relazione Progettazione concettuale Progettazione logica Normalizzazione D B M G 2 Modello Entità-Relazione Ciclo di vita di un

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Introduzione ai casi d uso

Introduzione ai casi d uso Introduzione ai casi d uso versione 16 marzo 2009 http://www.analisi-disegno.com Introduzione ai casi d uso Pag. 1 Obiettivo di questa introduzione fornire elementi di base sui casi d uso fornire indicazioni

Dettagli

LEZIONE 7 STATE MACHINE DIAGRAM

LEZIONE 7 STATE MACHINE DIAGRAM Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering and Dependable Computing Laboratory LEZIONE 7 STATE MACHINE DIAGRAM Laboratorio di Ingegneria del Software Guglielmo De

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Progettazione OO Agenda Astrazione e classificazione Generalizzazione e Refactoring Riuso Interfacce e classi di utilità Patterns di progettazione GRASP Obiettivi Ottenere dei modelli

Dettagli

Somma 3-bit. somma 3-bit con I/O sequenziale. somma 3-bit con I/O sequenziale. Osservazione

Somma 3-bit. somma 3-bit con I/O sequenziale. somma 3-bit con I/O sequenziale. Osservazione RETI COMBINATORIE In una rete combinatoria l uscita è funzione dei soli ingressi u = f () ADDIZIONATORE PARALLELO Addizionatore parallelo (a propagazione di riporto - ripple carry) per numeri binari di

Dettagli

A. Ferrari Object Oriented Design

A. Ferrari Object Oriented Design Object Oriented Design UML class diagram cos è UML o è un linguaggio di progettazione, da non confondere con i linguaggi di programmazione (Python, C, C++, Java, ) o fornisce una serie di diagrammi per

Dettagli

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione Obiettivi Unità A2 Progettazione concettuale Imparare ad astrarre i dati per definire entità. Saper distinguere tra astrazione per classificazione, per aggregazione e per generalizzazione. Saper distinguere

Dettagli

D B M G D B M G 2. Sistemi informativi. Progettazione di basi di dati

D B M G D B M G 2. Sistemi informativi. Progettazione di basi di dati Sistemi informativi D B M G Progettazione di basi di dati Modello Entità-Relazione Progettazione concettuale Progettazione logica Normalizzazione D B M G 2 1 Progettazione di basi di dati D B M G Modello

Dettagli

Ingegneria del Software 3. Analisi dei requisiti. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 3. Analisi dei requisiti. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 3. Analisi dei requisiti Dipartimento di Informatica Università di Pisa A.A. 2014/15 l attività di analisi Studiare e definire il problema da risolvere Per identificare il prodotto

Dettagli

Analisi Orientata agli Oggetti

Analisi Orientata agli Oggetti Generalità Concetti di base: Oggetto, Classe, Attributo, Operazione, Associazione, Aggregazione, Generalizzazione, Ereditarietà Il Diagramma delle Classi: notazione UML 1 Generalità Approccio all analisi

Dettagli

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Progetto ID 24063 Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi universitari

Dettagli

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi D1_2 V3.

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi D1_2 V3. Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE Paolo Salvaneschi D1_2 V3.4 Reti di Petri Il contenuto del documento è liberamente utilizzabile

Dettagli

DISPENSE DI PROGRAMMAZIONE LINGUAGGI A TIPIZZAZIONE FORTE: IL COSTRUTTO DI TIPO. TIPI SEMPLICI: TIPI PRE-DEFINITI E TIPI DEFINITI DAL PROGRAMMATORE.

DISPENSE DI PROGRAMMAZIONE LINGUAGGI A TIPIZZAZIONE FORTE: IL COSTRUTTO DI TIPO. TIPI SEMPLICI: TIPI PRE-DEFINITI E TIPI DEFINITI DAL PROGRAMMATORE. DISPENSE DI PROGRAMMAZIONE Modulo 3 Linguaggi di programmazione: dati e controllo (Parte I) LINGUAGGI A TIPIZZAZIONE FORTE: IL COSTRUTTO DI TIPO. TIPI SEMPLICI: TIPI PRE-DEFINITI E TIPI DEFINITI DAL PROGRAMMATORE.

Dettagli

Principi di Progettazione del Software a.a

Principi di Progettazione del Software a.a Principi di Progettazione del Software a.a. 2016-2017 UML: approfondimenti sui diagrammi delle classi e di sequenza. Diagrammi di package e di deployment Prof. Università del Salento Obiettivi della lezione

Dettagli