13. Implementazione. Un buon codice è ben strutturato

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "13. Implementazione. Un buon codice è ben strutturato"

Transcript

1 13. Implementazione Significa tradurre la progettazione in codice scritto in un particolare linguaggio di programmazione Due scelte fondamentali: scelta del paradigma di programmazione (imperativo, funzionale, logico, ad oggetti, visuale, ecc.) e dello specifico linguaggio di programmazione (C, ML, Prolog, java, VisualBasic, ) scelta dell ambiente di sviluppo : editor, compilatore, debugger, linker, ecc. (es. CodeWarrior, Visual C++,...) 1 Un buon codice è ben strutturato in diversi moduli e interfacce gerarchia dei moduli all interno del singolo modulo: astrazione procedurale all interno della singola procedura: no sequenze di istruzioni condizionali innestate ma comando switch / array di procedure no valori numerici distribuiti nel codice ma uso di costanti no variabili globali nelle procedure ma passaggio esplicito dei parametri 2

2 Un buon codice è ben leggibile Stile di programmazione conforme alle convenzioni del linguaggio (indentazione) Raggruppare la dichiarazioni nelle interfacce Usare nomi significativi per gli indentificatori (di tipo, di variabile, di costante, di procedura, ecc.) Usare gli stessi criteri con cui si valuta la leggibilità di documento scritto (es. la pagina di una rivista ) 3 Un buon codice è ben documentato Specificare ogni procedura: pre e post-condizioni e modalità di utilizzo Commentare puntualmente i punti critici (algoritmi e strutture dati) Isolare chiaramente le parti obsolete e i comandi per il debugging Usare strumenti per fare della documentazione un deliverable che accompagna il codice (es. javadoc) 4

3 La gestione delle configurazioni Come tenere tutte le informazioni e i prodotti relativi a un progetto in uno stato consistente? 5 Problemi tipici nel processo di sviluppo Cambiamento, ad esempio per eliminare un anomalia nel codice modificare tutti i conf. item che sono toccati dalla modifica Accesso concorrente allo stesso componente allo stesso tempo Doppia manutenzione Copie locali (ovvero conflitti di aggiornamento) 6

4 Doppia manutenzione In molte organizzazioni, il codice riutilizzabile viene ricopiato, modificato e/o arricchito in modo da costituire nuovi programmi. due (o più) prodotti condividono alcuni moduli e lo fanno mantenendo copie separate dei medesimi 7 Doppia manutenzione Mancato aggiornamento di una (o più) delle copie esistenti Se la parte di codice ricopiata conteneva degli errori e non si è tenuta traccia di tutte le copie prodotte, che succede quando si manifesta un malfunzionamento in uno specifico programma? dove si trovano tutte le istanze di codice generate a partire dal medesimo sorgente iniziale? 8

5 Come evitare i disallineamenti? Creare un magazzino (repository) condiviso Fare copie locali ogni volta che serve un modulo Spesso si tende a scomporre il programma in via di sviluppo in moduli indipendenti. Si impone che ciascun programmatore possa operare solo su una copia di un modulo, ricavata da un repository centralizzato e condiviso. Una volta che la correzione è stata completata e certificata, si ricopia nel repository la versione aggiornata del modulo in oggetto. 9 Repository comuni e spazio di lavoro privato 10

6 Accesso concorrente Nel caso di accesso in parallelo ad uno stesso modulo da parte di diversi programmatori attraverso il meccanismo delle copie locali, può accadere che vengano perse alcune delle modifiche apportate. 11 Baseline La versione ufficiale di un insieme completo di documenti che fanno riferimento a un progetto E` la base dati che contiene tutti i documenti approvati I componenti sono configuration item 12

7 Baseline (definizioni possibili) Insiemi consistenti di (versioni di) elementi, fotografati in un determinato istante di tempo una specifica o un prodotto che sono stati sottoposti a review formale e hanno ricevuto l approvazione da parte del manager responsabile, che sono utilizzati come base per lo sviluppo successivo, e che possono essere modificati solo utilizzando procedure formalizzate per il controllo dei cambiamenti [IEEE] 13 Baseline 14

8 Configuration Item E` considerato come elemento unitario ai fini della gestione delle configurazioni modulo sorgente modulo oggetto specifica dei requisiti specifica di progetto piano di test casi di test manuale utente 15 Esempio di Baseline Contiene specifica dei requisiti documenti di progetto codice tests relativi a un certo progetto 16

9 Un possibile schema Baseline memorizzata in DB Inserimento e modifica richiedono autorizzazione (per sistemi complessi, CCB--Change Control Board) A livello minimale: Lock in modifica di elementi che si stanno cambiando Accesso concorrente in lettura 17 Versione e Revisione di Componenti Tenere le vecchie versioni (potrebbero essere usate da altri) X.1 X.2 X.3 X.4 X.2.1 X.2.2 TOOLS Memorizzazione dei delta Gestione automatica di lock-unlock Numerazione automatica versioni/revisioni X

10 Memorizzazione delle versioni 19 Paradigma check-in check-out Check-out preleva una copia di una versione di un modulo da un repository e la deposita nello spazio di lavoro criteri per la selezione della versione (ultima, x.y, data, ) possibilità di porre o meno un lock sulla specifica versione (lock = modifica possibile o meno) Modifica della copia nello spazio di lavoro (isolamento) Check-in deposita una nuova versione di un modulo nel repository (se consentito, se presente lock, ) criteri per stabilire identificatore nuova versione (vecchia +1, manualmente, regole, ) Possibile una stretta serializzazione del lavoro (single writer, multiple readers) 20

11 Essempio check-out / check-in 21 Paradigma lock-modify-unlock Lock esclusivo: al momento del check-out viene posto un lock sul file non è ammesso il check-out di file su cui è già posto un lock solo un programmatore per volta può modificare il file il lock viene automaticamente rilasciato al momento del check-in del file Reserved/unreserved check-out reserved: chi ha operato il check-out del file sarà il primo a poterne fare il check-in unreserved: non c è garanzia che chi ha operato il check-out del file sia il primo a poterne fare il check-in dello stesso file possono esserci contemporaneamente più unreserved check-out ma un solo reserved check-out un reserved check-out può essere cancellato o rilasciato (diventando unreserved) 22

12 Paradigma copy-modify-merge non esiste il concetto di lock chiunque può effettuare il check-out di un file al momento del check-in, il tool di CM controlla se nel frattempo qualcuno ha già effettuato un check-in dello stesso file se così è, il programmatore che sta tentando il checkin viene obbligato a effettuare prima un merge (che consiste nell aggiornare la propria copia del file importando le modifiche effettuate da terzi) l operazione di merge è supportata dal tool di CM (es. file di testo); se fallisce, il sistema evidenzia i conflitti e invita il programmatore a risolverli manualmente prima del check-in 23 Gli strumenti di supporto MAKE descrive un insieme di componenti e le mutue dipendenze MAKE usa la data dell ultima modifica per capire chi deve essere ricompilato in modo da mantenere tutto consistente SCCS, RCS gestione delle versioni e delle revisioni 24

13 Sistemi per il controllo delle versioni: SCSS / RCS sccs admin -i -nfile file ci file Checks in the file for the first time, creating the revision history file. sccs get file co file Check out a file for reading. sccs edit file co -l file Check out a file for modification. sccs delta file ci file Check in a file previously locked. what file ident file Print keyword information. sccs prs file rlog file Print a history of the file. sccs sccsdiff -rx -ry file rcsdiff -rx -ry file Compare two revisions. sccs diffs file rcsdiff file Compare current with last revision. sccs edit -ix-y file rcsmerge -rx-y file Merge changes between two versions into file.??? rcs -l file Lock the latest revision.??? rcs -u file Unlock the latest revision. 25 CVS e Peerversy CVS E` uno strumento per la gestione delle configurazioni di tipo free e open source Tutti i file soggetti al CM stanno in un "repository" Possibili multipli checkout Se si si fa checkin dello stesso file modificato da piu` utenti viene fatto (se possibile) un "merge Peerversy Funziona in modalità peer to peer Non esiste un repository condiviso I repository di tutti gli utenti vengono sincronizzati quando possibile 26

14 Domande ed esercizi In che cosa consiste l attività di gestione delle configurazioni? Che cos è un configuration item? Che cos è un delta? Che vantaggi e svantaggi esistono nella memorizzazione di un delta rispetto alla memorizzazione completa di una versione? 27

Gestione della Configurazione. Porfirio Tramontana - Ingegneria del Software Gestione della Configurazione 1

Gestione della Configurazione. Porfirio Tramontana - Ingegneria del Software Gestione della Configurazione 1 Gestione della Configurazione Porfirio Tramontana - Ingegneria del Software Gestione della Configurazione 1 Riferimenti Sommerville, Capitolo 29 G.A. Di Lucca, Slide del corso di Gestione dei Sistemi Software,

Dettagli

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3

Dettagli

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

la traduzione dei programmi ed introduzione a Java

la traduzione dei programmi ed introduzione a Java la traduzione dei programmi ed introduzione a Java programmi descrizioni di algoritmi effettuate tramite linguaggi di programmazione lo stesso algoritmo, fissato un linguaggio di programmazione, può essere

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Basi di Dati. Concetti e Principi Generali. Maria Mirto

Basi di Dati. Concetti e Principi Generali. Maria Mirto Basi di Dati Concetti e Principi Generali Maria Mirto Organizzazione dei Dati Archivi o file Procedure di accesso in qualunque linguaggio di programmazione Duplicazione dati: ridondanza incoerenza formati

Dettagli

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono

Dettagli

Fondamenti VBA. Che cos è VBA

Fondamenti VBA. Che cos è VBA Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Parte 2 Linguaggi di programmazione Livello di Astrazione per la Codifica di un Algoritmo Si può risolvere un problema senza prima fissare un insieme di azioni, di mosse elementari possibili per l elaboratore?

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C

Dettagli

GESTIONE E CONTROLLO DEI DOCUMENTI E DELLE REGISTRAZIONI

GESTIONE E CONTROLLO DEI DOCUMENTI E DELLE REGISTRAZIONI PER LA QUALITA 04 03.01.2009 1 6 GESTIONE E CONTROLLO DEI DOCUMENTI E DELLE REGISTRAZIONI 1. Scopo 2. Generalità 3. Identificazione 4. Emissione 5. Distribuzione 6. Archiviazione 7. Modifica 8. Controllo

Dettagli

Installazioni preliminari

Installazioni preliminari Installazioni preliminari È uscita la versione 6u23 dell SDK. Disponibile a: http://www.java.com/en/download/index.jsp Per installare Eclipse invece andare su: http://www.eclipse.org Stile Sono elementi

Dettagli

Configuration Change Release Management

Configuration Change Release Management Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A6_3 V1.0 Configuration Change Release Management Il contenuto del documento

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Software testing. Lezione 8 Configuration Management Federica Spiga federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Spiga

Software testing. Lezione 8 Configuration Management Federica Spiga federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Spiga 1 Software testing Lezione 8 Configuration Management Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: F.Spiga 2 Configuration Management Attività ausiliaria che abbraccia tutto il processo

Dettagli

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di

Dettagli

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Cosa è un programma. Informatica di Base -- R.Gaeta 18 Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer

Dettagli

Anno Accademico Laboratorio di Tecnologie Web Uso di Firebug

Anno Accademico Laboratorio di Tecnologie Web Uso di Firebug Universita degli Studi di Bologna Facolta di Ingegneria Anno Accademico 2008-2009 Laboratorio di Tecnologie Web Uso di Firebug http://www-lia.deis.unibo.it/courses/tecnologieweb0809 Estensione del browser

Dettagli

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2

Dettagli

:33 Pagina V. Indice. Introduzione

:33 Pagina V. Indice. Introduzione 00 20-09-2004 16:33 Pagina V Indice Introduzione XIII Capitolo 1 Gestione dei dati 1 1.1 Gli elenchi 1 Progettazione di un elenco 2 Inserimento dei dati nell elenco 3 1.2 Filtro di elenchi 5 Il filtro

Dettagli

Makefile. Il file dependency system di Unix (serve ad automatizzare il corretto aggiornamento di più file che hanno delle dipendenze)

Makefile. Il file dependency system di Unix (serve ad automatizzare il corretto aggiornamento di più file che hanno delle dipendenze) Makefile Il file dependency system di Unix (serve ad automatizzare il corretto aggiornamento di più file che hanno delle dipendenze) 1 makefile: idea di fondo (1) Permette di esprimere dipendenze fra file

Dettagli

I Linguaggi di Programmazione

I Linguaggi di Programmazione I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico NetBeans Dott. Ing. Rossella Rubino rossella.rubino@unibo.it A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico Software necessario J2SE(TM) Development Kit (JDK) http://java.sun.com/javase/downloads/index.jsp

Dettagli

Tema Di Progetto 1 Descrizione

Tema Di Progetto 1 Descrizione Tema Di Progetto 1 Descrizione Acquisto On Line Applicazione Web-based per la simulazione di un flusso di acquisto di un prodotto on-line. Deve essere generata una (o più) pagine di catalogo con contenuto

Dettagli

Algoritmi e Linguaggi

Algoritmi e Linguaggi Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e

Dettagli

Sistema operativo & file system 1

Sistema operativo & file system 1 Il software (sw) Software di sistema e file system Lezione 1b L esecuzione di programmi è lo scopo di un elaboratore I programmi sono algoritmi codificati in un particolare linguaggio di programmazione

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Modelli di programmazione parallela

Modelli di programmazione parallela Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici

Dettagli

Linguaggi di programmazione e astrazione

Linguaggi di programmazione e astrazione Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

Ciclo di vita per lo sviluppo di software sicuro

Ciclo di vita per lo sviluppo di software sicuro Ciclo di vita per lo sviluppo di software sicuro (a cura di Roberto Ugolini Postecom Spa) Security Service Unit Documento pubblico Le motivazioni del cambiamento 1/3 2 Aumentare il livello di sicurezza

Dettagli

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile. Liceo Scientifico Vinci PROGRAMMA FINALE A.S. 2016/2017 Materia: INFORMATICA Classe 1Q Prof. Dardanelli Francesco PROGRAMMA SVOLTO NELL ANNO SCOLASTICO IL COMPUTER. Hardware e software. Il computer. Il

Dettagli

LA CODIFICA DELLE INFORMAZIONI

LA CODIFICA DELLE INFORMAZIONI LA CODIFICA DELLE INFORMAZIONI Linguaggio Elaborazione delle informazioni: operazioni che possono essere effettuate sulle informazioni: inserimento, archiviazione, modifica, ordinamento, calcolo, ecc.

Dettagli

ARCHITETTURA DI UN DBMS

ARCHITETTURA DI UN DBMS ARCHITETTURA DI UN DBMS Modelli di dati Un approccio con basi di dati fornisce un certo livello di astrazione dei dati Nasconde i dettagli sulla memorizzazione dei dati stessi Un modello dei dati fornisce

Dettagli

Le direttive del Preprocessore

Le direttive del Preprocessore Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza

Dettagli

Traduzione e interpretazione

Traduzione e interpretazione Traduzione e interpretazione Parte dei lucidi sono stati gentilmente forniti dal Prof. Salza VII.1 Linguaggi di programmazione Linguaggi ad alto livello Maggiore espressività Maggiore produttività Migliore

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

COSTRUZIONE DI UN APPLICAZIONE

COSTRUZIONE DI UN APPLICAZIONE COSTRUZIONE DI UN APPLICAZIONE Per costruire un applicazione occorre: compilare il file (o i file se più d uno) che contengono il testo del programma (file sorgente) Il risultato sono uno o più file oggetto.

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di

Dettagli

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Introduzione. Sommario. Il software. Definizione di Ingegneria del software Sommario Introduzione Leggere Cap. 1 Ghezzi et al. Definizione Nascita dell ingegneria del software Ruolo Relazione con altre discipline Introduzione 2 Il software Il software e` definito come: i programmi,

Dettagli

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI

Dettagli

Linea di comando. Compilazione. Aprire una shell di DOS tramite:

Linea di comando. Compilazione. Aprire una shell di DOS tramite: Linea di comando Aprire una shell di DOS tramite: Start MS VisualStudio 2005 Visual Studio Tools E una normale shell di DOS con aggiunte al path ed alle variabili d ambiented Digitare cl /? per vedere

Dettagli

Tipi di Dati Astratti

Tipi di Dati Astratti Tipi di Dati Astratti April 19, 2017 Dati e Tipi di Dato Tipo di dato: concetto di alto livello Macchina fisica: unico tipo di dato sequenze di bit Macchine Astratte: tipi di dato più complessi Tipo di

Dettagli

Introduzione alla Programmazione. Giselda De Vita

Introduzione alla Programmazione. Giselda De Vita Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:

Dettagli

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

Dettagli

Prefazione... xi. Da leggere prima di iniziare...xiv. Capitolo 1 Introduzione a JavaScript Sezione A Programmazione, HTML e JavaScript...

Prefazione... xi. Da leggere prima di iniziare...xiv. Capitolo 1 Introduzione a JavaScript Sezione A Programmazione, HTML e JavaScript... SOMMARIO Prefazione... xi Panoramica del libro... xi Caratteristiche distintive...xii Aspetti qualificanti del libro...xii Browser Web da usare... xiii Ringraziamenti... xiii Da leggere prima di iniziare...xiv

Dettagli

CORSO ACCESS PARTE IV

CORSO ACCESS PARTE IV Creazione di un database / gestione tabelle Per creare un nuovo database Menu File Selezionare Nuovo Scegliere Database vuoto nella scheda Generale e confermare con Ok Impostare il nome e il percorso nella

Dettagli

Lezione 16. Il Software di base

Lezione 16. Il Software di base Lezione 16 Software di base Il Software di base Con il termine software di base si intende l insieme dei programmai che consentono ad un utente di eseguire operazioni base come costruire e mandare in esecuzione

Dettagli

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica

Dettagli

MyMax PROCEDURA QUALITA Gestione Documenti PQ05a Ed. 0 Rev. 5 Pag. 1 di 8

MyMax PROCEDURA QUALITA Gestione Documenti PQ05a Ed. 0 Rev. 5 Pag. 1 di 8 Immagine TIPO_DOC_01 MyMax PQ05a Ed. 0 Rev. 5 Pag. 1 di 8 1.0 Scopo e campo di applicazione La procedura definisce la gestione dei documenti rilevanti utilizzati per la gestione aziendale. Il Responsabile

Dettagli

Strategie di programmazione

Strategie di programmazione Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica: Convenzioni di Stile versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi

Metodologie di Programmazione. ovvero, Principi e Tecniche per la costruzione di programmi Metodologie di Programmazione ovvero, Principi e Tecniche per la costruzione di programmi 1 In questo corso Sviluppo in piccolo: Tempi: mesi/uomo v.s. anni/uomo Strumenti: personal v.s. professional Programmazione

Dettagli

Cos è la programmazione?

Cos è la programmazione? La programmazione Cos è la programmazione? Termine usato per indicare le attività che trasformano l esigenza di risolvere un Problema in un Programma, inteso come sistema informatico capace di risolvere

Dettagli

Modularizzazione del software

Modularizzazione del software Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica

Dettagli

FlexCMP La piattaforma accessibile per il web 2.0

FlexCMP La piattaforma accessibile per il web 2.0 Manuale Utente FlexCMP La piattaforma accessibile per il web 2.0 FlexCMP è un prodotto di: Idea Futura S.R.L. Via Toscanini 7/2 40055 Castenaso (BO) - Italy Tel.: +39 051 780630 http://www.ideafutura.com

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni IIndice Capitolo 1 Da dove partiamo: pagine web statiche 1 1.1 Principi di base.............................. 1 1.1.1 Il paradigma client-server.................... 1 1.1.2 Ipertesto, multimedia, ipermedia................

Dettagli

Mettere il database sotto source control. Alessandro Alpi sux.stellino@gmail.com twitter.com/@suxstellino www.alessandroalpi.net

Mettere il database sotto source control. Alessandro Alpi sux.stellino@gmail.com twitter.com/@suxstellino www.alessandroalpi.net Mettere il database sotto source control Alessandro Alpi sux.stellino@gmail.com twitter.com/@suxstellino www.alessandroalpi.net Alessandro Alpi SQL Server MVP dal 2008 Microsoft Certified Blogs: [Eng]

Dettagli

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1 Concetti base della Tecnologia dell informazione Algoritmi Come interpreta un computer un problema? Algoritmi Algoritmo: sequenza ordinata di istruzioni per risolvere un problema (tradotto: sequenza di

Dettagli

AMBIENTI DI PROGRAMMAZIONE

AMBIENTI DI PROGRAMMAZIONE AMBIENTI DI PROGRAMMAZIONE È l'insieme dei programmi che consentono la scrittura, la verifica e l'esecuzione di nuovi programmi (fasi di sviluppo) Sviluppo di un programma Affinché un programma scritto

Dettagli

Sommario PREFAZIONE... XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLE APPLICAZIONI JAVA...

Sommario PREFAZIONE... XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLE APPLICAZIONI JAVA... Sommario PREFAZIONE... XI Lo scopo di questo libro... xi La metodologia di insegnamento... xiii L apprendimento attraverso il codice... xiii La programmazione orientata agli oggetti... xiii L accesso al

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Programmare in C 1 Calcolare l area di un rettangolo /* Calcolo area rettangolo */ int base; int altezza; int area; Conosciamo base = 3; altezza = 7; area = base*altezza; printf("%d",

Dettagli

Cenni sul preprocessore e il suo utilizzo

Cenni sul preprocessore e il suo utilizzo Alessio Bechini - Corso di - Cenni sul preprocessore e il suo utilizzo Il preprocessore: cenni Il preprocessore Storicamente, i compilatori C operavano con passaggi multipli. Il primo passaggio eseguiva

Dettagli

CORSO DI LINGUAGGI DI PROGRAMMAZIONE Progetto A.A. 2008/2009

CORSO DI LINGUAGGI DI PROGRAMMAZIONE Progetto A.A. 2008/2009 CORSO DI LINGUAGGI DI PROGRAMMAZIONE Progetto A.A. 2008/2009 Alberto Ceselli Maggio 2009 Tantrix Puzzles Tantrix è un board game ideato in Nuova Zelanda tra la fine degli anni ottanta e la prima metà degli

Dettagli

Oggetto Progetto Responsabile di progetto GESTIONE DELLA MODIFICA

Oggetto Progetto Responsabile di progetto GESTIONE DELLA MODIFICA DIREZIONE EMITTENTE Oggetto Progetto Responsabile di progetto GESTIONE DELLA MODIFICA RICHIESTA DI MODIFICA Cliente richiedente Documento di riferimento (eventuale) Data della richiesta Data di scadenza

Dettagli

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 07 Traduzione ed esecuzione di programmi Carla Limongelli Ottobre 2011 Traduzione ed esecuzione di programmi 1 Prerequisiti Architettura

Dettagli

Capitolo 4: Tabelle. y(x) = x 3 ì 2x. Capitolo 4: Tabelle 67. Nota: le tabelle non sono disponibili nel modo di rappresentazione grafica 3D.

Capitolo 4: Tabelle. y(x) = x 3 ì 2x. Capitolo 4: Tabelle 67. Nota: le tabelle non sono disponibili nel modo di rappresentazione grafica 3D. Capitolo 4: Tabelle 4 Definizione di tabelle...68 Panoramica della procedura per generare una tabella...69 Impostazione dei parametri di tabella...70 Visualizzazione di una tabella in modo automatico...72

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Versione 3.0. a cura di Claudia Cavicchi Biblioteca Clinica F.Bianchi Università di Bologna

Versione 3.0. a cura di Claudia Cavicchi Biblioteca Clinica F.Bianchi Università di Bologna Versione 3.0 a cura di Claudia Cavicchi Biblioteca Clinica F.Bianchi Università di Bologna claudia.cavicchi@unibo.it 1 Cos è? E un software gratuito, sviluppato dal Center for History and New Media della

Dettagli

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1 Data: 12-10-2016 Pag: 8 10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1 1. Definizioni a) Linguaggi Naturali = i linguaggi degli esseri umani Lessico = le parole che si usano Sintassi = le regole con cui si

Dettagli

Sommario. Introduzione... 13

Sommario. Introduzione... 13 Sommario Introduzione... 13 1. Database pro e contro... 19 A cosa serve conoscere i database?...19 Le alternative alla gestione manuale...22 Quando non serve un database?...24 Domande ed esercizi...26

Dettagli

perror: individuare l errore quando una system call restituisce -1

perror: individuare l errore quando una system call restituisce -1 perror: individuare l errore quando una system call restituisce -1 Quando una system call (o una funzione di libreria) non va a buon fine, restituisce come valore -1 Come si fa a sapere più precisamente

Dettagli

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati MODELLI DEI DATI Prof. Alberto Postiglione

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Strutture dati nel supporto a run time

Strutture dati nel supporto a run time Strutture dati nel supporto a run time 1 Entità presenti quando un programma va in esecuzione programmi d utente (compilati) routines del supporto interprete I/O, librerie, routines per la gestione delle

Dettagli

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS INFORMATICA GENERALE DBMS: Introduzione alla gestione dei dati Bibliografia 4 ott 2011 Dia 2 Curtin, Foley, Sen, Morin Vecchie edizioni: 8.4, 8.5, 8.6, 8.7, 8.8 Edizione dalla IV in poi: 6.5, 21.1, 19.4,

Dettagli

Client - Interfaccia - Implementazione

Client - Interfaccia - Implementazione Client - Interfaccia - Implementazione Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) gianfranco.rossi@unipr.it Indice 1 Introduzione

Dettagli

IDE DevC

IDE DevC IDE DevC++ 4.9.8.1.0 Manuale utente Data ultima revisione: 22/01/2005 Fondamenti di informatica Università Facoltà Corso di laurea Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria

Dettagli

Indice. Introduzione PARTE PRIMA PRELUDIO: SERVIZIO CON SORRISO 1

Indice. Introduzione PARTE PRIMA PRELUDIO: SERVIZIO CON SORRISO 1 Indice Introduzione XIII PARTE PRIMA PRELUDIO: SERVIZIO CON SORRISO 1 Capitolo 1 Creazione di servizi Web 3 1.1 I servizi Web 3 Architetture distribuite basate su componenti 4 Come creare servizi Web 5

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

INTRODUZIONE A VISUAL STUDIO

INTRODUZIONE A VISUAL STUDIO INTRODUZIONE A VISUAL STUDIO Cosa è Visual Studio Visual Studio è un ambiente di sviluppo integrato (Integrated development environment o IDE) Sviluppato da Microsoft Supporta numerosi linguaggi C, C++,

Dettagli

I THREAD O PROCESSI LEGGERI

I THREAD O PROCESSI LEGGERI I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine

Dettagli

Horizone Server IN00B02WEB. Horizone PDK

Horizone Server IN00B02WEB. Horizone PDK Horizone Server IN00B02WEB Horizone PDK Prodotto: -- Descrizione: Horizone PDK - Manuale Utente Data: 10/07/2017 Eelectron Spa IN00B02WEBFI00080102_PDK_MANUAL.DOCX 1/12 Qualsiasi informazione all interno

Dettagli