29
Tesina di Ingegneria del Software 2 Traficante Nicola 10 Luglio 2010

Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

Tesina di Ingegneria del Software 2

Traficante Nicola

10 Luglio 2010

Page 2: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che
Page 3: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

Sommario

Abstract .......................................................................................................... 5

Il software ....................................................................................................... 7

1.1 Definizione e storia............................................................................. 7

1.2 Classificazione .................................................................................... 8

1.3 Realizzazione ...................................................................................... 8

Il diritto d’autore o Copyright ...................................................................... 11

2.1 I diritti dell’autore ........................................................................... 12

2.2 Copyright informatico ...................................................................... 13

Licenze Software ........................................................................................... 15

3.1 Software libero ................................................................................. 16

3.1.1 General Public License (GNU-GPL)................................... 18

3.1.2 GNU Lesser General Public License (GNU-LGPL)............ 19

3.1.3 Apache License.................................................................... 20

3.1.4 La nuova BSD e la licenza MIT X...................................... 20

3.1.5 Contributi al software libero............................................... 21

3.1.6 Differenze rispetto all'open source ...................................... 22

3.2 Software Proprietario / Closed Source............................................. 23

3.2.1 End User License Agreement (EULA)................................ 23

3.2.2 Shareware............................................................................ 24

3.2.3 Freeware e derivati ............................................................. 25

Brevetti software........................................................................................... 27

4.1 Il Brevetto........................................................................................ 27

4.2 Brevetto Software ............................................................................ 28

4.3 Brevettabilità del software vs Diritto d'autore ................................ 29

Page 4: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

4

Page 5: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

5

Abstract

“L’attività dell’ingegnere consiste prevalentemente nell’utilizzare, copiare, rielaborare e riproporre idee e prodotti già esistenti in nuovi ambiti applicativi. Solo una minima parte della sua attività riguarda la ideaizione e la implementazione ex-novo di prodotti completamente inediti” Prof. Giorgio Ventre, Università degli Studi di Napoli “Federico II”

Basta questa piccola ed assolutamente non esaustiva dichiarazione a far capire che in ogni momento l’attività dell’ingegnere deve fare i conti con gli aspetti legali riguardanti il riutilizzo di idee ed implementazioni preesistenti. Ciò è infatti vero a partire dalla installazione del sistema operativo fino alla progettazione di sistemi complessi in cui si fa massiccio uso di tecniche quali in riuso, l’adozione di componenti COTS, l’utilizzo di servizi web ed in generale l’integrazione con eventuali adattamenti di software di terze parti.

In questa tesina verranno analizzati gli aspetti legali del software tramite una breve trattazione sui concetti di diritto d’autore, brevetto e licenza, dando per ognuno degli esempi pratici e analizzandone pro, contro e conseguenze.

Page 6: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

6

Page 7: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

7

Capitolo 1

Il software

1.1 Definizione e storia

Il software è un programma o un insieme di programmi in grado di funzionare su un computer o qualsiasi altro apparato con capacità di elaborazione (smartphone, console, navigatori satellitari e così via).

Il termine è un vocabolo della lingua inglese costituito dall’unione di due parole, soft (morbido) e ware (manufatto, componente, oggetto, cosa). Il termine si contrappone tradizionalmente a hardware (la componente fisica di un sistema di calcolo). Nel tempo sono entrati nell'uso altri termini che descrivono elementi di un computer, come il firmware. Il suffisso -ware viene usato anche in altri termini che indicano particolari tipi di programmi: in funzione del ruolo che hanno in un sistema di calcolo (per esempio middleware); del tipo di licenza con cui sono distribuiti (freeware, shareware); e altro.

Il termine software ha origine durante la seconda guerra mondiale. I tecnici dell'esercito inglese erano impegnati nella decrittazione dei codici tedeschi di Enigma, di cui già conoscevano la meccanica interna (detta hardware, componente dura, nel senso di ferraglia) grazie ai servizi segreti polacchi. La prima versione di Enigma sfruttava tre rotori per mescolare le lettere.

Dopo il 1941, ad Enigma venne aggiunto un rotore, e il team di criptanalisti inglesi, capitanati da Alan Turing, si dovette interessare non più alla sua struttura fisica, ma alle posizioni in cui venivano utilizzati i rotori della nuova Enigma.

Dato che queste istruzioni erano scritte su pagine solubili nell'acqua (per poter essere più facilmente distrutte, evitando in tal modo che cadessero nelle mani del nemico) furono chiamate software (componente tenera), in contrapposizione all'hardware.

Il senso moderno del termine deriva dalle istruzioni date ai computer, ed è stato utilizzato per la prima volta nel 1957 da John Wilder Tukey, noto statistico statunitense.

Page 8: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

8

1.2 Classificazione

I software possono essere classificati secondo diverse caratteristiche:

• funzionalità (videoscrittura, foglio elettronico, database, browser ecc.),

• grado di apertura (Software libero o Software proprietario),

• tipo di sistema operativo su cui possono essere utilizzati (i oftware possono girare su Linux, Mac OS, Unix o Windows),

• da installare o portabile,

• tipo di interfaccia (testuale o grafica).

Per fare un esempio, un software del tipo sistema operativo - basato su Linux - può essere a riga di comando o a interfaccia grafica e può essere una distro live o installabile.

I software possono essere divisi in quattro categorie principali:

• Software di base, che a sua volta si divide in tre ulteriori categorie:

o Sistemi operativi

o Compilatori

o Librerie

• driver

• firmware (cioè i software contenuti direttamente nell'hardware e che ne regolano le funzioni interne)

• programmi applicativi (cioè tutti quei software che vengono utilizzati per il lavoro quotidiano: dai programmi per l'ufficio, ai videogiochi)

1.3 Realizzazione

Un software viene normalmente realizzato utilizzando uno o più linguaggi di programmazione. Se il progetto diventa complesso, è opportuno dividere il programma in uno o più moduli, che possono essere così affidati a diversi programmatori, modificati più semplicemente e riutilizzati in altri progetti.

La fase detta di compilazione, traduce ogni file del codice sorgente, scritto nel o nei linguaggi di programmazione, in un file oggetto contenente il programma in linguaggio macchina adeguato all'architettura hardware di destinazione. In seguito tutti i file oggetto attraversano una fase di linking per giungere al prodotto finale: il file eseguibile.

Alcuni software non vengono compilati in quanto le istruzioni contenute nel codice sorgente vengono eseguite utilizzando un software detto interprete.

La gestione del processo di sviluppo è caratterizzato dalla scelta di un modello di sviluppo del software codificato nell'ambito dell'Ingegneria del Software (Software Engineering). I principali sono:

• Modello classico, o a cascata (water-fall)

Page 9: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

9

• Modelli evolutivi (prototipazione)

• Modelli iterativi

• Modelli a componenti

• Modelli basati sui servizi

La realizzazione del software è un'attività complessa articolata in più fasi, per questo motivo spesso il software è associato ad un prodotto ingegneristico, ma se ne differenzia soprattutto per alcune caratteristiche:

• è molto "malleabile";

• è un prodotto human intensive (e cioè un prodotto che richiede un considerevole sforzo in risorse umane perché si concentra soprattutto sulla progettazione e sull'implementazione).

Page 10: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

10

Page 11: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

11

Capitolo 2

Il diritto d’autore o Copyright

Il diritto d'autore è la posizione giuridica soggettiva dell'autore di un'opera dell'ingegno a cui i diversi ordinamenti nazionali e varie convenzioni internazionali (quale la Convenzione di Berna) riconoscono la facoltà originaria esclusiva di diffusione e sfruttamento, ed in ogni caso il diritto ad essere indicato come tale anche quando abbia alienato le facoltà di sfruttamento economico (diritto morale d'autore).

In particolare, il diritto d'autore è una figura propria degli ordinamenti di civil law — modello di ordinamento giuridico dominante a livello mondiale — laddove in quelli di common law — modello di ordinamento giuridico, di matrice anglosassone, basato sulle decisioni giurisprudenziali più che sui codici e sui decreti governativi — esiste l'istituto del copyright.

Nella tutela rientrano tutte le opere dell'ingegno aventi carattere creativo, qualunque ne sia il modo o la forma di espressione.

Un elenco (esemplificativo e non esaustivo) di opere protette, e cioè opere appartenenti, è il seguente:

• letteratura: opere letterarie, drammatiche, scientifiche, didattiche e religiose, sia in forma scritta che orale

• musica: opere e composizioni musicali, con o senza parole, opere drammatico-musicali e variazioni musicali purché costituiscano un'opera originale in sé

• arti figurative: opere di scultura, pittura, disegni, incisioni o appartenenti ad arti figurative similari, compresa la scenografia

• architettura: i disegni e le opere dell'architettura, le opere del disegno industriale che presentino carattere creativo e valore artistico

• teatro: opere coreografiche e pantomimiche (con o senza traccia scritta)

• cinematografia: opere cinematografiche, mute o con sonoro, fotografiche.

Page 12: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

12

Inoltre sono protette anche le cosiddette “elaborazioni di carattere creativo”, come ad esempio le traduzioni in un'altra lingua, le trasformazioni da una forma letteraria o artistica in un'altra, gli adattamenti, le riduzioni, ecc.

Sono inoltre compresi nell’elenco:

• i programmi per elaboratore

• le banche di dati

2.1 I diritti dell’autore

Il diritto nasce al momento della creazione dell'opera, che il codice civile italiano identifica in una «particolare espressione del lavoro intellettuale». Quindi è dall'atto creativo che, incondizionatamente, il diritto si origina; non vi è pertanto alcun obbligo di deposito (ad esempio, presso la SIAE), di registrazione o di pubblicazione dell'opera (a differenza del brevetto industriale e dei modelli e disegni di utilità che vanno registrati con efficacia costitutiva). Tuttavia, tali forme di pubblicazione costituiscono una manifesta e facilmente dimostrabile attribuzione della paternità (specie in caso di controversia).

L'autore ha la facoltà (positiva) di sfruttare la propria opera in ogni forma e modo. Questa facoltà discende non tanto dall'esistenza del diritto d'autore, ma piuttosto dal riconoscimento anche a livello costituzionale della libertà di iniziativa economica privata.

Ciò che il diritto d'autore riconosce al creatore di un'opera sono invece una serie di facoltà esclusive (ovvero negative), per impedire a terzi di sfruttare economicamente la propria opera, quali:

• pubblicazione

• riproduzione

• trascrizione

• esecuzione, rappresentazione o recitazione in pubblico

• comunicazione al pubblico, ovvero diffusione tramite mezzi di diffusione a distanza (telegrafo, telefono, radiodiffusione, televisione e mezzi analoghi, tra cui il satellite, il cavo e la stessa internet), compresa la sua messa a disposizione del pubblico in maniera che ciascuno possa avervi accesso nel luogo e nel momento scelti individualmente (le cosiddette fruizioni on demand)

• distribuzione

• traduzione e/o elaborazione

• vendita

• noleggio e prestito.

Tutti i predetti diritti sono indipendenti l'uno dall'altro: l'esercizio di uno non esclude l'esercizio di tutti gli altri. Inoltre tali diritti riguardano sia l'opera nel suo insieme, sia in ciascuna delle sue parti.

Page 13: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

13

Il diritto consiste di due elementi fondamentali: il diritto morale e il diritto di utilizzazione economica. Il primo è strettamente legato alla persona dell'autore e, salvo casi particolari, tale rimane, mentre il secondo è originariamente dell'autore, il quale può cederlo dietro compenso (ma anche gratuitamente) ad un acquirente (licenziatario), il quale a sua volta può nuovamente cederlo nei limiti del contratto di cessione e della legge applicabile, fermi i diritti morali.

2.2 Copyright informatico

La legge italiana protegge i programmi per elaboratore sia nella loro forma di codice sorgente, ovvero nel linguaggio in cui sono scritti, sia nella forma di codice oggetto, intesa come la traduzione del linguaggio del programma in bit o linguaggio macchina.

Sono esclusi dalla tutela “le idee e i principi che stanno alla base di qualsiasi elemento di un programma, compresi quelli alla base delle sue interfacce”.

Secondo i principi generali della legge, all'autore spettano i diritti morali e quelli patrimoniali, tuttavia, quando la creazione di un software rientra nelle mansioni del lavoratore dipendente, i diritti patrimoniali spettano al datore di lavoro, mentre i diritti morali appartengono all'autore effettivo.

Vengono inoltre definiti alcuni dei principali diritti di utilizzazione economica, in particolare l'autore ha il diritto di effettuare o autorizzare:

• “la riproduzione, permanente o temporanea, totale o parziale, del programma per elaboratore con qualsiasi mezzo o in qualsiasi forma”

• “la traduzione, l'adattamento o la memorizzazione e ogni altra modificazione del programma per elaboratore”

• “qualsiasi forma di distribuzione al pubblico, compresa la locazione, del programma per elaboratore originale o di copie dello stesso”

Come per ogni altra opera tutelata dal diritto d'autore, il titolare dei diritti sul software ha le facoltà esclusive di:

• esecuzione e rappresentazione in forma pubblica

• comunicazione al pubblico dell'opera

• pubblicazione in raccolta dell'opera

Non è necessaria alcuna autorizzazione del titolare dei diritti per le seguenti attività:

• uso e correzione degli errori se sono necessari per il corretto funzionamento del software

• creazione di una copia di backup, “qualora tale copia sia necessaria per l'uso”

• studio del funzionamento del programma, “allo scopo di determinare le idee ed i princìpi su cui è basato ogni elemento del programma stesso”

Page 14: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

14

• riproduzione, traduzione e modifica del codice del software, se sono “necessarie per conseguire l'interoperabilità, con altri programmi, di un programma per elaboratore creato autonomamente”

I diritti patrimoniali sui programmi per elaboratore, come per ogni altra opera creativa tutelata dalla legge, “durano tutta la vita dell'autore e sino al termine del settantesimo anno solare dopo la sua morte”.

Il titolare dei diritti trasferisce all'utente la possibilità di servirsi del software proprietario attraverso licenze d'uso, che stabiliscono i diritti e gli obblighi degli utilizzatori.

Alla modalità di distribuzione del software proprietario si contrappone la concezione di software libero, promossa dalla Free Software Foundation fondata da Richard Stallman.

Page 15: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

15

Capitolo 3

Licenze Software

La licenza in ambito informatico è l'insieme delle condizioni che può accompagnare un prodotto software. Tale documento specifica le modalità con cui l'utente può usare tale prodotto, garantendo dei diritti ed imponendo obblighi.

La licenza è imposta da chi detiene il copyright sul prodotto software; la sua validità dipende dalla presenza del diritto d'autore, questo perché solo chi detiene il copyright ha il diritto di far rispettare in ogni sede la licenza stessa.

In vari casi l'autore può rilasciare un prodotto software con più licenze differenti, lasciando scegliere all'utente il tipo che preferisce; in altri casi l'autore può lasciare all'utente la libertà di scegliere la versione di una licenza che preferisce.

L'accettazione della licenza può avvenire in diversi modi:

• all'uso del programma o del sorgente. In questo caso la licenza è accettata implicitamente con l'utilizzo del software; in pratica se si usa il software vuol dire che si accetta anche la licenza, mentre se non lo si usa vuol dire che non la si accetta. Questo tipo di licenza è adottato da software che mettono a disposizione i sorgenti oltre gli eventuali eseguibili;

• durante la fase di installazione del software è chiesto esplicitamente se si vuole accettare la licenza indicata; in caso di risposta negativa il software non potrà essere installato. Tale licenza è usata normalmente da quei software che distribuiscono soltanto gli eseguibili;

• prima di venire in possesso del programma scaricabile on-line. Bisogna accettare la licenza prima di poter scaricare il programma, alle volte occorre compilare un form on-line in cui si dichiara di accettare la licenza, magari con l'obbligo di registrazione al sito dove sarà possibile effettuare il download;

• prima di aprire le custodie con i supporti di massa dove sono registrati i programmi acquistati (Licenza a strappo). In questo

Page 16: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

16

secondo caso se non si aprono i supporti è garantito, almeno teoricamente, la restituzione dei soldi spesi per l'acquisto solo se le custodie sono ancora sigillate.

È molto importante leggere le licenze prima di usare il programma perché se non si rispetta la licenza si compiono delle azioni illegali e decadendo la licenza non si ha più diritto né all'uso del software né a qualsiasi azione di rivalsa contro chi ci ha fornito o chi ha prodotto tale software.

Vi sono vari tipi di licenza:

• licenze per il software libero:

o GNU General Public License

o GNU Lesser General Public License

• licenze per il software closed source / software proprietario:

o EULA

o shareware

o freeware

• Open Source Initiative (progetto che raggruppa licenze con varie similitudini):

o licenza open source

o licenza libera

• licenze per la documentazione libera:

o GNU Free Documentation License

3.1 Software libero

Il software libero è software pubblicato con una licenza che permette a chiunque di utilizzarlo e che ne incoraggia lo studio, le modifiche e la redistribuzione.

Che la distribuzione sia o meno gratuita non è rilevante: il “Software libero” è una questione di libertà, non di prezzo. Per capire il concetto, bisognerebbe pensare alla “libertà di parola” e non alla “birra gratis”.

L'espressione “software libero” si riferisce alla libertà dell'utente di eseguire, copiare, distribuire, studiare, cambiare e migliorare il software. Più precisamente, significa che gli utenti del software godono delle quattro libertà fondamentali:

• Libertà di eseguire il programma, per qualsiasi scopo (libertà 0).

• Libertà di studiare come funziona il programma e adattarlo alle proprie necessità (libertà 1). L'accesso al codice sorgente ne è un prerequisito.

• Libertà di ridistribuire copie in modo da aiutare il prossimo (libertà 2).

Page 17: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

17

• Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti apportati (e le versioni modificate in genere), in modo tale che tutta la comunità ne tragga beneficio (libertà 3). L'accesso al codice sorgente ne è un prerequisito.

Se chi riceve il software può redistribuirlo solo entro gli stessi termini di licenza, si parla di licenza con permesso d'autore (copyleft in inglese); in caso contrario si parla di licenza senza permesso d'autore (non-copyleft)

Un programma è software libero se l'utente ha tutte queste libertà. In particolare, se è libero di ridistribuire copie, con o senza modifiche, gratis o addebitando delle spese di distribuzione a chiunque ed ovunque. Essere liberi di fare queste cose significa (tra l'altro) che non bisogna chiedere o pagare nessun permesso.

Bisogna anche avere la libertà di fare modifiche e usarle privatamente nel proprio lavoro o divertimento senza doverlo dire a nessuno. Se si pubblicano le proprie modifiche, non si deve essere tenuti a comunicarlo a qualcuno in particolare o in qualche modo particolare.

La libertà di usare un programma significa libertà per qualsiasi tipo di persona od organizzazione di utilizzarlo su qualsiasi tipo di sistema informatico, per qualsiasi tipo di attività e senza dover successivamente comunicare con lo sviluppatore o con qualche altra entità specifica. Quello che conta per questa libertà è lo scopo dell'utente, non dello sviluppatore; come utenti potete eseguire il programma per i vostri scopi; se lo ridistribuite a qualcun altro, egli è libero di eseguirlo per i propri scopi, ma non potete imporgli i vostri scopi.

La libertà di ridistribuire copie deve includere le forme binarie o eseguibili del programma e anche il codice sorgente, sia per le versioni modificate che non modificate (distribuire programmi in formato eseguibile è comodo per avere sistemi operativi liberi facili da installare). È legittimo anche se non c'è alcun modo di produrre una forma binaria o eseguibile (dal momento che alcuni linguaggi non supportano questa caratteristica), ma si deve avere la libertà di ridistribuire tali forme nel caso si trovi o si sviluppi un modo per farlo.

Affinché le libertà 1 e 3 (libertà di fare modifiche e di pubblicare versioni migliorate) abbiano senso, si deve avere accesso al codice sorgente del programma. Perciò, l'accessibilità al codice sorgente è una condizione necessaria per il software libero. Il "codice sorgente" deliberatamente offuscato non è vero codice sorgente e non può essere considerato tale.

La libertà 1 comprende la libertà di utilizzare una versione da voi modificata anziché l'originale. Se il programma è distribuito in un prodotto che, per scelta progettuale, esegue le versioni modificate da una specifica persona o azienda ma si rifiuta di eseguire quelle modificate da voi (tecnica nota come "tivoization" o come "secure boot" con lista nera), allora la libertà 1 diventa solo teorica. Ciò non è sufficiente. In altre parole, la versione eseguibile di questi programmi non è software libero anche se il codice sorgente da cui sono stati ottenuti è libero.

“Software libero” non vuol dire “non-commerciale”. Un programma libero deve essere disponibile per uso commerciale, sviluppo commerciale e distribuzione commerciale. Lo sviluppo commerciale di software libero non è

Page 18: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

18

più inusuale: questo software commerciale libero è molto importante. Si può ottenere software libero pagandolo o non pagandolo, ma, a prescindere da come lo si è ottenuto, rimane sempre la libertà di copiare e modificare il software, persino di venderne copie.

La parola libero non implica la possibilità di utilizzare tale software in maniera indiscriminata: il software libero è comunque soggetto ad una licenza d'uso, a differenza ad esempio del software di pubblico dominio.

Rispetto al software proprietario, la licenza d'uso del software libero permette di:

• eseguire il programma per qualsiasi scopo

• accedere alla struttura interna del programma (codice sorgente), studiarla ed eventualmente modificarla

• ridistribuirlo in un numero di copie illimitato

La licenza d'uso pone in genere i seguenti vincoli:

• gli autori precedenti del software devono essere menzionati anche nelle versioni modificate, lasciando intatto il loro copyright

• in seguito ad una modifica, non è possibile applicare una licenza d'uso incompatibile con la licenza originaria o che vada contro le norme della licenza stessa. Per esempio chiunque può riemettere del software pubblicato sotto LGPL usando la licenza GPL (tale operazione è anche chiamata upgrade della licenza), mentre non è possibile fare il contrario (naturalmente se non si è il detentore unico del copyright)

• normalmente, nella licenza, vi è una clausola che sancisce la non usabilità del software se non si rispetta la licenza d'uso o se una o più norme della stessa licenza non sono valide per termini di legge

• quando si distribuisce un codice binario occorre o distribuire insieme anche i sorgenti o garantire per iscritto la possibilità a tutti gli utenti di venirne in possesso dietro richiesta ed al solo costo del supporto

3.1.1 General Public License (GNU-GPL)

La GNU General Public License è una licenza per software libero. È comunemente indicata con l'acronimo GNU GPL o semplicemente GPL. I diritti di copyright sul testo della GNU GPL sono detenuti dalla Free Software Foundation (FSF), che però non detiene alcun diritto sul software da essa coperto.

Tale tipo di licenza assicura all'utente libertà di utilizzo, copia, modifica e distribuzione. La GPL ha incontrato un gran successo fra gli autori di software sin dalla sua creazione, ed è oggi la più diffusa licenza per il software libero.

Viene rilasciata sotto forma di un documento legale associato al programma rilasciato sotto tale licenza. Come ogni licenza di software libero, essa concede ai licenziatari il permesso di modificare il programma, di

Page 19: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

19

copiarlo e di ridistribuirlo con o senza modifiche, gratuitamente o a pagamento.

È definita una licenza persistente e propagativa, nei sensi sotto esposti:

• “persistente” perché impone un vincolo alla redistribuzione: se l'utente distribuisce copie del software, deve farlo secondo i termini della GPL stessa. In pratica, deve distribuire il testo della GPL assieme al software e corredarlo del codice sorgente o di istruzioni per poterlo ottenere ad un costo nominale. Questa è la caratteristica principe della GPL, il concetto ideato da Richard Stallman e da lui battezzato copyleft. Il suo scopo è di mantenere libero un programma una volta che esso sia stato posto sotto GPL, anche se viene migliorato correggendolo e ampliandolo

• “propagativa” perché definisce nel testo una particolare interpretazione di “codice derivato”, tale che in generale l'unione di un programma coperto da GPL con un altro programma coperto da altra licenza può essere distribuita sotto GPL, o in alternativa non essere distribuita affatto. Nel primo caso si dice che l'altra licenza è “compatibile con la GPL”; nel secondo caso che non lo è. Questa caratteristica è indicata come strong copyleft, ed il suo scopo è evitare che la persistenza venga via via indebolita apportando modifiche coperte da un'altra licenza meno libera, inficiando così lo scopo di mantenere libero il software coperto dalla GPL.

Essendo il software protetto dalla legge sul diritto d'autore e dalle norme internazionali sul copyright, l'utente non ha alcun diritto di modifica, copia o ridistribuzione al di fuori di quelle concesse dalla licenza.

3.1.2 GNU Lesser General Public License (GNU-LGPL)

La licenza LGPL rappresenta un tentativo di compromesso tra licenze con permesso d’autore e licenze senza permesso d’autore (copylefted). E’ infatti una licenza di tipo copyleft ma, a differenza della licenza GNU GPL, non richiede che eventuale software “linkato” al programma sia rilasciato sotto la medesima licenza.

La LGPL è principalmente usata per le librerie software, e talvolta è utilizzata anche da applicativi, come Mozilla Firefox o OpenOffice.org.

La principale differenza tra la GNU GPL e la LGPL è che quest'ultima permette al software di essere “linkato” ad altro software con licenza diversa, anche proprietaria, purché il codice sorgente della parte LGPL sia reso disponibile, e purché la parte LGPL sia aggiornabile indipendentemente dal resto del programma con cui è linkata. Normalmente si ottiene questo risultato se la parte LGPL è una libreria condivisa, una DLL, un modulo caricabile o un componente. Vi sono due possibili casi: opere basate sul software (opere derivate), o opere che usano il software. Il secondo caso(come un eseguibile “stand alone” collegato dinamicamente a una libreria) non è contemplato dalla licenza.

Page 20: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

20

La LGPL è compatibile con la GPL; questo significa che si può prendere un pezzo di codice LGPL, incorporarlo in un programma GPL e distribuire il tutto sotto la GPL.

3.1.3 Apache License

La Licenza Apache è una licenza di software libero non copyleft scritta dalla Apache Software Foundation (ASF) che obbliga gli utenti a preservare l'informativa di diritto d'autore e d'esclusione di responsabilità nelle versioni modificate.

Gli obiettivi dichiarati della licenza comprendevano il rendere più semplice l'uso della licenza da parte di progetti non-ASF migliorando la compatibilità con software basati sulla licenza GNU General Public License, consentendo di includere la licenza per riferimento invece di obbligare ad inserirla in ogni file, chiarendo la licenza che si applica ai contributi e richiedendo al contributore di concedere in licenza i brevetti che si violano utilizzando il contributo realizzato dal contributore.

Come ogni licenza di software libero, La Licenza Apache consente agli utenti di usare il software per ogni scopo, di distribuirlo, modificarlo e di distribuire versioni modificate del software.

La Licenza Apache non richiede che versioni modificate del software siano distribuite secondo i termini della stessa licenza o come software libero. La Licenza Apache richiede solo che si includa un'informativa del fatto che si è utilizzato software licenziato secondo i termini della Licenza Apache.

Quindi, a differenza di quanto accade con le licenze copyleft, gli utenti di versioni modificate del software licenziato secondo i termini della Licenza Apache non godono necessariamente delle suddette libertà. O, considerando la situazione dal punto di vista del licenziatario, esso ha la libertà di utilizzare il software in ogni modo, anche in prodotti proprietari, a danno degli utilizzatori.

Nel codice redistribuito si deve preservare in ogni file licenziato qualsiasi informativa di diritto d'autore e di brevetti presente ed in ogni file modificato si deve aggiungere un'informativa specificando che il file è stato modificato.

3.1.4 La nuova BSD e la licenza MIT X

Se lo scopo cui si mira è la massima diffusione del codice tramite il permesso di usarlo in qualunque programma, che sia libero o proprietario, la licenza giusta è la "nuova BSD" (nota anche come "licenza BSD senza la clausola di pubblicità") o la "licenza MIT X".

Alcuni famosi programmi distribuiti con una di queste due licenze sono il kernel e gli strumenti di base del sistema operativo FreeBSD, il server X XFree86, molti strumenti di rete, e il server web Apache.

La nuova BSD dà all'utente la massima libertà. Solo il software di pubblico dominio dà una libertà maggiore, anche se in Europa gli autori non possono in ogni caso rinunciare alla paternità dell'opera. Gli utenti possono

Page 21: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

21

utilizzare il software come meglio credono, anche ridistribuendolo con una licenza proprietaria, così com'è o modificato. L'altra faccia della medaglia è che chiunque può prendere il software, migliorarlo e redistribuirlo in forma eseguibile senza sorgenti, mantenendo le modifiche segrete, senza restituire la libertà ottenuta. Ma se gli autori originari costituiscono un gruppo di riconosciuta competenza su quello specifico argomento, un gruppo che continua ad operare miglioramenti e distribuirli con la stessa licenza, il rischio non esiste, e il software gode del pubblico più vasto possibile. Esempio di un tale caso è l'evoluzione della pila di protocolli TCP/IP a patire dai sorgenti originari del sistema BSD: benché molti produttori software abbiano usato il codice TCP/IP nei propri programmi proprietari, ogni nuovo sviluppo è stato sempre incorporato nel codice originario, e ad oggi il meglio della pila protocollare TCP/IP è libera.

Le licenze nuova BSD e MIT X sono compatibili con la GPL, cioè si può prendere un pezzo di codice MIT X, incorporarlo in un programma GPL e distribuire il tutto sotto la GPL. È da notare però che la licenza BSD originale non è compatibile con la GPL a causa della clausola di pubblicità, che impone che una nota sia inclusa in tutto il materiale pubblicitario distribuito col programma. Siccome la GPL proibisce ogni restrizione addizionale circa la redistribuzione del software, la licenza BSD originale non è compatibile con la GPL.

3.1.5 Contributi al software libero

Quando si contribuisce ad un programma libero, piuttosto che scriverlo da capo, la cosa migliore è usare la licenza adottata dal programma stesso. Pur essendo spesso possibile fare diversamente, di solito non è consigliabile.

Una ragione per evitare di combinare licenze diverse per lo stesso programma è che spesso non è facile accertare la loro compatibilità. È accaduto in passato che incompatibilità o problemi legali siano stati scoperti solo dopo molto tempo, mettendo così in dubbio i diritti degli autori e degli utenti. Un'altra ragione è che, se il programma che si modifica ha sviluppato una comunità attorno a sé, questa può vedere di malocchio un cambiamento di licenza, gettando così una cattiva luce sulle modifiche apportate non per ragioni tecniche, ma a causa della licenza con cui queste sono distribuite.

Per esempio, volendo proporre una modifica al kernel Linux, bisognerà renderla soggetta alla GNU GPL, essendo questa la licenza utilizzata per il resto del kernel, né sarebbe possibile fare altrimenti. D'altra parte, se si vuol proporre un nuovo modulo per il simulatore di reti ns-2, è preferibile distribuirlo con una licenza nuova BSD, anche se sarebbe possibile usare una licenza LGPL, o anche una GPL con eccezioni. In questi ultimi casi, siccome il resto del codice di ns-2 (che è di notevoli dimensioni) è in gran parte coperto da licenza BSD, una licenza di tipo diverso rischierebbe di essere malvista all'interno della comunità che gestisce il programma.

Alcune associazioni che producono software libero chiedono a chi contribuisce di firmare una liberatoria o un trasferimento di copyright. La Apache foundation e la Free Software Foundation chiedono di cedere loro i diritti di sfruttamento economico, o almeno di rinunciare ad ogni rivendicazione economica sul software che viene proposto per l'incorporazione

Page 22: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

22

nei loro progetti di software libero. La ragione è che, se mai una disputa sui diritti d'autore dovesse arrivare in tribunale, la FSF o la Apache foundation si troverebbero in una posizione molto più forte come uniche titolari dei diritti di sfruttamento economico, piuttosto che trovarsi nella posizione di dover convincere ad andare in giudizio una miriade di sviluppatori, molti dei quali potrebbero non essere interessati a farlo, o che potrebbero essere irreperibili.

Un altro punto da considerare è che contribuire all'avanzamento di una base di codice affermata richiede non solo qualità tecnica e una corretta scelta della licenza, ma anche conoscenza della comunità che si è aggregata attorno al software, e della prassi accettata per proporre nuovi contributi. Ci possono essere solo uno o due autori principali, come ci possono essere diversi sviluppatori responsabili di sezioni diverse. In ogni caso, seguire l'uso consolidato è condizione per essere presi sul serio.

3.1.6 Differenze rispetto all'open source

Essendo la disponibilità del codice sorgente uno dei requisiti fondamentali che accomuna il software libero ed il software open source, spesso si è indotti a considerare i due concetti equivalenti, ma in realtà non lo sono.

Un software è open source se i termini secondo i quali viene distribuito rispondono alla Open Source Definition dell'Open Source Initiative (OSI): in particolare, se una licenza rientra in tale definizione, allora tale licenza può essere dichiarata licenza open source. La definizione potrebbe cambiare nel tempo (nessuno garantisce che questo non possa accadere) e quindi è possibile che una licenza attualmente open source non lo sia nel futuro o viceversa. OSI è anche l'organizzazione che su richiesta certifica con il relativo marchio registrato il fatto che una licenza sia effettivamente aderente alla Open Source Definition. Recentemente l'OSI ha posto un freno al proliferare delle licenze dichiarando che cercherà di limitare il numero di licenze che nel futuro saranno ritenute licenze open source. Questo potrebbe, in linea teorica, far sì che una licenza ritenuta libera non venga ritenuta open source.

Una licenza invece è libera (o meglio, una versione di una licenza è libera) se e solo se rispetta le quattro libertà fondamentali. Pertanto se una versione di una licenza è libera, allora lo sarà per sempre. Naturalmente è sempre complesso, almeno per un cittadino “normale” (non esperto di leggi), stabilire se una licenza è libera o meno perché entrano in gioco i termini legali utilizzati nella stessa. Il progetto GNU si occupa tra l'altro anche di indicare se una licenza è libera o meno e se è compatibile con le licenze GNU o meno.

Il software libero inoltre non deve essere confuso con il software freeware, che è distribuibile gratuitamente ma che non è né software libero né open source.

In ogni caso, gli insiemi di applicativi designati da software libero e open source coincidono a meno di poche eccezioni. La differenza fondamentale è nel tipo di approccio: parlando di software libero si pone l'accento sugli aspetti sociologici ed etici, che sono volutamente rimossi nella visione open source.

Page 23: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

23

3.2 Software Proprietario / Closed Source

Con il termine software proprietario si indica quel software che ha restrizioni sul suo utilizzo, sulla sua modifica, riproduzione o ridistribuzione, solitamente imposti da un proprietario. Queste restrizioni vengono ottenute tramite mezzi tecnici, come il rendere pubblico solo il codice binario del software, trattenendone il codice sorgente, rendendo difficoltosa la modifica del software, ottenibile solo grazie a disassemblatori e ad elevate capacità informatiche; o tramite mezzi legali, quali specifiche licenze, copyright e brevetti. Nel mondo open source viene invece preferito il termine “closed source software” (software a codice chiuso) per evidenziare il contrasto tra software che può essere classificato come open source e non.

Il codice sorgente di un software proprietario solitamente non viene diffuso e viene ritenuto un segreto commerciale. Alcuni software proprietari, invece, vengono rilasciati con il codice sorgente o danno la possibilità di osservarlo secondo determinate condizioni. In questi casi gli utenti sono liberi di usare ed anche studiare e modificare il software, ma sono vincolati da licenze o accordi di non divulgazione (NDA: Non-Disclosure Agreement) per la ridistribuzione delle modifiche o anche per la semplice condivisione del software.

Il software proprietario disponibile gratuitamente viene chiamato freeware. Il software shareware è invece disponibile gratuitamente ma solo per un periodo di prova. Il software proprietario con un copyright che non viene più esercitato e che viene usato illegalmente dagli utenti viene chiamato abandonware e può includere o meno il codice sorgente. In altri casi il software abandonware è stato messo nel pubblico dominio dallo stesso autore o possessore del copyright ed in questi casi, se il software include il codice sorgente, è software libero, non software proprietario.

3.2.1 End User License Agreement (EULA)

EULA o End User License Agreement (accordo di licenza con l'utente finale) è il contratto tra il fornitore di un programma software e l'utente finale. Tale contratto assegna la licenza d'uso del programma all'utente nei termini stabiliti dal contratto stesso.

La EULA in generale comprende la concessione di licenza, le limitazioni d'uso, la limitazione di garanzia, la limitazione di responsabilita', le restrizioni all'esportazione.

Anche se la EULA è associata all'uso di software proprietario, in realtà è utilizzata anche per accordare la licenza d'uso nei relativi termini per software libero. Per esempio l'installazione di Firefox richiede l'accettazione della Mozilla Firefox EULA.

Caratteristica della EULA è che l'acquisto del programma software precede la eventuale lettura del contratto e la sua accettazione da parte dell'utente.

Il contratto è presentato all'utente o in forma di foglio all'interno della confezione con cui il programma è distribuito, od in forma elettronica durante le fasi di installazione del programma. In caso di EULA su foglio l'accettazione dei suoi termini è in genere prevista alla presa visione, a meno

Page 24: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

24

della restituzione del prodotto entro un certo lasso di tempo definito dal contratto stesso. In caso di EULA in forma elettronica l'accettazione avviene cliccando il relativo pulsante, a cui segue l'installazione del programma. La non accettazione implica l'impossibilità di installare il programma.

A titolo di esempio si riporta un’estratto della EULA di Microsoft Windows XP Pro:

• Si è OBBLIGATI alla restituzione del prodotto nel caso non lo si voglia usare

• La licenza non permette di installare il prodotto su due computer, anche se si dimostra che se ne usa uno alla volta

• Non si permette di collegare più di altri dieci computer o dispositivi elettronici al computer con questo sistema operativo

• Se si accede al sistema operativo da remoto tramite prodotti di terze parti, bisogna pagare un'altra licenza

• Si autorizza Microsoft di raccogliere, archiviare, divulgare a terzi tutte le informazioni tecniche raccolte con qualsiasi mezzo

• Si autorizza Microsoft di leggere le versioni dei programmi installati sulla macchina, ed aggiornarli senza preavviso né notifica

• Si autorizza Microsoft ad installare dei componenti di sistema che possono impedire all'utente di spostare, copiare, visualizzare, archiviare e fare backup di contenuti audio o video

• Si accetta di sottostare anche alle leggi statunitensi dell'Export Administration Regulation, anche se viene usato in Angola

• Microsoft offre garanzia solo per i primi 90 giorni, anche se nel paese si vendita la legislazione è diversa. Eventuali installazioni di patch, aggiornamenti o altro da parte di Microsoft NON estendono la garanzia

• La garanzia decade se il malfunzionamento è dovuto a un virus

3.2.2 Shareware

Il software sotto tale licenza può essere liberamente ridistribuito, e può essere utilizzato per un periodo di tempo di prova variabile (generalmente 30 giorni). Scaduti questi termini, per continuare ad utilizzare il software è necessario registrarlo presso la casa produttrice, pagandone l'importo. All'avvio dell'applicazione shareware generalmente un nag screen informa l'utente su come effettuare la registrazione e sulle condizioni di utilizzo.

La versione di prova può avere, in aggiunta o in alternativa alla durata limitata, rispetto alla versione completa, limitazioni quali l'impossibilità di stampare o salvare i file o simili, numero di utilizzi limitato, contenere al suo interno meccanismi di protezione tali da impedire di utilizzare il software dopo la scadenza, mancanza di supporto del produttore, watermarks audio o video sovraimposti ai file multimediali prodotti e altro. Una volta acquistata la versione completa viene generalmente fornito un codice seriale da inserire

Page 25: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

25

nell'applicativo per sbloccarne le funzioni senza dover effettuare una nuova installazione.

3.2.3 Freeware e derivati

Il termine freeware indica un software che viene distribuito in modo gratuito.

Il freeware è distribuito indifferentemente con o senza codice sorgente, a totale discrezione dell'autore e senza alcun obbligo al riguardo. È sottoposto esplicitamente ad una licenza che ne permette la redistribuzione gratuita. Il software freeware viene concesso in uso senza alcun corrispettivo, ed è liberamente duplicabile e distribuibile, con pochissime eccezioni.

Di norma l'autore che decide di rilasciare il suo lavoro come freeware, esercitando appieno il suo diritto di scegliere le forme e le modalità di distribuzione che ritiene più idonee, inserisce esplicitamente delle clausole che impediscono qualsiasi tipo di pagamento per la distribuzione del suo software, fatto salvo un eventuale “piccolo” rimborso per supporti e spese di duplicazione, esattamente come avviene per lo shareware.

Le seguenti categorie vengono tutte considerate "freeware":

• Adware. Tali software sono distribuiti come freeware, ma richiedono all'utente la visione di messaggi pubblicitari per il loro utilizzo. Il termine nasce dalla sincresi dell'espressione "ADvertising-supported softWARE", ovvero "software finanziato da annunci (pubblicitari)". I messaggi pubblicitari vengono normalmente scaricati tramite una connessione internet: per questo motivo è abbastanza frequente che il software adware contenga spyware.

• Donationware. L'autore chiede agli utenti del proprio software di fare una donazione a sé stesso o ad una terza parte (per esempio un ente benefico). La donazione di solito è facoltativa, per cui questo genere di software ricade quasi sempre nella definizione di freeware.

• Software di pubblico dominio. Questa categoria di software non è soggetta a copyright: l'autore, con la dichiarazione del rilascio del suo software al pubblico dominio, rinuncia esplicitamente a qualsiasi diritto in merito. Molto spesso il software rilasciato al public domain (PD) include i sorgenti, o è composto esclusivamente da file sorgente: snippet, template, librerie, piccoli framework. Il freeware, al contrario, è tutelato dai diritti dell'autore originario.

• Abandonware. Rientra in questa definizione tutto quel software commerciale che non viene più commercializzato da lungo tempo, ed è quindi considerato "abbandonato". La licenza originaria di questo software, di solito, essendo di tipo commerciale proibiva la ridistribuzione o richiedeva un pagamento di qualche tipo. Il termine "abandonware" viene anche utilizzato come modo alternativo per indicare un software originariamente commerciale, che è stato successivamente ed esplicitamente rilasciato come freeware o public domain. Molte software house, inoltre, hanno l'abitudine di rilasciare gratuitamente versioni "obsolete" del loro software, spesso in abbinamento con riviste specializzate, al fine di promuovere

Page 26: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

26

l'acquisto di nuove versioni con sconti ed incentivi sotto forma di upgrade (aggiornamento). Tali versioni gratuite, contrariamente allo shareware, sono dotate di tutte le normali funzionalità, e sono da ritenersi a tutti gli effetti regolarmente licenziate, salvo clausole specifiche esplicitamente riportate nella documentazione allegata.

• Postcardware. Questo tipo di software è essenzialmente freeware; l'autore però richiede la cortesia di spedirgli una cartolina (in inglese postcard) di ringraziamento. Ovviamente questo tipo di "compenso" è del tutto facoltativo. Questo meccanismo, molto più diffuso in passato rispetto ad oggi, ricalca la filosofia dello scambio di QSL in voga tra i radioamatori.

Page 27: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

27

Capitolo 4

Brevetti software

4.1 Il Brevetto

Il brevetto è un titolo giuridico in forza al quale viene conferito un monopolio temporaneo di sfruttamento dell'invenzione in un territorio e per un periodo ben determinati, al fine di impedire ad altri di produrre, vendere o utilizzare la propria invenzione senza autorizzazione. Per invenzioni si intende una soluzione nuova ed originale di un problema tecnico. Essa può riguardare un prodotto o un processo (metodo, procedimento).

Per l'ottenimento ed il mantenimento del brevetto si corrisponde allo Stato una certa somma. I brevetti possono essere definitivi o soggetti a rinnovo annuale per un certo periodo (di solito al massimo 20 anni, ma variabile a seconda degli stati).

L'autore ha i diritti esclusivi di disporre dell'invenzione e di commercio. Questi sono classificati come diritti patrimoniali dell'inventore, diritti cioè che possono essere oggetto di cessione, generalmente a titolo oneroso mediante contratto. Differiscono invece dal diritto personale ad esser riconosciuto autore dell'invenzione che è un diritto intrasmissibile.

Possono costituire oggetto di brevetto per invenzione le invenzioni nuove che implicano un'attività inventiva e sono atte ad avere un'applicazione industriale. Per essere considerata brevettabile, un'invenzione deve avere le caratteristiche di novità, attività inventiva, industrialità, liceità e sufficiente descrizione.

Non possono costituire oggetto di brevetto, al contrario:

• Le scoperte, le teorie scientifiche e i metodi matematici

• I piani, i principi e i metodi per attività intellettuali, per giochi o per attività commerciali ed i programmi per elaboratore

• Le presentazioni di informazioni in quanto tali

• I metodi per il trattamento chirurgico o terapeutico del corpo umano o animale e i metodi di diagnosi applicati al corpo umano o animale. Questa disposizione non si applica ai prodotti, in particolare alle

Page 28: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

28

sostanze o alle miscele di sostanze (farmaci), per l'attuazione di uno dei metodi nominati

• Le razze animali ed i procedimenti essenzialmente biologici per l'ottenimento delle stesse. Questa disposizione non si applica ai procedimenti microbiologici ed ai prodotti ottenuti mediante questi procedimenti

4.2 Brevetto Software

Con la definizione brevetto software ci si riferisce, secondo la definizione adottata dall'Unione Europea, ad un brevetto applicato ad una «invenzione realizzata per mezzo di un elaboratore».

Per l’applicazione del concetto di brevetto al software ci sono stati accesi dibattiti, proprio per la natura intrinseca del software stesso, descrivibile come un insieme di istruzioni comprensibili al calcolatore che permettono lo svolgimento di un determinato compito. Ciò implica che il software è informazione pura, viene copiato a costo zero e non e' un oggetto materiale ma un prodotto culturale (analogo ad esempio as una ricetta di cucina). Come e cosa brevettare, quindi, in ambito software?

L’ultima interpretazione della normativa esclude esplicitamente i programmi per computer dalla brevettabilità, intesi come programmi per computer in quanto tali. L'interpretazione data alla legge è che può essere brevettabile una nuova soluzione tecnica la quale risolve in maniera inventiva (ossia in maniera non ovvia) un problema tecnico. Nel caso di invenzioni implementate mediante l'utilizzo di un calcolatore, espresse in termini di fasi, per poter ottemperare ai requisiti di brevettabilità vi deve necessariamente essere un Ulteriore Effetto Tecnico che va oltre la normale interazione del software con gli elementi e i dispositivi hardware. La mancanza di un problema Tecnico, consente spesso di poter distinguere un “software” fine a se stesso (ossia un programma per un computer in quanto tale) da un programma in grado di consentire l'ottenimento di una soluzione Tecnica capace di risolvere un Problema Tecnico in maniera nuova e inventiva rispetto allo Stato dell'Arte. Lo Stato dell'Arte è l'insieme di tutto ciò che risulta noto ed accessibile al pubblico mediante qualsiasi divulgazione, scritta o orale, fino al giorno prima della data di deposito di una domanda di brevetto.

Ad esempio non è brevettabile un programma che elabora delle immagini. È invece brevettabile un nuovo algoritmo che permette in maniera nuova ed inventiva di elaborare le immagini provenienti da un telescopio, consentendo di aumentare la risoluzione e la qualità delle immagini del telescopio stesso. Un'invenzione basata su computer che risolve solamente un problema commerciale e non un problema tecnico non è considerata brevettabile.

Tuttavia, il fatto che un'invenzione sia utile nel settore commerciale non significa automaticamente che non sia brevettabile. Questa sottile linea di demarcazione ha portato l'EPO — Organizzazione Europea dei brevetti — a respingere il brevetto di Amazon.com per inviare un ordine con un singolo clic, ma allo stesso tempo ad autorizzare un brevetto su un metodo per ottenere un indirizzo di posta elettronica per inviare un omaggio.

Page 29: Tesina Ingegneria del Software 2 - Traficante Nicolaunina.stidue.net/Ingegneria del Software 2/Materiale...• firmware (cioè i software contenuti direttamente nell'hardware e che

29

4.3 Brevettabilità del software vs Diritto d'autore

Fin dalle origini i programmi per computer sono stati sottoposti alla normativa sul diritto d'autore in quanto ritenuti opera dell'ingegno a carattere creativo al pari di opere letterarie, musica, eccetera.

Diversi enti esercitano forti pressioni affinché il software venga invece considerato alla pari delle invenzioni in quanto procedura o tecnica con carattere di originalità.

La differenza tra i due approcci comporta enormi differenze ai fini pratici:

• Il diritto d'autore è riconosciuto automaticamente all'autore, che non deve fare alcune azione né spendere alcuna cifra per vedere riconosciuto questo diritto (oltre, naturalmente, a dimostrare di essere l'autore dell'opera)

• L'attribuzione di un brevetto deve essere invece richiesta esplicitamente ad un ufficio brevetti, effettuando preventivamente una ricerca per verificate l'originalità della propria creazione, il che può comportare un esborso economico considerevole

Un'associazione di due milioni di aziende europee ritiene che l'eventualità di ammettere la brevettabilità del software rappresenti un grave rischio per l'innovazione, la produttività e l'occupazione in Europa. Se si estende il diritto brevettuale anche al software “in toto”, infatti, allora non si potranno più scrivere programmi con funzionalità simili a qualcosa che è tutelato dal brevetto di un concorrente. Non importa quanto il nuovo programma sia superiore, né che il programma concorrente sia fatto male o, peggio, non importa se l'abbia poi davvero scritto o se intenda effettivamente scriverlo. Per fare un programma è necessario ottenere la licenza dal titolare del brevetto e questo comporta delle spese. Ma non è solo questione di soldi. Il titolare del brevetto potrebbe addirittura negare la licenza di utilizzare una tecnologia chiave sulla base che certe persone gli sono antipatiche.