A.Natali DL Maggio1999 Oggetti Concetti fondamentali.

Slides:



Advertisements
Presentazioni simili
Il paradigma Object Oriented
Advertisements

I Linguaggi di programmazione
Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo.
Analisi e progettazione
Scomposizione funzionale
Procedure e funzioni A. Ferrari.
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
Linguaggi di programmazione
Metodologie di Programmazione = decomposizione basata su astrazioni
1 Astrazioni sui dati : Ragionare sui Tipi di Dato Astratti.
Principi di Programmazione Object-Oriented
Principi di Programmazione Object-Oriented
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
DIAGRAMMI DI FLUSSO DEI DATI
Metodologie per la gestione di conoscenza ontologica Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
IL PATRIMONIO DI DATI - LE BASI DI DATI. Il patrimonio dei dati Il valore del patrimonio di dati: –Capacità di rispondere alle esigenze informative di.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
La Riflessione computazione Elisa Ferrando. Cos è la Riflessione La Riflessione Sistema riflessivo Sistema computazionale.
Unità Didattica 1 Algoritmi
Unità Didattica 2 I Linguaggi di Programmazione
Ciclo di vita del software
Fondamenti di Informatica Algoritmi
Modello E-R Generalizzazioni
Progettazione di una base di dati
Strategia bottom-up Nella strategia bottom-up le specifiche iniziali sono suddivise in componenti via via sempre più piccole, fino a descrivere frammenti.
Modello E-R Generalizzazioni
Java concetti A.Natali Marzo Java Dai concetti ai costrutti.
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.
PROGETTO DI SISTEMI Progettare un sistema software è cosa ben diversa dal progettare un algoritmo CRISI DEL SOFTWARE: i costi di gestione diventano preponderanti.
LINGUAGGI DI PROGRAMMAZIONE
AN FI Un denominatoe comune Linguaggi di programmazione Un denominatore comune.
Elementi di Informatica
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
La progettazione di un sistema informatico
Cosa sono i sistemi distribuiti Prof. Andrea Omicini Corso di Sistemi Distribuiti A.A. 2001/2002 Parte I.
L’ingegneria del software
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Lezione 6 Strutture di controllo Il condizionale
Corso di Laurea Specialistica in Ingegneria Informatica Model Drive Applicazione per il pilotaggio di veicoli Esame di Linguaggi e Modelli computazionali.
Sistemi e Tecnologie Informatiche Requisiti per la realizzazione di un buon programma.
Linguaggi per COMUNICARE
Programma di Informatica Classi Prime
Scenari e Casi d’Uso (UML)
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si.
Lezione 1 Panoramica sui paradigmi di programmazione
1 PRIMA SCIENZA PONTEDERA 4 DICEMBRE 2014 PROGETTAZIONE E DOCUMENTAZIONE DEL PERCORSO Cristina Duranti.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
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.
Progettazione di basi di dati: metodologie e modelli
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 – Progettazione del software Ernesto Damiani Università degli Studi.
Ingegneria del software Modulo 2 -Il software come prodotto Unità didattica 2 - I costi del software Ernesto Damiani Università degli Studi di Milano Lezione.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
1. 2 Introduzione alla programmazione ad oggetti Gli strumenti di programmazione finora mostrati sono solo una piccola parte della strumentazione necessaria.
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.
Introduzione alle basi di dati e ai sistemi di gestione di basi di dati.
Transcript della presentazione:

A.Natali DL Maggio1999 Oggetti Concetti fondamentali

A.Natali DL Maggio1999 Cosa e un oggetto? u Un oggetto viene inteso come un centro di servizi capace di offrire agli altri oggetti (clienti) un insieme di attivita' (operazioni) senza che sia nota/accessibile l'organizzazione interna

A.Natali DL Maggio1999 Elaborazione e Interazione u Peter 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

A.Natali DL Maggio1999 Lidea di oggetto …. u integra la parte dati e la parte elaborazione u promuove approcci di progettazione e sviluppo sia top-down sia bottom-up u cattura i principi fondamentali di una corretta strutturazione del software u introduce un information space molto ricco e orientato alla gestione della complessita

A.Natali DL Maggio1999 Information space (object-ortiented)

A.Natali DL Maggio1999 Le proprieta di un oggetto 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

A.Natali DL Maggio1999 Il concetto di classe 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

A.Natali DL Maggio1999 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

A.Natali DL Maggio1999 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.

A.Natali DL Maggio1999 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'

A.Natali DL Maggio1999 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

A.Natali DL Maggio1999 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

A.Natali DL Maggio1999 Relazioni tra oggetti u Sono il punto-chiave della progettazione in grande u Sono oggi codificate in pattern

A.Natali DL Maggio1999 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.

A.Natali DL Maggio1999 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.

A.Natali DL Maggio1999 Sviluppo object oriented u Puo avvenire anche senza disporre a livello implementativo di un linguaggio ad oggetti? u SI: un buon punto di partenza e costituito da una riflessione sul concetto di tipo (astrazione) di dato e sul concetto di classe

A.Natali DL Maggio1999 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, incluse le modalita di costruzione degli oggetti

A.Natali DL Maggio1999 Quali criteri di suddivisione? u La ripartizione del codice sorgente in moduli e bene avvenga tenendo conto di alcuni principi fondamentali (propri della oop)

A.Natali DL Maggio1999 Invarianti u Un invariante e' una relazione logica (tra le parti che compongono un sistema) che e' sempre vera agli occhi di un osservatore esterno.

A.Natali DL Maggio1999 Invariante di classe u una relazione sullo stato interno vera prima e dopo ogni operazione di un oggetto