Introduzione alla OOP Object Oriented Programming

Похожие документы
Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

Object-Oriented Programming

La programmazione ad oggetti: chiamate di metodi. Overloading. This

Linee di programmazione

PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

Corso Programmazione Java Standard

Linguaggi di programmazione e astrazione

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

INGEGNERIA DEL SOFTWARE

PROGRAMMAZIONE INFORMATICA SECONDO BIENNIO. Liceo Scientifico opzione Scienze Applicate

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

UML I diagrammi implementativi

Programmazione I. Linguaggi di programmazione. Traduzione. Fabrizio Messina

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++

Indice. Prefazione. 3 Oggetti e Java 53

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo

Principi della programmazione orientata agli oggetti. I principi della programmazione ad oggetti

Automazione Industriale 4- Ingegneria del Software

Ingegneria del Software

Programmazione con Java

Proff. Fabio Ciao e Raffaele Bortone

Programmazione ad oggetti

Architettura dei calcolatori e Software di sistema

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

APPENDICE 4 AL CAPITOLATO TECNICO

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Object Oriented Programming

Elena Baralis 2007 Politecnico di Torino 1

Progettazione di basi di dati

SISTEMI INFORMATIVI TERRITORIALI DATABASES -LEZIONE 3

Capitolo 2. Dall idea al codice con UML 2 Esercizi introduttivi

Ingegneria del Software (e Prova Finale) Luciano Baresi

Il linguaggio di programmazione Python

Algoritmi e Linguaggi

Le aree dell informatica

Le basi di dati. Lez. 2: Progettazione di un DB. Laboratorio di informatica gestionale

(1) (2) (3) (4) 11 nessuno/a (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

Analisi e progettazione ad oggetti

Introduzione alla programmazione strutturata

Basi di dati Modelli e linguaggi di interrogazione

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Ingegneria del Software L-A

ARCHITETTURA DI UN DBMS

Introduzione alle Basi di Dati

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Esempio di Patto Formativo per la classe terza

Транскрипт:

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

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

L alternativa fondamentale Spazio per Ricordare Tempo per Calcolare A B C F (A,B,C) 1 1 1 12 2 2 2 24 0 1 0 4 F (A,B,C) = 3A+4B+5C programmazione ad oggetti 5 L alternativa Spazio-Tempo Spazio π = 3.14159 Tavole degli Integrali Tabelle per le tasse Tempo π = C / 2R Integrazione per parti Formule per aliquote programmazione ad oggetti 6

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

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

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

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

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 0.. 180 Parete Parete Occupanti Parete Parete Numero Massimo di Persone programmazione ad oggetti 16

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

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

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

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