Introduzione alla OOP Object Oriented Programming
|
|
|
- Giovanna Gattini
- 8 anni fa
- Просмотров:
Транскрипт
1 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 linguaggi ad oggetti componenti programmazione ad oggetti 2
2 L Architettura di von Neumann Memoria indirizzo dati dati CPU Calcolo programmazione ad oggetti 3 La programmazione procedurale separa il calcolo dalla memoria memoria Calcolo (CPU) dati dati programmazione ad oggetti 4
3 L alternativa fondamentale Spazio per Ricordare Tempo per Calcolare A B C F (A,B,C) F (A,B,C) = 3A+4B+5C programmazione ad oggetti 5 L alternativa Spazio-Tempo Spazio π = Tavole degli Integrali Tabelle per le tasse Tempo π = C / 2R Integrazione per parti Formule per aliquote programmazione ad oggetti 6
4 Gli Oggetti Incorporano Spazio e Tempo Oggetto Attributi Metodi (Funzioni o Procedure) Gli Oggetti rivoluzionano l architettura di von Neumann! programmazione ad oggetti 7 Gli oggetti aiutano a modellare il mondo reale Biglia peso colore rotola Automobile porte cilindrata avanza retrocedi Candela altezza diametro colore brucia Pietra massa colore rotola cadi Identità Attributi Metodi / Operazioni programmazione ad oggetti 8
5 Perché la modellazione Object-Oriented Oriented? Non è solo programmazione: è una diversa maniera di pensare e progettare il software Invece di modellare la macchina (procedurale) si cerca di modellare il problema (object( oriented) Utile nella progettazione software E la struttura utilizzata per la maggior parte del software moderno Uno strumento potente per trattare problemi complessi, dove i requisiti variano nel tempo. programmazione ad oggetti 9 Object Oriented Modeling Gli Oggetti hanno Stato, Comportamento ed Identità Stato (spazio) --- Comportamento (tempo) Stato (spazio) --- Comportamento (tempo) La Persistenza Conserva lo Stato Concorrenza: permette a molti oggetti di agire in parallelo Incapsulare = Nascondere il dettaglio della realizzazione Astrazioni diverse omettono dettagli differenti! L astrazione si focalizza sulle caratteristiche essenziali di un dato oggetto, relativamente alla prospettiva di chi osserva... programmazione ad oggetti 10
6 Le Astrazioni Formano una Gerarchia Oggetto di base IS A Ereditarietà Oggetto specifico programmazione ad oggetti 11 Classe: modello astratto da cui creare oggetti Una classe è la definizione di un insieme di oggetti che condividono una struttura ed un comportamento comuni programmazione ad oggetti 12
7 Classi, oggetti e relazioni Gli oggetti sono istanze delle classi e sono in relazione tra di loro programmazione ad oggetti 13 Oggetti che Contengono oggetti Un Tavolo ha parti (piano, 4 gambe) Rimuovendo la superficie o una delle gambe non è più un tavolo (non dà più un supporto) Perciò Piano e Gambe sono PARTOF del tavolo Stanza: ha come parti pareti e pavimento Senza pareti e pavimento resta solo uno spazio Persone: sono Contenute in una stanza Senza persone la stanza rimane una stanza (anche se vuota). programmazione ad oggetti 14
8 Diagrammi ad oggetti (UML) Tavolo Aggregazione Altezza Sostieni Parte di (PartOf) Gamba Gamba Piano Gamba Gamba Altezza Diametro Sostieni Altezza Diametro Sostieni Area Sostieni Altezza \ Diametro Sostieni Altezza Diametro Sostieni programmazione ad oggetti 15 Diagrammi ad oggetti (UML) Stanza Capienza Pavimento Parete Parete Occupanti Parete Parete Numero Massimo di Persone programmazione ad oggetti 16
9 Diagrammi ad Oggetti (UML) Riassunto Aggregazione (part( of e contiene -- rombo) raggruppa oggetti per costruirne altri più complessi Ereditarietà (IsA( o KindOf -- triangolo) gestisce i diversi livelli di astrazione Associazioni (varie -- linea con semicerchio) relazioni tra oggetti legate al contesto del problema descritto programmazione ad oggetti 17 Perchè usare oggetti? Gestire la complessità Il compito del programmatore è nascondere la complessità. programmazione ad oggetti 18
10 La crisi del software(anni 90): Perché usare metodi Object-oriented I programmi applicativi sono sempre più complessi (per gli sviluppatori e utenti) Solo il 5% dello sviluppo software produce dei sistemi funzionanti abbandonati dopo la consegna (tarda o incompleta) mai completati (costi o tempi eccessivi) obsoleti quando consegnati I requisiti che cambiano impongono programmi che possono cambiare programmazione ad oggetti 19 L approccio standard: Programmazione Modulare (Tempo) Programmazione modulare (1950) Dividere gli algoritmi in parti governabili Usare subroutines per dividere il codice Programmazione strutturata (1960) Decomposizione funzionale top-down Difficoltà nel trovare la miglior decomposizione Strumenti di sviluppo - CASE (1985) Automazione parziale ma costrizioni Linguaggi DB di 4th Generazione (1990) Efficaci soprattutto per piccoli database programmazione ad oggetti 20
11 L approccio standard: Modularizzazione dei Dati (Spazio) Aspetto spesso trascurato per fretta Dati condivisi (locali o globali) difficoltà nel contenere un dato nel suo ambito dati globali sono comodi ma vanno contro i principi della programmazione modulare dati locali permettono information hiding Dati in files su disco va bene per grandi quantità di dati se condivisi l integrità è difficile da gestire programmazione ad oggetti 21 Perchè usare Oggetti? Nascondono la scelta Tempo-Spazio: un oggetto per le tasse potrebbe usare tabelle, calcoli o entrambi. Definiscono parti riusabili -- come i componenti standard per auto Si possono sostituire delle parti di un sistema con altre più efficienti Più adatti per lo sviluppo iterativo programmazione ad oggetti 22
12 Analisi e Progettazione Metodologia Identificare gli oggetti (come suddividere il problema in parti) Identificare le operazioni e le proprietà per ciascun oggetto Identificare le interazioni tra oggetti programmazione ad oggetti 23
Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione
Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3
ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016
ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI
Object-Oriented Programming
Object-Oriented Programming Una metodologia di programmazione che consente di modellare la realtà in modo più naturale e vicino all uomo Concetti fondamentali Oggetto Incapsulazione Messaggio Classe Ereditarietà
La programmazione ad oggetti: chiamate di metodi. Overloading. This
ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMA SVOLTO A.S. 2015/2016 Classe IV C Informatica Proff. Fabio Ciao / Simone Calugi Libro di testo: Cloud B P.
Linee di programmazione
Ministero dell Istruzione, dell Università e della Ricerca Ufficio Scolastico regionale per il Lazio Istituto Tecnico Industriale A. Pacinotti ISTITUTO TECNICO TECNOLOGICO - LICEO SCIENTIFICO DELLE SCIENZE
PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:
PIANO DI LAVORO Programmazione Didattica per Competenze Indirizzo Informatica e Telecomunicazioni Articolazione Informatica DOCENTE: ITP: MATERIA: CLASSE: ORE SETTINALI: CANTARELLA ALFREDO NATALE LUIGI
Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione
Obiettivi Unità A2 Progettazione concettuale Imparare ad astrarre i dati per definire entità. Saper distinguere tra astrazione per classificazione, per aggregazione e per generalizzazione. Saper distinguere
A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
Corso Programmazione Java Standard
Corso Programmazione Java Standard Codice: ITJS0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle varie sfaccettature della sintassi del linguaggio Java, integrata con mirate
Linguaggi di programmazione e astrazione
Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo
UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009
UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 [email protected] UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata
INGEGNERIA DEL SOFTWARE
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea magistrale in Ingegneria informatica Anno accademico 2016/2017-1 anno INGEGNERIA DEL SOFTWARE 9 CFU - 1 semestre Docente titolare
PROGRAMMAZIONE INFORMATICA SECONDO BIENNIO. Liceo Scientifico opzione Scienze Applicate
PROGRAMMAZIONE INFORMATICA SECONDO BIENNIO Liceo Scientifico opzione Scienze Applicate Anno scolastico 2017-2018 Programmazione di Informatica pag. 2 / 7 INFORMATICA - SECONDO BIENNIO OBIETTIVI SPECIFICI
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se
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
Programmazione I. Linguaggi di programmazione. Traduzione. Fabrizio Messina
Programmazione I di programmazione Traduzione Fabrizio Messina [email protected] www.dmi.unict.it/~messina di programmazione I linguaggi di programmazione sono classificati in tre livelli: linguaggi
ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC
Programma didattico Sviluppare Applicazioni Distribuite in ambiente Spring MVC Programma del corso 1.Progettazione e Sviluppo Database Relazionali Questa competenza permette di Progettare e Sviluppare
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per
Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:
Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004 1 Docente Patrizia Boccacci Ufficio 332 III piano Dipartimento di Informatica e Sc. Inf. Tel. 010-3536732 E-mail: [email protected]
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
Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++
Informatica 3 Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Lezione 7 -
Indice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione
Che cos e l Informatica Scienza dell elaborazione dell informazione Informatica generale non si riduce all utilizzo di strumenti (e.g. linguaggi di programmazione e basi di dati); si occupa del trattamento
Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo
Modulo 16 Introduzione ai Design Patterns Partiamo da un analogia Obiettivo: costruire una casa. Tutte le case sono simili, ma non uguali, cioè: Tutte le case assolvono alla medesima funzione: offrire
Principi della programmazione orientata agli oggetti. I principi della programmazione ad oggetti
Principi della programmazione orientata agli oggetti I principi della programmazione ad oggetti Roadmap Introduzione alle tecniche di programmazione Principi base del paradigma OO Astrazione Classi ed
Automazione Industriale 4- Ingegneria del Software
Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi ([email protected]) Ingegneria Meccatronica
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
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
Proff. Fabio Ciao e Raffaele Bortone
ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMAZIONE ANNUALE A.S. 2014/2015 Classe IV C Informatica Proff. Fabio Ciao e Raffaele Bortone Libro di testo: Cloud
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.
Architettura dei calcolatori e Software di sistema
Università degli Studi di Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica, Meccanica Lezioni di Informatica di Base per la Facoltà di Lettere e Filosofia Anno Accademico 2012/20103
ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI
ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di
Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011
ISTITUTO TECNICO COMMERCIALE N. DELL ANDRO - Santeramo in Colle (BA) Programma svolto di INFORMATICA Classe 3M - indirizzo MERCURIO A.S. 2010/2011 Proff. Rosalia Barbara Schiavarelli, Antonio Antonicelli
APPENDICE 4 AL CAPITOLATO TECNICO
APPENDICE 4 AL CAPITOLATO TECNICO Descrizione dei profili professionali INDICE 1 PROFILI PROFESSIONALI RICHIESTI 3 1.1 CAPO PROGETTO 3 1.2 ANALISTA FUNZIONALE 4 1.3 ANALISTA PROGRAMMATORE 5 1.4 PROGRAMMATORE
I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.
I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non
Object Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
Elena Baralis 2007 Politecnico di Torino 1
Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,
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
SISTEMI INFORMATIVI TERRITORIALI DATABASES -LEZIONE 3
SISTEMI INFORMATIVI TERRITORIALI DATABASES -LEZIONE 3 Patrizio Pelliccione [email protected] Dipartimento di Informatica Università degli Studi dell Aquila RINGRAZIAMENTI Queste slides
Capitolo 2. Dall idea al codice con UML 2 Esercizi introduttivi
Capitolo 2 Dall idea al codice con UML 2 Esercizi introduttivi Obiettivo Identificare le classi per risolvere il problema proposto 1. Valutazione di polinomi Un polinomio, identificato da una lettera minuscola
Ingegneria del Software (e Prova Finale) Luciano Baresi
Ingegneria del Software (e Prova Finale) Luciano Baresi [email protected] Organizzazione dei corsi Ingegneria del software (7 crediti) Lezioni: 42 ore Esercitazioni: 28 ore Prova finale (3 crediti)
Il linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani ([email protected])
Algoritmi e Linguaggi
Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e
Le aree dell informatica
Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
Le basi di dati. Lez. 2: Progettazione di un DB. Laboratorio di informatica gestionale
Le basi di dati Lez. 2: Progettazione di un DB Cos è un dato? Un dato (dal latino datum) è la descrizione elementare di una cosa, di un avvenimento. Un dato è utilizzabile se esiste una chiave di interpretazione.
(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B
Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3
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
Introduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
Basi di dati Modelli e linguaggi di interrogazione
Paolo Atzeni Stefano Ceri Stefano Paraboschi Riccardo Torlone Basi di dati Modelli e linguaggi di interrogazione web site McGraw-Hill IUAV - VENEZIA H 9882 BIBLIOTECA CENTRALE Paolo Atzeni Stefano Ceri
Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
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
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
Introduzione alle Basi di Dati
Introduzione alle Basi di Dati Angelo Chianese, Vincenzo Moscato, Antonio Picariello, Lucio Sansone Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 1 Appunti dalle lezioni SQL
Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010
ISTITUTO TECNICO COMMERCIALE N. DELL ANDRO - Santeramo in Colle (BA) Programma svolto di INFORMATICA Classe 3 - indirizzo MERCURIO A.S. 2009/2010 Proff. Rosalia Barbara Schiavarelli, Antonio Antonicelli
Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema
Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina
Esempio di Patto Formativo per la classe terza
Esempio di Patto Formativo per la classe terza COMPETENZE TRASVERSALI rispettare le consegne e la puntualità nell esecuzione dei compiti assegnati lavorare costruttivamente in gruppo e individualmente
