Principi di programmazione OO

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Principi di programmazione OO"

Transcript

1 Principi di programmazione OO Ing. Paolo Vaccari Giovedì 9 e 16 Marzo 2006 Corsi Speciali L.143/04 - SSIS TOSCANA 2005/2006

2 Principi di programmazione OO Prima lezione: Programmazione OO e procedurale Introduzione all OOP UML Seconda lezione: Linguaggi Oggetti e C++ Esempi

3 Prima lezione Programmazione procedurale e OO Differenze Problemi e soluzioni Orientamento agli oggetti UML Introduzione all OOP A cosa serve l UML Tipi di diagrammi

4 Procedurale e OO Quando si scrive un programma si crea dentro il calcolatore un modello di una porzione del mondo reale. I linguaggi di programmazione procedurali consentono di costruire modelli che privilegiano l aspetto procedurale, cioè le operazioni (funzioni) I linguaggi di programmazione OO consentono di costruire modelli che privilegiano le entità (i valori)

5 Procedurale e OO I linguaggi di programmazione tradizionali (C, Fortran, Basic, Pascal) sono procedurali Un programma/sottoprogramma viene visto come la trasformazione degli argomenti di ingresso X in un risultato Y, secondo la procedura P X P Y

6 Procedurale e OO La programmazione procedurale è ottima per produrre codice di dimensioni modeste, ma non ideale per progetti complessi e per le moderne esigenze industriali Il codice procedurale è: difficile da riutilizzare difficile da sviluppare in team di più persone non riflette in maniera naturale il nostro modo di pensare

7 Procedurale e OO Vantaggi della programmazione OO: favorisce la suddivisione del codice in unità funzionalmente indipendenti possono essere sviluppate autonomamente e contemporaneamente da più programmatori l uso degli oggetti ci riporta all esperienza quotidiana e risulta quindi più intuitivo ci porta a scrivere codice meno complicato, più facile da capire, correggere, aggiornare e riutilizzare impedisce alcuni errori e problemi nell accesso e manipolazione dei dati che i linguaggi procedurali non riescono ad evitare.

8 Orientamento agli oggetti Un oggetto è una entità composta da: proprietà che caratterizzano l oggetto e ne definiscono lo stato funzioni che possono essere eseguite sull oggetto e che possono modificare lo stato dell oggetto Lampadina accesa = falso vero accendi() spegni() Tipo oggetto Proprietà dell oggetto Funzioni che possono essere eseguite sull oggetto

9 Orientamento agli oggetti Tutti gli oggetti di uno stesso tipo formano una classe di oggetti (oggetto = istanza di una classe) Una classe è caratterizzata da: Proprietà a cui è associato un tipo che rappresenta l insieme dei possibili valori che oggetti appartenenti alla classe possono avere per la proprietà (bool, integer, real, string, etc.) Funzioni che possono essere eseguite sugli oggetti appartenenti alla classe

10 Orientamento agli oggetti Gli oggetti descritti tramite proprietà e funzioni sono una astrazione degli oggetti reali dei quali si considerano solo le caratteristiche necessarie per l applicazione da sviluppare Esempio: in una applicazione bancaria l altezza di una persona non è una informazione rilevante mentre lo è in una applicazione medica. Viceversa per il codice fiscale...

11 Orientamento agli oggetti Principi: Identità dell oggetto: ogni oggetto ha una propria identità univoca in tutto il sistema Occultamento dei dati (data hiding): i dati interni all oggetto sono nascosti all esterno Uso vietato Dati Funzioni private Uso consentito Funzioni pubbliche

12 Orientamento agli oggetti Principi: Ereditarietà: gli oggetti possono ereditare da altri oggetti comportamenti e proprietà aggiungendone dei propri Polimorfismo: funzioni con lo stesso nome possono avere una semantica diversa secondo il contesto in cui vengono chiamate

13 UML UML: Unified Modelling Language E la principale notazione standardizzata a livello internazionale Analogia con le norme standardizzate di disegno in altri campi dell ingegneria (norme UNI) Notazione, non metodologia Standardizzazione del modo di raffigurare i concetti permette di scambiare documenti di specifica, progetto e implementazione, non ambigui e comprensibili da tutti

14 UML Problema committente/fornitore: buona parte dei problemi nella costruzione e nel funzionamento di un prodotto software sono imputabili a incomprensioni tra il cliente/committente e il fornitore Il primo ha confusamente in mente di cosa ha bisogno, il secondo vuole proporre soluzioni di più basso costo di produzione possibile. Se il linguaggio comune continua a essere il linguaggio naturale, un eventuale accordo sarà comunque viziato dalla soggettività dei due stakeholders Necessità di un linguaggio comune il più possibile formalizzato, non ambiguo e comprensibile anche a un non tecnico

15 Le classi Una classe è una descrizione di un insieme di oggetti che condividono gli stessi attributi, operazioni, relazioni e semantica. Graficamente è rappresentata per mezzo di un rettangolo suddiviso in tre sezioni: nome, attributi, operazioni. Lampadina accesa = falso vero colore = azzurro accendi() spegni() Nome Attributi Operazioni (metodi)

16 Le classi: visibilità Tipologie di visibilità: Pubblica (+): l attributo/metodo è accessibile da qualsiasi altro oggetto che possiede un riferimento all oggetto che lo contiene; Privata (-): l attributo/metodo è accessibile solo all interno della rispettiva classe; Protetta (#): l attributo/metodo è accessibile da tutte le classi che ereditano da quella che lo contiene.

17 Le classi: visibilità Esempi: Attributi accessibili solo dai metodi della classe Data Metodi accessibili da chi usa la classe Data -giorno:int -mese:int -anno:int Data +set(g:int, m:int, a:int):bool +add(ngiorni:int) Attributo accessibile dalle classi derivate da Risorsa Risorsa #nome:string +set(n:string)

18 Le classi: relazioni Le classi possono essere collegate tra loro da relazioni: un pilota comanda un aeroplano la luce verde è parte di un semaforo Queste relazioni, come le classi, possono essere identificate a partire dalla descrizione informale del problema Tre tipi fondamentali di relazioni: dipendenza, generalizzazione e associazione

19 Le classi: relazioni La relazione di dipendenza è soprattutto legata ad aspetti implementativi Esprime il fatto che una classe dipende in qualche modo da un'altra classe Ad esempio: si usa quando una classe in un suo metodo usa un altra classe per svolgere un compito Le associazioni e le relazioni di specializzazione sono implicitamente anche relazioni di dipendenza Dipendente CodiceFiscale La classe Dipendente dipende dalla classe CodiceFiscale

20 Le classi: relazioni L associazione può essere contraddistinta da ruoli e molteplicità Ordini Clienti clientedal getordini 1 emette 0..* emesso da dataordine stato calcolatasse calcolatotale setstato 1 Articoli codice descrizione peso prezzo 1 nell ordine riguarda articolo 0..* 1..* DettagliOrdine quantità calcolapeso calcolaprezzo

21 Le classi: relazioni Aggregazione: tipo particolare di associazione è un'associazione più forte esprime concetto è parte di ( part of ), che si ha quando un insieme è relazionato con le sue parti Composizione: altro tipo di associazione è un'aggregazione più forte appartenenza molto forte A volte la differenza non è facile da individuare...

22 Le classi: relazioni Generalizzazione/Specializzazione padre-figlio: ereditarietà relazione è un ( is a )

23 Le classi: relazioni Altro esempio di ereditarietà:

24 Le classi: classi astratte Classi astratte: rappresentano un concetto o una categoria senza un corrispettivo reale (non possono essere istanziate) FiguraGeometrica rappresenta un concetto astratto che non può essere istanziato se non tramite una classe derivata (e.g.: Poligono) In UML le classi astratte si identificano con <<abstract>> FiguraGeometrica <<abstract>> #nome:string +setnome(n:string)

25 Le classi: interfacce Una interfaccia rappresenta un insieme di funzionalità che una classe offre a chi la usa Più classi possono implementare una stessa interfaccia Una interfaccia è una classe senza proprietà e solo con operazioni: <<interface>> GestioneRisorse aggiungirisorsa(r:risorsa) eliminarisorsa(r:risorsa)

26 Le classi: interfacce Una classe può implementare una interfaccia La classe Progetto realizza l interfaccia GestioneRisorse, quindi dovrà implementare le funzioni aggiungirisorsa e eliminarisorsa Progetto <<interface>> GestioneRisorse aggiungirisorsa(r:risorsa) eliminarisorsa(r:risorsa)

27 Le classi: interfacce Una classe può usare una interfaccia La classe GestioneRisorseUI che realizza l interfaccia utente per inserire e cancellare risorse usa un oggetto che implementa l interfaccia GestioneRisorse. Il concetto di uso è piuttosto generico GestioneRisorseUI <<use>> <<interface>> GestioneRisorse aggiungirisorsa(r:risorsa) eliminarisorsa(r:risorsa)

28 Le classi: interfacce Più in dettaglio una classe può essere associata con una interfaccia La classe GestioneRisorseUI è associata con un oggetto che implementa l interfaccia GestioneRisorse. GestioneRisorseUI gestisce 1 <<interface>> GestioneRisorse aggiungirisorsa(r:risorsa) eliminarisorsa(r:risorsa)

29 Le classi: interfacce Un oggetto GestioneRisorseUI è associato con un qualsiasi oggetto che implementa l interfaccia GestioneRisorse GestioneRisorseUI Notazione per l'implementazione delle interfacce GestioneRisorseUI gestisce gestisce GestioneRisorse Progetto GestioneRisorse RisorseDisponibili

30 Le classi: esempio Un diagramma delle classi concettuale

31 Diagrammi UML Requisiti funzionali Diagrammi di casi d uso: i requisiti sono rappresentati come attività Modello di dominio Diagramma delle classi: mostra la struttura del dominio tramite classi Modello orientato agli oggetti del sistema Diagramma delle classi: mostra la struttura del sistema Collaborazione degli oggetti Diagramma di sequenza Diagramma di collaborazione: mostrano la collaborazione dinamica tra gli oggetti per realizzare un caso d uso Stato dell oggetto Diagramma degli stati: mostra gli stati attraverso cui passa un oggetto

32 I Casi d Uso Per descrivere i requisiti funzionali del sistema si considerano degli esempi di uso del sistema Un caso d uso è una unità isolata e consistente che rappresenta una parte della funzionalità del sistema; dovrebbe costituire una unità logica di applicazione al sistema Il diagramma dei casi d uso raccoglie questi casi d uso e mostra chi usa il caso d uso (attore) le relazioni tra i casi d uso E un diagramma di alto livello che dà un visione molto approssimata del sistema I requisiti sono espressi nella descrizione dei casi d uso più che nel diagramma dei casi d uso.

33 Diagramma dei Casi d Uso Elementi di base: Comprare biglietto Caso d uso identificato da un titolo che lo descrive Acquirente Eseguire prenotazione Attore, chi usa il caso d uso. Può essere una persona fisica ma anche un sistema esterno Linea di comunicazione tra attore e caso d uso indica che l attore usa il caso d uso

34 Diagramma dei Casi d Uso Relazioni tra attori: Iscrizione Studente Richiesta certificato iscrizione Generalizzazione: lo Studente Lavoratore e uno Studente, i casi d uso che si applicano ad uno Studente valgono anche per uno Studente Lavoratore, ma non viceversa Studente Lavoratore Richiesta esenzione

35 Diagramma dei Casi d Uso Relazioni tra casi d uso: include Si usa per evidenziare delle funzionalità di base (ma non troppo ) Inclusione, il caso d uso Iscrizione esame prevede al suo interno l esecuzione del caso d uso Inserimento matricola Studente Iscrizione esame <<include>> Inserimento <<include>> matricola Richiesta certificato iscrizione Anche il caso d uso Richiesta certificato iscrizione prevede al suo interno l esecuzione del caso d uso Inserimento matricola

36 Diagramma dei Casi d Uso Relazioni tra casi d uso: extend Condition: { se l utente vuole la ricevuta } Extension point: ricevuta extension point: ricevuta <<extend>> Stampa ricevuta Prelevare al bancomat Cliente Estensione, il caso d uso Prelevare al bancomat e esteso in alcuni punti indicati da ricevuta dal caso d uso Stampa ricevuta L estensione può essere condizionata.

37 Diagramma dei Casi d Uso Relazioni tra casi d uso: generalizzazione Verifica con impronta digitale extension point: ricevuta <<include>> Verifica identità Verifica con password Prelevare al bancomat Cliente <<extend>> Stampa ricevuta Generalizzazione, il caso d uso Verifica con password e una specializzazione del caso d uso Verifica identità

38 Diagramma dei Casi d Uso Raggruppamento casi d uso in sistemi: Prelevare al bancomat Cliente Amministratore Sportello Bancomat Ricarica telefonino al bancomat Rifornimento contante Sportello bancomat Servizio bancario Sistema da specificare

39 Diagrammi dei Casi d Uso Considerazioni: Il diagramma dei casi d uso ha solo una funzione riassuntiva sui casi d uso del sistema e non e fondamentale (il diagramma non i casi d uso) Se sono presenti centinaia di casi d uso il diagramma diventa ingestibile e praticamente inutile, si possono dividere i casi d uso per sotto-sistemi

40 Descrizione Casi d Uso La descrizione di un caso d uso deve avere: Un identificativo univoco Un titolo che riporti la funzionalità del caso d uso Una breve descrizione, riassunto dei requisiti espressi dall utente Presupposti per l esecuzione del caso d uso La sequenza delle interazioni tra attore ed il sistema, contrassegnate da E per indicare l attore, e da A per indicare la risposta del sistema Gli effetti del caso d uso sul sistema (cambiamento di stato) Osservazioni che aiutino la comprensione del caso d uso e requisiti non funzionali (es. tempi risposta) La descrizione dei casi d uso non è standardizzata Comunque il caso d uso deve essere scritto in modo che sia comprensibile dal committente Non è necessario entrare troppo nel dettaglio

41 Descrizione Casi d Uso Numero: 1 Titolo: Prelievo bancomat Breve descrizione: il cliente effettua un prelievo al bancomat Presupposti: nessuno Descrizione procedimento: E1) il cliente inserisce la carta bancomat A1) il sistema valida la carta inserita Esecuzione caso d uso Verifica Identità A2) il sistema presenta la scelta dell importo da prelevare E2) il cliente seleziona l importo e preme esegui A3) il sistema richiede se il cliente vuole la stampa della ricevuta E3) l utente preme SI o NO A4) Il sistema emette la carta E4) il cliente ritira la carta A5) Il sistema eroga il denaro richiesto E5) il cliente ritira il denaro A6) se l utente ha premuto SI - Extension point: ricevuta Effetti: Il credito residuo per il periodo viene diminuito dell importo inserito, l importo viene addebitato sul conto Osservazioni: Il sistema deve validare l identità entro 1 minuto

42 Modello di Dominio Il modello di dominio mostra gli oggetti più importanti del dominio applicativo e le loro relazioni Si usa il diagramma delle classi Classi Associazioni Generalizzazione/specializzazione Si può creare prima dei casi d uso per capire quali sono gli oggetti che i casi d uso devono gestire

43 Modello di Dominio Classi Persona nome : string codicefiscale : string datanascita : date Classe con attributi Persona Classe con attributi e metodi nascosti o non specificati Persona nome : string codicefiscale : string datanascita : date verificacodicefiscale( ) Classe con attributi e metodi Specializzazione/generalizzazione Persona Dipendente Il Dipendente è una Persona ed eredita da questa tutte le sue caratteristiche

44 Modello di Dominio Associazioni Ogni Dipendente ha una propria Scrivania: Dipendente 1 Lavora-a > 1 Scrivania Ogni Dipendente lavora in un Gruppo di Lavoro che e formato da almeno un Dipendente: Dipendente 1..* Lavora-in 1 Gruppo lavoro Un Attore lavora a più Film con Ruolo diverso e ad un Film lavorano più Attori con ruoli diversi: Attore * * Film Ruolo

45 Modello di Dominio Associazione di composizione Progetto 1 * Gruppo lavoro Indica che un oggetto (indicato dal rombo pieno) è composto da altri oggetti Se l oggetto composto cessa di esistere cessano di esistere anche tutti i suoi componenti Il progetto è una composizione di gruppi di lavoro, se il progetto viene eliminato tutti i gruppi di lavoro che vi lavoravano vengono eliminati

46 Modello di Dominio Associazione di aggregazione Gruppo lavoro 1 * Dipendenti Indica che un oggetto (indicato dal rombo vuoto) è una aggregazione di altri oggetti Se l oggetto aggregato cessa di esistere non cessano di esistere anche i suoi componenti Il gruppo di lavoro è una aggregazione di dipendenti, se il gruppo di lavoro viene eliminato i dipendenti continuano a esistere se non vengono licenziati.

47 Diagramma degli stati Il diagramma degli stati evidenzia gli stati attraverso cui un oggetto passa in base alle interazioni con l esterno Esempio: cancelletto girevole Transizione di Stato (dipende dalla moneta!) quando l utente passa (evento Pass) esegue il Lock e passa nello stato Locked

48 Diagramma degli stati Un po più complicato

49 Diagramma di Collaborazione Il diagramma delle classi e dei casi d uso sono diagrammi statici Il diagramma di collaborazione è un diagramma dinamico che fa vedere come gli oggetti collaborano tra loro Si usa per far vedere come viene realizzato un caso d uso (o una sua parte)

50 Diagramma di Collaborazione Elementi: 1. L oggetto a esegue il metodo metodo1 sull oggetto b a : Oggetto 1: metodo1( ) b : Oggetto 2. L oggetto b esegue il metodo metodo2 sull oggetto d un certo numero di volte (*) 2: metodo1( ) 1.1 *: metodo2( ) c : Oggetto 2.1*: metodo2( ) d : Oggetto 3. L oggetto a esegue il metodo metodo1 sull oggetto c 4. L oggetto c esegue il metodo metodo2 sull oggetto d un certo numero di volte (*)

51 Diagramma di Sequenza E un diagramma dinamico che mostra lo svolgimento temporale delle interazioni tra oggetti a:oggetto b:oggetto scegli() calcola() L oggetto a esegue il metodo calcola sull oggetto b Tempo metodo() Viene restituito il valore calcolato (può essere omessa la freccia) L oggetto a esegue il metodo metodo sull oggetto a stesso

52 Diagramma di Sequenza In un metodo si possono creare e/o distruggere degli oggetti a:oggetto L oggetto a crea un nuovo oggetto b nell esecuzione del metodo scegli Tempo scegli() nuovo() b:oggetto calcola() distruggi() Viene distrutto l oggetto b

53 Diagramma interazione sottosistemi Indica come interagiscono i sottosistemi Il sottosistema Amministrazione usa l interfaccia pubblicata dal sottosistema Cassa Amministrazione Dati Cassa Il sottosistema Amministrazione fornisce l interfaccia Dati che viene usata dal sottosistema Chiosco Chiosco

54 Diagramma Componenti Indica come interagiscono i componenti Amministrazione Il componente Amministrazione usa i servizi dei componenti DB Amministrazione e Comunicazioni Amministrazione DB Amministrazione Chiosco Comunicazioni Amministrazione Comunicazioni Chiosco

55 Diagramma delle classi Nella fase di progetto al modello di dominio si aggiungono altri dettagli: Visibilità degli attributi e metodi Navigabilità delle associazioni Metodi delle classi Inoltre: si operano trasformazioni al modello nel caso il linguaggio di programmazione adottato non supporti delle caratteristiche usate nella modellazione del dominio (es.: Java e C# non supportano ereditarietà multipla) si aggiungono classi di supporto per esempio per realizzare associazioni Si usano i diagrammi di collaborazione e sequenza per mostrare le interazioni tra gli oggetti tramite i metodi

56 Diagramma delle classi Navigabilità delle associazioni Le associazioni possono avere una indicazione di navigabilità per indicare la direzione in cui si vuole percorrere l associazione Gruppo lavoro 1 * Dipendenti La direzione della freccia indica che da un Gruppo di lavoro si vuole sapere quali sono i dipendenti del gruppo

57 Diagramma delle classi I Package Per gestire la complessità del diagramma delle classi, le classi che sono tra loro in relazione possono essere riunite in un package e possono essere mostrate in un diagramma in modo compatto Risorse Risorsa Risorsa (from Risorse) Progetto Progetto

58 Riferimenti Documentazione: OMG (http://www.uml.org/) La casa dell'uml (specifiche e tutorial) Software: ArgoUML (http://argouml.tigris.org/) open source (licenza BSD) Windows, Linux, Mac (con Java VM) Java (reverse engineering) BoUML (http://bouml.free.fr/) open source (licenza GPL) Windows, Linux, Mac (con librerie QT) C++, Java (generazione e reverse ) Microsoft Visio

Modellazione e progettazione con UML. Eduard Roccatello 3D GIS Specialist www.roccatello.it

Modellazione e progettazione con UML. Eduard Roccatello 3D GIS Specialist <eduard.roccatello@3dgis.it> www.roccatello.it Modellazione e progettazione con UML Eduard Roccatello 3D GIS Specialist www.roccatello.it Object Oriented Analysis and Design Consente di modellare un sistema attraverso l

Dettagli

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti Alessio Bechini - Corso di - Il paradigma OO e le relative metodologie di progettazione Metodologie OO Programmazione orientata agli oggetti La programmazione ad oggetti (OOP) è un paradigma di programmazione

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

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Sistemi ICT per il Business Networking

Sistemi ICT per il Business Networking Corso di Laurea Specialistica Ingegneria Gestionale Sistemi ICT per il Business Networking Unified Modelling Language (UML) Class Diagram Docente: Massimo Cossentino Slide adattate dagli originali di:

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

Ingegneria del Software: UML Class Diagram

Ingegneria del Software: UML Class Diagram Ingegneria del Software: UML Class Diagram Due on Mercoledì, Aprile 1, 2015 Claudio Menghi, Alessandro Rizzi 1 Contents Ingegneria del Software (Claudio Menghi, Alessandro Rizzi ): UML Class Diagram 1

Dettagli

Architettura del software: dai Casi d Uso al Modello

Architettura del software: dai Casi d Uso al Modello Architettura del software: dai Casi d Uso al Modello Lorenzo Barbieri Sono un Senior Trainer/Consultant in ObjectWay SpA (www.objectway.it), specializzato in architetture Microsoft.NET, Windows, SQL Server,

Dettagli

Progettazione ad oggetti

Progettazione ad oggetti Progettazione ad oggetti Gli elementi reali vengono modellati tramite degli oggetti Le reazioni esistenti nel modello reale vengono trasformate in relazioni tra gli oggetti Cos'è un oggetto? Entità dotata

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

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

Progetto. Struttura del documento di specifica dei requisiti, Casi d uso. manuel.comparetti@iet.unipi.it

Progetto. Struttura del documento di specifica dei requisiti, Casi d uso. manuel.comparetti@iet.unipi.it Progetto Struttura del documento di specifica dei requisiti, Casi d uso manuel.comparetti@iet.unipi.it 1 Documenti da produrre Il progetto deve comprendere i seguenti documenti: Documento di specifica

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

Analisi Modelli per la specifica dei requisiti

Analisi Modelli per la specifica dei requisiti Modelli per la specifica dei requisiti Modelli semantici dei dati Entità-Relazioni (E-R) Modelli orientati all elaborazione dati Diagrammi di Flusso dei Dati (Data-Flow Diagrams, DFD) Modelli orientati

Dettagli

Principi di Progettazione del Software a.a. 2015-2016" Introduzione a UML. Requisiti e casi d uso! Prof. Luca Mainetti! Università del Salento!

Principi di Progettazione del Software a.a. 2015-2016 Introduzione a UML. Requisiti e casi d uso! Prof. Luca Mainetti! Università del Salento! Principi di Progettazione del Software a.a. 2015-2016" Introduzione a UML. Requisiti e casi d uso! Prof. Luca Mainetti! Università del Salento! Obiettivi della lezione" Introdurre il linguaggio UML per

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

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Analisi Giulio Destri Ing. del software: Analisi - 1 Scopo del modulo Definire

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

ANALISI E PROGETTAZIONE OBJECT ORIENTED UNIFIED MODELLING LANGUAGE (UML)

ANALISI E PROGETTAZIONE OBJECT ORIENTED UNIFIED MODELLING LANGUAGE (UML) ANALISI E PROGETTAZIONE OBJECT ORIENTED UNIFIED MODELLING LANGUAGE (UML) a cura di Giacomo PISCITELLI Dipartimento di Elettrotecnica ed Elettronica Politecnico di Bari Questi appunti sono ricavati da una

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

Corso Gestione Progetti Software (1)

Corso Gestione Progetti Software (1) Corso Gestione Progetti Software () Obiettivo del corso Fornire una visione d'insieme delle problematiche della gestione di un progetto software in un contesto aziendale. Alcuni elementi: Modello concettuale:

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

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

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

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

Il modello Entity-Relationship per il progetto delle basi di dati

Il modello Entity-Relationship per il progetto delle basi di dati 1 Il modello Entity-Relationship per il progetto delle basi di dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Le metodologie di progettazione delle Basi di Dati 2 Una metodologia

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 ad. Oggetti (OOP)

Introduzione alla Programmazione ad. Oggetti (OOP) Introduzione alla Programmazione ad Oggetti (OOP) Prof. Emanuele Papotto Introduzione alla Programmazione ad Oggetti Cosa Faremo: I linguaggi OOP Definizione di : classe, oggetto, attributi, metodi Cenni

Dettagli

Ingegneria del Software - Il Ciclo Lungo

Ingegneria del Software - Il Ciclo Lungo Ingegneria del Software - Il Ciclo Lungo Alessandro Martinelli alessandro.martinelli@unipv.it 10 Marzo 2014 Il Ciclo Lungo Il Versioning e la Condivisione di Codice Organizzazione dei Pacchetti La Modellazione

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

Obiettivo della lezione. Casi d uso. Casi d uso (use cases) Scenari d interazione

Obiettivo della lezione. Casi d uso. Casi d uso (use cases) Scenari d interazione Obiettivo della lezione Casi d uso La modellazione dei requisiti funzionali I casi d uso Gli attori Gli scenari Come scrivere casi d uso Casi d uso (use cases) Scenari d interazione Proposti da Ivar Jacobson

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni LA PROGETTAZIONE DI BASI DI DATI Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni La progettazione dei dati è l attività più importante Per progettare i dati al

Dettagli

5. Requisiti del Software II

5. Requisiti del Software II 5. Requisiti del Software II Come scoprire cosa? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 5. Requisiti del Software II 1 / 42 Sommario 1 Generalità

Dettagli

Paradigma object-oriented

Paradigma object-oriented Paradigma object-oriented Dati & Comportamento Implementazione trasparente dei servizi Facile mantenimento Omogeneità nella gerarchia dati-funzioni Procedural approach OO approach Data hierarchy Replaced

Dettagli

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO ELEMENTI FONDAMENTALI PER LO SVILUPPO DI SISTEMI INFORMATIVI ELABORAZIONE DI

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

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

Introduzione a UML. Iolanda Salinari

Introduzione a UML. Iolanda Salinari Introduzione a UML Iolanda Salinari Perché modelliamo Un modello è una semplificazione della realtà I modelli ci aiutano a visualizzare un sistema come è o come vorremmo che fosse ci permettono di specificare

Dettagli

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

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

Progettazione di Applicazioni Web

Progettazione di Applicazioni Web 1 Argomenti della lezione Progettazione di Applicazioni Web Sviluppo delle applicazioni Processo di sviluppo Formalismi grafici di supporto diagrammi UML (cenni) Scelta dell architettura Sviluppo di applicazioni

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

Introduzione ad UML. Perché modelliamo

Introduzione ad UML. Perché modelliamo Introduzione ad UML Pag. 1 Perché modelliamo Un modello è una semplificazione della realtà I modelli ci aiutano a visualizzare un sistema come è o come vorremmo che fosse ci permettono di specificare la

Dettagli

1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI

1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI IL LINGUAGGIO JAVA Dispense per il corso di laboratorio di sistemi I.T.I.S. ABACUS A.S. 2008/2009 Autore: Roberto Amadini Testo di riferimento: La programmazione ad oggetti C++ Java (Lorenzi, Moriggia,

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

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

Ingegneria del software e i formalismi

Ingegneria del software e i formalismi Ingegneria del software e i formalismi Lezione n. 5 Ingegneria del software Lezione n. 5.1 Creazione di un software: dal problema ai risultati (1/2) problema ANALISI algoritmo FORMALIZZAZIONE specificazioni

Dettagli

Progetto di Ingegneria del Software matricola 640926 MODELLAZIONE UML DI UN TERMINALE ATM. di Cavenaghi Mattia 03/04/2008 1/24

Progetto di Ingegneria del Software matricola 640926 MODELLAZIONE UML DI UN TERMINALE ATM. di Cavenaghi Mattia 03/04/2008 1/24 MODELLAZIONE UML DI UN TERMINALE ATM di Cavenaghi Mattia 03/04/2008 1/24 INDICE: Descrizione del problema pag. 3 Analisi dei requisiti pag. 3 Requisiti funzionali Requisiti non funzionali Requisiti tecnologici

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

Dettagli

Analisi Modello dei dati

Analisi Modello dei dati Modello dei dati Individuare Oggetti e classi rilevanti per il sistema da sviluppare Limitarsi esclusivamente a quelle classi che fanno parte del vocabolario del dominio del problema Relazioni tra le classi

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

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

Il diagramma dei casi d uso

Il diagramma dei casi d uso Il diagramma dei casi d uso Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli A.A. 2010/2011 Lab di Ingegneria del Software () Il diagramma dei casi d uso A.A. 2010/2011

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

Linguaggi di Programmazione I Lezione 6

Linguaggi di Programmazione I Lezione 6 Linguaggi di Programmazione I Lezione 6 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 8 aprile 2008 Analisi di oggetti e classi 3 Introduzione............................................................

Dettagli

Automazione della gestione degli ordini d acquisto di una società di autonoleggio

Automazione della gestione degli ordini d acquisto di una società di autonoleggio Automazione della gestione degli ordini d acquisto di una società di autonoleggio Professore Gaetanino Paolone Studenti Paolo Del Gizzi Maurizio Di Stefano 1 INDICE INTRODUZIONE.pag.3 IL PIANO METODOLOGICO

Dettagli

Manuale di Umbrello UML Modeller

Manuale di Umbrello UML Modeller 2 Indice 1 Introduzione 7 2 Fondamenti di UML 8 2.1 Informazioni su UML.................................... 8 2.2 Elementi UML........................................ 9 2.2.1 Diagramma di caso d uso.............................

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

ANALISI E PROGETTAZIONE OBJECT ORIENTED. Lorenzo Saladini

ANALISI E PROGETTAZIONE OBJECT ORIENTED. Lorenzo Saladini ANALISI E PROGETTAZIONE OBJECT ORIENTED Lorenzo Saladini 1. Introduzione In questo capitolo vengono presentati alcuni degli elementi necessari al corretto sviluppo di sistemi informatici secondo una metodologia

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

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 11 + Credits I lucidi di questa lezione sono stati preparati da: Professor Stefano Mizzaro Professor Paolo Coppola e sono stati modificati e completati dal Dr. Paolo

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

Lezione 5: Progettazione di Software e Database. Ingegneria del Software. Il Software 19/11/2011. Dr. Luca Abeti

Lezione 5: Progettazione di Software e Database. Ingegneria del Software. Il Software 19/11/2011. Dr. Luca Abeti Lezione 5: Progettazione di Software e Database Dr. Luca Abeti Ingegneria del Software L ingegneria del software è la disciplina che studia i metodi e gli strumenti per lo sviluppo del software e la misura

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

Un modello è ragionevole quando contiene queste tre caratteristiche.

Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Si consideri un agenzia che opera come biglietteria ferroviaria, aerea e navale, accettando diversi modi di pagamento. Si identifichino le principali entità coinvolte illustrando le gerarchie

Dettagli

Testo Esercizio Sommario Note relative alla modellazione UML. Note relative al testo dell esercizio.

Testo Esercizio Sommario Note relative alla modellazione UML. Note relative al testo dell esercizio. Testo Esercizio Si consideri un sistema per la gestione di un magazzino di un negozio scelto a piacere dal candidato Il sistema è in grado di gestire le seguenti operazioni: Arrivo di nuovi prodotti; Controllo

Dettagli

Sistemi Informativi. Basi di Dati. Progettazione concettuale. Architettura Progettazione Analisi funzionale

Sistemi Informativi. Basi di Dati. Progettazione concettuale. Architettura Progettazione Analisi funzionale 6LVWHPL,QIRUPDWLYL H DVLGL'DWL Oreste Signore (Oreste.Signore@cnuce.cnr.it) &RQWHQXWR Sistemi Informativi Basi di Dati Architettura Progettazione Analisi funzionale Progettazione concettuale Information

Dettagli

Obiettivi. Sistemi Informativi SPECIFICA DEI REQUISITI FUNZIONALI. Obiettivi Specifica dei Requisiti UML Use Case Esercizi

Obiettivi. Sistemi Informativi SPECIFICA DEI REQUISITI FUNZIONALI. Obiettivi Specifica dei Requisiti UML Use Case Esercizi Sistemi Informativi SPECIFICA DEI REQUISITI FUNZIONALI Obiettivi Specifica dei Requisiti UML Use Case Esercizi Obiettivi Nelle lezioni precedenti abbiamo modellato il dominio business e i dati L obiettivo

Dettagli

Linguaggi di Programmazione I Lezione 5

Linguaggi di Programmazione I Lezione 5 Linguaggi di Programmazione I Lezione 5 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 1 aprile 2008 Diagrammi UML 3 UML: richiami..........................................................

Dettagli

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori Programmazione ad oggetti in Java Daniela Micucci Outline La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori 2 Programmazione ad oggetti in Java 1 OOP Java

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

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

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati Che cos è un DBMS? Capitolo 1 Introduzione ai sistemi di basi di dati Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni

Dettagli

Automazione Industriale 4- Ingegneria del Software

Automazione Industriale 4- Ingegneria del Software Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica

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

Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione

Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione Gerarchie di Tipi Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione Notazione UML Relazione Simbolo Significato Ereditarietà Implementazione Aggregazione Dipendenza

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

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

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

Ingegneria del Software T. 2. Analisi orientata agli oggetti

Ingegneria del Software T. 2. Analisi orientata agli oggetti Ingegneria del Software T 2. Analisi orientata agli oggetti Per effettuare correttamente l analisi, è necessario Comunicare con l utente Ottenere una buona conoscenza dell area applicativa Determinare

Dettagli

Ingegneria del Software Progettazione

Ingegneria del Software Progettazione Ingegneria del Software Progettazione Obiettivi. Approfondire la fase di progettazione dettagliata che precede la fase di realizzazione e codifica. Definire il concetto di qualità del software. Presentare

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 Requisiti. Ingegneria dei Requisiti. Requisito. Tipi di Requisiti e Relativi Documenti. La gestione requisiti consiste in

Gestione Requisiti. Ingegneria dei Requisiti. Requisito. Tipi di Requisiti e Relativi Documenti. La gestione requisiti consiste in Ingegneria dei Requisiti Il processo che stabilisce i servizi che il cliente richiede I requisiti sono la descrizione dei servizi del sistema Funzionalità astratte che il sistema deve fornire Le proprietà

Dettagli

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti Basi di dati Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti Anno Accademico 2008/2009 Introduzione alle basi di dati Docente Pierangelo

Dettagli

Analisi. Ingegneria del Software L-A. Analisi. Analisi. Ingegneria del Software L-A 2.1. 2. Analisi orientata agli oggetti

Analisi. Ingegneria del Software L-A. Analisi. Analisi. Ingegneria del Software L-A 2.1. 2. Analisi orientata agli oggetti Ingegneria del Software L-A 2. orientata agli oggetti Per effettuare correttamente l analisi, è necessario Comunicare con l utente Ottenere una buona conoscenza dell area applicativa Determinare in dettaglio

Dettagli

Analisi. Ingegneria del Software L-A. Analisi. Analisi. Analisi e gestione dei rischi. Analisi e gestione dei rischi. Ingegneria del Software L-A 2.

Analisi. Ingegneria del Software L-A. Analisi. Analisi. Analisi e gestione dei rischi. Analisi e gestione dei rischi. Ingegneria del Software L-A 2. Ingegneria del Software L-A 2. orientata agli oggetti Per effettuare correttamente l analisi, è necessario Comunicare con l utente Ottenere una buona conoscenza dell area applicativa Determinare in dettaglio

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

La Progettazione Concettuale

La Progettazione Concettuale La Progettazione Concettuale Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica CorsodiBasidiDati Anno Accademico 2006/2007 docente: ing. Corrado Aaron Visaggio

Dettagli

Ingegneria del Software I. UML - Use Case Diagram

Ingegneria del Software I. UML - Use Case Diagram Requisiti e casi d uso Unified Modeling Language Use Case Diagram 1 Il primo passo di qualsiasi processo di sviluppo è la definizione dei requisiti Definizione del Business Model Solitamente informale

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Basi di dati. Basi di dati = database. Basi di dati

Basi di dati. Basi di dati = database. Basi di dati Basi di dati Da leggere: Cap. 6 Sawyer, Williams (testo A) Basi di dati = database Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi -> oggi anche

Dettagli

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica Tecnologie dell informazione e della comunicazione per le aziende CAPITOLO 3: Progettazione e sviluppo

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

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

1.1 I componenti di un DBMS... 5

1.1 I componenti di un DBMS... 5 Indice 1 Introduzione ai DBMS.......................................................... 1 1.1 Scopi di un DBMS............................................................ 1 1.2 Modelli dei dati..............................................................

Dettagli

CORSO DI INGEGNERIA DEL SOFTWARE. Prof.ssa Mongiello A. A 2013/2014

CORSO DI INGEGNERIA DEL SOFTWARE. Prof.ssa Mongiello A. A 2013/2014 POLITECNICO DI BARI CORSO DI INGEGNERIA DEL SOFTWARE Prof.ssa Marina Mongiello A. A 2013/2014 1 CORSO DI INGEGNERIA DEL SOFTWARE Prof.ssa Marina Mongiello Email: mongiello@poliba.it Telefono: 0805963524

Dettagli

Analisi dei Requisiti e Specifica

Analisi dei Requisiti e Specifica Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A3_2 V2.1 Analisi dei Requisiti e Specifica Tecniche e linguaggi Il contenuto del documento è liberamente utilizzabile

Dettagli