OPEN SOURCE

4

description

open,source,programmazione,freeware,shareware,programming,software

Transcript of OPEN SOURCE

Page 1: OPEN SOURCE
Page 2: OPEN SOURCE

Quaderno

ORDINe DeGLI INGeGNeRI DeLLA PROVINCIA DI ROMA

OPEN SOURCE

a cura diIng. F. M. Rietti

commissione Informatica etelecomunicazioni

visto da:Ing. P. RealeIng. G. D’Agnese

Un programma software per essere eseguito da un processore deve essere in formato binario e sefosse direttamente scritto in questo formato richiederebbe un tempo di sviluppo sproporzionato econ difficoltà elevate.Per produrre con efficienza il software sono stati realizzati i compilatori, programmi in grado di tra-durre in linguaggio binario, linguaggi più maneggevoli e più consoni al pensiero creativo detti di“alto livello”; il Cobol, si presenta molto discorsivo e simile alla fraseologia inglese, come l’SQL peril recupero di informazioni da basi di dati.Il codice sorgente, cioè il linguaggio di alto livello, è da ritenersi di alto valore commerciale e ad essosi applicano tutte le normative afferenti il “Diritto d’Autore”: senza autorizzazione, il sorgente non puòessere usato a scopo di lucro.

da pag 8 a 128:io-roma 22/04/14 15.07 Pagina 90

Page 3: OPEN SOURCE

91

roma

ORDINe DeGLI INGeGNeRI DeLLA PROVINCIA DI ROMA

e’ il software, sia di base che applicativo, a dareil valore aggiunto all’hardware; solo un sistemaoperativo efficiente e un corredo di applicativiadeguati danno valore aggiunto al computer.Negli anni 70 chi produceva hardware sipreoccupava di fornire anche software di basee di creare partnership con produttori disoftware applicativo, per rendere appetibilecommercialmente l’hardware prodotto.La rivoluzione ci fu quando IBM e Microsoft mi-sero sul mercato il PC: Microsoft forniva un si-stema operativo funzionante su tutto l’hardwareche fosse compatibile con le specifiche archi-tetturali del BIOS (ruotine di base per l’accessoall’hardware) del sistema che furono pubblicateapertamente, per cui si aprì un ampio mercatodi costruttori di hardware per MS DOS e puredi sviluppatori software.Il software libero, identificato come “OpenSource”, è ritenuto spesso qualunque sorgenteapplicativo o componente di libreria, scaricabi-le da Internet e che può essere usato gratuita-mente, sia per uso personale, sia per uso com-merciale.Questa opinione è estremamente dannosa, inquanto genera incomprensioni rendendo OpenSource e Freeware1 sinonimi, il che non è sem-pre vero, infatti alcuni software open source so-no gratuiti per cultura personale, ma diventanoa pagamento per un uso professionale o com-merciale, mentre il freeware è sempre gratuitoe incondizionato.Oggi col termine Open Source (termine ingleseche significa sorgente aperta) si indica unsoftware rilasciato con un tipo di licenza per laquale il codice sorgente è consultabile e modi-ficabile dagli sviluppatori, in modo che, con lacollaborazione, il prodotto finale possa rag-giungere una complessità maggiore di quantopotrebbe ottenere un singolo gruppo di pro-grammazione. In generale la maggior parte dei software OpenSource vengono rilasciati adottando il criterioproposto dalla GNU2.Per il mondo Linux (che non è Unix), il softwareapplicativo disponibile è solo Open Source,che, spessissimo, è fornito proprio in forma sor-gente e sta all’utilizzatore l’incombenza di com-pilarlo e renderlo eseguibile3.Oltre al sorgente, anche alcuni formati file sonosoggetti a Copyright e pertanto realizzaresoftware Open Source, che manipoli file conformato proprietario, implica l’autorizzazionedel proprietario del formato (che in generalenon è gratuita) e spesso non si può proprio co-noscere (Compound Document File Microsoft –

quello di Word).Il software Open Source è offerto “AS IS”, ovve-ro se c’è un malfunzionamento, o lo trovi e lo ri-solvi, o attendi che venga rilasciata una nuovaversione, sperando che risolva il problema.Per affrontare l’argomento è necessario consi-derare almeno due scenari e due finalità di uti-lizzo di un computer:• Mondo Linux

– Utente finale–Utente sviluppatore di applicazioni

• Mondo Professionale e/o Commerciale(Windows, OpenVMS, Unix)–Utente finale–Utente sviluppatore di applicazioni

Nel caso di Linux l’utente finale non può nonutilizzare software Open Source, in quanto ladisponibilità di software commerciale è inesi-stente, poiché essendo Linux Open Source, siinnesca la catena per cui chi sviluppa è sog-getto alle regole dell’Open Source, pertanto di-spone di tutto il software distribuito gratuita-mente. Spesso, però, questo produce situazio-ni di incompatibilità di interscambio files, spe-cie per quei formati che sono proprietari.Nel caso di Linux l’utente sviluppatore disponedi strumenti e sorgenti di applicazioni, che puòmodificare a suo piacimento. È, però, moral-mente nell’obbligo di non trarre lucro dalsoftware rivendendo il software sviluppato, per-ché non rispetterebbe le regole dell’Open Sour-ce.Nel mondo dei software a pagamento, comesviluppatori di applicazioni si collocano le so-cietà o i singoli professionisti che sviluppanosoftware, a fine di lucro. C’è da chiarire la fontedel lucro: infatti, non sempre il prodotto vendu-to è il software, ma un servizio che per essereerogato si appoggia al software.Si deve valutare anche l’effetto scala del pro-dotto software, infatti per produrre software se-condo i canoni delle moderne teorie dell’Inge-gneria del software, bisogna limare gli step ca-nonici, in funzione del target di vendita.Precisamente, nella progettazione e realizza-zione canoniche del software, si distinguono al-cune fasi:• Analisi requisiti• Progettazione architetturale• Progettazione funzionale• Progettazione singoli moduli• Implementazione moduli (scrittura del sour-

ce)• Test unitario moduli• Testi di integrazione moduli• Test finale o di sistema

da pag 8 a 128:io-roma 22/04/14 15.07 Pagina 91

Page 4: OPEN SOURCE

92

Tutte queste fasi hanno un costo, che dipendedal livello retributivo delle persone coinvolte,ma che, senza l’effettiva implementazione deimoduli restano una cosa morta e sono fonte dicosti. L’unica fase che tiene in piedi il ciclo è lascrittura dei sorgenti (source), senza di questail prodotto software rimane una mera collezionedi carta e di concetti.Sulla base di queste considerazioni è chiaroche tutti questi costi potranno portare ad unmargine, qualora i ricavi per tutte le copie ven-dute superino i costi connessi. Da qui un para-dosso tipico del settore dove spesso la qualitàè funzione inversamente proporzionale ai costicome, ad esempio, per il mercato delle “App”della Apple o di Android. Infatti se l’applicativoo il software sono di qualità e si rivolgono aduna larga utenza è facile che entrino in giocoforti economie di scala che abbattono drastica-mente i prezzi unitari di ogni singola licenza.Altrimenti per software “ad hoc” pensati per unsolo specifico cliente è facile una forte deriva alrialzo dei costi, non solo di sviluppo, ma di ma-nutenzione nel tempo che vengono ammortiz-zati soltanto su quel specifico cliente.Nel valutare verso quale tipo di software ci sidebba orientare, proprietario, Open source,freeware, è opportuno basarsi sulle considera-zioni seguenti:• Se il software è il core business aziendale,

essendo la produzione di software, l’ogget-to sociale per cui esiste, non e’ l’Open Sour-ce la strada che porta al profitto.

• Se il software è un costo: il discorso è estre-mamente complesso, infatti, ricade nel ca-so che il numero delle copie del softwarenecessario rimanga sempre ad uno.

In quest’ultimo caso, se il software a commer-cio esiste e risponde alle esigenze dell’azien-da, la valutazione del suo costo è legata al suoprezzo. Ma quando il prodotto a commercionon esiste o, se esiste, ma non risponde in pie-no alle esigenze dell’azienda, nasce il proces-

so decisionale se fare in casa o demandareall’esterno. Talvolta all’interno di questo dilem-ma hanno successo delle soluzioni applicativealtamente parametrabili.In questo scenario, anche se si demanda adun entità esterna la fase di sviluppo vero e pro-prio, ovvero quella critica, si deve spenderetempo e denaro per le parti necessarie, affin-ché l’azienda esterna incaricata possa produr-re il software richiesto, ovvero l’azienda devefarsi carico almeno delle fasi:• Analisi dei requisiti• Progettazione architetturale• Progettazione funzionale• Progettazione dei singoli moduli• Test finale o di sistemache nel ciclo di vita del software hanno un pe-so di costo non indifferente, a volte superiore alcosto della scrittura dei programmi veri e pro-pri, dovendo impiegare risorse proprie per re-digere i documenti opportuni e per la fase ditest.L’avvento dell’Open Source e del software libe-ro è stato di grande rilievo anche per calmiera-re i costi del software proprietario: essendo di-sponibile, come free software, un pacchetto Of-fice notevolmente efficiente, il costo del pac-chetto proprietario della Microsoft, per averemercato, dovrà in qualche misura contenersi.La scelta tra software libero e software proprie-tario si deve effettuare in un bilanciamento co-sti benefici: il software proprietario è più affida-bile ma ha un costo, il software libero è menoaffidabile e performante ma è gratuito. �

1 contrazione delle parole inglesi Free e Software2 GNU è un acronimo ricorsivo e significa GNU is Not

Unix (ovvero “GNU non è Unix”). Il Progetto GNU, lan-ciato nel 1983 da Richard Stallmann, si basa su una ge-stione particolare dei diritti d’autore sul software, secon-do la definizione di software libero (contrapposta asoftware proprietario).

3 per Linux è Open Source anche il compilatore C/C++

roma

Arch. M. Fuksas - Centro Congressi Nuvola (Roma) Copyright © Moreno Maggi �

ORDINe DeGLI INGeGNeRI DeLLA PROVINCIA DI ROMA

da pag 8 a 128:io-roma 22/04/14 15.07 Pagina 92

terrasi_e
Typewriter
Per ulteriori articoli della presente pubblicazione IoRoma visitare il sito: http://rivista.ording.roma.it