di Gianfranco Casaglia

Negli anni ’70, come mi scrisse Antonio Bigazzi in una mail, lo sviluppo del software in Olivetti era basato sull’uso di strumenti cross residenti sul mainframe IBM S/370 del Centro di Calcolo aziendale, a cui si inviavano pile di schede perforate, per un elaborazione batch da cui si otteneva un formato ‘linkable’ o binario. Le schede erano portate al centro di calcolo da un fattorino, che poi ritirava le stampe e le distribuiva ai vari uffici. Il test veniva eseguito caricando il codice binario sulla macchina target; in qualche caso, nel primo periodo, si usava anche un simulatore su S/370.

Ogni gruppo di progetto aveva il suo Controllo di Qualità (CQ) e distribuiva il software su cartoline magnetiche o su floppy. Nel 1975 fu anche realizzato con i Drapers Laboratories di Cambridge un progetto per la definizione di una metodologia di sviluppo software, sull’onda del successo che a quel tempo ebbe il Software Engineering.

Quando nel 1980 fu approvato il progetto software per la Nuova Linea Sistemi (NLS) – sistema operativo COSMOS, compilatori, software di ambiente, communication – il cui sviluppo sarebbe iniziato a Cupertino presso l’Olivetti Advanced Technology Center (OATC), furono introdotti nuovi strumenti di sviluppo software e quindi un nuovo ciclo di sviluppo del software. Poiché il nuovo progetto aveva come target un complesso sistema software per una nuova linea di minicomputer, con un numero significativo di release successive, fu deciso di realizzare un ambiente omogeneo di sviluppo software, valido per tutti i gruppi che erano distribuiti geograficamente tra Ivrea, Milano, Bari e Cupertino. A questo ambiente fu data la struttura di una vera Software Factory i cui elementi base erano:

  • adozione di minicomputer PDP-11/70 e VAX Digital come hardware
  • UNIX e Pascal+ come strumenti di sviluppo di base
  • Interconnessione in rete di tutti i sistemi, per mail, distribuzione della documentazione, specifiche e moduli sorgente
  • connessione dei sistemi target ai sistemi di sviluppo per il download dei programmi
  • definizione di un software life cycle, adeguato alle esigenze complessive del Gruppo, basato sugli strumenti di programmazione disponibili in Unix.

Nei primi due anni del progetto l’attenzione fu dedicata alla definizione dell’ambiente e degli strumenti di sviluppo (1980-1981) del software, scritto per il 90% in Pascal+.

Seguendo il suggerimento dei consulenti, professori alla Stanford University e UCLA (University of California Los Angeles), dove l’ambiente per lo sviluppo del software era proprio basato su Unix, la migliore soluzione apparve essere quella di utilizzare un minicomputer PDP 11 con Unix. Supportati da Enzo Torresi, responsabile dell’OATC, Flavio Serughetti e Lorenzo Pengo visitarono la Interactive System Corporation[1] di Santa Monica in California che nella seconda metà del 1979 offriva una versione di Unix System III e System V con la licenza AT&T. Questa versione fu istallata anche ad Ivrea su un PDP 11/70 gestito da Renzo Garetti nella sala macchine del Servizio Prodotti non Standard, utilizzata dal progetto SP 600. Con l’arrivo di Dave Helm alla OATC si decise di passare alla versione Unix BSD 4.0 (Berkeley Software Distribution). Il principale autore di questa versione era stato Bill Joy[2] che, studente a Berkeley, aveva realizzato la prima release nel 1977, con patch alla versione VI dello Unix AT&T. Con la BSD 4.0 divenne rilevante l’uso di strumenti quali l’editor vi, lo shell e la posta elettronica tramite il servizio uucp (Unix-to-Unix Copy Program).

La Software Factory, inserita organizzativamente nell’Ufficio Controllo di Qualità, si sviluppò rapidamente; dopo l’iniziale utilizzo di PDP 11/70, fu adottato il VAX, sino ad istallarne 16 nella sala macchine di Ivrea. Come si è detto però il nucleo dello sviluppo era partito da Cupertino con collaboratori americani, quali Dave Helms, che lasciò l’Olivetti nel 1983, John Golino, Paul Vais, oltre alla consulenza di studenti di Berkeley come Bill Joy e Mike Toy. I sistemi PDP e VAX erano inizialmente collegati tra di loro tramite modem e linea telefonica; la comunicazione avveniva attraverso lo uucp.

Questo fino al 1983, quando DARPA (Defense Advanced Research Projects Agency) decise che tutti i computer collegati in ARPAnet dovevano avere il protocollo TCP/IP (Transmission Control Protocol-Internet Protocol). La società Bolt Beranek e Newman (BB&N) di Cambridge (USA) implementò la versione TCP/IP su Unix BSD, su commessa DARPA. Quello fu il momento di svolta per la diffusione del networking. Appena furono disponibili i governi Ethernet per VAX, Olivetti realizzò una rete di interconnessione Ethernet 10 Mbps, che correva nei sotterranei tra la ICO e la Nuova ICO fino alla sala dove erano ospitati i VAX. La Software Factory fu lo strumento chiave per lo sviluppo dei prodotti software L1-MOS ed emulatori.

I gruppi di progetto erano distribuiti in Italia e in California: la rete di calcolatori distribuita, con sistema operativo Unix, collegata in Internet risultò determinante. Il rilevante investimento fu uno degli elementi base che promosse lo sviluppo del know how software in Olivetti e in molte società collegate.

Nei due anni successivi (1982-1983) divenne chiara la fondamentale importanza delle fasi Controllo di Qualità e Integrazione/Distribuzione del software e il loro impatto sulla produttività globale.[3] Lo schema completo del processo era diviso in tre parti – Implementazione, CQ e Integrazione/Distribuzione – ciascuna parte eseguita da una organizzazione specifica e indipendente, come mostrato dal ‘Processo di Produzione del MOS’ nello schema riportato qui sotto. Il modello di ciclo di vita adottato viene descritto con il cascade model di B. W. Boehm,[4] modificato per tener conto della indipendenza dei processi di sviluppo e distribuzione (release) del prodotto.[5] Senza entrare nella descrizione del ciclo, si nota che questo schema introduce, dopo lo sviluppo del software di base, un Product Release Content (PREQA) e la definizione della Strategia di Test (Integration Tree, Test Plan).

Figura 1 – Processo di produzione del MOS

L’Integrazione termina con una fase di System Test e quindi il software viene rilasciato per il Beta Test. Il processo di integrazione è molto variabile ed interattivo, con numerose fasi. Si possono individuare almeno quattro fasi, per le quali si deve disporre di strumenti di gestione specifici:

  • programmazione dell’integrazione: include pianificazione tecnica, monitoring e replanning
  • esecuzione dell’integrazione: costruzione della configurazione e test
  • amministrazione dell’integrazione: include la gestione degli errori
  • controllo dell’integrazione: gestione e controllo dei cambiamenti

Questo sistema nel suo stato intermedio si dimostrò:

  • efficace nella gestione del processo di implementazione, che però non era integrato con la definizione delle specifiche funzionali e con la definizione dei piani;
  • forte nel controllo di qualità ed integrazione, che permettono di realizzare configurazioni grandi e complesse, ma con un tempo di reazione nella catena definizione-implementazione-integrazione troppo lungo;
  • fonte di colli di bottiglia nella fase finale. quando dalla prima versione si doveva ottenere un numero significativo di release.

Nel 1985, quando ormai il progetto software NLS era compiuto, la Software Factory offriva un ambiente omogeneo per la gestione di tutte le fasi del ciclo di vita dei prodotti FW/SW della Divisione Informatica Distribuita e Automazione dell’Ufficio (DIDAU)[6]:

  • specifiche: redazione e aggiornamento; classificazione gerarchica (albero delle specifiche)
  • distribuzione tramite mailing list delle specifiche e ciclo di approvazione
  • sviluppo del software e documentazione di progetto
  • controllo di qualità e integrazione
  • system test
  • documentazione (manualistica)
  • distribuzione e manutenzione (bug handling)
  • gestione del flusso di informazione tra progettisti, technical writer, field service.

La rete della Software Factory, con i suoi servizi di PABX – data switching, mail e file transfer – costituiva il tessuto connettivo attraverso il quale manager, progettisti, technical writers accedevano alle risorse (CPU in rete) e si trasmettevano codice (in formato sorgente e/o oggetto), specifiche/documentazione e messaggi. La rete della Software Factory era nel 1985 utilizzata sistematicamente anche dal progetto HW e dai suoi ambienti di automazione (CAD, CAM, VLSI Design Center). [7]

L’architettura generale della rete aveva una topologia multi stellare con cluster principali a Ivrea-DIDAU e Cupertino-OATC e numerosi sistemi geograficamente remoti. Ogni cluster era costituito da sistemi collegati in rete locale, per un totale di 38 sistemi.[8]

Gli utenti della Software Factory negli anni 1984-1988, secondo Piero Martinoli, continuarono a crescere:[9]

I principali strumenti software disponibili erano

  • Unix BSD 4.1
  • Data Base Ingres RTI 2.0
  • Strumenti di Sviluppo: Cross-Assembler; Pascal cross compiler; C-cross compiler; linkage editor; strumenti per il debugging
  • Utility: Mailing service; File transfer; Performance monitor; Network monitor; accounting system; historical filing procedures

I terminali utente erano tipicamente i VT 100 della DEC cui si aggiunsero i PC M24. Nel 1985 furono collegati anche server e work station VTI, Valid, Sun Scald, Tektronix, Apollo, nell’ambito del Design Center per Circuiti Integrati Custom e Semi-Custom, come parte dell’automazione dell’intero ciclo del progetto hardware. In questo modo anche il ciclo di sviluppo dell’hardware fu completamente automatizzato. A partire dai VLSI custom, tutto il ciclo di sviluppo delle schede, la definizione dello stampato ed il test erano automatizzati. Lo sviluppo del firmware utilizzava i minicomputer della Software Factory. Al termine del Controllo di Qualità la documentazione veniva trasferita alla fabbrica, tipicamente a Scarmagno, anch’essa collegata con la Software Factory.

Figura 2 – Topologia della Software Factory

 

Nella fase iniziale di pianificazione della Nuova Linea Sistemi la problematica della Fabbrica del Software era stata ignorata. Alla fine dei quattro anni di progetto, fu evidente che il ciclo di produzione di un sistema informatico, partendo dalle specifiche di prodotto fino al rilascio della prima versione utente, era stato troppo lungo nel caso del MOS e che era necessario organizzare un processo di produzione del software più orientato alle soluzioni e con un parallelismo adeguato al numero di configurazioni.[10]


[1] La Interactive System Corporation era stata fondata nel 1977 a Santa Monica, California da Peter G. Weiner, un ricercatore della  RAND Corporation che in precedenza aveva fondato il Dipartimento di computer science della Yale University ed era stato curatore della tesi Ph. D. di Brian Kernighan, uno degli sviluppatori di Unix in AT&T. In Interactive Weiner aveva assunto Heinz Lycklama, che in AT&T aveva eseguito il porting della Versione & di Unix sul microcomputer DEC LSI 11 [Fonte: Wikipedia]

[2] William ‘Bill’ Joy (1954), master a Berkeley nel 1978. Nel 1982 aveva fondato con Scott McNealy la Sun Microsystem, di cui fu chief scientist, e vicepresidente fino al 2003. Nell’estate del 1982 aveva trascorso uno stage alla Olivetti a Ivrea, lavorando proprio nella Software Factory per istallare lo Unix su VAX

[3] G. F. Casaglia, F. Pisani, «The Integration and Distribution Phase in the Software Life Cycle», in H. Ehrig, C. Floyd, M. Nivat, J. Thatcher (eds), Formal Methods and Software Development, Proceedings of the International Conference on Theory and Practice of Software Development (TAPSOFT), vol. 2, Colloquium on Software Engineering (CSE), Springer Verlag, Berlin, March 1985, p. 26

[4] B. W. Boehm, Software Engineering Economics, Englewood Cliffs, Prentice Hall Inc, 1981

[5] G. F. Casaglia, F. Pisani, op. cit., p. 22, una descrizione tecnica del modello Putnam per il software life cycle, adattato per le esigenze Olivetti, la si ritrova nella nota di F. Pisani, Putnam’s «Model for the Software Life Cycle», in Syntax, Corso Gestione di un processo di progettazione SW complesso, 8/10/1984, Archivio Casaglia, Corrispondenza 1984

[6] Corso “Gestione di un processo di progettazione SW complesso” Syntax 8 ottobre 1984, p. 1 e segg, Archivio Casaglia, Corrispondenza 1984

[7] Il documento più completo sulla Software Factory è disponibile nel Cap. 3 del Rapporto su Risorse e Fattori d’Automazione in DIDAU, novembre 1985, a cura di Carlo Ronca

[8] Ibidem, Fig. p. 3

[9] Piero Martinoli, in Olivetti dal 1959, dal 1983 all’ottobre 1989 era incaricato dello sviluppo e della gestione dell’ambiente di Software Factory

[10] G. F. Casaglia, F. Pisani, «The Technology Market Compound Life Cycle, in Olivetti Research and Technical Review», n. 5, 1986 p. 8

Share This