Lezione 1 Panoramica sui paradigmi di programmazione

Slides:



Advertisements
Presentazioni simili
Il paradigma Object Oriented
Advertisements

Linguaggio C e C++.
Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo.
1 Introduzione ai calcolatori Parte II Software di base.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Le basi della programmazione a oggetti.
Classe IV B A.s – 2009 Programma di Informatica 6 ore (3 laboratorio) Docenti –Prof. Alberto Ferrari –Prof. Alberto Paganuzzi.
Unified Modeling Language
Recupero debito quarto anno Primo incontro
Informatica Recupero debito quarto anno Terzo incontro.
Procedure e funzioni A. Ferrari.
Programmazione object oriented in C++
Metodologie di Programmazione = decomposizione basata su astrazioni
Principi di Programmazione Object-Oriented
Principi di Programmazione Object-Oriented
Programmazione orientata agli oggetti OOP Object Oriented Programming
Dr. Francesco Fabozzi Corso di Informatica
©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
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Distributed Object Computing
Calcolatori Elettronici III
Introduzione alla programmazione ad oggetti
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Introduzione al linguaggio C++ 5 lezioni
Corso di Informatica (Programmazione)
eliana minicozzi linguaggi1a.a lezione2
Struttura dei sistemi operativi (panoramica)
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.
Espressioni condizionali
Strategia bottom-up Nella strategia bottom-up le specifiche iniziali sono suddivise in componenti via via sempre più piccole, fino a descrivere frammenti.
Java concetti A.Natali Marzo Java Dai concetti ai costrutti.
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
AN FI Un denominatoe comune Comandi u notazioni che esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno.
Introduzione alla modellazione di sistemi interattivi
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
L’ingegneria del software
Analisi (Analista) Progettazione (Progettista) Sviluppo o Traduzione (Sviluppatore) Documentazione.
Introduzione alla programmazione Object Oriented
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Ingegneria del software Modulo 4 -Processi software Unità didattica 1 -Rational Unified Process Ernesto Damiani Università degli Studi di Milano Lezione.
I nomi in Java F. Bombi 18 novembre novembre 2003.
Linguaggi e modelli computazionali LS Manni Tiziano
Pippo.
Astrazione procedurale ed eccezioni
Corso di Visual Basic 6.0 OBBIETTIVI
Programmazione a oggetti
OOP Object Oriented Programming Programmazione Orientata agli Oggetti
I processi.
Programmazione ad oggetti
OOP per la simulazione di sistemi reali. di Gianfranco Gallizia.
Classe IV A A.s – 2013 Programma di Informatica 5 ore (3 laboratorio) Docenti –Prof. Alberto Ferrari –Prof. Alberto Paganuzzi.
Incapsulamento e information hiding
Programmazione ad oggetti
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
OBJECT ORIENTED DATABASE introduzione. OGGETTO Ha due componenti:  stato: valore di alcune variabili (variabili di istanza)  comportamento: insieme.
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
La Programmazione ad Oggetti
La programmazione ad oggetti
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:

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

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

Programmazione non strutturata Lezione 1 Programmazione non strutturata 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)

Programmazione procedurale Lezione 1 Programmazione procedurale 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.

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

Verso la OOP: non si ricomincia da zero! Modularità? Certo! 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

Lezione 1 Programmazione orientata agli oggetti (Object Oriented Programming - OOP) 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.

Origini della programmazione ad oggetti Lezione 1 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

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…

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) Vertici, ColoreBordi, ColoreInterno Disegna, Cancella, Muove Bicicletta (la mia bicicletta è un oggetto della classe) DiametroRuote, Altezza, Materiale Muove, Ripara, Pulisci

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)

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

Motivazioni della scelta della OOP Lezione 1 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

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

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); valore di ritorno funzione argomento

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

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(); valore di ritorno oggetto messaggio funzione Dati e funzioni pubbliche: Deposita Preleva leggiNumeroOperazioni CalcolaInteressi  interfaccia Oggetto: ContoCorrente  Dati privati: Numero correntista Nome correntista Saldo Dati protetti: numero operazioni

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