Un nuovo mondo ad oggetti


di Antonino Galante
(articolo pubblicato sulla rivista Bancamatica n.12, Dicembre 1995)

    In questi ultimi anni, nel mondo dell'informatica sta emergendo sempre più prepotentemente un nuovo modo di fare software che mette in discussione quello finora adottato.

    Ci riferiamo all'O.O. sigla che sta per Object Oriented e che indica le metodologie, le tecnologie e gli strumenti che realizzano questo nuovo modo di fare software.

    Le motivazioni del continuo affermarsi dell'O.O. non sono banali e alla fine si possono ricondurre ai problemi e ai costi cui si va incontro nella produzione e manutenzione del software.

    L'Object Oriented oggi è il frutto degli studi effettuati nei due decenni precedenti.

    Studi che, attraverso selezioni evolutive, hanno conquistato un numero sempre più grande di individui e aziende e che oggi concretamente si materializzano sul mercato con un numero crescente di prodotti O.O.

    Le aspettative riposte nell'Object Oriented sono, sinteticamente, la riduzione dei tempi di produzione del software, l'industrializzazione del suo ciclo produttivo, una maggiore qualità ed efficienza del software così prodotto, una sua maggiore scalabilità e facilità di manutenzione e di conseguenza la riduzione dei costi di gestione e innovazione dei sistemi informativi e, laddove è opportuno, la salvaguardia di quelli esistenti grazie alla proprietà di incapsulamento insita e presente nelle metodologie e tecnologie O.O..

    Il principale mito messo in crisi dall'O.O. è la metodologia cosiddetta "waterfall" - a cascata - secondo la quale le varie fasi di realizzazione di un progetto - analisi, sviluppo, test - vanno affrontate nella maniera più esaustiva possibile e tenendole disgiunte le une dalle altre; secondo l'O.O. il modello waterfall va sostituito dal modello prototipale che si basa sulla realizzazione di prototipi sempre più evoluti e nella realizzazione dei quali è previsto un forte coinvolgimento dell'utente finale allo scopo di verificare continuamente l'aderenza del progetto agli obiettivi da raggiungere, mettendosi al riparo da costosi e difficilmente rimediabili errori d'analisi.

    Le eperienze condotte con le metodologie e le tecnologie O.O. sono anch'esse sempre più numerose per cui non si può pensare di essere ancora in una fase esclusivamente sperimentale.

    La sperimentazione, se così vogliamo definirla, è piuttosto il continuo avvicinarsi a questi temi per conoscerli e il cominciare ad usare gli strumenti che ad essi si riconducono da parte di un crescente numero di aziende, comprese quelle bancarie.

    Si possono citare pertanto situazioni in cui l'O.O. è stata ormai tranquillamente adottata e altre in cui si è avviato il processo di avvicinamento attraverso la lettura delle riviste specializzate o dei testi canonici, la frequenza di seminari e corsi, la sperimentazione diretta di alcune metodologie d'analisi, la conoscenza degli strumenti disponibili sul mercato, la realizzazione di qualche prototipo.

    Nel mondo si trovano progetti O.O. avviati e conclusi sia nell'industria che nei servizi; in Italia, limitatamente al settore bancario, la Sicilcassa ha concluso da poco, e in poco tempo, un'esperienza molto interessante che ha visto la realizzazione di un prototipo di sportello O.O. che nel momento in cui sarà deciso il passaggio ad un nuovo tp di sportello concepito per i nuovi ambienti grafici (Windows, OS/2), potrà tranquillamente costituirne il punto di partenza.

    Nello scorso aprile, l'ing. Roberto Dadda, responsabile Ricerca e Tecnologie del Banco Ambrosiano Veneto, in una conferenza sull'O.O., tenutasi a Milano, ha descritto il progetto di tp di sportello basato su metodologie e tecnologie O.O. e denominato Bravo che la sua azienda è in procinto di realizzare.

    Sulla scia di quanto avviene in Germania presso l'azienda madre, anche in Italia la Deutsche Bank sta conducendo esperienze analoghe a quelle della Sicilcassa e dell'Ambrosiano Veneto.

    L'interesse crescente per l'O.O. ha portato anche alla nascita di un organismo internazionale no profits, l'Object Management Group (OMG), finanziato dai maggiori produttori di software a livello mondiale, che promuove lo sviluppo delle metodologie e tecnologie O.O. e la loro standardizzazione attraverso la definizione delle specifiche CORBA (Common Object Request Broker) verso cui la stessa Microsoft ha recentemente deciso di mostrare più attenzione.

    In Italia, a Bologna, all'inizio di quest'anno è nata anche l' Associazione Italiana Tecnologie Avanzate Basate su concetti Orientati ad Oggetti (TABOO), che ha lo scopo di promuovere e diffondere l'O.O. .

    La Harmon Associates nel 1994 ha condotto un'indagine dalla quale è stato desunto che le vendite mondiali dei produttori e distributori nordamericani di prodotti O.O. effettuate nel 1993 ammontavano a 680 milioni di dollari.

    L'articolo che segue vuol dare un'idea dell'attuale segmentazione del mercato dei prodotti/strumenti O.O. ed è stato redatto adottando la classificazione proposta dal prof. Roberto Zicari della LogOn Technology Transfer, società che rappresenta l'OMG in Europa; l'elenco dei prodotti che in esso compaiono non è esaustivo ma solo indicativo, vista la frequenza con cui nuovi prodotti arrivano sul mercato.

Mercato e tendenze per i prodotti di sviluppo software OO

    Il mercato per i prodotti di sviluppo Object Oriented (OO) è piuttosto complesso. Una classificazione dei prodotti di sviluppo OO disponibili sul mercato potrebbe essere la seguente:

  1. Linguaggi e ambienti di programmazione OO.
  2. Strumenti CASE basati su metodologia OO.
  3. Lower CASE OO.
  4. Databases OO.
  5. Librerie di classi e frameworks OO.
  6. Ambienti di sviluppo OO per applicazioni distribuite.

1) Linguaggi e ambienti di programmazione OO

    Questo è il segmento di mercato maggiormente rappresentativo di tutta l'Object Technology (309 milioni di dollari; Harmon Associates 1994).

    Attualmente vi è un crescente numero di produttori con offerta sia per PC che per Workstation; la suddivisione operata vede:

1.1) Linguaggi Puri: Smalltalk, Eiffel, Simula, ecc..
1.2) Linguaggi Ibridi: C++, Objective C, Modula, Object Cobol, Prolog, ecc..

    La tendenza da parte dei produttori è quella di dotare questi ambienti di risorse proprie o di terze parti che li rendano più che semplici ambienti di tipo 4GL.

    Essi tendono ad essere e vengono definiti sempre più frequentemente come Ambienti di Sviluppo Avanzati (ADE - advanced development environment).

2) Strumenti CASE: basati su metodologia OO

    Tali strumenti forniscono un ambiente di modellazione grafica basato su una metodologia OO.

    Le metodologie utilizzate da tali strumenti possono essere proprietarie e pertanto impiegate solo da un particolare produttore di tali strumenti o essere pubbliche e impiegabili da qualsiasi produttore.

    Questi strumenti si possono ulteriormente suddividere in:

2.1) Strumenti per l'analisi e la progettazione OO.

2.2) Strumenti CASE OO.

3) Lower CASE OO

    Questo rappresenta il secondo segmento di mercato dell'Object Technology (216 milioni di dollari; Harmon Associates 1994).

    Non tutti questi strumenti utilizzano un approccio basato su una vera e propria metodologia OO. La suddivisione che potremmo operare è la seguente:

3.1) Strumenti OO per la costruzione di GUI. Alcuni sempi:

3.2) Strumenti 4GL/ADE OO.

Questi strumenti, per la varietà di funzionalità da cui sono contraddistinti, possono essere ulteriormente suddivisi a seconda del grado di Object Technology che offrono:

3.2.1) Strumenti 4GL potenziati (basso grado di Object Technology). Alcuni esempi:

3.2.2) Strumenti moderatamente OO e di facile utilizzo (medio grado di Object Technology).
Alcuni esempi:
3.2.3) Strumenti veramente OO (altissimo grado di Object Technology).
Supportano C++ e/o Smalltalk. Alcuni esempi:
3.2.4) Strumenti che uniscono OOP e programmazione a regole.
Questi strumenti in molti casi si posizionavano precedentemente come sistemi esperti o ambienti di sviluppo basati sulla conoscenza. Alcuni esempi:

4) Databases OO

    Questi sistemi (73 milioni di dollari; Harmon Associates 1994) si possono suddividere in:

4.1) Sistemi che integrano gli ambienti OOP (principalmente C++ e Smalltalk).

Attualmente questa è la categoria dominante nel segmento di mercato degli ODBMS (67,5 milioni di dollari; Harmon Associates 1994). Alcuni esempi:

4.2) Sistemi che supportano gli ambienti OO con databases relazionali (detti anche Sistemi Ibridi).
Alcuni esempi:

5) Librerie di classi e frameworks OO

    Attualmente questo è il più piccolo segmento di mercato dell'Object Technology (14 milioni di dollari; Harmon Associates 1994).

    La maggior parte di questi prodotti è stata progettata per supportare i lavori più ripetitivi nella programmazione, assistere lo sviluppo d'interfacce e la registrazione e ricerca di oggetti nei databases relazionali. Alcuni esempi:

6) Ambienti di sviluppo OO per applicazioni distribuite

    Questo rappresenta un nuovo segmento di mercato dell'Object Technology.

    Questi prodotti si basano sul rispetto degli standard CORBA (Common Object Request Broker) prodotti dall' OMG (Object Management Group). Alcuni esempi: