Metodologie di Programmazione tecniche per la programmazione orientata

  • Slides: 9
Download presentation
Metodologie di Programmazione § tecniche per la programmazione orientata ad oggetti § esemplificate utilizzando

Metodologie di Programmazione § tecniche per la programmazione orientata ad oggetti § esemplificate utilizzando il linguaggio Java § testo di riferimento (fino al Cap. 10): l Barbara Liskov, Program Development in Java, Abstraction, Specification and Object-Oriented Design, Addison-Wesley 2001 1

Prerequisiti del Corso § LIP (I MODULO) § Fondamenti di Programmazione § Frequenza in

Prerequisiti del Corso § LIP (I MODULO) § Fondamenti di Programmazione § Frequenza in parallelo del II MODULO DI LIP § Le lezioni teoriche avranno argomenti comuni tra i due corsi 2

Contenuti del corso 1 (in corsivo le parti non trattate nel testo) § Ereditarieta’

Contenuti del corso 1 (in corsivo le parti non trattate nel testo) § Ereditarieta’ in Java § cenni di semantica operazionale di Java l l classi, oggetti, metodi, gerarchie estensione di quella fatta nel corso di FP 3

Contenuti del corso 2 § Parte metodologica § Vedremo come utilizzare i meccanismi di

Contenuti del corso 2 § Parte metodologica § Vedremo come utilizzare i meccanismi di astrazione di un linguaggio ad alto livello (Java) per sviluppare programmi di buona qualita’: che siano facili da capire e allo stesso tempo facili da mantenere e da modificare § Non è compito di questo corso introdurre il linguaggio nella sua interezza l nè tanto meno le sue librerie 4

Contenuti del corso 2 § per sviluppare programmi di notevole dimensione e’ necessario decomporre

Contenuti del corso 2 § per sviluppare programmi di notevole dimensione e’ necessario decomporre il problema in sottoproblemi § questo processo di decomposizione deve essere guidato da passi di astrazione § e’ necessario cambiare il livello di dettaglio (astrarre) in modo da buttare via dettagli non importanti, rendere uguali cose diverse etc. 5

Contenuti del corso 3 § vedremo un insieme di tecniche basate su vari tipi

Contenuti del corso 3 § vedremo un insieme di tecniche basate su vari tipi di astrazione l alcune supportate da Java in modo più o meno diretto l la più importante non è supportata da Java • l’astrazione attraverso la specifica • si realizza aggiungendo al codice Java – specifiche informali (descrivono cosa deve fare un programma) 6

Astrazione tramite Specifica § Vedremo la separazione fondamentale tra specifica ed implementazione (ovvero tra

Astrazione tramite Specifica § Vedremo la separazione fondamentale tra specifica ed implementazione (ovvero tra cosa un programma fa e come lo fa) § Vedremo come la specifica deve essere utilizzata per mascherare l’implementazione (ovvero per astrarre dalle varie implementazioni) § Relazione tra specifica ed implementazione, dimostrazioni di “correttezza” l relazioni formali fra 2 specifiche, fra 1 specifica ed una implementazione, etc. § Le dimostrazioni sono tanto importanti quanto le implementazioni 7

Contenuti del corso 3 § meccanismi di astrazione di Java (che consideremo) l astrazioni

Contenuti del corso 3 § meccanismi di astrazione di Java (che consideremo) l astrazioni procedurali l astrazioni sui dati l iterazione astratta l gerarchie di tipi l polimorfismo § ogni meccanismo di astrazione di Java ha associata una particolare sequenza di operazioni di: specifica, implementazione e dimostrazione 8

Materiale didattico, esame, istruzioni per l’uso del corso § in aggiunta al (non in

Materiale didattico, esame, istruzioni per l’uso del corso § in aggiunta al (non in sostituzione del) libro di testo, i lucidi utilizzati nelle lezioni e nelle esercitazioni (in formato html e di presentazione powerpoint scaricabile) sono disponibili sulla pagina web http: //www. di. unipi. it/~levifran/MP 06. html § esame = prova scritta + orale l l l’esame orale deve essere sostenuto nella stessa sessione dello scritto 2 prove intermedie che possono rimpiazzare la prova scritta (in tal caso l’orale deve essere sostenuto entro luglio 2004) 9