wpe1.jpg (13707 byte)

 

Programmazione code-oriented

Introduzione

È necessario un ciclo di operazioni da iterare più volte:

 

L’algoritmo è nel programma (dati + algoritmi, N. Wirth).

Il codice:

 


 

Programmazione object-oriented

Introduzione

Gli obiettivi della OOP (Object Oriented Programming) sono:

riusare il codice senza neppure avere a disposizione il sorgente (si riducono i costi di produzione e manutenzione);

diminuire i tempi di sviluppo, si aggiungono nuove funzionalità al codice già realizzato;

diminuire il numero di errori, il codice che si riusa è corretto.

 

L’algoritmo è nell’oggetto, analogia con la cellula biologica: la cellula nasconde la propria complessità interna e dialoga con il mondo esterno attraverso messaggi.

La metodologia è la seguente:

incapsulamento in unità (oggetti) di funzioni (metodi) e dati in classi;

classificazione degli oggetti sulla base di criteri di ereditarietà;

creazione dinamica degli oggetti;

comunicazione tra oggetti tramite messaggi.

L a programmazione può essere:

Pro:

Contro:

 


 

La Programmazione Event-Driven

I programmi scritti per MS-DOS, nella programmazione tradizionale, sono strutturati in modo da prendere il controllo completo del sistema. L’esecuzione inizia con la prima riga del codice eseguibile e segue un percorso definito all’interno del programma.

Ad esempio, nel caso di un dato da acquisire in input, utilizzando la scanf() aspetta che l’utente termini la fase di input prima di passare a gestire altre incombenze.

In un’applicazione Windows, al contrario, non è solo la tastiera che può fornire un input, ma anche il mouse, le barre di scorrimento, i pulsanti di controllo ed anche la porta seriale può inviare messaggi. Inoltre la finestra in cui è contenuta l’applicazione può essere spostata, ridimensionata, ridotta ad icona. Il kernel trasforma l’evento in input in un messaggio in coda ai messaggi di quell'applicazione invitandola, quindi, a prendere le relative decisioni.

 

Tutta la comunicazione è basata sullo scambio di messaggi tra gli oggetti che fanno parte dell’applicazione. Windows informa tutte le applicazioni attive, mentre i programmi MS-DOS devono loro stessi interrogare il sistema operativo per conoscere lo stato della tastiera, del mouse o della porta seriale.

Microsoft ha progettato Windows in modo che mandasse semplicemente un integer (word, quindi 65536 messaggi) ad un’applicazione quando si verifica un evento.

Nella programmazione orientata agli eventi questo si traduce in uno switch in cui si elencano le operazioni da svolgere per ognuno dei messaggi che possono giungere dall’utente o dal sistema operativo. L’ordine di esecuzione del codice dipende pertanto dall’evento che si è verificato, che a sua volta dipende dall’azione dell’utente.

Per esempio, quando il mouse è messo su una voce di menu ed è premuto il pulsante sinistro, il sistema genererà un messaggio indicando che vi è stata un’azione del mouse. Il kernel convertirà automaticamente questo messaggio nel corrispondente messaggio relativo alla voce di menu.

L’applicazione che opera nel sistema operativo Windows possiede due anime:

 

Le risorse di un’applicazione sono la parte estetica.

Possono essere create, testate e modificate, senza influenzare la parte funzionale, da un artista completamente all’oscuro di programmazione, ma con un maggior gusto estetico di un abilissimo programmatore.

Per ottenere queste risorse occorre descriverle in un file (.RES), che dovrà poi essere compilato e legato al resto del codice. Queste due operazioni sono svolte dal compilatore di risorse (Resource Compiler), ma la scrittura di questo file è un’operazione molto noiosa, per cui sono stati creati degli strumenti per generarle in modo grafico e interattivo (Imagedit), perché la creazione, l’integrazione e la gestione di un solo file, piuttosto che di numerosi .BMP, .DLG, .CUR, .MNU, .ICO risulta essere una semplificazione, sia relativamente alla gestione del codice che per quanto riguarda l’apporto di eventuali modifiche alle risorse stesse.

Le due componenti: funzionalità ed estetica, sono legate tra loro da messaggi e sono in ogni caso unite in un .EXE unico dal compilatore di risorse RC.EXE.

 

 


 

 

Programmazione visual

Introduzione

Immediatamente dipendente dalla programmazione basata sugli oggetti è la programmazione visual, in pratica permette di maneggiare gli oggetti che costituiscono l’applicazione come fossero oggetti grafici in un‘applicazione per il disegno.

Le prime esperienze sono state eseguite nel 1985 con Prototyper, era in grado di:

Il salto di qualità avviene con l’utilizzo delle GUI (Graphic User Interface).

Il primo ambiente è stato Hypercard (Macintosh), seguito da ToolBook (Asymmetrix).

L’approccio visual è assolutamente necessario, il codice deve essere associato agli oggetti, l’interfaccia è di fondamentale importanza per il successo dell’applicazione, il linguaggio è efficiente.

Il nuovo modello di programmazione è costituito dalle seguenti parti.

 

 

Gli ambienti visual sono:

Le applicazioni che sono create con Visual BASIC sono orientate agli eventi, quando nell'applicazione si verifica un evento, Visual BASIC, riconosce automaticamente l'evento ed esegue il codice scritto per tale evento.

Questo codice è definito routine di eventi, il nome è composto dal nome dell'oggetto e dal nome dell'evento.

La sintassi generica è la seguente:

 

Private Sub NomeOggetto_Evento ()

NomeOggetto.Proprietà = valore

End Sub

 

Per recuperare il valore di una proprietà, la sintassi è la seguente:

 

variabile = NomeOggetto.Proprietà

 

In linea di massima, in una generica routine, sono coinvolti due oggetti, quello sul quale si genera l’evento e quello che subisce l’evento. Ogni oggetto ha decine di proprietà e può subire decine di eventi: compito del programmatore è quello di gestire solo le proprietà e gli eventi di suo interesse.