Principi di Ingegneria del Software

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Principi di Ingegneria del Software"

Transcript

1 CEFRIEL Centro per la Formazione e la Ricerca in Ingegneria dell Informazione Politecnico di Milano Principi di Ingegneria del Software Unified Modeling Language Alfonso Fuggetta Politecnico di Milano e CEFRIEL Alfonso.Fuggetta@polimi.it

2 Indice Introduzione Caratteristiche di UML Diagrammi UML Class e Object Diagram Interaction Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Use Case Diagram Alcuni strumenti CASE di supporto Unified Modeling Language - 2 -

3 Unified Modeling Language E un insieme di linguaggi che, utilizzati congiuntamente, consentono di descrivere/modellare aspetti diversi di un sistema con un approccio O-O Struttura statica Comportamento dinamico Interazioni fra i diversi componenti del sistema Notazione grafica Linguaggio semi-formale Standard OMG per la modellizzazione di sistemi Object-Oriented sin dal 1997 Unified Modeling Language - 3 -

4 Origine di UML Unifica le notazioni e metodologie precedentemente elaborate dai suoi stessi autori quando operavano singolarmente G. Booch J. Rumbaugh (OMT) I. Jacobson Incorpora miglioramenti e suggerimenti provenienti da altre fonti e autori E il risultato della cooperazione di diverse persone ed organizzazioni Digital, HP, IBM, Microsoft, Oracle, Rational, TI, Unisys,... Unified Modeling Language - 4 -

5 Situazione UML 1.0 gennaio 97 Sottomissione a OMG gennaio 97 UML 1.1 settembre 97 UML 1.3 giugno 1999 Dove trovare informazioni costantemente aggiornate: internet newsgroup comp.object Unified Modeling Language - 5 -

6 Caratteristiche Non proprietario chiunque lo può usare chiunque può sviluppare strumenti di supporto Elimina le differenze (spesso inessenziali) presenti tra le notazioni precedenti Semi-formale l enfasi è sulla definizione della notazione c è peraltro un meta-modello semantico cui i tool dovranno fare riferimento la semantica non è comunque rigorosamente definita in tutti i casi (da cui la semi-formalità) Si è considerato il problema dello scambio di dati tra tool diversi (XMI, CDIF,...) Unified Modeling Language - 6 -

7 Indice Introduzione Caratteristiche di UML Diagrammi UML Class e Object Diagram Interaction Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Use Case Diagram Alcuni strumenti CASE di supporto Unified Modeling Language - 7 -

8 I class diagram Forniscono una vista strutturale (statica) del sistema in termini di classi attributi operazioni relazioni tra classi (associazioni, generalizzazioni,...) Un class diagram rappresenta uno schema concettuale se una classe A è in relazione con una classe B, allora ogni istanza di A sarà in relazione con un istanza di B Unified Modeling Language - 8 -

9 Similitudini Entità / Relazioni E una estensione dei diagrammi Entità / Relazioni. Introduce classificazione, istanziazione e aggregazione. Definisce non solo gli attributi, ma anche le operazioni. Altri modelli OO (Booch, OMT) Differenze sintattiche Unified Modeling Language - 9 -

10 Classi Una classe descrive un gruppo di oggetti con caratteristiche comuni attributi comportamento Gli oggetti (istanze) di una stessa classe differiscono tra loro per i valori degli attributi e per le relazioni che li legano ad altri oggetti. Unified Modeling Language

11 Notazione generale per le classi Nel caso più generale la notazione è la seguente. NomeClasse nome-attributo-1: tipo-dato-1 = valore-di-default-1 nome-attributo-2: tipo-dato-2 = valore-di-default-2... nome-operazione-1 (lista-argomenti-1): tipo-reso-1 nome-operazione-2 (lista-argomenti-2): tipo-reso-2... Persona Nome: string Età: int CambiaLavoro CambiaIndirizzo File Nome: string Dimensione: int Creazione: data Stampa Disegno Titolo: string Altezza: int Larghezza: int Stampa Ruota(gradi: int) Esempi di Rappresentazione di Classi, Attributi e Operazioni Unified Modeling Language

12 Livello di dettaglio visibile WINDOW WINDOW size: Area visibility: Bool display() public protected private + display() WINDOW {abstract} + size: Area =(100, 100) # visibility: Bool - xptr: Xwindow - attachxwin(xwin:xwindow) E possibile in ogni momento decidere il livello di visibilità: Classi degli attributi Classi dei parametri e dei valori restituiti dai metodi di una classe Qualificatori di attributi ed operazioni Unified Modeling Language

13 Classi: Implementazione Esiste una corrispondenza tra la rappresentazione UML di una classe e l implementazione con un linguaggio O-O (Es. Java) + importo: Real + data: Date + cliente: String - fatture_emesse : int = 0 Fattura Fattura() nome-operazione-1 (lista-argomenti-1): tipo-reso-1 nome-operazione-2 (lista-argomenti-2): tipo-reso-2 public class Fattura { public double importo; public Date data = new Date(); public String cliente; static private int fatture_emesse = 0; public Fattura() { fatture_emesse++; } // Altri metodi //... } Unified Modeling Language

14 Oggetti: Notazione grafica Un oggetto è un istanza di una classe Per rappresentare un oggetto si utilizza lo stesso simbolo usato per rappresentare le classi Il nome viene sottolineato per evidenziare che si tratta di un oggetto Analogamente a quanto accade per le classi è possibile decidere il livello di visibilita per attributi e valori Classe Istanze Order : Order MyOrder: Order MyOrder: Order number=0 amount=10000 Unified Modeling Language

15 Relazioni in UML In un Class Diagram vengono rappresentate relazioni oltre alle classi: Associazioni (semplici, aggregazioni, composizioni) Relazioni di generalizzazione Relazioni di dipendenza Relazioni di raffinamento Unified Modeling Language

16 Associazioni Una Associazione individua una connessione logica tra classi si traduce in una connessione fra oggetti istanze delle classi coinvolte nell associazione Il concetto di associazione è presente anche nella modellazione concettuale di database (Entity-Relationship) Nome (opzionale) dell'associazione Città Nome: string CapoluogoDi Regione Nome: string Nota: una associazione è naturalmente bidirezionale. Unified Modeling Language

17 Cardinalità nelle associazioni Indica il numero di istanze di una classe che possono essere associate ad una singola istanza dell altra classe Può non essere specificata ad uno degli estremi ( association-end ) o a entrambi E in questo caso non significa cardinalità pari a 1! Unified Modeling Language

18 Cardinalità nelle associazioni S2 P7 S1 S3 S5 P1 P3 P6 P5 S4 P2 P4 Situazione da descrivere Indicazione (opzionale) di molteplicità Linea Nome: string 0..* IdentificataDa > < AppartieneA 2 Punto Nome: string Unified Modeling Language

19 Notazione per la cardinalità La molteplicità si può indicare con precisione. Persona Nome: string 1..3, 5 Possiede Auto Modello: string Ogni persona può possedere zero o al più un'auto (magari in comproprietà) Ogni auto ha 1, 2, 3 o 5 (ma non 4) comproprietari * 0, 3..5, 7..* Auto Auto Auto Auto... zero o un'auto... esattamente un'auto... zero o più auto... zero, da 3 a 5 oppure 7 auto e oltre Unified Modeling Language

20 Notazione per la cardinalità(2) Persona Nome: string Possiede 0..* Auto Modello: string Nota: Il class diagram indica che una persona può possedere un numero qualsiasi di auto Quanti sono i proprietari di una singola auto? Il diagramma non fornisce questa informazione, dato che la cardinalità della partecipazione di Persona all associazione risulta non specificata! Inoltre, dato che l associazione è navigabile in una sola direzione, data un auto non è mai possibile risalire ai suoi (o al suo) proprietario Unified Modeling Language

21 Associazioni n-arien Alcune associazioni con cardinalità maggiore di due non sono riducibili a semplici associazioni binarie. Persona UsaPer Progetto Corretto Linguaggio Simbolo indicante la relazione n-aria (ternaria) Sbagliato Persona 0..* LavoraCon 2..* 0..* LavoraIn Linguaggio 1..* Progetto 0..* UsatoIn Se ogni persona conosce C e C++ e ogni progetto usa entrambi i linguaggi, anche se so chi ha lavorato in ciascun progetto perdo la nozione di che linguaggio ha usato in quel progetto. Unified Modeling Language

22 Ruoli nelle associazioni Una classe può partecipare ad un associazione con un ruolo specifico, che può essere indicato Persona 1..* Lavora per 0..1 Impiegato DatoreDiLavoro Azienda Il ruolo (opzionale) viene indicato in stile normale Unified Modeling Language

23 Ruolo obbligatorio nelle associazioni Quando le stesse classi sono coinvolte più volte dalla stessa associazione il ruolo diviene obbligatorio. Utente 1 owner 0..* utente autorizzato 0..* contenente 0..* Directory 0..1 contenuto 0..* Qui il ruolo serve a distinguere due associazioni diverse tra le stesse due classi Qui il ruolo è obbligatorio Alternativa: contiene Unified Modeling Language

24 Associazioni: Implementazione In generale non esiste un mapping diretto su un costrutto di un linguaggio di programmazione Possono essere implementate introducendo degli attributi ad hoc che contengono dei riferimenti (o puntatori) alle istanze delle classi associate Il riferimento a più istanze di una classe può essere modellato con liste, array, etc. Direzionalità In fase di implementazione si può decidere di codificarla solo in una delle due direzioni (con un puntatore), perdendo però così la possibilità di percorrere il link nella direzione opposta! Nota: Una associazione va modellata come tale in UML!! Nascondere le associazioni nelle classi (ad es. come attributi puntatori) porta alla costruzione di diagrammi contenenti dipendenze nascoste difficili da gestire Unified Modeling Language

25 Implementazione delle Associazioni: Esempio Compagnia Assicurazioni 1 compagnia 0..* contratto Contratto public class Compagnia_Assicurazioni { private Vector contratti; /* In alternativa si può usare un array: Contratto[] contratti */ /* Metodi */... } public class Contratto { private Compagnia_Assicurazioni compagnia; /* Metodi */... } Unified Modeling Language

26 Attributi delle associazioni (Association Class) In molti casi alcune proprietà sono proprie dell'associazione piuttosto che delle classi coinvolte. Studente 1..* 1..* Corso Frequenza anno_accademico profitto Questa è la notazione per indicare che una associazione possiede alcuni attributi Non si tratta di attributi dello studente perché cambiano da corso a corso. Nè sono attributi del corso (ad es. ogni corso è frequentato da studenti diversi in anni diversi) Unified Modeling Language

27 Attributi delle associazioni: consiglio Se l'associazione è 1-a-molti gli attributi dell'associazione si possono modellare come attributi della classe. Azienda Datore di lavoro Impiegato Persona Modello consigliato * Lavoro Salario Incarico Azienda Datore di lavoro 1..1 Impiegato 1..* Persona Salario Incarico Modello sconsigliato Unified Modeling Language

28 Attributi delle associazioni n-arien Anno * Stagione Squadra * Squadra * Portiere Giocatore La notazione rimane la stessa delle associazioni binarie Ruolino Goal fatti Goal subiti Vinte Perse Pari Unified Modeling Language

29 Associazioni esclusive Talvolta un associazione può esistere verso una classe o verso un altra (non verso entrambe) Persona Partita IVA {xor} Azienda Unified Modeling Language

30 Il qualificatore E` un attributo dell associazione per associazioni uno a molti e molti a molti distingue un oggetto tra i molti può abbassare la molteplicità Nome Show 1 0..* Ticket Senza qualificatore Rappresentazione Data : Date Posto: SeatNumber qualificatore Show Con qualificatore Nome Data : Date Posto: SeatNumber Ticket Attributi del qualificatore Molteplicità con qualificatore Unified Modeling Language

31 Il qualificatore: significato E un attributo il cui valore consente di selezionare un singolo oggetto tra tutte le istanze di oggetti interessati dalla stessa associazione Azienda 0..* Lavora_per Incarico 1..* Persona Senza qualificatore In questo esempio il qualificatore non ha l'effetto di abbassare la molteplicità Azienda Persona Incarico 0..* Con qualificatore 1..* Unified Modeling Language

32 Diagrammi delle Istanze (Object Diagram) Descrivono singole istanze di classi (oggetti) e associazioni (links) rappresentate in un particolare class diagram Adatti a descrivere esempi o situazioni specifiche (punti di vista o fotografie delle istanze esistenti in un certo istante di tempo) Unified Modeling Language

33 Link e Object Diagram Un legame (link) è una connessione fisica o concettuale fra due istanze. Mentre un'associazione connette due classi, un link connette due oggetti. I link sono istanze delle associazioni. ricopre carica in cittadino_di C.A.Ciampi: Persona Italia: Repubblica cittadino_di Dario Fo: Persona Unified Modeling Language

34 Object diagram: Esempio S2 S1 P3 P1 P4 P2 S3 P5 Linea Nome: string 0..* IdentificataDa > < AppartieneA 2 Punto Nome: string Situazione da descrivere S1: Linea P1: Punto S2: Linea S3: Linea P2: Punto P3: Punto P4: Punto P5: Punto Diagramma degli oggetti Unified Modeling Language

35 Aggregazione E un caso particolare di associazione molto comune che significa: è un insieme di". Il rombo vuoto si legge "è un insieme di" Poligono Modello equivalente che usa una associazione convenzionale: 1..* Punto Essendo un tipo particolare di associazione è sempre possibile specificare la cardinalità Poligono InsiemeDi 1..* Punto Unified Modeling Language

36 Composizione E un caso particolare di aggregazione che significa: è composto da". i componenti non possono esistere senza il contenitore la proprietà da parte del contenente è esclusiva la molteplicità dal lato dell aggregato deve essere <=1 Può essere qualsiasi per gli elementi componenti Window scrollbar 2 body 1 close 1 Slider Panel 1 Button Unified Modeling Language

37 Aggregazione e Composizione Per evitare di riempire il diagramma di linee di aggregazione è possibile usare un "albero PC 1..* 0..1 Monitor UnitàBase Mouse Tastiera HardDisk FloppyDisk ModuloRAM CPU Coprocessore Unified Modeling Language

38 Relazioni di aggregazione: Semantica Dipendenza delle parti dall oggetto composito dipendente indipendente Proprietà esclusiva condivisa? *? 1..* + semantica di propagazione delle operazioni definita dall utente (necessaria) Varianti 1 propagazione esclusiva, dipendente, ma assenza di delle operazioni Unified Modeling Language

39 Composizioni vs. Associazioni L'aggregazione è un caso particolare di associazione. Come distinguerle? Contenimento fisico vs. semplice riferimento Le parti sono fisicamente contenute nell oggetto composito L associazione comporta il semplice mantenimento di riferimenti tra oggetti Ciclo di vita L oggetto composito deve gestire la creazione e la distruzione delle parti Non c è dipendenza esistenziale tra le parti nell associazione Unified Modeling Language

40 Associazioni riflessive Una associazione o aggregazione si dice riflessiva ( o ricorsiva) se coinvolge oggetti della stessa classe una associazione ricorsiva indica che più oggetti della stessa classe interagiscono e collaborano in qualche modo Corso Programma 0..* precedenza 0..* 0..* 1..* Blocco Unified Modeling Language

41 Generalizzazione ed ereditarietà Generalizzazione = relazione "is-a" Ogni istanza di una classe è anche istanza di tutte le superclassi La relazione di generalizzazione può essere utilizzata anche fra altri elementi del linguaggio UML (packages, use cases, etc.) Ereditarietà Meccanismo attraverso il quale elementi specializzati incorporano la struttura ed il comportamento di elementi più generali Unified Modeling Language

42 Generalizzazione: Esempi (1) Amico {simmetrica} 0..* Persona Data Nascita 0..* Persona è una generalizzazione di Uomo e di Donna Attributi, operazioni e associazioni vengono ereditati dalle sottoclassi generalizzazione Donna Numero Gravidanze Uomo Posizione Militare Uomo e Donna sono sottoclassi di Persona Esempio di Object Diagram Giorgio Neri : Uomo amico Rosa Verdi : Donna amico Eugenio Rossi : Uomo Unified Modeling Language

43 Generalizzazione ed ereditarietà: Esempi (2) Studente Persona - String nome - String indirizzo + Persona(String nome, String ind) + stampa() + String nome() + String indirizzo() - int matricola - String esami[ ] - int voti[ ] + Studente(String nome, String ind, int mat) + aggiungiesame(string nome, int voto) + int mediavoti() la classe Studente eredita dal padre: attributi metodi Un oggetto Studente può essere trattato esattamente come un oggetto Persona In cosa solitamente può differenziarsi la classe erede aggiunta di attributi e metodi i metodi possono essere ridefiniti Unified Modeling Language

44 Generalizzazione: Esempi (3) Poligono + Colore colore + sposta(float dx, float dy) + ruota(punto centro, float angolo) + disegna(schermo s) Rettangolo Triangolo + float diagonale() Autoveicolo + String targa + String modello + stampalibretto() VeicoloCommerciale + int pesocarico + int pesovuoto + boolean articolato VeicoloPrivato + int numeroporte + int numeroposti Unified Modeling Language

45 Classi astratte Una classe astratta è una classe che non può essere direttamente istanziata Può (anzi deve) avere delle sottoclassi concrete Classi astratte e queste possono essere istanziate (se non sono astratte a loro volta) Figura {abstract} Notazione alternativa: nome della classe in corsivo Poligono {abstract} Cerchio Classi concrete Triangolo Quadrato Unified Modeling Language

46 Classi astratte (2) Il termine astratto viene anche utilizzato per per descrivere una operazione per la quale non è stata definita una implementazione Le operazioni astratte di una classe si rappresentano scrivendo il nome in corsivo Una classe astratta può avere operazioni concrete Almeno una operazione deve essere astratta Tipicamente vengono usate per mettere a fattor comune un'astrazione di un certo tipo per favorire il riuso Unified Modeling Language

47 Classi astratte: Esempio Figura +figurapart #Position : Pos * +draw() 1 Gruppo_Figure Poligono Linea 1 * +lineapart Unified Modeling Language

48 Esempio (Implementazione) public abstract class Figura { public abstract void draw(); } protected Pos position; public class Gruppo_Figure extends Figura { /* Una specializzazione di Vector } contenente solo istanze di Figura */ public FiguraVector figurapart; public void draw() { } for(int i=0; i< figurapart.size(), i++) figurapart.get(i).draw(); public class Poligono extends Figura { public LineaVector lineapart; public void draw() { for(int i=0; i< figurapart.size(), i++) lineapart.get(i).draw(); }; } Unified Modeling Language

49 Associazioni e attributi derivati Alcune associazioni e alcuni attributi sono in realtà una semplice rielaborazione di altri valori e/o legami Persona Data Nascita : Date / Età : int {Età = Data Corrente - Data Nascita} Azienda Le associazioni i cui legami sono calcolabili in base ad altri legami o ai valori degli attributi sono identificati da una barra trasversale /impiega Gli attributi i cui valori sono calcolati in base agli altri sono identificati da una barra ( / ) 1 1..* Divisione 1 lavora_per 1..* Persona Unified Modeling Language

50 Vincoli come restrizioni Si possono porre vincoli e restrizioni sui legami e sul valore degli attributi scrivendoli tra graffe a margine della classe o dell associazione Campo di ammissibilità {Non sovrapposti} 1..* Intervallo Inizio : int Fine : int Vincolo sui legami {Inizio < Fine} Vincolo sugli attributi Impiegato Stipendio Capo Questo vincolo più che sui valori è un vincolo sulla evoluzione dei valori nel tempo Ordine Priorità {Stipendio < Capo.Stipendio} {la Priorità può solo crescere} Unified Modeling Language

51 Vincoli interni sulle associazioni In generale le associazioni "a molti" considerano gli oggetti legati ad uno come se fossero un insieme non ordinato. I vincoli permettono di fissare un certo tipo di ordinamento. Poligono 0..* HaPerVertice 3..* {in ordine ciclico} Punto La sequenza dei vertici lungo il perimetro Persona Ha 1..* {in ordine} Esperienza La sequenza cronologica nel curriculum Unified Modeling Language

52 Vincoli relativi sulle associazioni Le associazioni possono avere vincoli che condizionano una associazione rispetto ad un altra Persona 0..1 ABordoDi {sottoinsieme} AllaGuidaDi 0..1 Auto Una freccia puntinata collega le associazioni soggette al vincolo e una etichetta fra parentesi graffe indica quale sia il vincolo Unified Modeling Language

53 Vincoli relativi sulle associazioni dipendente datore di * impiegato lavoro Persona Azienda 1..* 0..1 capo 0..1 Persona.datore_di_lavoro = Persona.capo.datore_di_lavoro Unified Modeling Language

54 Interfaccia L interfaccia descrive il comportamento esterno di una classe. applicabile anche ad altri elementi, oltre le classi. Evidenzia ciò che viene fornito dalla classe. Può servire a indicare l insieme minimo di servizi richiesti da una classe dipendente. String Hashable * HashTable Realization Relationship IsEqual(String):Boolean Hash():Integer Comparable <<interface>> Comparable IsEqual(String):Boolean Hash():Integer <<use>> Interfaccia: Notazioni alternative Unified Modeling Language

55 Stereotipi Rappresentano uno dei meccanismi attraverso i quali è possibile estendere la notazione UML Vengono utilizzati per specializzare la semantica di elementi predefiniti in UML ( classi, associazioni, etc.) uno stereotipo rappresenta una sottoclasse di un elemento esistente (classe, associazione, package, use case ) ed individua un particolare uso per l elemento un elemento stereotipato può essere utilizzato in tutte le situazioni in cui può essere usato l elemento originale Uno stereotipo può essere descritto in modo testuale (<<StereotypeName>>) o grafico Unified Modeling Language

56 Stereotipi: Esempi Alcuni stereotipi standard per le classi <<entity>> EntityClass <<control>> ControlClass <<boundary>> BoundaryClass Entity Classe passiva: le sue istanze non sono mai iniziatori di interazioni. Control Classe le cui istanze controllano le interazioni fra collezioni di altri oggetti. Boundary Classe posta alla periferia del sistema (comunque all interno del sistema). Svolge il ruolo di Intermediario tra gli attori e le altre parti del sistema Unified Modeling Language

57 Dipendenza Relazione che indica una dipendenza di varia natura tra elementi di un modello UML Si può avere dipendenza tra classi, packages, use cases, etc. Individua una connessione semantica tra due elementi, uno dei quali è dipendente dall altro Una modifica nell elemento indipendente ha effetti su quello dipendente Unified Modeling Language

58 Dipendenza tra classi Esempi di dipendenza tra classi C1 e C2: Un metodo di C1 ha come parametro un oggetto di classe C2 Un metodo di C1 restituisce come risultato un oggetto di classe C2 Un metodo di C1 istanzia un oggetto di classe C2 Un metodo di C1 invia un messaggio ad un oggetto di classe C2 di cui possiede il riferimento Unified Modeling Language

59 Dipendenza: Esempio Classe D Classe A Classe B <<instantiates>> operationz() <<calls>> Classe C Unified Modeling Language

60 Esempi di relazioni di dipendenza tra classi Alcune relazioni di dipendenza (tra classi) esplicitamente citate nella specifica UML: <<instantiates>> Un metodo di una classe crea istanze di un altra classe <<calls>> Indica che un metodo di una classe chiama un metodo di un altra classe <<friend>> Indica la possibilità di accesso al contenuto di un altra classe indipendentemente dalla visibilità prevista dalla classe target <<usage>> Indica che un elemento richiede la presenza di un altro per il suo corretto funzionamento (comprende <<calls>>, <<instantiates>>) Unified Modeling Language

61 Costrutti di raggruppamento Modulo: raggruppa classi, associazioni e generalizzazioni fornisce una vista del problema diminuisce la complessità del problema La suddivisione in moduli può essere fatta in diversi modi. Criterio: forte coesione, scarse connessioni Unified Modeling Language

62 Packages Forniscono un costrutto di raggruppamento per gli elementi definiti in un modello UML A volte si utilizza il termine subsystem per indicare un package E possibile definire delle relazioni (tipicamente di dipendenza, raffinamento, generalizzazione) tra packages diversi A A B A1 A2 B1 B Unified Modeling Language

63 Dipendenze tra Packages Descrivono, ad un livello di astrazione più alto, dipendenze esistenti tra elementi contenuti nei singoli packages dipendenze multiple dello stesso tipo tra singoli elementi (ad es. Classi) appartenenti a packages diversi vengono riassunte in una singola dipendenza tra i packages contenenti i diversi elementi Tipologie di relazioni tra packages Generalizzazione Esiste almeno una relazione di generalizzazione tra elementi appartenenti a package diversi Dipendenza Esiste almeno una relazione di dipendenza tra elementi appartenenti a package diversi Unified Modeling Language

64 Dipendenze tra Packages (2) In generale, se non si esplicita una relazione di dipendenza, un package non può accedere agli elementi contenuti in un altro package Le relazioni di dipendenza definiscono delle permission per l accesso al contenuto di altri packages (limitatamente agli elementi con visibilità public o protected presenti nel package target) Le relazioni di dipendenza tra packages non sono transitive Se il package A può vedere B e B può vedere C, non è detto che A possa vedere C Unified Modeling Language

65 <<import>> e <<access>> Dipendenza con stereotipo <<access>> Gli elementi contenuti nel package target possono essere referenziati dagli elementi contenuti nel package client (o dai sub-package in esso contenuti) Una dipendenza di tipo <<access>> non modifica il namespace del client e non crea riferimenti di alcun tipo Garantisce solo la possibilità di creare refrences Dipendenza con stereotipo <<import>> I nomi degli elementi presenti nel namespace del package target vengono aggiunti al namespace del package client (con le stesse regole di visibilità valide per <<access>>) Se ci sono conflitti fra i nomi importati e nomi già presenti nel namespace del client, il modello è mal formato (ill formed) Unified Modeling Language

66 Dipendenze tra packages: Esempio Unified Modeling Language

67 Indice Introduzione Caratteristiche di UML Diagrammi UML Class e Object Diagram Interaction Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Use Case Diagram Alcuni strumenti CASE di supporto Unified Modeling Language

68 Interaction diagram e comportamento dinamico del sistema Sono diagrammi che descrivono come gruppi di oggetti collaborano nel mostrare un certo comportamento. Tipicamente rappresentano il comportamento di uno specifico use case in termini di specifici oggetti e messaggi scambiati Ci sono due tipi di interaction diagram: Sequence diagram Collaboration diagram Unified Modeling Language

69 Sequence diagram Mostra una interazione tra oggetti come sequenza temporale di azioni. oggetti partecipanti sequenze (temporali) di messaggi scambiati non si vedono le associazioni tra oggetti La forma generica mostra tutte le possibili sequenze La forma d istanza mostra solo una sequenza specifica (consistente con quella generica) Unified Modeling Language

70 Sequence diagram In ascissa sono disposti vari oggetti (istanze specifiche) L ordinata rappresenta il tempo in genere la scala non importa interessa solo la sequenza cioè il rapporto di precedenza tra eventi, non la loro distanza. ma per sistemi real-time si può usare. Unified Modeling Language

71 Sequence diagram: notazione Oggetti Obj1 Obj2 Obj3 Messaggi Istanti di tempo Vincolo temporale Commento {b-a < 1 sec.} This call is routed through the network a b c c do_this() do_that() Messaggio che impiega un certo tempo per essere ricevuto Tempo Unified Modeling Language

72 Esempio 1 Caller Exchange Receiver {b-a < 1 sec.} {c-b < 10 sec.} a b c lift receiver dial tone dial digit... This call is routed d through the network {d -d < 5 sec.} At this point the parties can talk d route ringing tone stop tone phone rings answer phone stop ringing Unified Modeling Language

73 Esempio 2: testo The physician powers up the ECG machine. The physician sets up for four waveforms at 25 mm/sec sweep speed. The physician sets the bradycardia alarm at 40 bpm and the tachycardia alarm at 110 bpm. The patient undergoes an asystole event. The system detects the asystole and raises the alarm. The physician provides therapy to correct the problem (external to the system boundary). The system detects the restarted heart rate to be 45 bpm and lowers the alarm.... Unified Modeling Language

74 Esempio 2: sequence diagram physician sets up for patient monitoring physician waveform controller use 4 waveforms setsweep speed(25) heart rate parameter Rate=50 Rate=47 alarm manager alarm display patient set bradycardia alarm asystole event physician s intervention set tachycardia alarm Rate=0 raise bradycardia alarm alarm text Rate=45 lower bradycardia alarm clear alarm Unified Modeling Language

75 Notazione estesa: terminologia Agente Oggetto creato da op() Oggetto preesistente lifeline dell oggetto condizione, equivale a if (x>=0) { Obj2=new(C2); Obj2.foo(x); } else Obj3.bar(x); op() Obj1:C1 Obj3:C3 [x>=0] foo(x) [x<0] bar(x) doit(w) Oggetto creato da foo(x) Obj2:C2 Unified Modeling Language

76 Processi concorrenti e attivazioni op() Obj1:C1 Obj3:C3 Obj4:C4 [x>=0] foo(x) [x<0] bar(x) doit(w) Obj2:C2 doit(z) more() Unified Modeling Language

77 Notazione estesa: terminologia Attivazioni Obj4:C4 Messaggi return doit(w) Obj2:C2 doit(z) Confluenza delle due possibili evoluzioni Attivazione ricorsiva more() Distruzione dell oggetto Oggetto che prosegue la sua esistenza dopo queste interazioni Unified Modeling Language

78 Messaggi sincroni e asincroni I messaggi possono essere sincroni (equivalenti a una chiamata di procedura) asincroni (equivalenti a qualche forma di comunicazione tra processi) in pratica indicano che chi invia il messaggio continua ad evolvere, senza aspettare la conclusione dell operazione lanciata. Notazione: comunicazione sincrona comunicazione asincrona Unified Modeling Language

79 Collaboration diagram Collaboration: interazione tra parti di un sistema per un certo scopo si isolano parti di sistema e si trascurano le interazioni non essenziali allo scopo L interazione è descritta in rapporto agli oggetti e alle relazioni che li legano. Non c è una dimensione precisa per il tempo le sequenze temporali sono descrivibili numerando i messaggi in modo progressivo Unified Modeling Language

80 Esempio di interazione oggetto : OrderEntryWindow messaggio auto-delega : Order 1: prepare() ordine nella sequenza di messaggi 5: NeedToReorder() 2*: prepare() 3: check() LineaTrenini : OrderLine 4: [check() == true] remove() MagazzinoTrenini : Stock 7: [check() == true] new 6: new : DeliveryItem : ReorderItem Unified Modeling Language

81 Esempio con numerazione decimale Questo tipo di numerazione indica chiaramente quale operazione chiama quale altra : OrderEntryWindow : Order 1: prepare() Ad esempio,order::prepare() chiama check, remove e new(), remove a sua volta chiama NeedToReorder e new : NeedToReorder() 1.1*: prepare() 1.1.1: check() LineaTrenini : OrderLine 1.1.2: [check() == true] remove() MagazzinoTrenini : Stock 1.1.3: [check() == true] new : new : DeliveryItem : ReorderItem Unified Modeling Language

82 Oggetti attivi Sono oggetti che possiedono un proprio thread. {local} job CurrentJob : TransferJob job : FactoryScheduler 1: start(job) A2,B2 / 2: completed(job) : Factory JobManager : FactoryManager 1/B1: start(job) : Robot B2: completed(job) A2: completed(job) : Oven 1/A1: start(job) Unified Modeling Language

83 Sequence e collaboration diagram: confronto I Sequence Diagram mettono più enfasi sulla sequenza temporale delle operazioni indicano esplicitamente la vita degli oggetti I collaboration diagram indicano la connessione tra oggetti NB: non proprio statica: ad es. tra Stock e ReorderItem la relazione si crea perché Stock crea una nuova istanza di ReorderItem. Unified Modeling Language

84 Indice Introduzione Caratteristiche di UML Diagrammi UML Class e Object Diagram Interaction Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Use Case Diagram Alcuni strumenti CASE di supporto Unified Modeling Language

85 State diagram Rappresentano il comportamento di una classe di oggetti, descrivendone i possibili stati e la reazione ad eventi esterni, in termini di cambiamenti di stato e/o azioni svolte. I diagrammi di stato danno un'astrazione di stati, eventi e transizioni Gli stati dei diversi oggetti evolvono concettualmente in parallelo (sincronizzati dagli eventi comuni). Unified Modeling Language

86 State diagram Similitudini Automi a Stati Finiti Il modello dinamico è una estensione degli automi a stati finiti. Unifica il modello "output nelle transizioni" e "output negli stati (macchine di Moore e di Mealy). Introduce una nidificazione negli stati. Reti di Petri Permette di modellare la concorrenza. Permette di modellare gli scambi di eventi fra molti automi concorrenti. Terminologia (e concetti) da D. Harel (Statecharts) Unified Modeling Language

87 Concetti fondamentali: stati E' l'insieme dei valori degli attributi e dei link posseduti da un oggetto in un certo istante Ci interessa lo stato astratto esempio: motore acceso/spento (non ci interessa il numero di giri/min.) può corrispondere a diverse - anche infinite - combinazioni di valori degli attributi Lo stato influenza il comportamento L'oggetto reagisce in modo qualitativamente diverso agli eventi esterni, in funzione dello stato in cui si trova. Esempio: risultato pop dipende dallo stato della pila (vuota o no) Unified Modeling Language

88 Concetti fondamentali: stati Il comportamento quantitativo è influenzato dal valore degli attributi, dei link e dei parametri delle operazioni Uno stato perdura nel tempo finché un evento non fa cambiare stato all oggetto (es. un versamento fa passare un conto corrente da saldo negativo a saldo positivo) Unified Modeling Language

89 Concetti fondamentali: eventi Evento = stimolo esterno E' istantaneo il tempo è un attributo implicito Se due eventi sono legati da relazione causa/effetto sono ordinati nel tempo. Può causare nell'oggetto destinatario un cambio di valore, di stato o la produzione di ulteriori eventi. Si intende che un evento ha una individualità ben definita raggruppabili in classi di eventi (con attributi caratterizzanti) La risposta ad uno stimolo dipende dallo stato, e può implicare una transizione di stato esempio del versamento su CC Unified Modeling Language

90 Esempi Classe di eventi Attributi della classe di eventi ParteVoloAereo(Compagnia, NumeroVolo, Città) Città) MouseButtonDown(Posizione, StatoBottoni) Classi di eventi e relativi attributi Classe dell'evento Valori dell'evento ParteVoloAereo(Alitalia, AZ521, AZ521, Milano) Milano) MouseButtonDown(<124,234>, 0xFF) 0xFF) ParteVoloAereo(Quantas, Q1245, Q1245, Sydney) ParteVoloAereo(TWA, TW874, Roma) Roma) MouseButtonDown(<078,230>, 0xA0) 0xA0) ParteVoloAereo(Alitalia, AZ520, AZ520, Roma) Roma) MouseButtonDown(<120,007>, 0x0F) 0x0F) Eventi e relativi valori Unified Modeling Language

91 Generalizzazione degli eventi Gli eventi sono organizzabili in una gerarchia di generalizzazione, lungo la quale gli attributi vengono ereditati La gerarchia consente di rappresentare diversi livelli di astrazione ad esempio, alcuni stati trattano tutti gli user input allo stesso modo, altri fanno differenza tra input da tastiera o da mouse. «signal» mouse click location «signal» IOevent time «signal» user input device «signal» keyboard character character Unified Modeling Language

92 Identificare gli stati Per ciascun oggetto occorre identificare tutti gli stati in cui può trovarsi Suggerimenti Trascurare gli attributi ininfluenti Alcuni attributi non modificano in modo qualitativo il comportamento di un oggetto, ma al più i valori degli eventi che l'oggetto produce. Individuare le condizioni limite Trovare tutti i confini e i limiti dello stato Definire un corretto livello di astrazione Granularità di stati ed eventi Per un sistema di prenotazione la partenza di un aereo è un evento, ma per il software di controllo dell'aereo sono centinaia di eventi distinti. Unified Modeling Language

93 Descrizione degli stati Si può usare un linguaggio strutturato semi-formale per documentare gli stati Stato: Stato: LaSvegliaStaSquillando LaSvegliaStaSquillando Descrizione: Descrizione: il il cicalino cicalino trilla trilla una una volta volta al al secondo secondo per per indicare indicare che che è è stato stato reggiunto reggiunto l'orario l'orario impostato. impostato. Sequeza Sequeza di di eventi eventi che che determina determina lo lo stato: stato: ImpostaSveglia(<tempo>) ImpostaSveglia(<tempo>) Qualunque Qualunque sequenza sequenza di di eventi eventi escuso escuso DisabilitaSveglia DisabilitaSveglia TempoCorrente TempoCorrente = OrarioSveglia OrarioSveglia Condizioni Condizioni che che caratterizzano caratterizzano lo lo stato stato Allarme Allarme = on, on, OrarioSveglia OrarioSveglia < TempoCorrente TempoCorrente < OrarioSveglia+20", OrarioSveglia+20", nessun nessun bottone bottone premuto premuto da da OrarioSveglia OrarioSveglia in in poi poi Eventi Eventi accetati accetati nello nello stato stato Evento Evento Azione Azione Stato Stato seguente seguente TempoCorrente TempoCorrente = OrarioSveglia+20" OrarioSveglia+20" ResetSveglia ResetSveglia normale normale Bottone(<qualunque>) Bottone(<qualunque>) ResetSveglia ResetSveglia normale normale Unified Modeling Language

94 Lo scenario Uno scenario è una sequenza di eventi occorsi durante una specifica esecuzione del sistema. Dà un idea dell ordine degli eventi talune coppie indicano un ordinamento necessario, altre un ordine casuale Il Il chiamante alza alza la la cornetta Inizia Inizia il il tono tono pronto pronto Il Il chiamante compone uno uno Smette Smette il il tono tono pronto pronto Il Il chiamante compone quattro quattro Il Il chiamante compone quattro quattro Il Il chiamante compone uno uno Il Il chiamante compone uno uno Il Il telefono chiamato inizia inizia a squillare Inizia Inizia il il tono tono di di libero libero Il Il telefono chiamato viene viene sganciato Il Il telefono chiamato smette smette di di squillare Smette Smette il il tono tono di di libero libero Unified Modeling Language

95 Il tracciato degli eventi E' il sequence diagram che lega oggetti ed eventi di uno scenario Lo stesso oggetto può inviare più eventi consecutivi senza ricevere eventi in mezzo Chiamante Linea Ricevente Sgancia InizioTonoPronto Compone(1) FineTonoPronto Compone(4) Compone(4) Compone(1) Compone(1) InizioTonoLibero FineTonoLibero AperturaConnessione Aggancia ChiusuraConnessione InizioSquilli Sgancia FineSquil AperturaConnessione li ChiusuraConnessione Aggancia Lo stesso oggetto può inviare più eventi simultanei Unified Modeling Language

96 Ricavare il diagramma degli stati Una collezione sufficientemente ricca di sequence diagram descrive tutte le possibili evoluzioni dell oggetto considerato il fatto di poterle descrivere tutte deriva dalla capacità di astrazione Ad esempio, in uno scenario il chiamante riaggancia per primo, in un altro scenario il ricevente riaggancia: occorre rappresentare la reazione dell oggetto ad entrambi questi eventi. Unified Modeling Language

97 Diagramma degli stati Chiamante.Aggancia Inattivo Chiamante.Aggancia Connesso Tono Occupato Tono Pronto Compone(n) Compos. Numero Occupato Ricevente.Sgancia Chiamante.Sgancia T Compone(n) NumValido ProntoA Connettere Instradato Tono Libero T Tono TimeOut NumNonValido Messaggio Vocale FineMessaggio Unified Modeling Language

98 Stati iniziali e finali Alcuni oggetti hanno diagrammi degli stati ciclici, altri possono avere stati iniziali e/o finali. Inizio AlBianco Muovere Matto or Abbandono Stallo or Accordo VinceIlNero Mossa Bianca Mossa Nera Stallo or Accordo Patta AlNero Muovere Matto or Abbandono VinceIlBianco Unified Modeling Language

99 Condizioni Sono funzioni booleane sui valori degli oggetti. Sono valide in un intervallo di tempo Sono utili come guardie delle transizioni di stato (non basta l'evento, deve essere verificata la condizione). Evento Condizione Pronto Verde [incrocio.stato=libero] InCorsa Unified Modeling Language

100 Operazioni Durante la loro vita gli oggetti eseguono operazioni. associate allo stato o alle transizioni Le attività hanno una durata continue sequenziali Le azioni sono istantanee Unified Modeling Language

101 Operazioni Azioni Sono operazioni che hanno durata istantanea (rispetto alla granularità del tempo). Tipicamente produzione di eventi. Sono associate alle transizioni di stato oppure all'ingresso o all'uscita da uno stato. Attività Sono operazioni con durata significativa. Sono associate ad uno stato Continue o sequenziali Transizioni automatiche Se uno stato ha una attività associata e una freccia senza eventi esce da questo, la freccia indica la transizione svolta automaticamente al completamento della attività. Unified Modeling Language

102 Notazione generale In caso di ricezione dell'evento1 nello stato A viene eseguito azione3 senza cambio di stato (e quindi senza azioni di entry ed exit) Transizione automatica (evento scatenante fine della attività1) StatoA attributo1: tipo1 = val.iniziale attributo2: tipo2 = val.iniziale do: attività1 entry / azione1 exit / azione2 event1 / azione3 event2 / azione4 Transizione causata dall'evento evento3 sotto condizione condizione1. Vengono eseguite azione2 e azione5 event3 [condizione1] / azione5 event4 [condizione2] / azione6 Pseudo transizione causata dall'evento evento4 nell'ordine vengono eseguiti: azione2, azione6, azione1 Unified Modeling Language

103 Azioni consistenti nell'invio di eventi Molto spesso le azioni consistono nell'inviare un evento ad un altro oggetto. esempio: transazione tra stati di un oggetto Window No object selected right-mouse-down(location) [location in window] / object:=pick-object(location); send object.highlight() One object selected invio di messaggio a object (send è opzionale) Unified Modeling Language

104 Invio di eventi Gli eventi possono avere attributi Il destinatario può essere unico o un intero set di oggetti. Tutti gli oggetti riceventi che riconoscono l'evento possono accettarlo e reagire in parallelo. Attenzione alle corse critiche Unified Modeling Language

105 Invio di eventi: notazione grafica Il segnale accende o spegne Il VCR a seconda dello stato corrente power button /send VCR.togglePower power button /send television.togglepower Unified Modeling Language

106 Problemi dei diagrammi a stati piatti Diventano poco espressivi e troppo ingarbugliati al crescere delle dimensioni del problema. Ad esempio, il numero di collegamenti possibili tra stati è quadratico nel numero di stati. Soluzione: diagrammi strutturati la strutturazione favorisce la descrizione sintetica di sistemi complessi L'attività corrispondente ad uno stato può essere espansa in un diagramma a stati di più basso livello, dove ogni stato rappresenta una fase dell'attività. Generalizzazione (specializzazione delle attività, gerarchie di ereditarietà,...) Aggregazione (stati concorrenti) Unified Modeling Language

107 Diagrammi a stati strutturati Uno stato strutturato equivale ad una scomposizione OR degli stati: l'oggetto si trova, all'interno di uno stato più generale, in un qualunque sotto-stato. I sottostati ereditano le transizioni dei loro superstati (a meno di overriding) Questa transizione, risposta all'evento ferma, viene ereditata da tutti i sottostati di MarciaAvanti Folle Cambio Automatico ferma accelera levaf levan levar levan RetroMarcia MarciaAvanti accelera Prima Seconda Terza decelera decelera Unified Modeling Language

108 Diagramma di stato: esempio (1) Unified Modeling Language

109 Diagramma di stato: esempio (2) Login Read name entry: name prompt Name read Read password entry: password prompt Incorrect name or password Password read Verification Name and password OK Connection Unified Modeling Language

110 Aggregazione e concorrenza Un modello descrive un insieme di oggetti concorrenti, ciascuno col suo stato e col suo diagramma a stati. Lo stato dell'intero sistema è dato dal complesso degli stati degli oggetti componenti (il cui numero può anche cambiare dinamicamente). Il diagrammi a stati di un oggetto complesso è l'aggregazione dei diagrammi di ciascun componente. L'aggregazione è la "and-relationship": lo stato complessivo (aggregato) è dato dall unione degli stati dei vari diagrammi. Unified Modeling Language

111 Concorrenza in oggetti compositi Oggetti diversi hanno dinamica intrinsecamente concorrente si ha concorrenza anche in un oggetto composto. Accendino Serbatoio Fornello Vuoto carica [gas = 0] Pieno [gas > 0] Serbatoio Fornello Chiuso apri chiudi Aperto scintilla Acceso Unified Modeling Language

112 Aggregazione e concorrenza Interazioni tra oggetti Gli stati dei componenti possono interagire (la guardia che regola le transizioni di un oggetto dipende dallo stato di un altro oggetto). carica Vuoto [gas = 0] Fornello apri Chiuso chiudi Serbatoio Pieno [gas > 0] Aperto scintilla Acceso [Serbatoio.stato == Pieno] Unified Modeling Language

113 Sottostati concorrenti Unified Modeling Language

114 Concorrenza di due attività Distratto Naturalmente Attento do: appunti noia do: sbadiglia do: gratta richiamo richiamo Forzatamente Attento do: ghirigori Transazione complessa Sincronizzazione Unified Modeling Language

115 Suggerimenti Rappresentare solo classi con dinamica significativa Usare "scenari" e "tracce degli eventi" Solo attributi ed eventi rilevanti Livello di astrazione adeguato granularità di eventi e stati adatta all applicazione Distinguere tra attività ed azioni Usare diagrammi strutturati dove appropriato Verificare la consistenza incrociata attenzione agli eventi condivisi Diagrammi delle sottoclassi indipendenti da quelli delle superclassi Occhio alle corse critiche Unified Modeling Language

116 Indice Introduzione Caratteristiche di UML Diagrammi UML Class e Object Diagram Interaction Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Use Case Diagram Alcuni strumenti CASE di supporto Unified Modeling Language

117 Activity Graph e Activity Diagram Sono dei casi speciali di macchine a stati, in cui tutti gli stati (o quasi) contengono un azione o una attività tutte le transizioni (o quasi) sono causate dal completamento delle azioni/attività negli stati Un activity graph è associato ad una classe, o all'implementazione di un operazione, o ad uno use case. Un Activity Diagram è un diagramma contenente un activity graph Lo scopo deglio activity graph è di evidenziare l evoluzione guidata dall elaborazione interna, in contrapposizione agli eventi esterni (meglio trattati negli state diagram). Unified Modeling Language

118 Un Activity Graph Unified Modeling Language

119 Swimlanes (corsie) Indicano come sono distribuite le responsabilità delle diverse operazioni in una classe (unità organizzative) ogni corsia può essere implementata da uno o più oggetti Unified Modeling Language

120 Relazioni di flusso azioni-oggetti oggetti Le attività operano attraverso e su oggetti: un oggetto (o più d uno) ha la responsabilità dell azione altri oggetti forniscono dati per l azione o ne sono modificati Unified Modeling Language

121 Relazioni di flusso azioni-oggetti oggetti oggetti responsabili di azioni oggetto in ingresso o in uscita da un azione azioni stati degli oggetti Unified Modeling Language

122 Stereotipi opzionali Rappresentano esplicitamente l invio e la ricezione di segnali eventi differiti Unified Modeling Language

123 Indice Introduzione Caratteristiche di UML Diagrammi UML Class e Object Diagram Interaction Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Use Case Diagram Alcuni strumenti CASE di supporto Unified Modeling Language

124 Implementation diagram Component diagram mostrano la struttura del codice Deployment diagram mostrano la struttura del sistema run-time Unified Modeling Language

125 Componenti Unified Modeling Language

126 Component diagram Mostra le dipendenze tra componenti software sorgenti, binari, eseguibili esistenti a compile-time, a link-time, a run-time Gli elementi dei component diagram sono tipi di componenti le istanze si vedono nei deployment diagram Unified Modeling Language

127 Component diagram dipendenze Unified Modeling Language

128 Deployment diagram Mostrano la configurazione a run-time degli elementi attivi a run-time (e dei componenti, processi e oggetti che vi vivono ). Istanze di componenti software rappresentano le attivazioni a run-time delle unità di codice. Componenti che non esistono a run-time non appaiono in questi diagrammi. Unified Modeling Language

129 Deployment diagram Un grafo nodi = risorsa computazionale possono contenere istanze di componenti e/o oggetti archi = comunicazione tipicamente indicano una relazione di utilizzo Unified Modeling Language

130 Migrazione di oggetti tra nodi Unified Modeling Language

131 Indice Introduzione Caratteristiche di UML Diagrammi UML Class e Object Diagram Interaction Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Use Case Diagram Alcuni strumenti CASE di supporto Unified Modeling Language

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

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

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

Modellazione dei dati in UML

Modellazione dei dati in UML Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Relazioni tra classi Ereditarietà Generalizzazione Specializzazione Aggregazione Composizione Dipendenza Associazione Sommario Relazioni

Dettagli

UML Diagrammi delle classi. UML Diagramma classi 1

UML Diagrammi delle classi. UML Diagramma classi 1 UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio

Dettagli

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Luciano Baresi Luciano Baresi 1 OMT Booch UML Sono simili in molti aspetti: Prescrivono un approccio passo-passo Consentono il passaggio dall analisi al progetto in modo omogeneo

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

UML Unified Modeling Language

UML Unified Modeling Language UML Unified Modeling Language Lezione 4-1 - UML Il diagramma delle classi Parte Seconda - 2 - Relazioni tra Classi&Oggetti I diagrammi delle classi mettono in evidenza i blocchi costitutivi del sistema

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

Dalla progettazione concettuale alla modellazione di dominio

Dalla progettazione concettuale alla modellazione di dominio Luca Cabibbo A P S Analisi e Progettazione del Software Dalla progettazione concettuale alla modellazione di dominio Capitolo 91 marzo 2015 Se qualcuno vi avvicinasse in un vicolo buio dicendo psst, vuoi

Dettagli

Lezione 4. Modello EER

Lezione 4. Modello EER Lezione 4 Modello EER 1 Concetti del modello EER Include tutti i concetti di modellazione del modello ER Concetti addizionali: sottoclassi/superclassi, specializzazione, categorie, propagazione (inheritance)

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

Lezione 2. Il modello entità relazione

Lezione 2. Il modello entità relazione Lezione 2 Il modello entità relazione Pag.1 Introduzione alla progettazione delle basi di dati 1. Analisi dei requisiti Quali sono le entità e le relazioni dell organizzazione? Quali informazioni su queste

Dettagli

UML. Una introduzione incompleta. UML: Unified Modeling Language

UML. Una introduzione incompleta. UML: Unified Modeling Language UML Una introduzione incompleta 1/23 UML: Unified Modeling Language Lo Unified Modeling Language (UML) è una collezione di notazioni grafiche che aiuta a progettare sistemi software, specialmente quelli

Dettagli

Modellazione di sistema

Modellazione di sistema Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Modellazione di sistema E. TINELLI Contenuti Approcci di analisi Linguaggi di specifica Modelli di

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

Modulo 13. Diagrammi degli stati

Modulo 13. Diagrammi degli stati Modulo 13 Diagrammi degli stati Stato degli oggetti Descrive una macchina a stati specifica i vari stati che un oggetto può assumere durante la sua vita in risposta agli eventi uno stato è una condizione

Dettagli

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13 Raccolta dei Requisiti con i Casi D'uso Corso di Ingegneria del Software Anno Accademico 2012/13 I casi d uso I casi d'uso (use case) sono una tecnica utilizzata per identificare i requisiti funzionali

Dettagli

Alessandra Raffaetà. Basi di Dati

Alessandra Raffaetà. Basi di Dati Lezione 2 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Basi di Dati

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

UML - Unified Modeling Language

UML - Unified Modeling Language UML E CASI D USO UML - Unified Modeling Language Linguaggio stardardizzato per identificare e modellizzare le specifiche di un S.I. Coerente con il paradigma della programmazione ad oggetti Definito a

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS Basi di Basi di (Sistemi Informativi) Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente)

Dettagli

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Database Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Cos'è un database? È una struttura di dati composta da tabelle a loro volta composte da campi. Caratteristiche

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Progettazione orientata agli oggetti

Progettazione orientata agli oggetti Progettazione orientata agli oggetti Introduzione alle tecniche orientate agli oggetti Modelli ad oggetti Oggetti, classi, associazioni, aggregazione OO - Introduzione Il compito del programmatore: collegare

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Ingegneria del Software UML - Unified Modeling Language

Ingegneria del Software UML - Unified Modeling Language Ingegneria del Software UML - Unified Modeling Language Obiettivi. Presentare un approccio visuale alla progettazione. Illustrare i vantaggi dell utilizzo di diagrammi nella fase di progettazione. Rispondere

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Claudia Raibulet raibulet@disco.unimib.it

Claudia Raibulet raibulet@disco.unimib.it Classi e stati Claudia Raibulet raibulet@disco.unimib.it la classe Cane modella le proprietà comuni di un insieme di oggetti quali attributi ha un cane peso colore come si comporta abbaia morde quali comandi

Dettagli

Gestione del workflow

Gestione del workflow Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario

Dettagli

La specifica del problema

La specifica del problema 2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a

Dettagli

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Basi di dati. Le funzionalità del sistema non vanno però ignorate Basi di dati La progettazione di una base di dati richiede di focalizzare lo sforzo su analisi, progettazione e implementazione della struttura con cui sono organizzati i dati (modelli di dati) Le funzionalità

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

Dettagli

UniRoma2 - Ingegneria del Software 1 1

UniRoma2 - Ingegneria del Software 1 1 Object Oriented Analysis - OOA La fase di OOA definisce, secondo un approccio ad oggetti, COSA un prodotto software deve fare (mentre la fase di OOD definisce, sempre secondo un approccio ad oggetti, COME

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Object Oriented Software Design

Object Oriented Software Design Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

BASI DI DATI - : I modelli di database

BASI DI DATI - : I modelli di database BASI DI DATI - : I modelli di database DAL 1960 ci si e' orientati verso 3 direzioni: 1 MODELLO GERARCHICO Se i dati si presentano naturalmente in una struttura ad albero (ES. File System) Limiti: rigidità

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Diagrammi dei package

Diagrammi dei package Diagrammi dei package Package Meccanismo di raggruppamento di più classi (riferito al momento della compilazione) in unità di livello più alto, al fine di dominare la complessità strutturale di un sistema

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Gestione Rapporti (Calcolo Aree)

Gestione Rapporti (Calcolo Aree) Gestione Rapporti (Calcolo Aree) L interfaccia dello strumento generale «Gestione Rapporti»...3 Accedere all interfaccia (toolbar)...3 Comandi associati alle icone della toolbar...4 La finestra di dialogo

Dettagli

Diagrammi di Interazione

Diagrammi di Interazione Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Diagrammi di Interazione Definizioni Diagrammi di Interazione una interazione specifica i dettagli

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

UML e (R)UP (an overview)

UML e (R)UP (an overview) Lo sviluppo di sistemi OO UML e (R)UP (an overview) http://www.rational.com http://www.omg.org 1 Riassumento UML E un insieme di notazioni diagrammatiche che, utilizzate congiuntamente, consentono di descrivere/modellare

Dettagli

Esempio ordini 08UMLEX1.1

Esempio ordini 08UMLEX1.1 Esempio ordini 08UMLEX1.1 Sommario Specifiche del sistema di gestione ordini Specifiche Use Case Use Case Specifiche del diagramma delle classi Diagramma delle classi Specifiche per lo scenario della richiesta

Dettagli

Sistemi Informativi I Caso di studio con applicazione di UML

Sistemi Informativi I Caso di studio con applicazione di UML 9 CASO DI STUDIO CON APPLICAZIONE DI UML...2 9.1 IL CASO DI STUDIO...2 9.1.1 Il sistema attuale...2 9.2 IL PROBLEM STATEMENT...3 9.2.1 Formulazione del Problem statement per il caso proposto...3 9.3 USE

Dettagli

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi Modello Relazionale Modello Relazionale Proposto agli inizi degli anni 70 da Codd Finalizzato alla realizzazione dell indipendenza dei dati Unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

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

Class 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

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Modello di Controllo dell Accesso basato sui ruoli (RBAC) Modello di Controllo dell Accesso basato sui ruoli (RBAC) POLITICHE RBAC Sistemi di tipo Role Based Access Control (RBAC) assegnano i privilegi non agli utenti, ma alla funzione che questi possono svolgere

Dettagli

UML. Analisi Modellazione e altro. Macchine a stati, Diagrammi di attività.. UML aa 2006/7 G.Bucci 1

UML. Analisi Modellazione e altro. Macchine a stati, Diagrammi di attività.. UML aa 2006/7 G.Bucci 1 UML Analisi Modellazione e altro Macchine a stati, Diagrammi di attività.. PROVVISORIO UML aa 2006/7 G.Bucci 1 Macchine a stati in UML Sono una versione estesa (derivante dalle StateChart [Harel]) delle

Dettagli

Soluzione dell esercizio del 12 Febbraio 2004

Soluzione dell esercizio del 12 Febbraio 2004 Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale

Dettagli

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Entità-Relazione Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

Dettagli

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007 Basi di dati Concetti introduttivi Ultima modifica: 26/02/2007 ESEMPIO INSEGNAMENTI Fisica, Analisi, Informatica Aule Docenti Entità Relazioni Interrogazioni St udent i Database 2 Tabella (I) STUDENTE

Dettagli

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Organizzazione no-profit per lo sviluppo di standard che fornisce linee guida per: lo scambio la

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Programmazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)

Programmazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università

Dettagli

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -

Dettagli

Progettazione orientata agli oggetti Introduzione a UML

Progettazione orientata agli oggetti Introduzione a UML Progettazione orientata agli oggetti Introduzione a UML Claudia Raibulet raibulet@disco.unimib.it Il processo di sviluppo software Rappresenta un insieme di attività per la specifica, progettazione, implementazione,

Dettagli

Macchine sequenziali

Macchine sequenziali Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine sequenziali Lezione 14 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Automa a Stati Finiti (ASF) E una prima astrazione di

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A. 2008-2009. Facoltà di Ingegneria Sede di Latina

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A. 2008-2009. Facoltà di Ingegneria Sede di Latina Università di Roma La Sapienza A.A. 2008-2009 Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria Informatica ed Ingegneria dell Informazione Corso di PROGETTAZIONE DEL SOFTWARE Esercitazione sulla

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Amministrazione di Reti A.A. 2002/2003 Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm

Dettagli

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Si consideri la realizzazione di un semplice programma grafico per il disegno di figure geometriche in due dimensioni. Si analizzino i requisiti e se ne rappresentino i risultati in UML

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Sistemi Web! per il turismo! - lezione 9 -

Sistemi Web! per il turismo! - lezione 9 - Sistemi Web per il turismo - lezione 9 - Nelle lezioni precedenti abbiamo visto diversi aspetti che una DMO deve affrontare per promuovere una destinazione oppure dei servizi attraverso un sito Web. Abbiamo

Dettagli

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A. 2008-2009. Class Discovery E.

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A. 2008-2009. Class Discovery E. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Class Discovery E. TINELLI Contenuti Classi di analisi: definizione ed esempi Tecniche per la definizione

Dettagli

Progettazione del Software A.A.2008/09

Progettazione del Software A.A.2008/09 Laurea in Ing. Informatica ed Ing. dell Informazione Sede di latina Progettazione del Software A.A.2008/09 Domenico Lembo* Dipartimento di Informatica e Sistemistica A. Ruberti SAPIENZA Università di Roma

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

Dettagli