PROGRAMMARE AI TEMPI DEL DIRITTO



Похожие документы
Dispensa di Informatica I.1

Informatica - A.A. 2010/11

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

Architettura dei computer

MODULO 01. Come è fatto un computer

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Esame di INFORMATICA

Organizzazione della memoria

Corso di Informatica

Centro Iniziative Sociali Municipio III

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

TICa1. 3) Uno scanner è una periferica di: a) Input b) Output c) elaborazione d) Input-Output e) Memorizzazione

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Test di informatica QUALE TRA I DISPOSITIVI DI MEMORIA ELENCATI HA LA CAPACITÀ PIÙ ELEVATA? a) Floppy disk b) Cd-Rom c) DVD Risposta corretta:

Alfabetizzazione Informatica. Prof. Giuseppe Patti

Origini e caratteristiche dei calcolatori elettronici

Nozioni di Informatica di base. dott. Andrea Mazzini

INFORMATICA, IT e ICT

HARDWARE. Relazione di Informatica

INTRODUZIONE ALL' INFORMATICA

Tecnologia dell Informazione

Concetti fondamentali della Tecnologia Dell informazione Parte prima

Linguaggi di programmazione

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA

Informatica. Scopo della lezione

Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro

Laboratorio di Informatica

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

Memoria Secondaria o di Massa

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

1.4b: Hardware. (Memoria Centrale)

Architettura del calcolatore

Architettura del Personal Computer AUGUSTO GROSSI

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

IL COMPUTER APPUNTI PER LEZIONI NELLE 3 CLASSI LA MACCHINA DELLA 3 RIVOLUZIONE INDUSTRIALE. A CURA DEL Prof. Giuseppe Capuano

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Introduzione al sistema operativo Il file system: file, directory,...

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Architettura di un calcolatore

Il Sistema Operativo (1)

Architettura hardware

C. P. U. MEMORIA CENTRALE

Architetture Applicative

SOMMARIO. La CPU I dispositivi iti i di memorizzazione Le periferiche di Input/Output. a Montagn Maria

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO

CHE COS È L INFORMATICA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Funzionalità di un calcolatore

Concetti di base della Tecnologia dell Informazione Uso del computer e gestione dei file Elaborazione testi Fogli di Calcolo Reti informatiche

ECDL MODULO 1 Concetti di base della tecnologia dell informazione. Prof. Michele Barcellona

Informatica 1 Lezione 1

Il Personal Computer. Cos è Lo schema di massima Che cosa ci possiamo fare. 1

NozionidiBase di Informatica

Il Personal Computer

Istituto tecnico commerciale e per geometri Enrico Fermi

Fondamenti di Informatica. Allievi Automatici A.A Nozioni di Base

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014

Vari tipi di computer

Informatica. Teoria. L architettura dei PC Storia dell informatica Periferiche Reti - Software. Marco Brama

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

L HARDWARE parte 1 ICTECFOP@GMAIL.COM

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione:

introduzione I MICROCONTROLLORI

Introduzione all'architettura dei Calcolatori

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

processore case Le casse acustiche

Creare una Rete Locale Lezione n. 1

Laboratorio di Informatica

CONCETTI BASE dell'informatica Cose che non si possono non sapere!

Software di base e software applicativo. Titolo: dic (1 di 9)

Ferrante Patrizia Ghezzi Nuccia Pagano Salvatore Previtali Ferruccio Russo Francesco. Computer

Conoscere i diversi tipi di memoria centrale presenti nel computer, quali: RAM (randomaccess memory), ROM (read-only memory)

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Corsi Speciali Abilitanti Indirizzo 2: Fisico-Matematico Modulo Didattico: Elementi di Informatica Classi: 48/A TEST D INGRESSO

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

INFORMATICA 1 L. Mezzalira

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Elementi di informatica

FONDAMENTI di INFORMATICA L. Mezzalira

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Il computer: primi elementi

Il Sistema Operativo

L informatica comprende:

Il sistema di elaborazione Hardware e software

Termini che è necessario capire:

Il Software. Il software del PC. Il BIOS

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

Транскрипт:

ANDREA ANTONIAZZA PROGRAMMARE AI TEMPI DEL DIRITTO LA TUTELA GIURIDICA DEI PROGRAMMI PER ELABORATORE IN EUROPA E NEGLI STATI UNITI D AMERICA

Andrea Antoniazza, Programmare ai tempi del diritto Copyright 2014 Tangram Edizioni Scientifiche Gruppo Editoriale Tangram Srl Via Verdi, 9/A 38122 Trento www.edizioni-tangram.it info@edizioni-tangram.it Prima edizione: febbraio 2009 UNI Service Seconda edizione: ottobre 2014 Printed in EU ISBN 978-88-6458-123-1

Glossario 7 1 Nozioni Generali 13 1.1 Storia dell Informatica (Cenni) 16 2 La tutela dei programmi per elaboratore in base alla disciplina del diritto d autore 33 2.1 La tutela del software prima del recepimento della dir. 91/250/CEE 33 2.2 Il recepimento della direttiva 91/250/CEE attraverso il D. Lgs. 29 dicembre 1992 n. 518 e il successivo D. Lgs. n. 68 del 2003 58 2.3 Soggetti del diritto, oggetto della tutela, contenuto del diritto 86 3 La tutela dei programmi per elaboratore in base alla disciplina brevettuale 99 3.1 La tutela brevettuale dei programmi per elaboratore negli Stati Uniti d America e l influenza della dottrina tedesca 99 3.2 La tutela brevettuale dei programmi per elaboratore in Francia e la Convenzione sul brevetto europeo (CBE) 117 3.3 La tutela brevettuale dei programmi per elaboratore in Italia 129 3.4 La giurisprudenza dell ufficio europeo dei brevetti e la proposta di direttiva europea relativa alla brevettabilità delle invenzioni attuate per mezzo di elaboratori elettronici 142 Bibliografia 155

GLOSSARIO Algoritmo: insieme di regole che consentono di risolvere un dato problema in tempo finito. E' importante distinguere un algoritmo da un programma: mentre un algoritmo è il procedimento da seguire per risolvere un problema a prescindere dal linguaggio utilizzato, un programma consiste nella descrizione di un algoritmo in uno specifico linguaggio di programmazione. Per esempio, se il problema è costituito dal calcolo dell'area di un triangolo, l'algoritmo per risolvere tale problema stabilisce che occorre moltiplicare la misura della base del triangolo per la relativa altezza e dividere il risultato per due. Un programma derivato da questo algoritmo è la descrizione di questi calcoli in un linguaggio di programmazione, come ad esempio il Pascal. Copia di backup: copia di un programma o di un file fatta dall'utente al fine di conservarne un esemplare integro utilizzabile nel caso in cui il file venga danneggiato o il programma risulti inoperativo. Decompilazione: operazione di reverse engineering diretta a ricostruire, a partire da un programma in forma eseguibile o oggetto, il programma stesso in forma di sorgente. Esecuzione di un programma: attività con la quale un elaboratore esegue una dopo l'altra le istruzioni di un programma per produrre i risultati per cui è stato progettato. Firmware: livello di astrazione dell'architettura di un elaboratore che si pone tra l'hardware e il software; essenzialmente è costituito da programmi le cui istruzioni sono codificate nei circuiti hardware. General purpose: termine utilizzato per indicare l'uso non predeterminato di un elaboratore. Un computer general purpose è un computer progettato per poter potenzialmente svolgere, con l'opportuno software, qualsiasi compito realizzabile da una macchina. Al contrario, un computer dedicato è un computer progettato per svolgere uno specifico compito. Hardware: insieme dei componenti elettronici che costituiscono la struttura fisica di un elaboratore. Input: insieme dei dati a partire dai quali un programma effettua le proprie elaborazioni per produrre un risultato (output). 7

Interfaccia: dispositivo o sistema interposto fra altri due dispositivi o sistemi al fine di consentirne l'interazione; per estensione indica i programmi o le parti di programma e le relative regole operative destinati a consentire l'interazione fra programmi e sistemi diversi. Interoperabilità: capacità di due dispositivi e, per estensione, di due programmi o parti di programma di operare in rapporto di cooperazione, soprattutto per quanto riguarda lo scambio di dati di ingresso e/o di uscita. Linguaggio di programmazione: linguaggio artificiale costituito da un insieme di termini (istruzioni e costrutti) e da ben definite regole sintattiche e semantiche che consentono ad un essere umano di comunicare con un elaboratore tramite la realizzazione di programmi. E' possibile distinguere linguaggi di programmazione di vari livelli a seconda di quanto siano vicini al modo di comunicare prettamente umano; quindi un linguaggio di programmazione ad alto livello è un linguaggio molto vicino al linguaggio umano (linguaggio naturale), mentre un linguaggio di programmazione di basso livello è un linguaggio le cui regole sono molto lontane dal linguaggio umano ma molto vicine alla codifica direttamente interpretabile dall'elaboratore (linguaggio macchina). Esempi di linguaggi di programmazione di alto livello sono il Pascal, il COBOL, l'ada; un esempio di linguaggio di programmazione di medio livello è il C, mentre i linguaggi di programmazione di basso livello sono i vari Assembler le cui regole sono dipendenti dal particolare calcolatore. Linguaggio macchina: linguaggio di programmazione costituito da codici direttamente interpretabili ed eseguibili da parte dell'elaboratore senza necessità di alcuna traduzione. Macchina virtuale: astrazione generata da un software che consente di considerare l'insieme formato da uno specifico programma e da un elaboratore general purpose come se fosse un elaboratore dedicato, cioè un elaboratore progettato per uno specifico scopo. Multimedialità: Insieme delle tecniche per la gestione integrata delle informazioni di natura differente (testo, video, immagini, audio, ecc.). Output: insieme dei risultati derivati dall'elaborazione dei dati di input da parte di un programma. 8

Pacchetto applicativo: gruppi di programmi preparati per risolvere un determinato insieme di problemi dell'utente medio, in contrapposizione ai programmi personalizzati, realizzati sulle specifiche richieste di un utente. Package: vedi Pacchetto applicativo. Programma: sequenza di istruzioni in un dato linguaggio di programmazione che descrive un algoritmo per la soluzione di un problema da parte di un elaboratore. Programma eseguibile: programma destinato direttamente all'esecuzione da parte dell'elaboratore in quanto costituito da istruzioni in linguaggio macchina, cioè sequenze di codici interpretabili direttamente dall'elaboratore. Generalmente un programma eseguibile è il risultato della traduzione di un programma sorgente effettuata automaticamente da un particolare software detto compilatore. Programma oggetto: forma impropria ma comune per indicare un programma eseguibile. Programma sorgente: programma scritto in un linguaggio di alto o medio livello che necessita di una fase di traduzione (interpretazione o compilazione) per poter essere eseguito dall'elaboratore. Reverse engineering: denominazione generale di tutte le attività che, a partire da un determinato prodotto (compreso un programma per elaboratore), mirano ad identificare i principi, le leggi e le idee poste alla base dello stesso. Viene di solito intrapreso al fine di riprodurre il prodotto, ovvero di poter sviluppare una variante o un perfezionamento dello stesso. Nel caso di programmi per elaboratore, le attività di reverse engineering comprendono di solito anche attività di decompilazione. Sistema operativo: programma (o insieme di programmi) di base di un elaboratore che controlla le risorse fisiche (hardware) e logiche (strutture dati, software) regolando lo svolgimento delle operazioni elementari (caricamento dei programmi, ingresso dati, emissione dei risultati, gestione dell'hardware, ecc.) inerenti all'esecuzione di altri programmi applicativi o programmi utente. Software: insieme dei programmi che regolano il funzionamento di un elaboratore e l'elaborazione dei dati. Al contrario dell'hardware, costituito dagli elementi fisici che costituiscono l'elaboratore, il software è costituito da un 9

insieme di segnali binari memorizzati su supporti di varia natura (magnetici, ottici). Software applicativo: insieme dei programmi il cui compito è quello di risolvere specifici problemi dell'utente, come ad esempio l'elaborazione di dati contabili, l'elaborazione di immagini, ecc. Il software applicativo ha bisogno della presenza del software di base per poter essere operativo. Software di base: insieme dei programmi il cui compito è quello di gestire l'hardware e rendere operativo ed efficiente un elaboratore. Tipico software di base è il sistema operativo, senza il quale un elaboratore risulterebbe inutilizzabile. Software house: azienda che sviluppa software su commissione o per il mercato. 10

PROGRAMMARE AI TEMPI DEL DIRITTO LA TUTELA GIURIDICA DEI PROGRAMMI PER ELABORATORE IN EUROPA E NEGLI STATI UNITI D AMERICA

1 NOZIONI GENERALI Prima di affrontare le problematiche legate alla tutela giuridica del software è opportuno fornire alcune informazioni preliminari sia per chiarire concetti che, sebbene siano ormai divenuti di uso abbastanza comune, spesso vengono fraintesi o sono poco chiari, sia per fissare una terminologia che verrà utilizzata nel resto del presente lavoro. Con il termine software si individua, in via esemplificativa, l insieme delle istruzioni impartite agli elaboratori elettronici attraverso specifiche modalità e in un linguaggio ad essi comprensibile, al fine di ottenere l espletamento di determinate performance. In tale ottica, si suole rilevare che, nell ambito dei sistemi elaborativi, se l hardware costituisce la componente meccanica, la struttura rigida 1, il software si pone come il cuore pulsante, dal quale dira- 1 Un sistema di elaborazione, chiamato comunemente computer o elaboratore o calcolatore, è essenzialmente costituito da due componenti: l hardware e il software. L hardware costituisce la parte fisica dell elaboratore, cioè l insieme dei suoi componenti elettronici e meccanici. La struttura tipica di un computer prevede la presenza di un processore, una memoria e un insieme di unità periferiche. Il processore è il cuore dell elaboratore, è la componente elettronica in grado di eseguire le istruzioni: è come il motore per un automobile. La memoria contiene le informazioni che saranno elaborate dal processore; in particolare contiene le istruzioni che saranno eseguite dal processore (programmi) e i dati su cui lavoreranno i programmi stessi. Si possono distinguere due tipi di memoria: la memoria volatile e la memoria stabile. La memoria volatile o RAM (Random Access Memory) è in grado di contenere informazioni finché il computer è alimentato elettricamente; non appena il computer viene spento tutte le informazioni in essa contenute vengono perdute. Tuttavia le operazioni di accesso alle informazioni contenute nella RAM sono velocissime (generalmente dell ordine dei milionesimi di secondo). La memoria stabile, detta anche memoria di massa, è in grado di contenere informazioni anche se il computer non è attivo: essa è rappresentata dai supporti magnetici di memorizzazione come i floppy disk, gli hard disk, i nastri. Mentre la memoria volatile e quella stabile sono generalmente utilizzabili sia per leggere che scrivere dati, esiste anche un tipo di memoria utilizzabile soltanto per operazioni di lettura: questo tipo di memoria è detta ROM (Read Only Memory) e di solito contiene informazioni relative all hardware e programmi che interagiscono direttamente con l hardware (firmware). Infine le unità periferiche o dispositivi consentono al computer di comunicare con il mondo esterno sia per ricevere dati (unità o dispositivi di input) sia per inviare i risultati delle elaborazioni (unità o dispositivi di output). Esempi di dispositivi di input sono la tastiera, il mouse, lo scanner, mentre esempi di dispositivi di output sono il monitor, la stampante, il plotter. Esistono anche dispositivi di input/output, cioè che consentono al computer sia di ricevere dati che di inviarli all esterno, come ad esempio il modem. 13

mano gli input destinati a governare il funzionamento del computer. Le istruzioni del software possono essere intese a fornire agli elaboratori il bagaglio di nozioni e di dati loro necessari per funzionare, ovvero a consentire al computer di compiere particolari operazioni, dirette al perseguimento di determinati risultati. Nella prima ipotesi si può dire che il software alfabetizzi la macchina, mettendola in condizione di recepire, comprendere ed eseguire ulteriori istruzioni: si parla, in tal senso, di software di base o operativo, e cioè di una componente imprescindibile di ogni sistema informatico, che risiede stabilmente nella memoria del computer. Nella seconda ipotesi, invece, il software tende ad orientare l azione dell elaboratore verso obiettivi mirati: si pensi, ad esempio, ai programmi relativi alla gestione della contabilità. Il software, nella fattispecie, si definisce applicativo. In particolare, il software di base è costituito dall insieme dei programmi il cui scopo è quello di rendere operativo il computer, cioè di metterlo in grado di eseguire programmi per risolvere i problemi dell utente. Tipici esempi di software di base sono i sistemi operativi, insiemi di programmi che gestiscono l hardware e forniscono un supporto per l esecuzione di programmi che risolvono particolari problemi dell utente. Il software di base è strettamente legato alle caratteristiche dell hardware di ciascun computer per cui non è necessario che l utente ne conosca i dettagli tecnici. Tra i sistemi operativi più diffusi ricordiamo il DOS, Unix, Windows, OS/2. Il software applicativo è costituito dall insieme dei programmi che risolvono determinati problemi dell utente. Esempi di software applicativi sono i programmi di contabilità, i programmi di videoscrittura, i programmi di elaborazione grafica, ecc. È essenziale che il software applicativo interagisca con il software di base per poter funzionare. Esso inoltre può essere suddiviso in software personalizzato, cioè realizzato appositamente in base alle richieste di un singolo utente, e software standard o package, cioè software realizzato per risolvere una gamma di problemi abbastanza comuni e pertanto diretto a più utenti. Sia il software di base che il software applicativo per poter essere eseguiti devono essere caricati nella RAM (Random access memory 2 ). Generalmente 2 La RAM, acronimo di Random Access Memory, è il supporto di memoria su cui è possibile leggere e scrivere informazioni con un accesso casuale, ovvero senza dover rispettare un determinato ordine, come ad esempio avviene per un nastro magnetico. Una caratteristica distintiva della RAM consiste nella possibilità di leggere da e in memoria, in modo semplice e rapido. Termine correntemente attribuito a supporti di memoria a stato solido facenti parte dell hardware installato su un computer. L uso della memoria RAM è comune a tutte le archittetture hardware, sia monoprocessore che multiprocessore e costituisce la memoria primaria dell elaboratore. A seconda dall architettura usata, la CPU può accedere direttamen- 14