I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria

Documenti analoghi
Introduzione alla OOP Object Oriented Programming

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

Esercitazione di Basi di Dati

Corso Programmazione Java Standard

UML I diagrammi implementativi

Programmazione è gestione di eventi

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

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

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

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

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Programmazione con Java

Linee di programmazione

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

Progettazione di basi di dati

Studio del linguaggio TROPOS per la modellazione dei requisiti orientata agli agenti

Automazione Industriale 4- Ingegneria del Software

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

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

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

Linguaggi di programmazione e astrazione

Ingegneria del Software

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

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

Architettura dei calcolatori e Software di sistema

(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

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO - Ristrutturazione dello schema concettuale

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

Rappresentazione generale del problema e fasi di progettazione

APPENDICE 4 AL CAPITOLATO TECNICO

La programmazione a oggetti e il C++ (introduzione)

Il linguaggio di programmazione Python

Ingegneria del Software (e Prova Finale) Luciano Baresi

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

ARCHITETTURA DI UN DBMS

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

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

Object Oriented Programming

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

Programmazione ad oggetti

Indice. Prefazione. 3 Oggetti e Java 53

Diagrammi di classe e sistemi orientati agli oggetti

Algoritmi e Linguaggi

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

Ingegneria del Software L-A

REGIONE BASILICATA UFFICIO S. I. R. S.

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

Analisi e progettazione ad oggetti

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Le aree dell informatica

Metodologie e modelli di progetto

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

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

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

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo

Basi di dati Modelli e linguaggi di interrogazione

Elena Baralis 2007 Politecnico di Torino 1

Macchina Astratta: struttura e realizzazione.

Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati

OOP: Object Oriented Programming

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

Programmi e Oggetti Software

Un nuovo approccio metodologico con FHIR

Le aree dell informatica

IIS Via Silvestri ITIS Volta Programma svolto di Tecnologie Informatiche A.S. 2015/16 Classe 1 A

Introduzione alla Programmazione ad. Oggetti (OOP)

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

Sistemi di Elaborazione delle Informazioni 6 CFU. Il software di sistema

Algoritmi e soluzione di problemi

Ingegneria del Software

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Analisi e specifica dei requisiti

Introduzione alla programmazione Object Oriented. Luca Lista

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Il calcolatore. Architettura di un calcolatore (Hardware)

Il modello Entità/Relazioni (ER)

Programmazione ad oggetti

Corso di Programmazione ad Oggetti

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

MASTER AUTODESK REVIT ARCHITECTURE

progettare buone gerarchie

Basi di dati D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Progettazione di Database

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

Informatica Generale Andrea Corradini I linguaggi di programmazione

MODELLO e RAPPRESENTAZIONE

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

Esercizi design patterns. Angelo Di Iorio,

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

Laboratorio di Informatica

I database. Introduzione alla teoria delle basi di dati

Corso Analista Programmatore Microsoft Corso Online Analista Programmatore Microsoft

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Progettazione del Sofware

Transcript:

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 La programmazione procedurale separa il calcolo dalla memoria Memoria memoria Calcolo (CPU) indirizzo CPU Calcolo programmazione ad oggetti 3 programmazione ad oggetti 4

L alternativa fondamentale L alternativa Spazio-Tempo Spazio per Ricordare Tempo per Calcolare Spazio Tempo π = 3.14159 π = C / 2R Tavole degli Integrali Integrazione per parti 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 Tabelle per le tasse Formule per aliquote programmazione ad oggetti 5 programmazione ad oggetti 6 Gli Oggetti Incorporano Spazio e Tempo Gli oggetti aiutano a modellare il mondo reale Oggetto Attributi Metodi (Funzioni o Procedure) Gli Oggetti rivoluzionano l architettura di von Neumann! 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 7 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. Object Oriented Modeling Gli Oggetti hanno Stato, Comportamento ed Identità 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 9 programmazione ad oggetti 10 Le Astrazioni Formano una Gerarchia Classe: modello astratto da cui creare oggetti Oggetto di base IS A Ereditarietà Oggetto specifico Una classe è la definizione di un insieme di oggetti che condividono una struttura ed un comportamento comuni programmazione ad oggetti 11 programmazione ad oggetti 12

Classi, oggetti e relazioni Gli oggetti sono istanze delle classi e sono in relazione tra di loro 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 13 programmazione ad oggetti 14 Diagrammi ad oggetti (UML) Diagrammi ad oggetti (UML) Tavolo Aggregazione Parte di (PartOf) Stanza Capienza Pavimento 0.. 180 Piano Occupanti Area \ Numero Massimo di Persone programmazione ad oggetti 15 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 Perchè usare oggetti? Gestire la complessità Il compito del programmatore è nascondere la complessità. programmazione ad oggetti 17 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 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 19 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 globali sono comodi ma vanno contro i principi della programmazione modulare locali permettono information hiding Dati in files su disco va bene per grandi quantità di se condivisi l integrità è difficile da gestire 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 21 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