La Modellazione del Sistema: viste dinamiche e comportamentali. P Tramontana Modelli di sistema- Introduzione a UML Slide 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "La Modellazione del Sistema: viste dinamiche e comportamentali. P Tramontana Modelli di sistema- Introduzione a UML Slide 1"

Transcript

1 La Modellazione del Sistema: viste dinamiche e comportamentali P Tramontana Modelli di sistema- Introduzione a UML Slide 1

2 Riferimenti Martin Fowler, UML Distilled, capitoli 4 (sequence diagram), 10 (statechart diagram), 11 (activity diagram), 12 (communication diagram), 16 (interaction overview diagram), 17 (time diagram) Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 2 P Tramontana Modelli di sistema- Introduzione a UML Slide 2

3 Diagrammi comportamentali A completamento di quelli strutturali, modellano il comportamento dinamico di un sistema (o di un problema da analizzare) Use case diagram Statechart diagram Activity Diagrams Interaction diagrams Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 3 P Tramontana Modelli di sistema- Introduzione a UML Slide 3

4 Diagrammi di Interazione I diagrammi di Interazione sono usati per modellare gli aspetti dinamici di un sistema software, evidenziando in particolare le interazioni tra gli elementi che li compongono (e che sono stati descritti nei diagrammi strutturali) Ci sono quattro tipi di diagrammi di interazione : Sequence diagrams Communication diagrams in UML 1 erano chiamati collaboration diagrams Interaction Overview Diagrams Timing Diagrams I diagrammi di interazione appartengono alla famiglia dei Behaviour Diagram Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 4 P Tramontana Modelli di sistema- Introduzione a UML Slide 4

5 Sequence Diagrams Rappresentano il tipo di diagramma di interazione largamente più utilizzato In generale, un sequence diagram modella le interazioni tra uno o più attori e il sistema software, nell ambito dell esecuzione di uno scenario di esecuzione Le interazioni tra attori e sistema e tra le varie parti del sistema sono modellate in forma di messaggi, così come prevede il paradigma object-oriented Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 5 P Tramontana Modelli di sistema- Introduzione a UML Slide 5

6 Sequence diagrams: esempio Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 6 P Tramontana Modelli di sistema- Introduzione a UML Slide 6

7 Sequence diagram: elementi Istanze di classi Rappresentate da rettangoli col nome della classe e l identificatore dell oggetto sottolineati (notazione UML 1) oppure semplicemente con un nome dal quale si evinca che si sta considerando un istanza della classe (ad esempio anorder oppure aproduct) Attori Rappresentati come negli use case diagrams Sono riportati sulla sinistra, con frecce di interazione verso oggetti del sistema Possono anche non essere riportati, nel caso in cui lo scenario venga avviato a sua volta da un altro scenario Messaggi Rappresentati come frecce da un attore ad un oggetto, o fra due oggetti. I messaggi di ritorno (se riportati) hanno una linea tratteggiata I messaggi sincroni terminano con una freccia triangolare piena I messaggi asincroni terminano con una freccia semplice Un messaggio può anche insistere all interno di uno stesso oggetto: in tal caso è indicato da un autonello L ordine dei messaggi (dall alto verso il basso) ricalca l ordine sequenziale con il quale vengono scambiati Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 7 P Tramontana Modelli di sistema- Introduzione a UML Slide 7

8 Sequence diagrams Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 8 P Tramontana Modelli di sistema- Introduzione a UML Slide 8

9 Lifelines e barre di attivazione Lifelines (linee di vita) Si tratta di linee tratteggiate verticali, che partono dal rettangolo rappresentativo dell oggetto e giungono fino al fondo del diagramma. Indicano il periodo temporale di vita dell oggetto, dalla sua costruzione alla sua distruzione Le linee di vita di oggetti staticamente definiti (static) partono dalla cima del diagramma Una richiesta al costruttore può creare un oggetto: in questo caso l oggetto viene disegnato al termine della freccia corrispondente al messaggio di creazione La distruzione di oggetti è indicata da una croce (ics) che interrompe la lifeline dell oggetto Activation box (Barra di attivazione ) E rappresentata da un rettangolo che copre una parte della lifeline di un oggetto cui giunge un messaggio Rappresenta idealmente il periodo di tempo necessario per elaborare la richiesta giunta all oggetto Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 9 P Tramontana Modelli di sistema- Introduzione a UML Slide 9

10 Sequence diagram: campo di applicazione I sequence diagram sono utilizzati in diverse fasi del ciclo di vita di un software In fase di analisi, un sequence diagram può essere una rappresentazione grafica di uno scenario di un caso d uso In questo caso, il ruolo di oggetti sarà mantenuto da un generico oggetto Sistema Potranno comparire altri oggetti (indicanti ad esempio alcuni componenti architetturali quali server, database, etc.) se essi rappresentano elementi vincolati Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 10 P Tramontana Modelli di sistema- Introduzione a UML Slide 10

11 Esempio: Sequence diagram a livello di analisi Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 11 P Tramontana Modelli di sistema- Introduzione a UML Slide 11

12 Sequence diagram: campo di applicazione In fase di progettazione di alto livello i sequence diagram descrivono ancora scenari di casi d uso ma Come oggetti compaiono istanze delle classi del dominio del problema Come messaggi compaiono le responsabilità e le operazioni stabilite dal class diagram di dominio del problema Non compaiono, invece, elementi architetturali (database, etc.) Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 12 P Tramontana Modelli di sistema- Introduzione a UML Slide 12

13 Sequence diagram: un esempio :CourseSection :Student requesttoregister :Registration <<create>> addtoschedule addtoregistrationlist Course getprerequisite * CourseSection * Registration * requesttoregister addtoregistrationlist Student addtoschedule haspassedcourse Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 13 P Tramontana Modelli di sistema- Introduzione a UML Slide 13

14 Sequence diagram: campo di applicazione In fase di progettazione di dettaglio i sequence diagram descrivono realizzazioni di metodi Come oggetti compaiono istanze delle classi di progetto di dettaglio Come messaggi compaiono le chiamate di metodo sugli oggetti Al posto degli elementi architetturali dovrebbero comparire oggetti delle classi che ne consentono l accesso (ad esempio, anzichè database potrebbe comparire l oggetto JDBC sul quale si effettuano le query) Per la descrizione di algoritmi, i sequence diagram non sono lo strumento più adatto: ad essi verranno spesso preferiti activity e statechart diagrams Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 14 P Tramontana Modelli di sistema- Introduzione a UML Slide 14

15 Sequence diagrams: esempio Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 15 P Tramontana Modelli di sistema- Introduzione a UML Slide 15

16 Controllo centralizzato e distribuito Due diversi paradigmi per la progettazione, applicati ai sequence diagram Centralizzato: un oggetto ha il controllo; gli altri forniscono servizi Distribuito: le responsabilità sono distribuite tra gli oggetti Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 16 P Tramontana Modelli di sistema- Introduzione a UML Slide 16

17 Sequence diagram: elementi Un sequence diagram dovrebbe servire per modellare uno e un solo scenario di caso d uso C è il rischio di dover disegnare moltissimi diagrammi, uno per ogni scenario alternativo A partire da UML 2, sono stati proposti e formalizzati costrutti che consentono di modellare cicli e condizioni, in modo da poter visualizzare algoritmi in un sequence diagram Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 17 P Tramontana Modelli di sistema- Introduzione a UML Slide 17

18 Sequence diagram: cicli e condizioni Cicli e condizioni si indicano con un riquadro (frame) che racchiude una sottosequenza di messaggi Nell angolo in alto è indicato il costrutto. Tra i costrutti possibili Loop (ciclo while-do o do-while): la condizione è indicata tra parentesi quadra all inizio o alla fine Alt (if-then-else): la condizione si indica in cima; se ci sono anche dei rami else allora si usa una linea tratteggiata per separare la zona then dalla zona else indicando eventualmente un altra condizione accanto alla parola else Opt (if-then): racchiude una sottosequenza che viene eseguita solo se la condizione indicata in cima è verificata Sono possibili anche altri costrutti per indicare parallelismo, regioni critiche, etc. In realtà, è buona norma utilizzare altri tipi di diagramma quando l algoritmo da modellare si fa complesso Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 18 P Tramontana Modelli di sistema- Introduzione a UML Slide 18

19 Sequence diagrams: esempio Questa notazione é stata introdotta con UML versione 2 Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 19 P Tramontana Modelli di sistema- Introduzione a UML Slide 19

20 Esempio: azienda alimentare Una azienda produttrice di prodotti alimentari, vuole organizzare un sistema informativo aziendale. Tutti gli utenti dell applicazione devono essere in grado di visualizzare informazioni relative al catalogo dei prodotti. Inoltre i dipendenti devono essere in grado di accedere ad informazioni relative alle loro mansioni. I prodotti sono organizzati in linee di prodotto che accomunano prodotti dello stesso tipo: ad esempio, due linee possono essere pasta e sughi. I prodotti possono essere confezionati in diversi stabilimenti. I dipendenti si suddividono in diverse categorie: i manager, che sono responsabili di una o più linee di produzione (ogni linea é però gestita esattamente da tre manager, per assicurare una gestione equa), i supervisori della produzione che sono responsabili di tutti i prodotti di una specifica linea in uno specifico stabilimento, e gli operai che lavorano su uno specifico prodotto in un determinato stabilimento. L applicazione deve consentire ai manager di accedere alle informazioni relative ai dipendenti di cui sono responsabili, e a tutti di accedere alle informazioni sui prodotti. Il supervisore invia ogni anno una mail di auguri di Pasqua a tutti gli operai e i manager che lavorano nello stabilimento che contiene la linea di prodotto di cui è responsabile All apertura di una nuova linea di prodotto in uno stabilimento, il supervisore stabilisce tre manager che la gestiscano tra quelli già presenti in azienda. Se non vi sono abbastanza manager disponibili, provvede ad assumerne di nuovi Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 20 P Tramontana Modelli di sistema- Introduzione a UML Slide 20

21 System Domain Model Stabilimento Operaio 1..* 1..* Assegnazione Supervisore 1..* Prodotto * 1..* Linea di Prodotto 1..* Responsabilità Catalogo -Visualizza info prodotti() 3 +Responsabile Manager --Leggi Info dipendenti() Dipendente --Visualizza Mansione() Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 21 P Tramontana Modelli di sistema- Introduzione a UML Slide 21

22 Sequence diagram Invia mail : Stabilimento : Operaio : Linea di Prodotto : Manager : Supervisore : Supervisore 1 : Elenca operai() loop [For each operaio] 2 : Leggi operaio() : Elenca Manager() loop [3] 6 : Leggi Manager() : Invia mail() 10 Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 22 P Tramontana Modelli di sistema- Introduzione a UML Slide 22

23 Communication diagrams I Communication diagram mostrano come gli oggetti collaborano per realizzare un interazione. Un communication diagram è un grafo i cui vertici sono oggetti e cui archi rappresentano link di comunicazione fra oggetti L ordinamento temporale è indicato facendo precedere il messaggio da un numero di sequenza Per le chiamate innestate si utilizza una dot notation Sono anche noti come Collaboration Diagram Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 23 P Tramontana Modelli di sistema- Introduzione a UML Slide 23

24 Communication Diagram: esempio Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 24 P Tramontana Modelli di sistema- Introduzione a UML Slide 24

25 Altro esempio :CourseSection 1: <<create>> :Registration 2: addtoschedule :Student 3: addtoregistrationlist Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 25 P Tramontana Modelli di sistema- Introduzione a UML Slide 25

26 Confronti con altri diagrammi In un communication diagram dovrebbero comparire gli stessi elementi di un sequence diagram (la conversione automatica è possibile) Non bisogna confondere communication diagram e object diagram Negli object diagram gli archi rappresentano relazioni statiche tra gli oggetti Non compaiono oggetti temporanei Non ci sono informazioni sulla sequenzialità delle chiamate Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 26 P Tramontana Modelli di sistema- Introduzione a UML Slide 26

27 Diagrammi di Stato Un diagramma di stato descrive il comportamento di un sistema, una parte di un sistema, o di un oggetto specifico. In un dato istante, il sistema o l oggetto sono in un certo stato. Essere in uno stato significa che esso si comporterà in uno specifico modo in risposta a qualche evento che si verificherà. Alcuni eventi possono far cambiare stato al sistema. Nel nuovo stato, di fronte agli eventi il sistema si comporterà diversamente. Un diagramma di stato è un grafo diretto dove i nodi sono gli stati e gli archi sono le transizioni. Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 27 P Tramontana Modelli di sistema- Introduzione a UML Slide 27

28 Esempio: oggetto Libro stato iniziale acquisizione libro( dati libro, autori, editore ) evento transizione di stato stato acquisito prestito( data ) in prestito restituzione( data restituzione ) scadenza termini cancellazione libro( ISDN ) stato finale restituzione( data restituzione ) sollecito in ritardo cancellazione libro( ISDN ) Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 28 P Tramontana Modelli di sistema- Introduzione a UML Slide 28

29 Stati Uno stato è rappresentato da un rettangolo arrotondato con il suo nome In un dato istante, uno e un solo stato del diagramma può verificarsi Tutti gli stati sono considerati stabili: solo un evento può causare la transizione da uno stato all altro Stati speciali (pseudostati): Lo stato iniziale (non può essere raggiunto) Lo stato finale (non può essere lasciato) Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 29 P Tramontana Modelli di sistema- Introduzione a UML Slide 29

30 Transizioni Una transizione è un cambiamento di stato in risposta ad un evento È considerata istantanea. Viene etichettata con la sintassi: Evento trigger [guardia] / attività Evento trigger è l evento che scatena la transizione; Guardia è una condizione booleana ulteriore che deve essere verificata affinchè possa scatenarsi la transizione Attività è una azione elaborativa che si verifica contestualmente con la transizione Abbinare attività alle transizioni è l elemento caratterizzante delle macchine di Mealy Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 30 P Tramontana Modelli di sistema- Introduzione a UML Slide 30

31 Esempio Avvia distributore/azzera credito Inserimento moneta [credito+moneta<2 euro]/ Incrementa credito Richiesta restituzione/restituisci e decrementa credito Attesa Spegni distributore/restituisci e decrementa credito Richiesta restituzione/restituisci e decrementa credito Inserimento moneta [credito+moneta>=2 euro]/incrementa credito Inserimento moneta/incrementa credito Erogazione avvenuta [credito<4 euro]/decrementa credito Attesa scelta prodotto Time Out per erogazione fallita Scelta prodotto 2 euro Erogazione avvenuta [credito>=4 euro]/decrementa credito Statechart diagram di un distributore automatico. Il distributore eroga prodotti del costo di 2 euro. Il distributore accetta diversi tipi di monete. Erogazione Prodotto Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 31 P Tramontana Modelli di sistema- Introduzione a UML Slide 31

32 Attività interne Spesso le auto-transizioni sono indicate come attività interne All interno dello stato vengono descritti eventi, trigger e attività Attesa entry/azzera credito do/inserimento moneta [credito<2euro] / Incrementa credito do/richiesta restituzione/restituisci credito e decrementa exit/... Entry identifica le attività che si svolgono all ingresso nello stato Exit identifica le attività che si svolgono all uscita dallo stato Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 32 P Tramontana Modelli di sistema- Introduzione a UML Slide 32

33 Activity State Talvolta gli stati non corrispondono a periodi in cui l oggetto è in attesa inerte di un evento ma a periodi di tempo necessari al completamento di un attività In tal caso si parla di Activity State Tale modellazione è coerente con quella di una macchina di Moore, nella quale le azioni sono legate agli stati Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 33 P Tramontana Modelli di sistema- Introduzione a UML Slide 33

34 Esempio di Activity State Lo stato In Ricerca è un Activity State L arco di uscita dallo stato non etichettato indica l uscita per terminazione dell attività Cerca nuovo hardware è una descrizione più precisa dell attività dell activity state Non essendoci una guardia, è l unica attività che può essere eseguita da quello stato Il concetto di Activity State è molto simile al concetto di attività che verrà definito nell ambito degli Activity Diagram Aggiorna finestra dell'hardware Lancia Ricerca In Ricerca Visualizza finestra nuovo hardware do/cerca nuovo hardaware Annulla Ricerca Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 34 P Tramontana Modelli di sistema- Introduzione a UML Slide 34

35 Attività e Azioni UML 1 distingueva tra Azioni ed Attività Un azione veniva svolta in un tempo trascurabile ed era comunque non interrompibile, per cui poteva essere associata ad una transizione di stato Un attività invece richiedeva un tempo significativo, nel quale potevano verificarsi altri eventi che la interrompevano o influenzavano Per tale motivo andava modellata come Activity State Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 35 P Tramontana Modelli di sistema- Introduzione a UML Slide 35

36 Superstati Un diagramma di stato può essere innestato all interno di uno stato. Gli stati del diagramma interno sono detti sotto-stati. Gli archi possono essere diretti verso il superstato (e in tal caso si intende che siano diretti verso il suo stato iniziale) o verso un suo sottostato Neutral selectreverse selectneutral selectfirst selectdrive selectsecond selectneutral Reverse reachsecondspeed reachthirdspeed [driveselected] [driveselected] First Second Third dropbelowsecondspeed dropbelowthirdspeed [driveselected] selectfirst selectsecond Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 36 P Tramontana Modelli di sistema- Introduzione a UML Slide 36

37 Implementazione degli statechart Uno statechart a livello di dettaglio può essere implementato utilizzando una catena di switch nidificati Switch (statocorrente) { Case stato1: Switch (unevento) Case evento1: if (guardia1) azioneevento1; Break; Case stato2 } Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 37 P Tramontana Modelli di sistema- Introduzione a UML Slide 37

38 Pattern State Una soluzione più efficace in sistemi object oriented consiste nell utilizzo del pattern State Lo statechart viene tradotto con: Una classe generale che dichiara i metodi corrispondenti a tutte le azioni ma li implementa senza fare nulla Una serie di classi derivate, corrispondenti agli stati del diagramma, che implementano soltanto i metodi corrispondenti agli eventi scatenabili su quello stato (per overriding) Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 38 P Tramontana Modelli di sistema- Introduzione a UML Slide 38

39 Applicabilità Gli statechart diagrams sono utili quando si vuole modellare il comportamento di una classe complessa Nella modellazione di dettaglio, gli statechart diagram possono essere implementati efficacemente utilizzando il pattern State Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 39 P Tramontana Modelli di sistema- Introduzione a UML Slide 39

40 Activity Diagrams Un activity diagram Può essere usato per modellare un flusso di lavoro (workflow) In fase di analisi può essere utilizzato per modellare un problema reale In fase di progettazione di alto livello per modellare l interazione tra gli oggetti concettuali nella risoluzione di un problema In fase di progettazione di dettaglio può essere usata per modellare un algoritmo, eventualmente concorrente, che deve essere implementato Un activity diagram rappresenta un estensione di un diagramma di flusso, con l introduzione, in particolare, delle esecuzioni concorrenti Un activity diagram nasce, nell ambito di UML, come una estensione dello statechart diagram Nelle ultime versioni se ne è, però, completamente distaccato, per cui ha senso studiarlo separatamente Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 40 P Tramontana Modelli di sistema- Introduzione a UML Slide 40

41 Attività e flussi Le attività sono definite come azioni elaborative che il sistema deve compiere e sono modellate con rettangoli dai bordi arrotondati identificate dal nome dell attività stessa Il flusso tra le attività è modellato con frecce entranti/uscenti dall attività Per convenzione, l ingresso nell attività coincide con il suo inizio; l uscita dall attività coincide con il suo completamento Esistono anche qui degli stati iniziali e finali delimitanti il diagramma Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 41 P Tramontana Modelli di sistema- Introduzione a UML Slide 41

42 Branch Il branch è una attività di decisione Corrisponde ad un IF È modellata con un rombo che abbia un solo arco entrante e più di un arco uscente Ogni arco uscente è etichettato con una condizione di guardia (tra parentesi quadre) Le condizioni devono essere tra loro mutuamente esclusive Il merge è l elemento duale del branch Corrisponde ad un END IF E anch esso modellato con un rombo, ma con un solo arco uscente e più di un arco entrante Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 42 P Tramontana Modelli di sistema- Introduzione a UML Slide 42

43 Fork e Join Il fork rappresenta una biforcazione del flusso in due o più thread E rappresentato con una barra orizzontale nella quale entra un solo arco e ne esce più di uno Gli archi uscenti non sono etichettati e si intende che altrettanti thread siano avviati contemporaneamente a seguito della biforcazione Il join è il duale del fork E rappresentato anch esso da una barra orizzontale nella quale entra più di un arco e ne esce uno solo Fork e Join corrispondono esattamente alle omonime primitive concettuali della programmazione concorrente Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 43 P Tramontana Modelli di sistema- Introduzione a UML Slide 43

44 Activity diagrams: esempio Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 44 P Tramontana Modelli di sistema- Introduzione a UML Slide 44

45 Activity diagrams esempio Receive course registration request [not ok] Check prerequisites Check special permission [ok] [ok] [ok] Verify course not full [not ok] [not ok] Complete registration Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 45 P Tramontana Modelli di sistema- Introduzione a UML Slide 45

46 Swimlanes Gli activity diagram possono essere utilizzati per modellare interazioni tra classi diverse L activity diagram è suddiviso in corsie verticali (swimlanes), in ognuna delle quali trovano posto le activity che si riferiscono ad una particolare classe [not ok] Check prerequisites Check special permission [not ok] Student [ok] [ok] Receive course registration request Verify course not full [ok] CourseSection [not ok] Complete registration Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 46 P Tramontana Modelli di sistema- Introduzione a UML Slide 46

47 Macroattività Il limite degli activity diagram è probabilmente la descrizione troppo dettagliata dei problemi. Per poter supportare diversi livelli di astrazione, è possibile racchiudere attività complesse in attività generiche, e dettagliarle separatamente in altri grafici Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 47 P Tramontana Modelli di sistema- Introduzione a UML Slide 47

48 Segnali Negli activity diagram non compaiono esplicitamente eventi, a differenza degli statechart diagram Per compensare tale mancanza, sono stati introdotti i segnali Un segnale indica un qualsiasi evento asincrono esterno che influenza l esecuzione di un activity Caso tipico è rappresentato dai segnali temporali Simboli diversi indicano Segnali inviati (send) Segnali ricevuti (receive) Segnali temporali (timer) Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 48 P Tramontana Modelli di sistema- Introduzione a UML Slide 48

49 Esempi Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 49 P Tramontana Modelli di sistema- Introduzione a UML Slide 49

50 Altri elementi Altri elementi minori possono trovarsi negli activity diagram Pin, utilizzati per dichiarare esplicitamente i dati in ingresso/uscita da un attività Regioni di espansione, analoghe ai frame dei sequence diagram, che indicano che le attività al loro interno sono eseguite tante volte quante ne sono indicate nella guardia che li etichetta Specifiche di join, ovvero condizioni di guardia che determinano l effettiva esecuzione di un join Cfr. UML Distilled per approfondimenti Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 50 P Tramontana Modelli di sistema- Introduzione a UML Slide 50

51 Interaction overview diagrams Rappresentano una fusione di sequence diagram e activity diagram Fondono i vantaggi dei sequence diagram (rappresentazione più orientata alla descrizione degli scenari dei casi d uso) e degli activity diagram (rappresentazione più orientata alla descrizione di algoritmi, eventualmente concorrenti) Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 51 P Tramontana Modelli di sistema- Introduzione a UML Slide 51

52 Interaction overview diagram: un esempio Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 52 P Tramontana Modelli di sistema- Introduzione a UML Slide 52

53 Timing diagrams Sono un ulteriore strumento per modellare oggetti il cui comportamento dipende da esecuzioni concorrenti Porfirio Tramontana Ingegneria del Software UML parte 2 - Viste dinamiche e comportamentali 53 P Tramontana Modelli di sistema- Introduzione a UML Slide 53

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 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

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 1 Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 2 Rivediamo questo esempio di activity diagram Università

Dettagli

SOMMARIO DIAGRAMMI DI SEQUENZA

SOMMARIO DIAGRAMMI DI SEQUENZA SOMMARIO DIAGRAMMI DI SEQUENZA INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica, A.A. 2011 2012 2 rcardin@math.unipd.it SOMMARIO DIAGRAMMI

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

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

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

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

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

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 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

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

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009 UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 manuel.comparetti@iet.unipi.it UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

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

Diagrammi di attività

Diagrammi di attività Diagrammi di attività Combinano idee tratte da molte tecniche diverse (diagrammi degli eventi, modellazione di stato SDL, modellazione di workflow, reti di Petri) Costituiscono un argomento complesso (e

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

UML: DIAGRAMMA DI SEQUENZA

UML: DIAGRAMMA DI SEQUENZA UML: DIAGRAMMA DI SEQUENZA UC n. 4: Basi di dati andrea.reale@unibo.it 2 UML e diagrammi di interazione Abbiamo visto il diagramma delle classi in UML Utilizzato per rappresentare strutturalmente il dominio

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

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

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

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

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

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

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

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

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 Riepilogo della lezione

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

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

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 06 Programmi e Oggetti Software Marzo 2010 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il

Dettagli

Progettazione del Sofware

Progettazione del Sofware Corso Serale Progettazione del Sofware Perché Modellare un Sistema Necessità di realizzare un artefatto, indipendentemente dalla sua dimensione e settore di interesse (una casa, un particolare macchinario,

Dettagli

Macchine sequenziali. Automa a Stati Finiti (ASF)

Macchine sequenziali. Automa a Stati Finiti (ASF) Corso di Calcolatori Elettronici I Macchine sequenziali Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Programmi e Oggetti Software Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Programmi e Oggetti Software

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

Modellazione di Workflow mediante le Reti di Petri. Prof. Giancarlo Fortino

Modellazione di Workflow mediante le Reti di Petri. Prof. Giancarlo Fortino Modellazione di Workflow mediante le Reti di Petri Prof. Giancarlo Fortino g.fortino@unical.it Introduzione Il successo di un sistema di workflow si basa sulla qualità dei flussi di lavoro che lo compongono.

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Automa a Stati Finiti (ASF)

Automa a Stati Finiti (ASF) Automa a Stati Finiti (ASF) E una prima astrazione di macchina dotata di memoria che esegue algoritmi Introduce il concetto fondamentale di STATO che informalmente può essere definito come una particolare

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

Statechart Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

Statechart Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Statechart Diagrams Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Agenda Cosa è uno Statechart Diagram Quando

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 04 Programmi e Oggetti Software Alfonso Miola Ottobre 2012 http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Dettagli

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea magistrale in Ingegneria informatica Anno accademico 2016/2017-1 anno INGEGNERIA DEL SOFTWARE 9 CFU - 1 semestre Docente titolare

Dettagli

Function Block Diagram

Function Block Diagram Function Block Diagram Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 22-23 Maggio 2001 1 Sommario Struttura del linguaggio e notazioni grafiche Come esprimere espressioni semplici e complesse

Dettagli

Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno Corso di Ingegneria del Software - B UML

Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno Corso di Ingegneria del Software - B UML v. 2.3 Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2008-09 Corso di Ingegneria del Software - B UML Diagramma di macchina a stati (state machine diagram) Renato Cte - UML Diagrammi

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

LE BASI DI DATI. Prima parte Premesse introduttive I MODELLI DEI DATI

LE BASI DI DATI. Prima parte Premesse introduttive I MODELLI DEI DATI LE BASI DI DATI Prima parte Premesse introduttive I MODELLI DEI DATI MODELLAZIONE DEI DATI Un modello dei dati è un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la natura

Dettagli

Sequence Diagram e Collaboration Diagram

Sequence Diagram e Collaboration Diagram Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

LA METAFORA DELL UFFICIO

LA METAFORA DELL UFFICIO LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome

Dettagli

FSM: Macchine a Stati Finiti

FSM: Macchine a Stati Finiti FSM: Macchine a Stati Finiti Introduzione Automi di Mealy Automi di Moore Esempi Sommario Introduzione Automi di Mealy Automi di Moore Esempi Sommario Introduzione Metodo per descrivere macchine di tipo

Dettagli

Il Sistema Operativo Concorrenza e Grafi di precedenza

Il Sistema Operativo Concorrenza e Grafi di precedenza ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Elaborazione concorrente Elaborazione sequenziale Elaborazione concorrente Elaborazione parallela Grafi di Precedenza Grafi di

Dettagli

Alberi e alberi binari I Un albero è un caso particolare di grafo

Alberi e alberi binari I Un albero è un caso particolare di grafo Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra

Dettagli

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività Valentina Presutti (A-L) Riccardo Solmi (M-Z) Definizione del problema Modello di un dominio Si vuole

Dettagli

Sequence Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014

Sequence Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014 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

Programmazione II. Lezione 7. Daniele Sgandurra 9/11/2010.

Programmazione II. Lezione 7. Daniele Sgandurra 9/11/2010. Programmazione II Lezione 7 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 9/11/2010 1/24 Programmazione II Lezione 7 9/11/2010 Sommario 1 Gestione della Memoria 2/24 Programmazione II Lezione 7 9/11/2010

Dettagli

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi

Dettagli

Sistemi Informativi I Strumenti - UML

Sistemi Informativi I Strumenti - UML 8 UNIFIED MODELING LANGUAGE (UML)...2 8.1 UN APPROCCIO VISUALE ALLA PROGETTAZIONE....2 8.1.1 I vantaggi dell utilizzo di diagrammi nella fase di progettazione....2 8.2 COS È UML...3 8.2.1 Origini e breve

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

DIAGRAMMI DI SEQUENZA

DIAGRAMMI DI SEQUENZA DIAGRAMMI DI SEQUENZA Francesco Poggi fpoggi@cs.unibo.it A.A. 2015-2016 Premessa As always, there is never a correct solution to any modelling problem. It s more that some models are more precise, and

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

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Modellazione funzionale con Data Flow Diagram

Modellazione funzionale con Data Flow Diagram Modellazione funzionale con Data Flow Diagram 1 1 I Data Flow Diagram Traggono origine dalla teoria dei grafi e sono stati utilizzati anche precedentemente all avvento dei computer per la gestione delle

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

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

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Dispensa di Informatica II.1

Dispensa di Informatica II.1 ALGORITMI La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la realizzazione di algoritmi che poi potranno eventualmente essere sviluppati in moduli software con metodologia

Dettagli

Activity Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

Activity Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Activity Diagrams Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Agenda Cosa è un Activity Diagram Quando si

Dettagli

Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa.

Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole attive o trigger. Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla base di dati

Dettagli

Modulo 1 Concetti di base della Tecnologia dell Informazione

Modulo 1 Concetti di base della Tecnologia dell Informazione Modulo 1 Concetti di base della Tecnologia dell Informazione 1.0.1.1 1.0.1.2 1.0.1.3 Algoritmi Definizione di algoritmo e sua rappresentazione grafica Per algoritmo si intende un procedimento, che permette

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

1. UML 2 ed il Processo Unificato

1. UML 2 ed il Processo Unificato 1. UML 2 ed il Processo Unificato Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica (Laboratorio di Ingegneria del Software) 1. UML 2 ed il Processo Unificato 1 / 25 Sommario

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

Implementazione dell albero binario in linguaggio C++

Implementazione dell albero binario in linguaggio C++ Implementazione dell albero binario in linguaggio C++ Costruire il programma per gestire le operazioni su un albero binario. Ogni nodo dell albero contiene un codice e una descrizione; il programma deve

Dettagli

Prefazione. Capitolo 1 Sistemi di elaborazione 1

Prefazione. Capitolo 1 Sistemi di elaborazione 1 Prefazione XI Capitolo 1 Sistemi di elaborazione 1 1.1 Algoritmo 1 1.2 Esecuzione 3 1.3 Memoria 4 1.4 Calcolo meccanico 5 1.5 Capacità di calcolo 7 1.6 Computer 8 Domande di verifica 11 Esercizi 11 Capitolo

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Analisi: UML Use Cases & Documenti di Specifica Domenico Lembo Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Corso di Laurea in Ingegneria

Dettagli

I Tipi di Dato Astratto

I Tipi di Dato Astratto I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Alcuni diagrammi. OCL (Object Constraint Language)

Alcuni diagrammi. OCL (Object Constraint Language) UML e Java UML Alcune discipline ingegneristiche dispongono di validi mezzi di rappresentazione (schemi, diagrammi di prestazioni e consumi,...) Il software non dispone ancora di tecniche efficaci per

Dettagli

I diagrammi di interazione

I diagrammi di interazione I diagrammi di interazione Laboratorio di Sistemi e Processi Organizzativi Gian Piero Favini A.A. 2006-2007 Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 1 / 45 Tassonomia

Dettagli

ESEMPIO DI AUTOMATIZZAZIONE DI PROCESSO BIOTECNOLOGICO. (E-Wine)

ESEMPIO DI AUTOMATIZZAZIONE DI PROCESSO BIOTECNOLOGICO. (E-Wine) ESEMPIO DI AUTOMATIZZAZIONE DI PROCESSO BIOTECNOLOGICO (E-Wine) Giulio Botturi Davide Quaglia Introduzione Il caso di studio di questa esercitazione tratta la tracciabilità nella gestione di una collezione

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

Cos è la programmazione?

Cos è la programmazione? La programmazione Cos è la programmazione? Termine usato per indicare le attività che trasformano l esigenza di risolvere un Problema in un Programma, inteso come sistema informatico capace di risolvere

Dettagli

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! G R A F I 1 GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2 cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono

Dettagli

Analisi e specifica dei requisiti

Analisi e specifica dei requisiti Analisi e specifica dei requisiti Processo che stabilisce i servizi che il committente richiede al sistema da sviluppare ed i vincoli con cui lo si utilizzera` e sviluppera` Requisiti funzionali o non

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

Principles of Concurrent Programming

Principles of Concurrent Programming Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

ACSO Programmazione di Sistema e Concorrente

ACSO Programmazione di Sistema e Concorrente ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività

Dettagli

Chiamata di procedura remota

Chiamata di procedura remota Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

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

attività Unità 10.2 Strumenti per la calendarizzazione: GANTT e PERT Agenzia nazionale LLP - Programma settoriale Leonardo da Vinci 1

attività Unità 10.2 Strumenti per la calendarizzazione: GANTT e PERT Agenzia nazionale LLP - Programma settoriale Leonardo da Vinci 1 La calendarizzazione delle attività Unità 10.2 Strumenti per la calendarizzazione: GANTT e PERT Agenzia nazionale LLP - Programma settoriale Leonardo da Vinci 1 La calendarizzazione della attività Gli

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

il tipo di parallelismo dipende dal grado di cooperazione

il tipo di parallelismo dipende dal grado di cooperazione Thread Settembre 2009 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio d informazione) necessario tra attività svolte in parallelo processo macchina virtuale

Dettagli