|
|
Obiect Oriented Programming (OOP) ovvero programmazione
orientata agli oggetti. Che senso può avere un tale titolo
nel mondo del software dove quello che si produce
non appartiene al mondo fisico ?
Per comprendere questo facciamo un passo indietro ed
in modo semplice cerchiamo |
di comprendere che cos'è un programma. Immaginiamo
di avere un archivio e di volere ricercare nel nostro elenco
clienti un nominativo e, quando trovato, poterlo evidenziare
ed ottenere altre informazioni quali il numero di telefono,
fax. Dovendo spiegare questo ad un computer dovremmo dire
:
crea un elenco dei clienti
visualizzalo
aspetta che l'utente prema un tasto
se il tasto premuto è 'scorri elenco', ricerca e mostra
altri clienti
se ha premuto su mostra cliente, visualizza i dati del cliente
Le cose si complicano ulteriormente se vogliamo presentare
tutto questo in modo graficamente bello ed accettabile ricorrendo
alla grafica. Si intende che costruire un programma come
una sequenza di istruzioni diventa un metodo non sempre
perseguibile con successo.
Ecco che si è pensato di costruire un programma non
come semplici istruzioni ma ricorrendo a piccoli programmi
già pronti perciò collaudati e specializzati
nel compiere specifiche funzioni; sono detti i componenti
o per meglio dire classi di cui si comporrà il programma
finale. L'idea non è nuova, un' analogia viene dal
mondo dell'elettronica dove ad esempio si è visto
che i circuiti stampati dove venivano inseriti transistor
e resistenza per realizzare una funzione elettronica (amplificare
un segnale, filtrare un rumore...) sono stati sostituiti
da circuiti integrati ovvero piccole barre di silicio in
cui trovano posto i tradizionali circuiti.
In questa logica svolgere il compito precedentemente descritto
diviene:
definire un oggetto lista
popolarlo con il risultato ricerca dati clienti
associare un evento scorri elenco ed un evento seleziona
voce lista sull'oggetto lista
L'oggetto lista è soltanto un programma che descrive
come visualizzare i dati, accetta dei metodi (ovvero altri
piccoli programmi ) per ricercare le informazioni, sente
che cosa fa l'utente ed ogni azione genera un evento in
corrispondenza del quale si possono associare altri piccoli
programmi. A questo dobbiamo aggiungere le caratteristiche
di visualizzazione : colori, tipi di carattere, allineamento
e quant' altro utile per la presentazione grafica. Tutto
questo è un oggetto in ambito software. Inoltre costruito
un oggetto, può essere utilizzato in più programmi
o come base per la costruzione di un nuovo oggetto, del tutto uguale
all'originale ma con l'aggiunta di nuove regole. In questo
caso si parla di ereditarietà degli oggetti ovvero
da un programma creato se ne generano altri con il vantaggio
che eventuali correzioni e modifiche fatte sul primo correggono
ed aggiungono funzionalità a tutti i successivi. Un
esempio : creo un oggetto che calcola la data a partire
da una data di riferimento ed un numero di giorni dati,
se serve calcolare più intervalli giorni creo un
oggetto che ripete l'operazione tante volte quante richieste
dall'utente e che per ogni intervallo usa l'oggetto prima
creato!
Comprenderete come un programma costruito su mattoncini facilmente
collaudabili perchè piccoli, riutizzabili in più
procedure sia un vantaggio tecnico che si traduce in maggiore
affidabilità del risultato finale, tempo di sviluppo
passibile di riduzione, facilità di controllo
del programma realizzato.
Ma allora tutto il software è realizzato in questo
modo ?
No, questa tecnologia non è ancora diffusa nella
maggioranza dei software prodotti; potremmo forse dire che
alcuni le si avvicinano per alcuni aspetti ma molto del
software rimane non di tipo Object Oriented. Sicuramente l'interesse
informatico va verso questa direzione e lo testimoniano
l'aumento di prodotti usciti sul mercato in questi anni
che adottano questa tecnologia. La difficoltà tecnologica
consiste nella corretta progettazione dei componenti, ovvero
nella definizione delle problematiche e dell'ingegnerizzazione
della soluzione software attraverso la corretta costruzione
degli oggetti che rispondono al problema. L'architettura del
software diviene più complessa: si passa da un modello
precedente che potremmo esemplificare in sequenziale ad
un modello logicamente rispondente alla logica di eventi
reali.
Artesoft da anni utilizza queste
tecnologie.
Queste sono alla base delle attività di consulenza
nella costruzione del software e nella realizzazione del
prodotto Dollaro nelle versioni
attuali (Object based) ed in quelle di prossimo rilascio
(object oriented).
La conoscenza nei linguaggi (Java) e l'uso di strumenti
di sviluppo produttivi quali Omnis7, Omnis Studio, Powerbuilder
ha permesso la realizzazione di applicativi con un elevato
grado di affidabilità, con possibilità di
evoluzione considerevoli e con un basso impatto in termini
di costi per i Clienti.
Elio
Zurletti - Artesoft
|