La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Lezione 1 Panoramica sui paradigmi di programmazione Introduzione alla programmazione orientata agli oggetti 1.

Presentazioni simili


Presentazione sul tema: "Lezione 1 Panoramica sui paradigmi di programmazione Introduzione alla programmazione orientata agli oggetti 1."— Transcript della presentazione:

1 Lezione 1 Panoramica sui paradigmi di programmazione Introduzione alla programmazione orientata agli oggetti 1

2 Paradigmi di programmazione Programmazione non strutturata Programmazione procedurale Programmazione modulare Programmazione ad oggetti 2 Lezione 1

3 Programmazione non strutturata 3 Lezione 1 Il programma è costituito da un unico blocco di codice detto "main" dentro il quale vengono manipolati i dati in maniera totalmente sequenziale (non si utilizzano solo le tre strutture di controllo e ci possono essere goto)

4 Programmazione procedurale 4 Lezione 1 Il concetto base è quello di raggruppare i pezzi di programma ripetuti in porzioni di codice utilizzabili e richiamabili ogni volta che se ne presenti l'esigenza; queste porzioni di codice sono chiamate procedure. Il programma è costituito da un unico file.

5 Programmazione modulare 5 Lezione 1 Le procedure aventi un dominio comune (ad esempio, procedure che eseguono operazioni matematiche) vengono raggruppate in moduli separati. Il programma è costituito da più file.

6 Verso la OOP: non si ricomincia da zero! Modularità? Certo! 6 Modularità strutturare un’applicazione software in componenti il più possibile indipendenti ma tra loro cooperanti e facilmente riutilizzabili in diversi progetti riduzione complessità riutilizzo del codice (anche venderlo ad altri programmatori) si fanno meno errori, è più facile scoprirli, è più facile correggerli il codice è più leggibile il codice è più manutenibile facilita MOLTO il lavoro in team

7 Programmazione orientata agli oggetti (Object Oriented Programming - OOP) 7 Lezione 1 E’ basato sul fatto che esistono una serie di oggetti che interagiscono vicendevolmente, scambiandosi messaggi ma mantenendo ognuno il proprio stato ed i propri dati.

8 Origini della programmazione ad oggetti Anni ’60: Simula 1 e Simula 67 Anni ’70: Smalltalk Anni ’80: ADA – consacrazione della programmazione ad oggetti Tra i più noti linguaggi di programmazione ad oggetti: Java, C++, Delphi, C#, Visual Basic.NET 8 Lezione 1

9 9 Approccio orientato agli oggetti: OOA metodologia generale pensare e rappresentare problemi usando concetti del mondo reale oggetti: rappresentano proprietà e comportamenti in una unica entità I modelli possono essere implementati usando un linguaggio di programmazione, un sistema di gestione di archivi, etc…

10 10 Approccio orientato agli oggetti Esempio di classi: PezzoScacchi (una Torre è un oggetto della classe) Attributi: Colore, Altezza, Posizione Operazioni: Muove Poligono (un Triangolo è un oggetto della classe) Attributi: Vertici, ColoreBordi, ColoreInterno Operazioni: Disegna, Cancella, Muove Bicicletta (la mia bicicletta è un oggetto della classe) Attributi: DiametroRuote, Altezza, Materiale Operazioni: Muove, Ripara, Pulisci

11 11 Approccio orientato agli oggetti Caratteristiche di un oggetto: Attributi (struttura dati) Comportamento Caratteristiche richieste da un approccio orientato agli oggetti: Identità(identity) Polimorfismo(polymorphism) Ereditarietà(inheritance)

12 12 Alcune differenze tra OO e procedurale OOP  dati e comportamento contenuti in un oggetto singolo Procedurale  dati e comportamento separati OOP  divide il problema in oggetti separati che realizzano azioni relazionandosi con altri oggetti Vantaggi proncipali di OOP: Dati e operazioni incapsulati in un oggetto Quando viene creato un nuovo tipo di oggetto, non è necessario modificare le implementazioni precedenti Piuttosto, il nuovo oggetto eredita alcune caratteristiche precedenti Programmi OO sono di più semplice manutenzione

13 Motivazioni della scelta della OOP Migliorare la qualità del software I programmi di grandi dimensioni vengono scomposti in moduli, che chiameremo oggetti Ne trae beneficio la fase di manutenzione Riutilizzo del codice 13 Lezione 1

14 14 Vantaggi della programmazione ad oggetti Protezione delle strutture dati Incapsulamento – information hiding Maggiore semplicità di progettazione astratta progettazione top-down e bottom-up, gerarchia di classi composizione delle classi come mattoni fondamentali Migliore riutilizzazione del codice composizione, aggregazione, derivazione Migliore manutenzione del codice le modifiche sono realizzate mediante aggiunta di classi e funzioni virtuali – non è necessario riprendere e modificare l’intero codice Migiore documentazione del codice Strumenti grafici del tipo UML

15 15 Esempio: conto corrente Programmazione procedurale: L’attenzione del programmatore è concentrata sulle funzioni che manipolano i dati! Ma: l’attenzione di un correntista è più concentrata sui dati che sulle funzioni! Inoltre: Chiunque può modificare i dati (se i dati sono visibili) Funzioni e dati entità separate Punto di vista tradizionale:valore=CalcolaInteressi(ID); funzione argomento valore di ritorno

16 16 Esempio: conto corrente Programmazione ad oggetti : L’attenzione del programmatore è concentrata sui dati non sulle funzioni Dati e funzioni NON sono entità separate programma ad oggetti: insieme di oggetti cooperanti, che sono istanze di un tipo di dati astratto Esempio di tipo di dati astratto per gestire un conto corrente: ContoCorrente Numero correntista Nome correntista Saldo Numero operazioni deposita(valore) preleva(valore) calcolaInteressi() incrementaNumeroOperazioni leggiNumeroOperazioni() dati funzioni

17 17 Esempio: conto corrente Programmazione ad oggetti: Un particolare Conto Corrente è una ‘istanza’ del tipo di dati astratto Le funzioni sono attivate mediante messaggi. Un particolare ContoCorrente: cosa è visibile dall’esterno? Punto di vista ad oggetti:valore=ID  CalcolaInteressi(); oggetto funzione valore di ritorno messaggio Oggetto: ContoCorrente Dati privati: Numero correntista Nome correntista Saldo Dati protetti: numero operazioni Dati e funzioni pubbliche: DepositaPrelevaleggiNumeroOperazioniCalcolaInteressi interfaccia  

18 18 Esempio: conto corrente Utilizzo dell’oggetto: oggetto ContoCorrente Messaggio: ‘deposita(x)’ Messaggio: ‘leggiNumeroOperazioni()’


Scaricare ppt "Lezione 1 Panoramica sui paradigmi di programmazione Introduzione alla programmazione orientata agli oggetti 1."

Presentazioni simili


Annunci Google