Ingegneria del Software

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Ingegneria del Software"

Transcript

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

2 Obiettivi Ottenere dei modelli per le classi da realizzare Artifatti dell attività di Analisi Modello Concettuale del dominio applicativo E il modello che descrive i concetti attivi nel dominio applicativo e le loro relazioni Modello dei Casi d Uso E il modello che descrive le funzionalità del sistema Altri artifatti Software Requirement Specification Diagrammi di attività per i processi di business

3 Esempio di Modello Concettuale Si consideri la vendita in un magazzino all ingrosso. Il cassiere prepara note di vendita, ognuna delle quali fa riferimento ad un certo numero di prodotti caratterizzati da un prezzo ed una descrizione. Ogni prodotto compare con la quantità venduta in una diversa linea della nota vendita. Si progetti un sistema per la realizzazione delle note vendita. Vendita Numero 115 Codice Quantità Totale Articolo 17 Scrivania legno 1 500,00 500,00 32 Sedia legno 6 80,00 480,00 12 Tavolo cucina 1 350,00 350,00 Totale 1.330,00 Individuazione dei Concetti Si consideri la vendita in un magazzino all ingrosso. Il cassiere prepara note di vendita, ognuna delle quali fa riferimento ad un certo numero di prodotti caratterizzati da un prezzo ed una descrizione. Ogni prodotto compare con la quantità venduta in una diversa linea della nota vendita

4 Rappresentazione dei Concetti Cassiere Magazzino Vendita Nota_Vendita Linea Quantità Individuazione delle relazioni Un concetto a quali altri concetti è legato? Es. Il concetto Cassiere a quali altri concetti del dominio è legato? Lavora nel Magazzino Effettua la Vendita Prepara la Nota di Vendita Cassiere Magazzino Vendita Nota_Vendita Linea Quantità

5 Modello Concettuale Iterando sugli altri concetti si ottiene il modello finale Cassiere Magazzino Vendita Nota_Vendita Linea Quantità Progettazione

6 Definizione dei Confini del Sistema Eliminazione dei concetti che non dovranno far parte del sistema Di quali concetti dovremo gestire dei dati Cassiere Magazzino Vendita Nota_Vendita Linea Quantità Astrazione Quali concetti sono atomici e quali complessi? I concetti atomici diventano attributi di altri concetti Quali sono le proprietà strutturali di ogni concetto? Nota_Vendita Concetti Strutturati Linea ID Quantità Concetti Atomici

7 Astrazione (2) Permette di passare da un modello concettuale ad un modello di tipi di dato Classe Concetto ID Modello dei dati Astrazione (3) Nota_Vendita Numero 0..n Linea Quantità 1 ID

8 Classificazione L operazione di classificazione permette il raggruppamento degli oggetti nelle classi Gli oggetti del mondo reale sono unici nel senso che hanno caratteristiche distintive L operazione di astrazione permette di cogliere solo alcuni aspetti di interesse ottenendo una rappresentazione con perdita d informazione Considerando gli oggetti attivi nel dominio di interesse ci dobbiamo chiedere se le classi individuate possono contenere correttamente tutti gli oggetti Generalizzazione E l operazione attraverso la quale una classe viene generalizzata attraverso la perdita di caratteristiche Ci sono classi del modello che presentano aspetti comuni? Esempio Corso Nome_Corso Persona Nome Cognome Corso Nome_Corso Docente Nome Cognome Qualifica Studente Nome Cognome Matricola Docente Qualifica Studente Matricola

9 Riuso Il modello dei dati viene adattato nel caso in cui si hanno classi già pronte dea riutilizzare Ci sono classi di utilità (già pronte) che presentano proprietà simili alle classi individuate? Utilizzo del meccanismo di ereditarietà per la specializzazione delle classi di utilità Assegnazione delle Responsabilità Il modello dati realizzato non è ancora un modello delle classi Si è specificata la componente strutturale delle classi Manca la componente comportamentale Quali sono le operazioni che ogni classe deve realizzare? Quali sono le sue responsabilità?

10 Responsabilità Una responsabilità è un contratto o un obbligo di un tipo o di una classe Assegnare le responsabilità alle componenti di un sistema è una delle attività più critiche dell`intera progettazione Esistono patterns che possono essere utilizzati a tale scopo Un pattern è una particolare soluzione ad un dato problema che può essere applicata in nuove situazioni Un pattern da indicazioni su come applicarlo in nuove circostanze Assegnazione delle Responsabilità Da cosa partire? Dai casi d uso del sistema Creare un diagramma per ogni operazione del sistema Per ogni messaggio inviato al sistema Se il diagramma diventa complesso lo si puo` dividere Usare le descrizioni degli Use Cases

11 GRASP pattern General Responsibility Assignment Software Pattern GRASP è una collezione di pattern Expert Creator High Coesion Low Coupling Controller Soluzione Expert Assegna una responsabilità all information expert, cioè alla classe che detiene le informazioni necessarie ad adempiere alla responsabilità Problema: qual è il più basilare principio per l assegnazione delle responsabilità? Un modello delle classi può definire dozzine di classi e centinaia o migliaia di responsabilità

12 Expert - esempio Chi dovrebbe essere responsabile della conoscenza del totale di una vendita? Modello dei dati Nota_Vendita Numero 0..n Linea Quantità 1 ID Expert esempio (continua) Le seguenti responsabilità sono assegnate Nota_Vendita: conoscere il totale Linea: conoscere il subtotale : conoscere il prezzo 1: totale : Cassiere : Nota_Vendita 2: sub_totale : : Linea 3: prezzo

13 Refinement del Modello Nuove responsabilità Nota_Vendita Numero totale() 0..n Linea Quantità s ub_totale() 1 ID prezzo() Expert Vantaggi Mantenimento dell incapsulation Gli oggetti usano il più possibile le proprie informazioni, quindi si ha basso accoppiamento Il comportamento è distribuito attraverso le classi che posseggono le informazioni necessarie Alta coesione

14 Creator Soluzione: Assegna alla classe B la responsabilità di creare A se: B aggrega A B contiene A B usa strettamente A B mantiene informazioni che vengono passate ad A quando creato Problema: Chi deve essere responsabile della creazione di una nuova classe? Creator - esempio Chi deve essere responsabile della creazione di un oggetto Linea? Nota_Vendita Numero totale() 0..n Linea Quantità s ub_totale() 1 ID prezzo()

15 Creator esempio (continua) Soluzione: Nota_Vendita 1: nuova_linea : Cassiere : Nota_Vendita 2: crea : Linea Vantaggi basso accoppiamento Low Coupling Soluzione: Assegna una responsabilità in modo che l`accoppiamento rimanga basso Problema: Come consentire un elevato riuso e basse dipendenze?

16 Low Coupling - esempio Problema: Si debba creare un`istanza di pagamento e la si associ ad una vendita Modello dati Payment POST Sale date time Soluzioni Low Coupling esempio (2) I patterns creator e low coupling conducono a soluzioni differenti POST POST 1: makepayment Sale 2: makepayment(p) 1: create 2: create Sale Payment Payment

17 High cohesion Soluzione: Assegna una responsabilità in modo che la coesione rimanga alta Problema: Come mantenere la complessità gestibile? High cohesion - esempio Problema: Si debba creare un`istanza di pagamento e la si associ ad una vendita Modello concettuale Payment POST Sale date time

18 Soluzioni High cohesion esempio (2) I patterns creator ed high cohesion conducono a soluzioni differenti Soluzione identica al caso di low coupling POST POST 1: makepayment Sale 2: makepayment(p) 1: create 2: create Sale Payment Payment Controller Soluzione: Assegna la responsabilità per la gestione di un messaggio esterno ad una classe se: Rappresenta l`intero sistema Rappresenta l`intero business o organizzazione Rappresenta una entità reale attiva quando arriva il messaggio Rappresenta un handler artificiale per tutti gli eventi del sistema Problema: Chi deve gestire gli eventi?

19 Controller - Esempio Problema: Si debbanno gestire gli eventi per il sistema POST System endsale() enteritem() makepayment() 1: enteritem : Cas hier :??? Soluzione Può essere l`intero sistema, l`organizzazione (store), una entità reale (cashier) o un handler artificiale La scelta verrà fatta in base a considerazioni su coesione, accoppiamento...

Esercizi design patterns. Angelo Di Iorio,

Esercizi design patterns. Angelo Di Iorio, Esercizi design patterns Angelo Di Iorio, diiorio@cs.unibo.it Esercizio 1 Una parete, che contiene porte e finestre, deve essere dipinta con una vernice. Ogni barattolo contiene una data quantità di vernice,

Dettagli

Design Pattern. Ingegneria del Software parte II. Andrea Bei

Design Pattern. Ingegneria del Software parte II. Andrea Bei Design Pattern Ingegneria del Software parte II Andrea Bei Progettazione a oggetti (OOD) Progettare a oggetti una funzionalità espressa da un requisito ( use case, SSD, ) significa Identificare gli oggetti,

Dettagli

Laboratorio di Progettazione di Sistemi Software Design Patterns

Laboratorio di Progettazione di Sistemi Software Design Patterns TITLE Laboratorio di Progettazione di Sistemi Software Design Patterns Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Tipi di Design Patterns Creazionali Strutturali Comportamentali

Dettagli

Introduzione alla programmazione Object Oriented. Luca Lista

Introduzione alla programmazione Object Oriented. Luca Lista Introduzione alla programmazione Object Oriented Luca Lista Concetti base del software OO Classi e oggetti Incapsulamento Relazione di ereditarietà Polimorfismo Cos è un Oggetto? Definizione da vocabolario:

Dettagli

Design Principle. immagini da SOLID Motivational Posters, by Derick Bailey

Design Principle. immagini da SOLID Motivational Posters, by Derick Bailey Design Pattern Design Principle immagini da SOLID Motivational Posters, by Derick Bailey Single Responsibility Principle Single Responsibility Principle A class should have only one reason to change. Open

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Design Pattern Dott. Alessandro Roncato 18/10/2011 Design Patters I Design Patters sono soluzioni di progettazione standard e ben collaudate che possono essere usate in

Dettagli

RDD 2. Laboratorio di Ingegneria del Software. Andrea Bei

RDD 2. Laboratorio di Ingegneria del Software. Andrea Bei Laboratorio di Ingegneria del Software Andrea Bei Altri pattern GRASP Altri pattern GRASP Polymorphism Pure Fabrication, Indirection Protected Variations 2 Polymorphism Problema: Come gestire alternative

Dettagli

design patterns e GRASP

design patterns e GRASP design patterns e GRASP 1 design patterns una coppia / particolarmente importante a cui viene dato un nome vengono espressi in un formato molto rigido, ad es. nome descrizione sintetica della descrizione

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

CURRICOLO DIPARTIMENTO INFORMATICA PRIMO BIENNIO

CURRICOLO DIPARTIMENTO INFORMATICA PRIMO BIENNIO dei limiti nel contesto culturale e sociale in cui vengono applicate CURRICOLO PARTIMENTO INFORMATICA PRIMO BIENNIO MODULO 1 Concetti di base della tecnologia dell informazione Acquisire e interpretare

Dettagli

I database. Introduzione alla teoria delle basi di dati

I database. Introduzione alla teoria delle basi di dati I database Introduzione alla teoria delle basi di dati 1 Cosa sono e a cosa servono i Database Un database (o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di un database

Dettagli

Analisi e progettazione ad oggetti

Analisi e progettazione ad oggetti Analisi e progettazione ad oggetti Richiami di Analisi e progettazione ad oggetti L idea di base della analisi ad oggetti è di partire da una descrizione del problema in termini di entità e relazioni tra

Dettagli

ESERCIZI DI MODELLAZIONE E-R

ESERCIZI DI MODELLAZIONE E-R ESERCIZI DI MODELLAZIOE E-R La Galleria d Arte L Università I Film Progettare una base di dati per la gestione di una galleria d arte (1) Il sistema deve memorizzare le informazioni riguardo agli artisti:

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

Se un oggetto A aggrega oggetti B allora avrà informazioni su di loro

Se un oggetto A aggrega oggetti B allora avrà informazioni su di loro Concetto di responsabilità nella progettazione guidata dalle responsabilità (RRD) si pensa in termini di responsabilità del software. Le responsabilità vengono assegnate agli oggetti durante la progettazione.

Dettagli

OOP in Python L O R E N Z O D I S I L V E S T R O

OOP in Python L O R E N Z O D I S I L V E S T R O L O R E N Z O D I S I L V E S T R O w w w. d m i. u n i c t. i t / ~ d i s i l v e s t r o d i s i l v e s t r o @ d m i. u n i c t. i t Imperativo Paradigmi di programmazione 2 i programmi sono sequenze

Dettagli

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corso di Laurea in Ingegneria Informatica ed Automatica Corso

Dettagli

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

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

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Astrazioni e UML Astrazioni Nella vita reale siamo abituati a osservare e descrivere oggetti a vari livelli di dettaglio Dai da mangiare a Fido Porta a passeggio il cane Di quale

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

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

Dettagli

Il PROCESSO UNIFICATO

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

Dettagli

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi che aggiungono via via più

Dettagli

UML I diagrammi implementativi

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

Dettagli

LA PROGETTAZIONE CONCETTUALE

LA PROGETTAZIONE CONCETTUALE Argomenti della lezione LA PROGETTAZIONE CONCETTUALE Prima parte Un esercizio sulle generalizzazioni Documentazione di schemi E-R Raccolta e analisi dei requisiti Criteri generali di rappresentazione Strategia

Dettagli

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 27 Marzo 07 Nome: Cognome: Matricola:

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 27 Marzo 07 Nome: Cognome: Matricola: Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 27 Marzo 07 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione del sistema informativo di

Dettagli

Il modello Entità/Relazioni (ER)

Il modello Entità/Relazioni (ER) Il modello Entità/Relazioni (ER) Basi di dati 1 Il modello Entità/Relazioni (ER) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il modello Entità/Relazioni (ER) Basi di dati

Dettagli

Introduzione alla OOP Object Oriented Programming

Introduzione alla OOP Object Oriented Programming Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali

Dettagli

I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria

I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Simulazione di esame Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico 2015/2016

Dettagli

<Nome Tabella>.<attributo>

<Nome Tabella>.<attributo> Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Dettagli

Progettazione di basi di dati

Progettazione di basi di dati Progettazione di basi di dati Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: progettazionedb.pdf Sistemi Informativi L-B Progettazione di

Dettagli

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO - Ristrutturazione dello schema concettuale

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO - Ristrutturazione dello schema concettuale LE BASI DI DATI Seconda parte La progettazione di database Relazionali SCHEMA LOGICO - Ristrutturazione dello schema concettuale LA PROGETTAZIONE LOGICA L'obiettivo della progettazione logica è quello

Dettagli

Macchina Astratta: struttura e realizzazione.

Macchina Astratta: struttura e realizzazione. Macchina Astratta: struttura e realizzazione. Sommario Macchina Astratta e l interprete di Macchina Hight e Low Level Languages Implementazione di un Linguaggio Macchina Intermedia Gerarchia di Macchine

Dettagli

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

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

Dettagli

Responsibility Driven Design

Responsibility Driven Design Responsibility Driven Design Laboratorio di Ingegneria del Software Andrea Bei Progettazione a oggetti (OOD) Progettare a oggetti una funzionalità espressa da un requisito ( use case, SSD, ) significa

Dettagli

Ereditarietà e Polimorfismo

Ereditarietà e Polimorfismo Ereditarietà e Polimorfismo Riusare il software A volte si incontrano classi con funzionalità simili In quanto sottendono concetti semanticamente vicini È possibile creare classi disgiunte replicando le

Dettagli

BASI DATI INFORMATICA

BASI DATI INFORMATICA BASI DATI INFORMATICA 1 Sistema Informativo Un sistema informativo (SI) è un componente di una organizzazione il cui obiettivo è gestire le informazioni utili per gli scopi dell organizzazione stessa GESTIRE

Dettagli

Progettare Basi di Dati

Progettare Basi di Dati Progettare Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Elementi di informatica per l economia Teoria della normalizzazione La teoria della normalizzazione ha come scopo

Dettagli

Questo capitolo esemplifica la progettazione di oggetti responsabilità e collaborazioni applicazione dei pattern GRASP applicazione di UML

Questo capitolo esemplifica la progettazione di oggetti responsabilità e collaborazioni applicazione dei pattern GRASP applicazione di UML Luca Cabibbo Analisi e Progettazione del Software Esempi di progettazione a oggetti con i pattern GRASP Capitolo 18 marzo 2013 Ogni cosa dovrebbe essere fatta nel modo più semplice possibile, ma non più

Dettagli

MODELLO e RAPPRESENTAZIONE

MODELLO e RAPPRESENTAZIONE MODELLO e RAPPRESENTAZIONE I calcolatori elaborano informazione e restituiscono nuova informazione: questa deve essere rappresentata in forma simbolica Esempio : Per poter gestire una biblioteca dobbiamo

Dettagli

REGIONE BASILICATA UFFICIO S. I. R. S.

REGIONE BASILICATA UFFICIO S. I. R. S. UFFICIO S. I. R. S. Modellazione dati Id Base Dati CONTROLLO DEL DOCUMENTO APPROVAZIONI Redatto da: Approvato da: Data Autore Ing. Vincenzo Fiore VARIAZIONI Versione prec. Data Autore Paragrafi modificati

Dettagli

TRADUZIONE DI SCHEMI

TRADUZIONE DI SCHEMI TRADUZIONE DI SCHEMI Progettazione di basi di dati relazionali attraverso la traduzione da schemi ER a schemi relazionali 2 Da un modello ad un altro Parliamo di come progettare uno schema di basi di dati

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

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

Dettagli

Metodologie e modelli di progetto

Metodologie e modelli di progetto Metodologie e modelli di progetto Ingg. Francesco Gullo, Giovanni Ponti D.E.I.S Università della Calabria fgullo@deis.unical.it gponti@deis.unical.it 1 I Sistemi Informativi Un sistema informativo èun

Dettagli

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS INFORMATICA GENERALE DBMS: Introduzione alla gestione dei dati Bibliografia 4 ott 2011 Dia 2 Curtin, Foley, Sen, Morin Vecchie edizioni: 8.4, 8.5, 8.6, 8.7, 8.8 Edizione dalla IV in poi: 6.5, 21.1, 19.4,

Dettagli

SISTEMI INFORMATIVI E DATABASE

SISTEMI INFORMATIVI E DATABASE SISTEMI INFORMATIVI E DATABASE SISTEMA INFORMATIVO AZIENDALE (S.I.) In una realtà aziendale si distingue: DATO elemento di conoscenza privo di qualsiasi elaborazione; insieme di simboli e caratteri. (274,

Dettagli

Ingegneria del Software (e Prova Finale) Luciano Baresi

Ingegneria del Software (e Prova Finale) Luciano Baresi Ingegneria del Software (e Prova Finale) Luciano Baresi luciano.baresi@polimi.it Organizzazione dei corsi Ingegneria del software (7 crediti) Lezioni: 42 ore Esercitazioni: 28 ore Prova finale (3 crediti)

Dettagli

Generalizzazione. Docente : Alfredo Cuzzocrea Tel. : Informatica

Generalizzazione. Docente : Alfredo Cuzzocrea   Tel. : Informatica Università Magna Graecia di Catanzaro Informatica Generalizzazione Docente : Alfredo Cuzzocrea e-mail : cuzzocrea@si.deis.unical.it Tel. : 0984 831730 Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,

Dettagli

SCUOLA SECONDARIA DI I GRADO ALIGHIERI - TANZI MOLA DI BARI ANNO SCOLASTICO 2011/1012

SCUOLA SECONDARIA DI I GRADO ALIGHIERI - TANZI MOLA DI BARI ANNO SCOLASTICO 2011/1012 SCUOLA SECONDARIA DI I GRADO ALIGHIERI - TANZI MOLA DI BARI ANNO SCOLASTICO 2011/1012 ASSE SCIENTIFICO-TECNOLOGICO (Scienze, Geografia, Tecnologia, Scienze Motorie) L asse scientifico-tecnologico ha l

Dettagli

Guida introduttiva: Gestisci utenti e visibilità partner

Guida introduttiva: Gestisci utenti e visibilità partner Guida per il cliente Novembre 2016 La presente guida mostra come utilizzare il Microsoft Business Center per cercare un utente, invitare nuovi utenti e assegnare o rimuovere ruoli per gestire le autorizzazioni

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori Università degli Studi di Cassino e del Lazio Meridionale Corso di Algoritmi ed esecutori Anno Accademico Francesco Tortorella Che cosa si intende per INFORMATICA? Scienza della rappresentazione e dell

Dettagli

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 29 Aprile 2004 Da Access a Protégé Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza 1035

Dettagli

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1 STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono

Dettagli

Gerarchia di Generalizzazione. Esempio. Rappresentazione grafica. Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione

Gerarchia di Generalizzazione. Esempio. Rappresentazione grafica. Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione Gerarchia di Generalizzazione 22 Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione Concetti Definizioni Esempi Mette in relazione (legami logici) una o più entità, E 2,...,

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.

Dettagli

ARCHITETTURA DI UN DBMS

ARCHITETTURA DI UN DBMS ARCHITETTURA DI UN DBMS Modelli di dati Un approccio con basi di dati fornisce un certo livello di astrazione dei dati Nasconde i dettagli sulla memorizzazione dei dati stessi Un modello dei dati fornisce

Dettagli

Programmi e Oggetti Software

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

Dettagli

Principi e schemi di progettazione object oriented (design pattern elementari)

Principi e schemi di progettazione object oriented (design pattern elementari) Principi e schemi di progettazione object oriented (design pattern elementari) Prof. Paolo Ciancarini! Corso di Ingegneria del Software! CdL Informatica! Università di Bologna 1 Scopo della lezione Introduzione

Dettagli

Analisi e specifica dei requisiti

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

Dettagli

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 ECDL - Database Introduzione European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 Informazioni sul corso orario: Giovedì - 14.30-16.30 materiale: http://www.fotoboni.com/carlo/ docente: webmaster@fotoboni.com

Dettagli

Principi e Metodologie delle Costruzioni di Macchine

Principi e Metodologie delle Costruzioni di Macchine Principi e Metodologie delle Costruzioni di Macchine Corso di Laurea in Ingegneria Meccanica III anno A.A. 2010-2011 Docente: Domenico Gentile gentile@unicas.it 0776.2994336 Presentazione del corso PREREQUISITI

Dettagli

Oggetti Composti (1) Oggetti Composti (2)

Oggetti Composti (1) Oggetti Composti (2) Oggetti Composti () Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi dei riferimenti ad oggetti di qualche classe

Dettagli

ACSO Programmazione di Sistema e Concorrente

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

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione ModelloEntity-Relationship. E-R E il modello concettuale più diffuso Fornisce costrutti per descrivere le

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

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti

Dettagli

La simulazione è l'imitazione di un processo o di un sistema reale per un

La simulazione è l'imitazione di un processo o di un sistema reale per un 1 2 La simulazione è l'imitazione di un processo o di un sistema reale per un determinato periodo di tempo. La simulazione è l'imitazione di un processo o di un sistema reale per un determinato periodo

Dettagli

Database Modulo 4 RELAZIONI TRA TABELLE

Database Modulo 4 RELAZIONI TRA TABELLE Database Modulo 4 RELAZIONI TRA TABELLE PERCHÉ DEFINIRE LE RELAZIONI Dopo avere definito le tabelle corrispondenti alle entità individuate nel progetto del database, è necessario indicare il modo per ricollegare

Dettagli

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

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

Dettagli

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato Informatica per le Scienze Umane Introduzione al corso: programma dettagliato 1 Obiettivi del corso Fornire le conoscenze e le competenze necessarie alla rappresentazione e al trattamento consapevole delle

Dettagli

Sistemi e modelli. Sistemi

Sistemi e modelli. Sistemi Sistemi e modelli Obbiettivo: sviluppare metodologie e strumenti di analisi quantitativa della QoS di sistemi costruzione e soluzione di modelli per la valutazione di prestazioni e affidabilità di sistemi

Dettagli

Oggetto Progetto Responsabile di progetto GESTIONE DELLA MODIFICA

Oggetto Progetto Responsabile di progetto GESTIONE DELLA MODIFICA DIREZIONE EMITTENTE Oggetto Progetto Responsabile di progetto GESTIONE DELLA MODIFICA RICHIESTA DI MODIFICA Cliente richiedente Documento di riferimento (eventuale) Data della richiesta Data di scadenza

Dettagli

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo Ereditarietà & Polimorfismo Ereditarietà Meccanismo per definire una nuova classe (classe derivata) come specializzazione di un altra (classe base) La classe base modella un concetto generico La classe

Dettagli

Compito Basi di Dati. Tempo concesso : 90 minuti 28 aprile 2005 Nome: Cognome: Matricola:

Compito Basi di Dati. Tempo concesso : 90 minuti 28 aprile 2005 Nome: Cognome: Matricola: Compito Basi di Dati. Tempo concesso : 90 minuti 28 aprile 2005 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione del sistema informativo di una gelateria

Dettagli

Model View Controller (MVC)

Model View Controller (MVC) (MVC) in sintesi è una applicazione del pattern alle interfaccie utente (GUI ma non necessariamente) lunga tradizione in smalltalk non è propriamente un design patter ma un architectural pattern perché

Dettagli

Segmentazione e Marketing 121. Università di Bologna Andrea De Marco

Segmentazione e Marketing 121. Università di Bologna Andrea De Marco Segmentazione e Marketing 121 Università di Bologna Andrea De Marco Segmentazione Cosa Significa? Usiamo la parola "segmentazione" per definire il processo con cui "raggruppiamo" in insiemi omogenei elementi

Dettagli

Ingegneria del Software L-A

Ingegneria del Software L-A Ingegneria del Software L-A Corso di Laurea Triennale in Ingegneria Informatica III anno A.A. 2009/2010 Docente: Giuseppe Bellavia Collaboratore: Gabriele Zannoni Premessa Una domanda fondamentale Che

Dettagli

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

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

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi

Dettagli

Ciclo di vita di un sistema informativo

Ciclo di vita di un sistema informativo Ciclo di vita di un sistema informativo 1) Studio di fattibilità definire, in maniera per quanto possibile precisa, i costi delle varie alternative possibili stabilire le priorità di realizzazione delle

Dettagli

I Tipi di Dato Astratto

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

Dettagli

ITIS A. Volta Flavia Lollis pag. 1

ITIS A. Volta Flavia Lollis pag. 1 Il Function Point è una delle metriche più antiche e tuttora diffuse nell ambito della valutazione di progetti software. Ciò che lo rende insostituibile e superiore ad altri metodi può essere riassunto

Dettagli

Analisi ABC incrociata

Analisi ABC incrociata 1 Analisi ABC L analisi ABC incrociata è un metodo che permette di suddividere in classi una serie di oggetti. Permette perciò di raggruppare per classi secondo i valori di una variabile. Ad esempio classificazione

Dettagli

Modello Entità-Relazione (E-R)

Modello Entità-Relazione (E-R) Modello Entità-Relazione (E-R) Modello concettuale di dati. Fornisce una serie di strutture (costrutti) per descrivere un problema in modo chiaro e semplice. I costrutti vengono utilizzati per definire

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione concettuale

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione concettuale Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 Capitolo 7: Progettazione concettuale 17/10/2002 Progettazione concettuale Requisiti della base di dati Schema concettuale Progettazione

Dettagli

La progettazione logica Traduzione dal modello Entità-Associazione al modello relazionale Anno accademico 2008/2009

La progettazione logica Traduzione dal modello Entità-Associazione al modello relazionale Anno accademico 2008/2009 La progettazione logica Traduzione dal modello Entità-Associazione al modello Anno accademico 2008/2009 Obiettivo: Costruire uno schema logico in grado di descrivere le informazioni contenute nello schema

Dettagli

Elena Baralis, Claudio Demartini

Elena Baralis, Claudio Demartini Progetto concettuale Il progetto concettuale 1 Obiettivo: produrre lo schema concettuale Strumenti: meccanismi di astrazione forniti dal modello Entità-Relazione Specifiche iniziali: descrizioni in linguaggio

Dettagli

CAPITOLO V. DATABASE: Il modello relazionale

CAPITOLO V. DATABASE: Il modello relazionale CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono

Dettagli

VoipExperts.it - CISCO <=> AVAYA

VoipExperts.it - CISCO <=> AVAYA In questo articolo ci occuperemo di mettere in comunicazione (trunk) un centralino Avaya Ip Office con il call manager di Cisco usando come protocollo H323. Per i test in laboratorio, sono stati usati

Dettagli

INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016

INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016 INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016 Francesca Levi Dipartimento di Informatica E-mail: francesca.levi@unipi.it levifran@di.unipi.it Francesca Levi Dipartimento di Informatica Informatica per

Dettagli

Tecnico di sistemi CAD? Edile architettonico

Tecnico di sistemi CAD? Edile architettonico Denominazione Figura / Profilo / Obiettivo Professioni NUP/ISTAT correlate Attività economiche di riferimento: ATECO 2007/ISTAT Tecnico di sistemi CAD Edile architettonico 3.1.3.7.1 - Disegnatori tecnici

Dettagli

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

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

Dettagli

Un file system nasconde la complessità dei diversi media proponendone una astrazione.

Un file system nasconde la complessità dei diversi media proponendone una astrazione. File system e path File system I computer possono utilizzare diversi media per registrare in modo persistente le informazioni; ognuno di questi media ha caratteristiche fisiche diverse. Esempi di media

Dettagli

INSEGNAMENTO DI: FONDAMENTI DI INFORMATICA C - IEI

INSEGNAMENTO DI: FONDAMENTI DI INFORMATICA C - IEI INSEGNAMENTO DI: FONDAMENTI DI INFORMATICA C - IEI Docente: Prof. Giacomo Cabri Come Contattarmi: E-mail (consigliato) Giacomo.cabri@unimore.it Telefono 059-2056190 Ricevimento Lunedì pomeriggio dalle

Dettagli

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati MODELLI DEI DATI Prof. Alberto Postiglione

Dettagli

RELAZIONI E BASI DI DATI

RELAZIONI E BASI DI DATI Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno :Modello Relazionale (2)-Relazioni e DB, valori nulli Prof.

Dettagli

Informatica per le Scienze Umane. Introduzione al corso: programma

Informatica per le Scienze Umane. Introduzione al corso: programma Informatica per le Scienze Umane Introduzione al corso: programma 1 Obiettivi del corso Fornire le conoscenze e le competenze necessarie alla rappresentazione e al trattamento consapevole delle informazioni

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Definizione del Macromodello

Definizione del Macromodello Definizione del Macromodello Survey Sulla base dell analisi dello stato dell arte e dei requisiti di alto livello, il deliverable B.3 Definizione del Macromodello definisce in linea di massima le informazioni

Dettagli

Il modello relazionale

Il modello relazionale Basi di dati Il modello relazionale Si tratta della fase di progettazione. In questa fase individuiamo esattamente quello che è utili informatizzare Cerchiamo gli elementi importanti Individuiamo le loro

Dettagli