Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoSantuzza Pellegrini Modificato 11 anni fa
1
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
2
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
3
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
4
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
5
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
6
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)
7
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
8
Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 8
9
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
10
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
11
Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 11
12
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)
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.