Java concetti A.Natali Marzo 19991 Java Dai concetti ai costrutti.

Slides:



Advertisements
Presentazioni simili
Il paradigma Object Oriented
Advertisements

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo.
Meccanismi di IPC Problemi classici di IPC
Prof. Rebecca Montanari Anno accademico 2011/2012
Scomposizione funzionale
Unified Modeling Language
Tipi di dato astratti Lista, Pila, Coda, Albero.
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
Definizione e tipi di implementazione
Programmazione object oriented in C++
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
Metodologie di Programmazione = decomposizione basata su astrazioni
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Generalità Linguaggio e Macchina Astratta
1 Metodologie di Programmazione. 2 Contenuto generale §tecniche per la programmazione orientata ad oggetti (in piccolo) §esemplificate utilizzando il.
Principi di Programmazione Object-Oriented
Principi di Programmazione Object-Oriented
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
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.
Unità Didattica 2 I Linguaggi di Programmazione
nome: sequenza di caratteri usata per denotare un oggetto
Type int_stack = struct { int top; int P[100]; } int_stack creapila() { int_stack s = new int_stack; s.top = 0; return s; } int_stack push(int_stack s,
Type int_stack = struct { int top; int P[100]; } int_stack creapila() { int_stack s = new int_stack; s.top = 0; return s; } int_stack push(int_stack s,
memoria gestita staticamente:
Primi Elementi di Programmazione in C++
Fondamenti di Informatica Algoritmi
Progettazione di una base di dati
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
Componenti A.Natali Marzo Oggetti u Un oggetto possiede stato, funzionamento e identita'. u Struttura e funzionamento di oggetti simili sono.
AN FI Un denominatoe comune Comandi u notazioni che esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno.
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
PROGETTO DI SISTEMI Progettare un sistema software è cosa ben diversa dal progettare un algoritmo CRISI DEL SOFTWARE: i costi di gestione diventano preponderanti.
AN FI Un denominatoe comune Linguaggi di programmazione Un denominatore comune.
AN FI Un denominatoe comune Lo stile funzionale Concetti fondamentali.
Introduzione alla modellazione di sistemi interattivi
Elementi di Informatica
Elementi di Informatica
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
Introduzione a C#.
L’ingegneria del software
Introduzione alla programmazione Object Oriented
Sistemi e Tecnologie Informatiche Requisiti per la realizzazione di un buon programma.
ANALYSIS & DESIGN I DESIGN PATTERNS GoF 1. I Design Patterns GoF …un momento importante durante il corso del design!
P. atzeni et al., from PROGETTO PRISMA – AREA VASTA EMILIA NORD.
P. atzeni et al., from PROGETTO PRISMA – AREA VASTA EMILIA NORD.
Programma di Informatica Classi Prime
Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si.
1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Programmazione ad oggetti
Lezione 1 Panoramica sui paradigmi di programmazione
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Robotica Lezione 4. 2 Attributi dell’Intelligenza Pensiero Capacita’ a risolvere problemi Apprendimento e Memoria Linguaggio Intuizione e Creativita’
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
Ripasso su Java. Introduzione Per risolvere problemi complessi, i linguaggi di programmazione forniscono costrutti per realizzare nuove funzioni che trasformino.
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
Realizzazione software
Progettazione di basi di dati: metodologie e modelli
UML Unified Modelling Language Linguaggio per la modellazione unificato.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Java concetti A.Natali Marzo Java Dai concetti ai costrutti

Java concetti A.Natali Marzo Information space (object-ortiented)

Java concetti A.Natali Marzo Progettazione u Top down (per analisi) –dal problema al sistema che lo risolve u Bottom up (per sintesi) –dai componenti disponibili alla soluzione del problema

Java concetti A.Natali Marzo I componenti di base u Variabili –contenitori di informazione (e non sinonimi di dati) u Funzioni –enti dotati di interfacce che possono essere composti u Oggetti –elementi di sintesi

Java concetti A.Natali Marzo Non basta risolvere... int conto conto = conto + 10; //deposito … conto = conto - 50;//prelievo conto = debit (deposit (conto, 10), 20);

Java concetti A.Natali Marzo … occorre anche dare struttura c1 Conto corrente cliente servitore c1.deposit( 10 ); //deposito c1.debit( 50 );//prelievo

Java concetti A.Natali Marzo Elementi strutturali: evoluzione u Blocchi –protezione (scope) u Moduli –incapsulamento, protezione –singole istanze di oggetti u Oggetti Classi

Java concetti A.Natali Marzo Oggetti u Un oggetto viene inteso come un centro di servizi capace di offrire agli altri oggetti (clienti) un insieme di attivita' (operazioni u i clienti non devono conoscere dettagli irrilevanti, come ad esempio l'organizzazione interna del centro di servizio stesso

Java concetti A.Natali Marzo Oggetti u Wegner: –gli oggetti sono la classe piu' usata di interaction machines –la tecnologia object based e' divenuta dominante perche' e' interattiva e quindi piu' espressiva di una specifica algoritmica

Java concetti A.Natali Marzo Oggetti vs. algoritmi u Gli algoritmi hanno un funzionamento osservabile che non dipende dal tempo u Gli oggetti posseggono sia proprieta' trasformazionali sia proprieta' temporali. u Il funzionamento osservabile di un oggetto e' descritto da interaction histories che specificano i messaggi ricevuti e trasmessi

Java concetti A.Natali Marzo Oggetti vs. algoritmi u Un algoritmo calcola eseguendo una sequenza finita di azioni interne. u Un algoritmo e' un sistema off- line che specifica il flusso completo di una computazione prima che essa inizi u Un oggetto calcola attraverso un pattern di interazioni (interaction history) iniziate dall'esterno, al di fuori del controllo dell'oggetto. u Un oggetto e' un sistema on-line.

Java concetti A.Natali Marzo Oggetti vs. algoritmi u Un algoritmo e' un sistema chiuso non soggetto a interazioni con l'esterno durante il suo funzionamento u Problemi di natura algoritmica possono essere definiti da specifiche formali, sono implementati da programmi la cui correttezza puo' essere dimostrata in linea di principio e hanno una precisa nozione di complessita' u Un oggetto e' un sistema aperto u Problemi interattivi come il problema della prenotazione dei posti aerei non hanno specifiche complete, ne' una definizione precisa di correttezza o di complessita'

Java concetti A.Natali Marzo Oggetti vs. algoritmi u Un algoritmo determina la trasformazione da un ingresso prespecificato (precondizioni) in una uscita (postcondizioni). u Il funzionamento di algoritmi puo' essere specificato da un "contratto" simile a un contratto di vendita. u I clienti forniscono un valore che soddisfa le precondizioni e si garantisce un risultato che soddisfa le postcondizioni. u Gli oggetti richiedono la specifica di un contratto che si prolunga nel tempo, come un contratto di matrimonio

Java concetti A.Natali Marzo Oggetti vs. algoritmi u Gli algoritmi hanno come requisito primario la correttezza e come requisito secondario l'efficienza u Gli algoritmi sono progettati mediante un raffinamento top- down delle specifiche u I sistemi software hanno come requisito primario il costo del ciclo di vita u Il progetto di un sistema ad oggetti parte da una descrizione bottom-up dell'ambiente di interazione

Java concetti A.Natali Marzo Linguaggi ad oggetti u I linguaggi object oriented devono supportare incapsulamento ed ereditarieta', mentre quelli che supportano solo incapsulamento (come Ada, Modula2) sono da considerarsi object-based.

Java concetti A.Natali Marzo Dimensioni dellinformation space u Oggetti u Classi u Tipi u Astrazione / Incapsulamento u Delegazione/ Ereditarieta'

Java concetti A.Natali Marzo Oggetti u Un oggetto possiede stato, funzionamento e identita'. u Struttura e funzionamento di oggetti simili sono definiti nella loro classe comune (di cui sono istanze). –I termini istance ed object sono intercambiabili

Java concetti A.Natali Marzo Classi u Una classe descrive la struttura interna e il funzionamento di un oggetto. u Gli oggetti di una stessa classe hanno la stessa rappresentazione interna, le stesse operazioni e lo stesso funzionamento name Attributes Operations

Java concetti A.Natali Marzo Classi, moduli, ADT, tipi u Il costrutto class integra aspetti tipici dei costrutti per esprimere modularita' e dei costrutti per definire ADT u Il concetto di classe non coincide con il concetto di tipo –La classe puo' essere intesa come la specifica implementazione di un tipo

Java concetti A.Natali Marzo Tipi u Sono meccanismi per la classificazione delle operazioni. u Nel caso di un type system statico, la determinazione del tipo deve essere fatta a tempo di compilazione e il run time system puo' non avere alcuna informazione sul tipo.

Java concetti A.Natali Marzo Tipi u L'esistenza di informazione sui tipi a tempo di esecuzione (type system dinamico) puo' rendere superflua la presenza delle classi. –Poiche' un tipo puo' essere visto come una descrizione astratta del funzionamento di un oggetto, la nozione di sottoclasse puo' essere sostituita da quella di sottotipo.

Java concetti A.Natali Marzo Astrazione u si focalizza sul funzionamento osservabile di un oggetto e "helps people to think about what they are doing –Qualunque sia l'implementazione scelta per una classe di oggetti, essa e' inessenziale agli occhi del cliente, una volta che assicuri il rispetto del contratto tra il cliente e un oggetto di quella classe stabilito dall'interfaccia.

Java concetti A.Natali Marzo Incapsulamento u si focalizza sull'implementazione e "allows program changes to be reliably made with limited effort". u Astrazione e incapsulamento sono concetti complementari.

Java concetti A.Natali Marzo Interfaccia e implementazione u L'interfaccia di un oggetto esprime una vista astratta degli oggetti nascondendone l'organizzazione interna e i dettagli del funzionamento. u L'implementazione di un oggetto esprime la rappresentazione dello stato interno e il codice delle operazioni

Java concetti A.Natali Marzo Delegazione u Una relazione tra oggetti

Java concetti A.Natali Marzo Ereditarieta u una relazione tra classi in cui una classe condivide la struttura e/o il funzionamento definito in un'altra classe (ereditarieta' singola) o in varie altre classi (ereditarieta' multipla) –L'idea di ereditarieta' scaturisce dall'esigenza di introdurre un meccanismo per condividere (parti di) una descrizione, cioe' per riusare codice gia' scritto e provato.

Java concetti A.Natali Marzo Idiomi, framework u Classi astratte ( tipi astratti e tipi concreti ) Envelope letter ( un cliente manipola un oggetto (letter, body) attraverso speciali contenitori (envelopes, handlers) che contengono un puntatore all'oggetto ) u Delegazione implicita ( demandare l'accesso a un oggetto a un altro oggetto - smart pointers C++ ) u Callback u MVC