Modellare sistemi software con UML

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Modellare sistemi software con UML"

Transcript

1 Modellare sistemi software con UML Andrea Baruzzo Dipartimento di Matematica e Informatica Università degli Studi di Udine Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

2 Agenda Introduzione: approccio e motivazioni Modellare la struttura statica Modellare la struttura dinamica Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

3 Introduzione: l approccio Approccio pratico alla modellazione e alla verifica di sistemi software reali Conseguenza: tecnologie, strumenti e linguaggi largamente utilizzati in ambito industriale Scelte soggettive Sistemi software target: sistemi object-oriented Linguaggi di programmazione target: C++, Java Linguaggio di modellazione: UML Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

4 Linguaggio di programmazione o di modellazione? Perché un linguaggio di modellazione? Spostare discussioni di design dal codice al modello fornisce un più alto livello di astrazione indipendente dalla sintassi e dai dettagli del singolo linguaggio di programmazione Un buon design è caratterizzato da alcuni indici di qualità come la stratificazione, la distribuzione del controllo, l incapsulamento, la coesione Questi indici di qualità si vedono meglio su un modello grafico che sulle righe di codice Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

5 Introduzione: Perché UML per fare verifica? Perché UML? E uno standard de facto a livello industriale per descrivere sistemi software object-oriented Esiste una semantica formale per almeno una parte del linguaggio (classi, stati) Unified Modeling Language: chi, dove, quando Booch, Jacobson e Rumbaugh; (UML 0.9) Standard OMG (Object Management Group) dal 1997 Versione attuale: 2.0 (06/2005) Diagrammi per descrivere diversi aspetti di un sistema software: struttura statica (architettura, sottosistemi, moduli, ) struttura dinamica (scenari d esecuzione, interazioni, stati, ) requisiti funzionali (casi d uso) vincoli (temporali, performance, contratti software) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

6 UML: Bibliografia ragionata The Unified Modeling Language User Guide 2/E by Grady Booch, James Rumbaugh, Ivar Jacobson - Addison-Wesley Professional, 2005 The Unified Modeling Language Reference Manual 2/E by James Rumbaugh, Ivar Jacobson, Grady Booch - Addison-Wesley Professional, 2004 UML Distilled: A Brief Guide to the Standard Object Modeling Language 2/E by Martin Fowler - Addison-Wesley Professional, 2003 Applying UML and Patterns : An Introduction to Object- Oriented Analysis and Design and Iterative Development 3/E by Craig Larman - Addison-Wesley Professional, 2004 UML 2 and the Unified Process : Practical Object-Oriented Analysis and Design 2/E by Jim Arlow, Ila Neustadt - Addison-Wesley Professional, 2005 UML Bible by Tom Pender - Wiley, 2003 Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

7 Parte I: Modellare sistemi software con UML Introduzione: approccio e motivazioni Modellare la struttura Diagrammi di classe Diagrammi degli oggetti Diagrammi dei componenti Diagrammi di deployment Diagrammi delle strutture composte (composite structure) (UML 2.0) Modellare la dinamica Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

8 Modellare la struttura Struttura come sinonimo di diverse cose architettura (modularità, gestione del controllo, ) organizzazione logica (sottosistemi, interfacce, ) organizzazione fisica (librerie, componenti, ) Descrive una vista (prospettiva) del sistema che pone l accento sulla struttura statica del sistema (classi, relazioni, attributi, operazioni, gerarchie, componenti, ) Quali diagrammi? diagrammi di classe e degli oggetti diagrammi dei componenti diagrammi di deployment diagrammi delle strutture composte (composite structure) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

9 Diagrammi di classe Classi, attributi, metodi Relazioni fra classi Ereditarietà Contenimento Associazione, dipendenze Classi astratte, interfacce Package Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

10 Classi, attributi, metodi Rettangolo con tre compartimenti: Nome della classe Attributi (nome, tipo) Metodi (nome, args, tipo ritorno) cd Logical Model NomeClasse - attribintprivato: int # attribstringprotetto: string + attribbooleanpubblico: boolean + NomeMetodoPubblico(double) : void - NomeMetodoPrivato() : void + NomeMetodoProtetto(NomeClasse) : NomeClasse Visibilità: + pubblica (il default per i metodi) - privata (tipica per gli attributi) # protetta (ereditarietà protetta, visibilità legata al package in Java) Non è obbligatorio mostrare tutti i compartimenti Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

11 Alcuni esempi cd Logical Model Studente - cognome: string - nome: string - matricola: int Velivolo - portata: int - velocitàmax: double - annofabbricazione: int FiguraGeometrica - area: int + disegna() : void + getannoiscrizione() : int + decolla() : void + atterra() : void + frena() : void + accelera(double) : void Convenzioni sui nomi Classe: lettera maiuscola iniziale per ogni parola Attributi: lettera minuscola iniziale, maiuscola iniziale per ogni successiva parola Metodi: (C++) maiuscola iniziale per ogni parola (Java) stessa degli attributi Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

12 Relazioni fra classi Relazioni di: Ereditarietà Contenimento Associazione Dipendenze Classi astratte, interfacce Package Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

13 Ereditarietà Classe base, classi derivate La classe base definisce attributi comuni (ereditati) La classe base definisce interfaccia comune (ereditata) Le classi derivate specializzano la classe base aggiungendo attributi e/o comportamenti (metodi) Le classi derivate possono anche ridefinire metodi ereditati Le classi derivate possono invocare i metodi delle classi base, purché definiti pubblici o protetti Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

14 Esempio di gerarchia di classi cd Logical Model Velivolo - portata: int - velocitàmax: double - annofabbricazione: int + decolla() : void + atterra() : void + frena() : void + accelera(double) : void Bimotore - numeromotori: int - numeropasseggeri: int + decolla() : void + atterra() : void + frena() : void + accelera(double) : void Mig - mitragliatrici: int + decolla() : void + spara() : void + atterra() : void + frena() : void + accelera(double) : void UltraLeggeroSenzaMotore - numeroassi: int + decolla() : void + atterra() : void + frena() : void + accelera(double) : void aggiunge il numero di motori, ridefinisce i metodi ereditati aggiunge gli armamenti e il metodo spara, ridefinisce i metodi ereditati aggiunge il numero di assi, ridefinisce i metodi ereditati Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

15 Contenimento Due forme: Forte, detta composizione Debole, detta aggregazione La composizione associa composto e componente per tutta la vita dei due oggetti (è una relazione permanente) La composizione è una relazione esclusiva: uno specifico oggetto componente non può appartenere a due composti contemporaneamente Se questi vincoli non sono soddisfatti, si usa l aggregazione Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

16 Esempi di contenimento (composizione + aggregazione) Composizione (rombo pieno) e aggregazione (rombo vuoto) cd Logical Model Telaio Le cardinalità sono importanti! 1 1 L aggregazione è sinonimo di (possibile) condivisione; semantica del contenimento by reference (puntatori) Velivolo * 1 1 3,* Ruota L aggregazione è una relazione temporanea e non esclusiva 1..* Colore 0..* Passeggero Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

17 Associazione e dipendenze L associazione esprime un legame permanente che vale per tutta la vita degli oggetti coinvolti cd Logical Model Dipendente Associazione +lavora per +assume Azienda 1..* 1 Evidenzia anche i ruoli cd Logical Model File IOException La dipendenza esprime invece un generico legame temporaneo (ad es. una chiamata) Lo «stereotipo» chiarisce la semantica della ipendenza «open» Applicazione «throws» Dipendenza Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

18 Classi astratte e interfacce Una classe astratta ha almeno un metodo virtuale puro (metodo astratto puro) Un interfaccia non ha attributi e ha solo metodi virtuali puri (metodi astratti puri) Eccezione Java: le interfacce possono dichiarare come attributi delle costanti Le classi che estendono (derivano da) una classe base astratta devono fornire un implementazione per tutti i metodi astratti Lo stesso vale nel caso delle interfacce Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

19 Esempio di classe astratta cd Logical Model Metodi e classi astratte sono specificati da un nome in corsivo Velivolo - portata: int - velocitàmax: double - annofabbricazione: int + decolla() : void + atterra() : void + frena() : void + accelera(double) : void Bimotore - numeromotori: int - numeropasseggeri: int + decolla() : void + atterra() : void + frena() : void + accelera(double) : void Mig - mitragliatrici: int + decolla() : void + spara() : void + atterra() : void + frena() : void + accelera(double) : void UltraLeggeroSenzaMotore - numeroassi: int + decolla() : void + atterra() : void + frena() : void + accelera(double) : void aggiunge il numero di motori, ridefinisce i metodi ereditati aggiunge gli armamenti e il metodo spara, ridefinisce i metodi ereditati aggiunge il numero di assi, ridefinisce i metodi ereditati Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

20 Esempio di interfaccia La freccia tratteggiata indica esattamente la realizzazione,ossia l implementazione di un interfaccia cd Logical Model «interface» Driver + Read() + write() Da non confondere con la freccia continua dell ereditarietà Lo stereotipo chiarisce la semantica, ma è opzionale Driv erstampante - portalpt: int + Read() + write() «realize» «realize» Driv erschedavideo - memoriavideo: int + Read() + write() Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

21 Package Un package è un elemento di raggruppamento Serve per organizzare elementi UML correlati Si applica sia ai diagrammi, sia alle classi e ad altri elementi UML (ad es. i casi d uso) Simbolo: cd Class Model Package Package + Class1 + Class2 Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

22 Esempi di package Diagramma di package poco informativo. Elenca una serie di package, ma non esplicita relazioni tra i package È utile esplicitare le relazioni tra i package, in particolare dipendenze e i livelli d astrazione Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

23 Esempi di package Ispirato da: 3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics by David H. Eberly - Morgan Kaufmann, September 2000 Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

24 Parte I: Modellare sistemi software con UML Introduzione: approccio e motivazioni Modellare la struttura Diagrammi di classe Diagrammi degli oggetti Diagrammi dei componenti Diagrammi di deployment Diagrammi delle strutture composte (composite structure) - (UML 2.0) Modellare la dinamica Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

25 Diagrammi degli oggetti E un istanza specifica di un diagramma di classe Modella fatti ed esempi: parla di oggetti specifici Le cardinalità nel diagramma di classe vengono sostituite da relazioni esplicite Il nome della classe viene preceduto dal nome dell istanza (oggetto): nomeoggetto : nomeclasse cd Class Model Student - averagemark: int - name: string - phonenumber: int - studentnumber: int - address: string + iseligible(int, string) : boolean + getseminarstaken() : List<Seminar> classe Student Andrea Baruzzo : Student Oggetto di tipo Student in cui: name = "Andrea Baruzzo" Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

26 Istanziare un diagramma di classe mediante un. cd Class Model Student SeminarEnrollment - averagemark: int - name: string - phonenumber: int - studentnumber: int - address: string 1 enrolledin 1..* - markasreceived: boolean + GetAverageToDate() + GetFinalMark() 1..* enrolledin + iseligible(int, string) : boolean + getseminarstaken() : List<Seminar> 1 +livesat * Seminar - seminarnumber: int - waitinglist: List<Seminar> + AddStudent(Student) : void + DropStudent(Student) : void 0..* 1 +instructs 0..1 offeringof Address - city: string - street: string - postalcode: string - state: stri ng - country: string + validate() : void 1 +livesat 0..1 Teacher - name: string - address: string - phonenumber: int - salary: double + GetInformations() : string +associ ate 0..* +advisor 0..1 Course - name: string - coursenumber: int - fees: double + GetFullName() : string 1 mentors Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

27 Diagramma degli oggetti cd Class Model +livesat Andrea Baruzzo : Student Christian Giusti : Student enrolledin enrolledin WCP enrollment : SeminarEnrollment enrolledin AB Address : Address +livesat General Relativity : Seminar CGAddress : Address +instructs Albert Einstein : Teacher +livesat :Address Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

28 Parte I: Modellare sistemi software con UML Introduzione: approccio e motivazioni Modellare la struttura Diagrammi di classe Diagrammi degli oggetti Diagrammi dei componenti Diagrammi di deployment Diagrammi delle strutture composte (composite structure) (UML 2.0) Modellare la dinamica Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

29 Diagrammi dei componenti Descrive le parti fisiche del software (componenti) che costituiscono il sistema nella sua implementazione Esempi tipici di componenti: librerie, componenti EJB, form HTML, JSP, browser Web, Evidenzia anche le relazioni tra i componenti e la loro interfaccia Simbolo del componente: id Components ProvidedInterface1 Component1 id Components «library» Cometa RequiredInterface Component2 Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

30 Esempio di diagramma dei componenti Diagramma dei componenti che descrive la struttura interna del componente cd Internal Structures Component1 ProvidedInterface1 «delegate» Part1 This illustrates how the services offered by this component are internally delegated to a specific object. Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

31 Esempio di diagramma dei componenti id Monitor-Actuator Actuation channel Actuation Data Source IProcessInput Sensor Input Processing ITransformInputData ITransformValidationData Data Transformation IOutput Output Processing control signal Actuator IValidate Data Integrity Checks ^measures Shutdown signal Monitoring channel IMonitor Set Point Source Monitor IMonitor Monitoring Input Processing monitored actuation signal IMonitorActuation Actuator Monitor Sensor Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

32 Parte I: Modellare sistemi software con UML Introduzione: approccio e motivazioni Modellare la struttura Diagrammi di classe Diagrammi degli oggetti Diagrammi dei componenti Diagrammi di deployment Diagrammi delle strutture composte (composite structure) (UML 2.0) Modellare la dinamica Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

33 Diagrammi di deployment Descrive le parti fisiche dell hardware che costituiscono il sistema nella sua implementazione I diversi tipi di hardware (dispositivi) vengono rappresentati mediante nodi Le relazioni tra i dispositivi vengono rappresentate mediante associazioni dette connessioni Esempi di dispositivi: dd Topology «Bus» «Display» «Processor» «Device» «device» USB Cable Monitor Server Robot Printer Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

34 Esempio di diagramma di deployment dd Netw ork «Display» Monitor «Device» WirelessTower «USB cable» «VGA cable» «Processor» Server RCX opcode protocol «wireless channel» Console RoboLib «Device» Robot Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

35 Parte I: Modellare sistemi software con UML Introduzione: approccio e motivazioni Modellare la struttura Diagrammi di classe Diagrammi degli oggetti Diagrammi dei componenti Diagrammi di deployment Diagrammi delle strutture composite (composite structure) (UML 2.0) Modellare la dinamica Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

36 Diagrammi delle strutture composite Descrive le classi, le sue parti (aggregati) e il modo in cui tali elementi sono collegati Le parti sono collegate mediante connettori e porte cd Class Model - composite structure Car Port1 FuelPump Port2 Engine Transmission Port3 Port4 Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

37 Diagrammi delle strutture composite Descrive anche le collaborazioni tra più elementi Utile per evidenziare quali classi collaborano assieme per realizzare una particolare interazione (ad es. implementare un design pattern) cd Class Model - composite structure «component» Shape 2..* Line Circle Rectangle CustomShape 0..* Composite Pattern «leaf» «leaf» «leaf» «composite» Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

38 Parte I: Modellare sistemi software con UML Introduzione: approccio e motivazioni Modellare la struttura Modellare la dinamica Diagrammi di sequenza Diagrammi di stato Diagrammi di attività Diagrammi dei casi d uso Diagrammi delle collaborazioni Timing diagram Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

39 Diagrammi di sequenza I diagrammi di sequenza descrivono le interazioni tra oggetti che collaborano per svolgere un compito Sono utili per evidenziare la distribuzione del controllo nel sistema ( chi fa che cosa ) Gli oggetti collaborano scambiandosi messaggi Lo scambio di un messaggio in OOP equivale all invocazione di un metodo Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

40 Gli oggetti Asse x (asse degli oggetti): Gli oggetti sono disposti orizzontalmente Un oggetto è un istanza di una classe Sintassi: nomeoggetto : NomeClasse Asse t (asse del tempo): Il flusso del tempo è descritto verticalmente sd Diagramma di Sequenza - Gli oggetti an Order Entry Window :Window an Order :Order an Order Line :OrderLine a Stock Item :StockItem Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

41 Scambio di messaggi sincroni 1/2 Si disegna con una freccia chiusa da chiamante a chiamato. La freccia è etichettata col nome del metodo invocato e, opzionalmente, con i suoi parametri e il suo valore di ritorno sd Dynamic Model :Chiamante messaggiosincrono() :Chiamato Il chiamante attende la terminazione del metodo del chiamato prima di proseguire Il life-time (durata, vita) di un metodo è rappresentato da un rettangolino che collega la freccia di invocazione con la freccia di ritorno Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

42 Scambio di messaggi sincroni 2/2 Life-time corrisponde ad avere un record di attivazione di quel metodo sullo stack di attivazione Il ritorno è rappresentato con una freccia tratteggiata Il ritorno è sempre opzionale. Se si omette, la fine del metodo è decretata dalla fine del life-time Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

43 Scambio di messaggi sincroni - un esempio sd Diagrammi di Sequenza - Scambio Messaggi Sincroni an Order Entry Window :Window an Order :Order prepare() oggetto Messaggio asincrono (invocazione di un metodo) messaggio di ritorno (opzionale se void) return done life-line dell'oggetto an Order Entry Window life-time di prepare() Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

44 Scambio di messaggi asincroni 1/2 Si usano per descrivere interazioni concorrenti sd Dynamic Model 2 :Chiamante Si disegna con una freccia aperta da chiamante a chiamato. La freccia è etichettata col nome del metodo invocato e, opzionalmente, con i suoi parametri e il suo valore di ritorno messaggioasincrono :Chiamato Il chiamante non attende la terminazione del metodo del chiamato, ma prosegue subito dopo l invocazione Il ritorno non segue quasi mai la chiamata Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

45 Scambio di messaggi asincroni - un esempio sd Diagramma di Sequenza - Scambio Messaggi Asincroni an Order Entry Window :Window an Order :Order prepare() oggetto Messaggio asincrono (invocazione di un metodo) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

46 Esecuzione condizionata di un messaggio L esecuzione di un metodo può essere assoggettata ad una condizione. Il metodo viene invocato solo se la condizione risulta verificata a run-time Se la condizione non è verificata, il diagramma non dice cosa succede (a meno che non venga esplicitamente modellato ciascun caso) La condizione si rappresenta sulla freccia di invocazione del metodo, racchiusa tra parentesi quadre Sintassi: [cond] : nomemetodo() Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

47 Messaggi condizionati un esempio sd Diagrammi di Sequenza - Esecuzione Condizionata an Order Line :OrderLine a Stock Item :StockItem hasstock:= check() [hasstock]: remove() Il metodo remove() viene eseguito solo se il metodo check assegna "true" alla variabile hasstock (soddisfa la condizione hasstock=true) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

48 Messaggi condizionati un esempio (alternativa) sd Diagrammi di Sequenza - Esecuzione Condizionata (Alternativ a) an Order Line :OrderLine a Stock Item :StockItem check() hasstock [hasstock]: remove() Il metodo remove() viene eseguito solo se il metodo check assegna "true" alla variabile hasstock (soddisfa la condizione hasstock=true) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

49 Messaggi condizionati modellare il caso alternativo sd Diagrammi di Sequenza - Esecuzione Condizionata (Alternativ a) an Order Line :OrderLine a Stock Item :StockItem check() hasstock [hasstock]: remove() Il metodo remove() viene eseguito solo se il metodo check assegna "true" alla variabile hasstock (soddisfa la condizione hasstock=true) [not hasstock]: actionforitemnotinstock() il metodo actionforitemnotinstock() viene eseguito in alternativa al metodo remove(), se la condizione hasstock ha valore false Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

50 Iterazione di un messaggio Rappresenta l esecuzione ciclica di messaggi Si disegna aggiungendo un * (asterisco) prima del metodo su cui si vuole iterare Si può aggiungere la condizione che definisce l iterazione, combinando messaggi condizionati e cicli Sintassi (completa di condizione di iterazione): [cond] : * nomemetodo() Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

51 Iterazione di un messaggio un esempio sd Diagramma di Sequenza - Iterazione di un Messaggio an Order :Order an Order Line :OrderLine [for each oreder line]: *prepare() Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

52 Iterazione di un blocco di messaggi Rappresenta l esecuzione ciclica di più messaggi Si disegna raggruppando con un blocco (riquadro, box) i messaggi (metodi) su cui si vuole iterare Si può aggiungere la condizione che definisce l iterazione sull angolo in alto a sinistra del blocco La condizione si rappresenta al solito tra parentesi quadre Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

53 Iterazione di un blocco di messaggi un esempio sd Diagrammi di Sequenza - Iterazione di più Messaggi :Order :OrderLine loop Prepare&Deliver [for each order line] prepare() done deliver() successful Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

54 Auto-chiamata (self-call) Descrive un oggetto che invoca un proprio metodo Chiamante e chiamato in questo caso coincidono Si rappresenta con una freccia circolare che rimane all interno del life time di uno stesso metodo Viene usata anche per rappresentare la ricorsione Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

55 Auto-chiamata (self-call) un esempio sd Diagrammi di Sequenza - Self-Call an Order Line :OrderLine a Stock Item :StockItem remove() needstoreorder() All'interno del metodo remove(), l'oggetto "a Stock Item" chiama il proprio metodo needstoreorder() Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

56 Costruzione di un nuovo oggetto Rappresenta la costruzione di un nuovo oggetto non presente nel sistema fino a quel momento Corrisponde all allocazione dinamica (allocazione nello heap di sistema, istruzione new) Messaggio etichettato new, create, L oggetto viene collocato nell asse temporale in corrispondenza dell invocazione nel metodo new (o create ) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

57 Costruzione di un nuovo oggetto un esempio sd Diagramma di Sequenza - Creazione di un Oggetto an Order Line :OrderLine a Stock Item :StockItem remove() done new :DeliveryItem "an Order Line" crea un istanza di DeliveryItem. Prima (o durante) l'esecuzione di remove() l'istanza di DeliveryItem non esisteva! Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

58 Distruzione di un oggetto (preesistente) Rappresenta la distruzione di un oggetto presente nel sistema fino a quel momento Corrisponde alla deallocazione dinamica (deallocazione dallo heap di sistema, istruzione delete/dispose/ ) Si rappresenta con una X posta in corrispondenza della life-line dell oggetto Da quel momento in poi non è legale invocare alcun metodo dell oggetto distrutto Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

59 Distruzione di un oggetto preesistente un esempio sd Diagrammi di sequenza - Eliminazione di un Oggetto an Order Entry Window :Window an Order :Order prepare() done l'oggetto "an Order Entry Window" da qui in poi non è più accessibile L'oggetto "an Order" vive ancora Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

60 Mettiamo tutto insieme un esempio completo Costruiamo un diagramma di sequenza per il seguente scenario [1] Una finestra di tipo Order Entry invia il messaggio prepare ad un Ordine (Order) L ordine invia il messaggio prepare ad ogni sua linea (Order Line) Ogni linea verifica gli elementi in stock (Stock Item) (continua ) [1] UML Distilled 3/E, Martin Fawler, Addson Wesley, 2003 Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

61 Mettiamo tutto insieme un esempio completo ( continua) Se il controllo ha esito positivo, la linea rimuove l appropriata quantità di elementi in stock e crea un unità di delivery (DeliveryItem) Se gli elementi in stock rimanenti scendono al di sotto di una soglia di riordino, viene richiesto un riordino (ReorderItem) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

62 Mettiamo tutto insieme il diagramma completo sd Diagrammi di Sequenza - La Sintassi an Order Entry Window :Window an Order :Order an Order Line :OrderLine a Stock Item :StockItem prepare() [for each order line]: *prepare() hasstock:= check() [hasstock]: remove() needsreorder:= needstoreorder() [needsreorder]: new :ReorderItem [hasstock]: new :DeliveryItem Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

63 Alcuni suggerimenti finali 1/2 Assicurarsi che i metodi rappresentati nel diagramma siano gli stessi definiti nelle corrispondenti classi (con lo stesso numero e lo stesso tipo di parametri) Documentare ogni assunzione nella dinamica con note o condizioni (ad es. il ritorno di un determinato valore al termine di un metodo, il verificarsi di una condizione all uscita da un loop, ecc.) Mettere un titolo per ogni diagramma (ad es. sd Diagrammi di Sequenza Eliminazione di un Oggetto ) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

64 Alcuni suggerimenti finali 2/2 Scegliere nomi espressivi per le condizioni e per i valori di ritorno Non inserire troppi dettagli in un unico diagramma (flussi condizionati, condizioni, logica di controllo) Non bisogna rappresentare tutto quello che si rappresenta nel codice Se il diagramma è complesso, scomporlo in più diagrammi semplici (ad es. uno per il ramo if, un altro per il ramo else, ecc.) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

65 Parte I: Modellare sistemi software con UML Introduzione: approccio e motivazioni Modellare la struttura Modellare la dinamica Diagrammi di sequenza Diagrammi di stato (statechart) Diagrammi di attività Diagrammi dei casi d uso Diagrammi delle collaborazioni Timing diagram Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

66 Diagrammi di stato - Definizioni Un diagramma di stato rappresenta il ciclo di vita degli oggetti di una classe Il ciclo di vita è descritto in termini di Eventi Stati Transizioni di stato Gli eventi possono attivare delle transizioni di stato Un evento in uno statechart corrisponde ad un messaggio in un sequence diagram Uno stato è costituito da un insieme di valori significativi assunti dagli attributi dell oggetto che ne influenzano il comportamento Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

67 Diagrammi di stato Stati iniziale e finale Esistono due stati speciali, detti pseudostati: Lo stato iniziale Lo stato finale Un oggetto può non avere uno stato finale! (non viene mai distrutto) sm Initial and final states rappresentazione grafica (minimale) di uno stato State1 Enabled remove stato finale stato iniziale Allocated Disabled Removed remove Initial trigger: un evento che attiva la transizione (può essere un veneto esterno o una chiamata di metodo) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

68 Diagrammi di stato Modellare gli eventi Un evento può essere: L invocazione sincrona di un metodo (una call ) La ricezione di una chiamata asincrona ( signal ) ad esempio la notifica di un eccezione lanciata Una condizione predefinita che diventa vera (si parla in questo caso di change event ) La fine di un periodo di tempo come quello impostato da un timer ( elapsed-time event ) Un evento si può rappresentare graficamente con una freccia (transizione) etichettata con il nome del metodo o della condizione associata all evento stesso sm events Allocated enable() Enabled Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

69 Diagrammi di stato Modellare gli eventi Un evento può essere rappresentato anche mediante un espressione testuale avente la seguente sintassi: event-name ( [comma-separated-parameter-list] ) [ [ guard-condition ] ] / [action-expression] dove: event-name identifica l evento parameter-list definisce i valori dei dati che possono essere passati come parametro con l evento guard-condition determina se l oggetto che riceve l evento deve rispondere ad esso (ossia eseguire il metodo associato) action-expression definisce come l oggetto ricevente deve rispondere all evento Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

70 Diagrammi di stato Esempi Event + state = response sm events Off Lo stesso evento causa diversi comportamenti in base allo stato in cui l oggetto che riceve l evento si trova Click() On Click() Elapsed-time Events sm events Sold after(3 days) Unsold predefined event "after" Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

71 Diagrammi di stato Esempi Change event sm events ActiveRegularCustomer when (30 days past due) Delinquent when (purchases > $1000 in past 6 years) ActivePreferredCustomer when (60 days past due) predefined event "when" Guarded event sm events TentativeOrder receivepaymnt() [amount=totalprice] PlacedOrder Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

72 Diagrammi di stato Entry/Exit Actions Entry/exit action: azione che viene eseguita per ogni evento che causa una transizione entrante/uscente nello/dallo stato entry action: azione che viene eseguita in una transizione entrante nello stato exit action: azione che viene eseguita in una transizione uscente dallo stato PlacedOrder issueconf() issuecustomerstatement() sm events Final receivepaymnt() /issueconf() order is filled /issuecustomerstatement() FilledOrder TentativeOrder PlacedOrder Initial authorizeoverride() /issueconf() cancel /issuecustomerstatement() CancelledOrder Final Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

73 Diagrammi di stato Modellare attività All interno degli stati posso essere eseguite delle attività Negli statechart distinguiamo tra Azioni: operazioni atomiche Attività: operazioni generalmente non atomiche Le azioni provocano un cambiamento di stato (entry/exit) e quindi non possono essere interrotte Le attività non alterano lo stato dell oggetto Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

74 Diagrammi di stato Ordine di esecuzione degli eventi Quando si verifica un evento associato ad una transizione, l ordine di esecuzione è il seguente: 1. Se è in esecuzione un attività, questa viene interrotta ( gracefully se possibile) 2. Si esegue l exit action 3. Si esegue l azione associata all evento 4. Si esegue l entry action del nuovo stato 5. Si inizia l esecuzione delle eventuali attività del nuovo stato Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

75 Relazione tra diagrammi di stato e diagrammi di sequenza 1/4 Due scenari (sequence diagram): successo e fallimento di una transazione (Successo) (Fallimento) sd Dynamic model 3 - transaction success sd Dynamic model 3 - transaction failure :Customer :ShowSeat :Customer :ShowSeat select() select() purchase() cancel() Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

76 Relazione tra diagrammi di stato e diagrammi di sequenza 2/4 Scenario di successo e relativo (parziale) diagramma a stati (Successo) sd Dynamic model 3 - transaction success (diagramma a stati parziale) sm ev ents2 Priced - Not Selected - Not Sold :Customer :ShowSeat se l e ct select() Priced - Selected - Not Sold purchase() purchase P ric e d - Not Selected - Sold Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

77 Relazione tra diagrammi di stato e diagrammi di sequenza 3/4 Scenario di fallimento e relativo (parziale) diagramma a stati (Fallimento) sd Dynamic model 3 - transaction failure (diagramma a stati parziale) sm ev ents3 P ric e d - N o t S e le c te d - Not S old :Customer :ShowSeat select select() P ric e d - S e le c te d - Not Sold cancel() cancel P ric e d - N o t S e le c te d - Not S old Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

78 Relazione tra diagrammi di stato e diagrammi di sequenza 4/4 Il diagramma a stati completo (relativo ai due scenari discussi) sm events Priced - Selected - Not Sold select cancel() Priced - Not Selected - Not Sold purchase Priced - Not Selected - Sold Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

79 Diagrammi di stato compositi 1/2 Uno stato può contenere al suo interno più sottostati mutuamente esclusivi sm MovingForward sm events3 Moving in 1st gear MovingForward Initial upshift downshift Moving in 2nd gear Indica stato composito sotto-stati mutuamente esclusivi upshift downshift Moving in 3rd gear Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

80 Diagrammi di stato compositi 2/2 Uno stato può contenere al suo interno sottostati concorrenti sm events3 sm events3 FinalizingSale FinalizingSale [printing] printing concurrent region Initial Printing Ticket Final reserving concurrent region [reserving] Initial ReservingShowSeat Final Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

81 Parte I: Modellare sistemi software con UML Introduzione: approccio e motivazioni Modellare la struttura Modellare la dinamica Diagrammi di sequenza Diagrammi di stato (statechart) Diagrammi di attività Diagrammi dei casi d uso Diagrammi delle collaborazioni Timing diagram Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

82 Diagrammi di attività Un diagramma di attività mostra il flusso di azioni relativo ad un attività Un attività è un esecuzione non atomica di operazioni all interno di una macchina a stati L esecuzione di un attività viene decomposta in azioni atomiche Ogni azione può o meno cambiare lo stato del sistema I diagrammi di attività sono spesso usati per descrivere la logica di un algoritmo (sono l equivalente UML dei diagrammi di flusso) Graficamente un diagramma di attività è un insieme di archi e nodi Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

83 Diagramma di attività azioni e nodi attività ad Activity Model Azioni (atomiche) Valutazione di espressioni Assegnamenti / Ritorno di un valore Invocazione di un operazione su un oggetto Creazione/distruzione di un oggetto azione index:= lookup(e) + 7 nodo attività DoConstruction() CompositeActivity Attività composita Nodi Attività Raggruppamento di azioni atomiche o di altri nodi attività Un azione può essere vista come un attività che non può essere ulteriormente decomposta Espandendo un nodo attività si ottiene un altro diagramma di attività (attività composita) A parte questa differenza, i due concetti sono rappresentati mediante lo stesso simbolo grafico Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

84 Diagramma di attività Flusso di controllo Quando un azione o un attività viene completata, il flusso di controllo passa al nodo azione (attività) immediatamente successivo ad Activity Model Initialization Select site Il flusso di controllo viene specificato mediante frecce che collegano due nodi (attività o azione) Commission architect Il flusso mostrato in figura è quello più semplice: il flusso sequenziale completion Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

85 Diagramma di attività Branch e merge Un altro tipo di flusso possibile è il branch Un branch è rappresentanto da un diamante Ogni branch ha: Un flusso entrante Due o più flussi uscenti Una condizione logica (talvolta implicita) che determina quale dei flussi uscenti verrà eseguito da una particolare esecuzione Quando due flussi si riuniscono, è possibile usare ancora il simbolo di diamante; in questo caso viene detto merge Ogni merge ha almeno due flussi entranti e un flusso uscente Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

86 Diagramma di attività Branch e merge ad Activ ity M odel Release w ork order branch Reschedule [m aterials not ready] guard expression [materials ready] Assign tasks merge Get next order Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

87 Diagramma di attività Fork e Join Alcuni flussi possono essere concorrenti In UML vengono usate delle barre di sincronizzazione per specificare fork e join di flussi di controllo paralleli Un join rappresenta la sincronizzazione di due o più flussi di controllo concorrenti Un join ha due o più flussi entranti e un flusso uscente LA sincronizzazione sul join attende che tutte le attività nei flussi entranti abbiamo terminato la loro esecuzione, prima di procedere Join e fork si devono bilanciare Le attività in un flusso di controllo parallelo comunicano tra loro spedendosi segnali (stile di comunicazione detto coroutine) Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

88 Diagramma di attività Fork e Join ad Activ ity Model Prepare for speech fork Gesture Decompress Synch mouth Stream audio Cleanup join Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

89 Diagramma di attività Swimlane A volte è utile partizionare le attività in base alle entità coinvolte che le devono svolgere In UML si usano a tale scopo le cosiddette swimlane Una swimlane è un raggruppamento (verticale oppure orizzontale) di attività eseguite da una stessa entità (ad esempio, una classe) Ogni swimlane deve avere un nome univoco nel diagramma Le swimlane rappresentano responsabilità specifiche nel contesto di un attività generale Le attività sono associate univacamente ad un unica swimlane Solo le transizioni (flussi) possono attraversare due o più swimlane Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

90 Diagramma di attività Swimlanes a d Ac tiv ity M ode l Customer Sales Wharehouse sta rt Request product Process order Pull materials Ship order Receive order Bill customer Pay bill Close order Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

91 Diagramma di attività Flusso di oggetti A volte è utile evidenziare non solo il flusso di controllo, ma anche gli oggetti coinvolti Un attività può creare un oggetto Un altra attività può contenere azioni che modificano lo stato interno di un oggetto Il flusso del valore (stato) di un oggetto tra due azioni è detto flusso dell oggetto Lo stato viene rappresentato tra parentesi quadre all interno dell oggetto, oppure come constraint in una nota associata all oggetto stesso Parte I - Modellare sistemi software con UML - Andrea Baruzzo,

92 Diagramma di attività Flusso di oggetti ad Activ ity M odel Customer Sales Wharehouse start Request product {in progress} Process order o :Order Pull materials Ship order o :Order Bill customer {filled} Receive order Pay bill Close order Parte I - Modellare sistemi software con UML - Andrea Baruzzo, end

UML e i diagrammi di stato

UML e i diagrammi di stato UML e i diagrammi di stato S i n t a s s i e L i n e e G u i d a Dr. Andrea Baruzzo andrea.baruzzo@dimi.uniud.it Page 2 Definizioni Un diagramma di stato rappresenta il ciclo di vita degli oggetti di una

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

UML e i diagrammi di attività

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

Dettagli

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

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

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

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

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

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

PROGETTAZIONE DEL SOFTWARE

PROGETTAZIONE DEL SOFTWARE PROGETTAZIONE DEL SOFTWARE EMILIANO CASALICCHIO DIPARTIMENTO DI INFORMATICA E SISTEMISTICA SAPIENZA UNIVERSITÀ DI ROMA SEDE DI RIETI HTTP://WWW.CE.UNIROMA2.IT/COURSES/PSW! Cos è UML UNIFIED MODELING LANGUAGE!

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

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

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

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

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

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

Il problema. ! Si chiede di sviluppare un applicazione per la

Il problema. ! Si chiede di sviluppare un applicazione per la Il problema! Si chiede di sviluppare un applicazione per la gestione del sistema bibliotecario universitario. La soluzione deve implementare le operazioni basilari per la gestione della biblioteca ed inoltre

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

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

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

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

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello Corso di Laurea Triennale in Ingegneria Informatica Corso di Ingegneria del A. A. 2004-2005 1 La progettazione È applicata indipendentemente dal modello di processo utilizzato. Parte dal punto in cui sono

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools Una breve introduzione operativa a STGraph Luca Mari, versione 5.3.11 STGraph è un sistema software per creare, modificare ed eseguire modelli di sistemi dinamici descritti secondo l approccio agli stati

Dettagli

I Sistemi Informativi

I Sistemi Informativi I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA DISPENSA DEL CORSO DI SISTEMI INFORMATIVI Prof. Carlo Combi DFD Appunti a cura di E. Peri M. Devincenzi Indice 1

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

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

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

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

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

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

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

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata

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

Nozione di algoritmo. Gabriella Trucco

Nozione di algoritmo. Gabriella Trucco Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere

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

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

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 19 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 18 Maggio 2010 idea: sfruttare i

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

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

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

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

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

Informatica per le discipline umanistiche 2 lezione 14

Informatica per le discipline umanistiche 2 lezione 14 Informatica per le discipline umanistiche 2 lezione 14 Torniamo ai concetti base dellʼinformatica. Abbiamo sinora affrontato diversi problemi: avere unʼidentità online, cercare pagine Web, commentare il

Dettagli

Indice. Prefazione alla seconda edizione italiana XVII. Introduzione. Parte 1 Introduzione all UML e all UP 1

Indice. Prefazione alla seconda edizione italiana XVII. Introduzione. Parte 1 Introduzione all UML e all UP 1 00PrPag 19-07-2006 15:22 Pagina V Prefazione alla seconda edizione italiana Introduzione XV XVII Parte 1 Introduzione all UML e all UP 1 Capitolo 1 UML 3 1.1 Contenuto del capitolo 3 1.2 Cos è l UML? 3

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

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

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

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

Trasformazione dei Processi in Progetti DIB 1

Trasformazione dei Processi in Progetti DIB 1 Trasformazione dei Processi in Progetti DIB 1 Generalità DIB 2 Progetto PROGETTO: esecuzione di un insieme di attività in un tempo e con risorse limitati per raggiungere uno specifico scopo. A causa dell

Dettagli

Organizzazione aziendale Lezione 16 BPMN. Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28

Organizzazione aziendale Lezione 16 BPMN. Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28 Organizzazione aziendale Lezione 16 BPMN Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28 Nozioni di base Un sistema è una collezione di entità (es. persone o macchine) che interagiscono

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

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

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

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

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili 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 di

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

Rappresentazione grafica di entità e attributi

Rappresentazione grafica di entità e attributi PROGETTAZIONE CONCETTUALE La progettazione concettuale, ha il compito di costruire e definire una rappresentazione corretta e completa della realtà di interesse, e il prodotto di tale attività, è lo schema

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002 Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE

Dettagli

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1.

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1. Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane e per le Informazioni bibliografiche Manuali utente per SBN WEB Versione 1.0 Produzione editoriale Vers. 1.0 27/09/2013 Pagina 1 Sommario

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

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

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Monitor. Introduzione. Struttura di un TDA Monitor

Monitor. Introduzione. Struttura di un TDA Monitor Monitor Domenico Cotroneo Dipartimento di Informatica e Sistemistica Introduzione E stato introdotto per facilitare la programmazione strutturata di problemi in cui è necessario controllare l assegnazione

Dettagli

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente

Dettagli

Business Process Modeling and Notation e WebML

Business Process Modeling and Notation e WebML Business Process Modeling and Notation e WebML 24 Introduzione I Web Service e BPMN sono standard de facto per l interoperabilità in rete a servizio delle imprese moderne I Web Service sono utilizzati

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Elementi di Informatica Programmi e Oggetti Software Settembre 2006 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il punto di

Dettagli

Diagrammi di interazione

Diagrammi di interazione Diagrammi di interazione! Sono usati per portare a compimento un caso d uso, un operazione o un alta componente comportamentale.! Mostrano la seguenza di eventi (messaggi) tra gli oggetti durante la collaborazione.!

Dettagli

Le Basi di Dati. Le Basi di Dati

Le Basi di Dati. Le Basi di Dati Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Identificare le classi in un sistema

Identificare le classi in un sistema 3.7 (Caso di studio facoltativo) Pensare a oggetti: identificare le classi nella specifica del problema Cominciamo ad affrontare la progettazione del simulatore di ascensore introdotto nel capitolo. Iniziamo

Dettagli

DOCUMENTO ESERCITAZIONE ONENOTE. Utilizzare Microsoft Offi ce OneNote 2003: esercitazione rapida

DOCUMENTO ESERCITAZIONE ONENOTE. Utilizzare Microsoft Offi ce OneNote 2003: esercitazione rapida Utilizzare Microsoft Offi ce OneNote 2003: esercitazione rapida MICROSOFT OFFICE ONENOTE 2003 AUMENTA LA PRODUTTIVITÀ CONSENTENDO AGLI UTENTI L ACQUISIZIONE COMPLETA, L ORGANIZZAZIONE EFFICIENTE E IL RIUTILIZZO

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

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

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31

Dettagli

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti

Dettagli

Processi BPEL. Obiettivi

Processi BPEL. Obiettivi Università degli studi di Roma Tor Vergata Facoltà di Ingegneria Processi BPEL Corso di Sistemi Distribuiti Stefano Iannucci Anno accademico 2009/10 Email: sd@chmod.it Obiettivi Esercitazione pratica su:

Dettagli

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1 Ernesto Cappelletti (ErnestoCappelletti) IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 6 April 2012 1. Requisiti per la scrittura del software secondo la norma UNI EN ISO 13849-1:2008

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

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

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

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Un negozio di musica vende anche libri e riviste musicali. Si intende automatizzare l intero processo, dall approvvigionamento alla vendita. Si analizzino i requisiti e se ne rappresentino

Dettagli

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) Un insieme è una collezione di oggetti. Il concetto di insieme è un concetto primitivo. Deve esistere un criterio chiaro, preciso, non ambiguo, inequivocabile,

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

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

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