Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo.

Slides:



Advertisements
Presentazioni simili
Il paradigma Object Oriented
Advertisements

Programmazione ad oggetti
Recupero debito quarto anno Primo incontro
Recupero debito quarto anno Secondo incontro
Informatica Recupero debito quarto anno Terzo incontro.
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
Le gerarchie di tipi.
Metodologie di Programmazione = decomposizione basata su astrazioni
Semantica Operazionale di un frammento di Java: lo stato
Generalità Linguaggio e Macchina Astratta
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
1 Metodologie di Programmazione. 2 Contenuto generale §tecniche per la programmazione orientata ad oggetti (in piccolo) §esemplificate utilizzando il.
Principi di Programmazione Object-Oriented
Principi di Programmazione Object-Oriented
Programmazione orientata agli oggetti OOP Object Oriented Programming
©Carlo Tasso 1999 Object Oriented Programming Slide 1 OO Analysis Vs. OO Design OOA – Object Oriented Analysis. –Specifica COSA, IN QUALE CONTESTO il sistema.
8. Progettazione del Software
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Progettazione dei sistemi interattivi (A.A. 2004/05) - Lezione 3 1 La relazione di ereditarietà Punto di vista insiemistico: la relazione di ereditarietà
Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 4 1 Sulla realizzazione dellereditarietà 4 Ereditarietà: statica / dinamica 4 Binding: statico.
La Riflessione computazione Elisa Ferrando. Cos è la Riflessione La Riflessione Sistema riflessivo Sistema computazionale.
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
CAPITOLO 3 ELEMENTI DI PROGRAMMAZIONE OBJECT-ORIENTED.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Progettazione di una base di dati
Strategia bottom-up Nella strategia bottom-up le specifiche iniziali sono suddivise in componenti via via sempre più piccole, fino a descrivere frammenti.
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
Introduzione alla modellazione di sistemi interattivi
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
Implementare un modello di dati
Analisi (Analista) Progettazione (Progettista) Sviluppo o Traduzione (Sviluppatore) Documentazione.
Introduzione alla programmazione Object Oriented
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
Presentazione Finale Team 2. Mapping La trasformazione da noi adottata in fase di mapping è stata di tipo Forward engineering. Si è partiti da un modello.
I DATABASE.
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
Lezione 1 Panoramica sui paradigmi di programmazione
Incapsulamento e information hiding
DAmb Sergio Lovrinich 28 Settembre Descrizione Questo Software si propone di eseguire una Analisi del Codice Sorgente, mettendo a disposizione Strumenti.
Programmazione ad oggetti
Diagramma delle Classi
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
1 Osservazioni Generali Struttura di programma Gerarchia di classi: overloading, overriding, e dispatching Analisi ed esecuzione Modificabilità e condivisione.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
OBJECT ORIENTED DATABASE introduzione. OGGETTO Ha due componenti:  stato: valore di alcune variabili (variabili di istanza)  comportamento: insieme.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
SISTEMI DIDATTICI PER L’ E- LEARNING
Programmazione in Java. Classi I programmi in Java consistono di classi. Le classi consentono di definire: collezioni di procedure (metodi statici) tipi.
Cose nuove di Java (prima a chiacchiera, poi formalmente)
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 15 Prof. M.T. PAZIENZA a.a
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
La Programmazione ad Oggetti
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
Mapping Database Atsilo
La programmazione ad oggetti
Le basi di dati.
UML Unified Modelling Language Linguaggio per la modellazione unificato.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo che trasforma la descrizione di un problema nella definizione delle classi e degli oggetti che sono richiesti per ottenere i risultati richiesti Ogni classe rappresenta lastrazione di un comportamento che è definito nella descrizione del problema. Ogni oggetto fornisce le funzionalità definite nella sua classe 4 OBJECT-ORIENTED DESIGN Specifica dellarchitettura del sistema e della filosofia che guiderà limplementazione Decomposizione del problema guidata dai dati piuttosto che dalle procedure 4 OBJECT-ORIENTED PROGRAMMING Usare gli oggetti come i mattoni fondamentali del programma Applicare un linguaggio ad oggetti per uno specifico obiettivo di programmazione Organizzare il programma come una collezione di oggetti che collaborano tra loro

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 2 Il Modello ad Oggetti 4 Astrazione –Concettualizzazione che incorpora solo i costituenti che sono essenziali –Le entità concettuali sono individuate dal solo comportamento, e non da come tale comportamento è implementato 4 Incapsulamento –Separare comportamento da implementazione 4 Modularità –Raggruppare componenti con caratteristiche omogenee –Organizzare soluzioni a problemi complessi in maniera da poter maneggiare più facilmente le componenti 4 Gerarchia –Livelli di astrazione delle classi –Classi più generali dànno origine a classi più specifiche: EREDITARIETA

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 3 Le Classi –Descrizione di una famiglia di oggetti tutti con la stessa struttura e medesimo comportamento –Componenti di una classe: Componente statica: DATI (sotto forma di campi) caratterizzano lo stato di un oggetto Componente dinamica: PROCEDURE (sotto forma di metodi) rappresentano il comportamento comune degli oggetti appartenenti alla classe. Manipolano i campi e caratterizzano le azioni che gli oggetti possono effettuare

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 4 Definizione di una classe (esempio: gestione di un magazzino) Riferimento: numero con cui larticolo è registrato Descrizione: testo che descrive larticolo Prezzo: prezzo unitario netto dellarticolo Quantità: numero degli esemplari di tale articolo presenti in magazzino STATO delloggetto ARTICOLO COMPORTAMENTO delloggetto ARTICOLO PrezzoIva: metodo che calcola il prezzo comprensivo di IVA PrezzoTrasporto: metodo che calcola il prezzo del trasporto di un articolo definito come il 5% del prezzo netto Carico: metodo che permette di aggiungere esemplari di un articolo al magazzino ha un parametro q il cui valore viene aggiunto a Quantità Scarico: metodo per scaricare esemplari di un articolo dal magazzino ha un parametro q il cui valore viene sottratto da Quantità Aggiorna: metodo che aggiorna il prezzo di un articolo

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 5 Esempio (continua) Classe ARTICOLO CAMPI Riferimento: Numero Descrizione: Testo Prezzo: Numero Quantità: Numero METODI PrezzoIva (): ritorna (1,20 * Prezzo) PrezzoTrasporto (): ritorna (0,05 * Prezzo) Carico (q): Quantità = Quantità + q Scarico (q): Quantità = Quantità - q Aggiorna (p): Prezzo = p

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 6 Le istanze Il dizionario dei metodi è mantenuto soltanto nella matrice La lista dei campi è mantenuta solo nella matrice, mentre le istanze ne possiedono i valori, per cui i campi corrispondono a variabili di istanza matrice oggetti riprodotti (istanze)

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 7 LEreditarietà Specificità di alcune Categorie di oggetti Specializzazione e fattorizzazione ESEMPIO: dovendo trattare articoli di tipo CAMICIA, sarebbe opportuno avere un campo Taglia e un campo Tessuto, mentre per articolo di tipo TELEVISORE, sarebbe utile un campo Dimensione Non è opportuno che la classe ARTICOLO contenga tutte le possibili caratteristiche e comportamenti dei diversi tipi di articoli La classe ARTICOLO si può specializzare in diverse sottoclassi per descrivere adeguatamente le diverse caratteristiche degli oggetti di tipo articolo

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 8

9 Vantaggi della ereditarietà Usare librerie di classi fornite dal linguaggio specializzandole al caso specifico Riuso di classi definite dal programmatore Modularità: luniverso del programma è diviso in parti indipendenti che raggruppano classi di oggetti secondo le affinità e le dipendenze Modificabilità locale: se si modifica la classe VESTITO aggiungendo un campo per indicare se si tratta di un capo femminile o maschile, solo la classe VESTITO e la sua sottoclasse CAMICIA ne sono affette

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 10 Ereditarietà singola vs. ereditarietà multipla Ereditarietà semplice: una classe può avere al più una superclasse diretta ==> la relazione di ereditarietà è rappresentata da un albero Ereditarietà multipla: una classe può avere diverse superclassi dirette Vantaggi e svantaggi Lereditarietà multipla accresce la modularità dei programmi (la relazione di ereditarietà è un grafo). Lo svantaggio è che la maggiore complessità delle relazioni fra le classi può portare a minore chiarezza nella struttura del codice Lereditarietà multipla dà maggiore possibilità di fattorizzare il codice, evitando duplicazioni, ma maggiore attenzione deve essere rivolta al definire il contenuto delle classi e alla loro correlazione

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 11

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 12 Linvio di messaggi La primitiva send send(oggetto_ricevente, selettore, arg1, arg2, …, argn) oggetto_ricevente è un riferimento alloggetto cui si chiede una azione selettore è il nome del metodo che loggetto ricevente deve eseguire arg1, arg2, …, argn è la lista dei parametri attuali del metodo da eseguire Esempio send(cav_nero, aggiorna, 18500)