The quest for secure code
|
|
|
- Andrea Barone
- 10 anni fa
- Просмотров:
Транскрипт
1 The quest for secure code Paolo Perego Owasp 2006 Security consultant Spike Reply 4-7 Ottobre 2006 Copyright The Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the License. The Foundation Agenda Introduzione Cosa devo difendere Application security Come lo difendo Strategie di safe coding Code review Con cosa lo difendo Orizon Milano, 4-7 Ottobre ff 1
2 Introduzione All'interno del ciclo di vita del software non ci sono fasi specifiche per la sicurezza Un errore in fase di design comporta un effort crescente se si interviene in fasi successive del ciclo di vita Il team di sviluppo deve essere supportato durante tutte le fasi della scrittura del codice: Prima Durante Milano, 4-7 Ottobre Introduzione Specializzare le figure e i team all interno del ciclo di vita di un applicazione Introdurre nuove attività a supportare le fasi classiche del ciclo di vita del software Porre il codice in primo piano Un errore a livello applicativo è un rischio Comprare un firewall non mi aiuterà Avere solide fondamenta Investire nelle fase di analisi e di Milano, 4-7 Ottobre 2006 ff 2
3 Agenda Introduzione Cosa devo difendere Application security Come lo difendo Strategie di safe coding Code review Con cosa lo difendo Orizon Milano, 4-7 Ottobre Cosa devo difendere: Application security Application security!= Network security Un firewall non serve a proteggere le mie applicazioni web Sono coinvolte differenti figure: System adminstrator: hardening del sistema operativo e dell'infrastruttura IT Code reviewer: hardening del codice applicativo Sono coinvolte differenti risorse, non ultimo il core business Milano, 4-7 Ottobre ff 3
4 Cosa devo difendere: Application security Il problema della sicurezza applicativa viene sottovalutato: Rifiuto del problema: la mia applicazione è sicura Gli errori a runtime non sono importanti La sicurezza applicativa viene ricondotta all'attività di penetration test Rimediare dopo un penetration test richiede un effort non paragonabile a quello necessario se si fosse intervenuto subito Il pericolo è quello di non risolvere il problema in favore di soluzioni Milano, 4-7 Ottobre Agenda Introduzione Cosa devo difendere Application security Come lo difendo Design applicativo Strategie di safe coding Code review Con cosa lo difendo Orizon Milano, 4-7 Ottobre ff 4
5 Come lo difendo: design applicativo Le prime fasi del ciclo di sviluppo sono critiche Fase di design Input: il dominio applicativo dove si colloca l'applicazione Output: un modello che individui le parti costitutive del dominio applicativo e le loro connessioni Supportare il team di design significa: Verificare l'applicazione dell'imperativo divide et impera Verificare le connessioni tra le varie Milano, 4-7 Ottobre Come lo difendo: design applicativo Le parti del modello vengono tradotte nelle componenti reali Fase architetturale: Input: modello del sistema Output: documento infrastrutturale di architettura Supportare l'architetto significa: Verificare che le componenti del sistema non siano Milano, 4-7 Ottobre ff 5
6 Come lo difendo: safe coding (as usual) un codice al 100% sicuro non esiste Esistono però numerosi modi per renderlo sicuro Guideline da seguire durante lo sviluppo Code defensively Fasi di test rigorose Code review Vulnerability Milano, 4-7 Ottobre 2006 Come lo difendo: safe coding Q: quanto deve essere sicuro il mio codice? A: quanto basta Non devo introdurre meccanismi di protezione che si traducano in una perdita di sicurezza (un sistema troppo complesso di password difficile da seguire per gli utenti) Non devo investire risorse per difendere porzioni di codice non significative o che non trattano dati Milano, 4-7 Ottobre 2006 ff 6
7 Come lo difendo: safe coding (Java version) Evitare le inner class Il compilatore traduce le inner class in classi normali accessibili all interno di un package Una inner class ha visibilità su attributi e metodi dichiarati private dalla outer class Per realizzare questo il compilatore cambia lo scope di questi metodi da private a package Oppure Se proprio devo utilizzare delle inner class fare in modo che siano Milano, 4-7 Ottobre 2006 Come lo difendo: safe coding (Java version) package org.owasp.safecoding; public class OuterClass { private class InnerClass {... DON T package org.owasp.safecoding; public class OuterClass { class InnerClass { Milano, 4-7 Ottobre 2006 ff 7
8 Come lo difendo: safe coding (Java version) Non utilizzare il nome della classe per confrontare due oggetti Più oggetti all interno della JVM possono avere lo stesso nome della classe Oggetti possono essere creati ad hoc con un nome di classe legale per soddisfare i miei controlli di uguaglianza Oppure Confronto gli oggetti direttamente senza basarmi sul nome della Milano, 4-7 Ottobre 2006 Come lo difendo: safe coding (Java version) public boolean issameclass(object o) { Class tc = this.getclass(); Class oc = o.getclass(); return (tc.getname() == oc.getname()); DON T public boolean issameclass(object o) { Class tc = this.getclass(); Class oc = o.getclass(); return (tc == oc); Milano, 4-7 Ottobre 2006 ff 8
9 Come lo difendo: safe coding (Java version) Rendo le mie classi non clonabili Impedisco che un attaccante crei nuove istanze di una classe C1 che ho definito Impedisco che un attaccante crei una sottoclasse C2 di C1 implementando per questa java.lang.clonable Ridefinisco il metodo clone() public final Object clone() throws java.lang.clonenotsupportedexception { throw new Milano, 4-7 Ottobre 2006 Come lo difendo: safe coding (Java version) Rendo le mie classi non serializzabili Impedisco l accesso agli stati interni della mia classe impedendo che vi si acceda attraverso una sequenza raw di byte Ridefinisco il metodo writeobject() Lo dichiaro final per impedire un override private final void writeobject(objectinputoutputstream in) throws java.io.ioexception { throw new java.io.ioexception( My class can t be serialized Milano, 4-7 Ottobre 2006 ff 9
10 Come lo difendo: safe coding (Java version) Non dipendere dallo scope del package Voglio impedire che un attaccante aggiunga una classe al mio package ed acquisisca visibilità su quanto dichiarato private Utilizzo il package sealing racchiudendo il mio package all interno di un sealed JAR Milano, 4-7 Ottobre 2006 Come lo difendo: safe coding (Java version) Non restituire puntatori ad oggetti non dichiarati come final o in alternativa clonare tali oggetti prima di restituirne il puntatore private Date fdate;... public Date getdate() { return fdate; DON T public Date getdate() { return new Milano, 4-7 Ottobre 2006 DO ff 10
11 Come lo difendo: safe coding (Java version) Definire i metodi, gli attributi e le classi come private Esplicito chiaramente gli oggetti che voglio essere visibili all esterno Definire i metodi, gli attributi e le classi come final Impedisco che quanto dichiarato venga esteso da un Milano, 4-7 Ottobre 2006 Code Review Cambiare approccio durante lo sviluppo per aumentare la qualità del codice applicativo sviluppato Defensive programming Extreme programming Agile programming Codice di elevata qualità implica moduli di dimensioni contenute frequenti cicli di test Questi approcci non bastano comunque a garantire che il codice sia conforme a standard di sicurezza Milano, 4-7 Ottobre 2006 ff 11
12 Code Review Revisionare il codice applicativo implica due approcci distinti: Revisione statica Revisione dinamica Entrambi i due approcci sono composti da: Una fase di test automatizzato per evidenziare problemi evidenti oppure imperfezioni nel design dell applicazione e nella connessione tra moduli differenti Una fase di revisione manuale dove utilizzando i risultati della fase precedente per effettuare controlli più affinati sulla semantica e sull ingegnerizzazione del codice Milano, 4-7 Ottobre 2006 Revisione statica Il punto di partenza di una code review è quello di tracciare delle metriche sul codice in esame Queste metriche vengono introdotte da una scienza chiamata Ingegneria del Software La misura della complessità di un modulo software può dare delle informazioni di massima sulla probabilità di errori semantici o di disegno Milano, 4-7 Ottobre 2006 ff 12
13 Revisione statica Alcune metriche utili in questa fase sono: Numero di linee di codice Numero di linee di commento Numero di metodi (per i linguaggio OO) Indice di Complessità ciclomatica (calcola il numero di branch decisionali e istruzioni di loop all interno di un flusso di controllo) Indice di manutenibilità secondo lo standard del Software Engineering Institute (SEI) della Carnegie Mellon University Numero di classi Numero di Milano, 4-7 Ottobre 2006 Revisione statica - tools Effettura una buona fase di Static code review getta le basi per focalizzare l intervento manuale del revisore E possibile automatizzare questa fase di calcolo delle metriche del software attraverso vari strumenti tra i quali: JavaMetrics ( ) SmartBear - CodeReviewer ( M Square Technologies - RMS ( Jupiter Ecplise Plugin ( SSW Code Auditor ( Fortify Milano, 4-7 Ottobre 2006 ff 13
14 Revisione statica Manual review Utilizzando i risultati dei test automatizzati il focus della revisione verrà diretto verso: Le classi che accettano input dall esterno (form html, connessioni ftp,... ) Le classi che producono output (per evitare race condition o DoS verso la memoria di massa disponibile) Le classi con elevato indice di un numero di cicli e costrutti di controllo. Queste classi sono a prima vista più complesse quindi la probabilità di bug che possono portare ad una security issue sono maggiori Le classi con minor numero di commenti. Queste classi probabilmente sono poco manutenute, occorre quindi che siano testate in maniera più Milano, 4-7 Ottobre 2006 Revisione statica Al termine della fase di revisione statica Verranno evidenziate le carenze di disegno e di infrastruttura tra i moduli che compongono l applicazione esaminata Verranno evidenziate le porzioni di codice che sono Difficilmente manutenibili Troppo complesse Ridondanti Verranno proposte delle modifiche da apportare al codice e all infrastruttura per sopperire alle carenze individuate Le modifiche verranno discusse col team di sviluppo in un ottica di confronto costruttivo tra team e Milano, 4-7 Ottobre 2006 ff 14
15 Revisione dinamica Temporalmente si colloca prima e dopo la fase di revisione statica Va eseguita sui singoli moduli di un applicazione seguendo un approccio divide et impera Consiste nell individuare delle precondizioni e delle postcondizioni che un modulo software deve rispettare Scopo della revisione dinamica del codice è Eseguire il modulo software e verificare che quando le precondizioni sono verificate anche le postcondizioni lo sono Eseguire il modulo software e veridicare che quando le precondizioni non sono verificate la situazione di errore viene gestita in maniera Milano, 4-7 Ottobre 2006 Revisione dinamica Occorre individuare in maniera efficace le precondizioni al modulo software da testare; in questo modo so calcolare gli input che non sono attesi Il modulo software deve reagire ad input che violano le precondizioni con comportamenti deterministici e che non minino la sicurezza e la stabilità del modulo La revisione dinamica rappresenta una sorta di test funzionale e di collaudo di un modulo software. Automatizzare questa fase è più complesso Richiede la scrittura di un applicativo di test ad hoc che dipende Dalla tecnologia utilizzata Dal tipo di modulo che si sta Milano, 4-7 Ottobre 2006 ff 15
16 Code Review Combinando un approccio di revisione statica ad un approccio di revisione dinamica Aumentiamo il livello di qualità del codice Miglioriamo l ingegnerizzazione dello stesso Miglioriamo la riusabilità e semplifichiamo il codice dei singoli moduli software Verifichiamo tra due sessione di scrittura del codice che il comportamento del modulo rimane Milano, 4-7 Ottobre Milano, 4-7 Ottobre 2006 ff 16
17 Milano, 4-7 Ottobre 2006 ff 17
Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
Siti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
SPIKE APPLICATION SECURITY: SICUREZZA DIRETTAMENTE ALL INTERNO DEL CICLO DI VITA DEL SOFTWARE
SPIKE APPLICATION SECURITY: SICUREZZA DIRETTAMENTE ALL INTERNO DEL CICLO DI VITA DEL SOFTWARE La sicurezza delle applicazioni web si sposta a un livello più complesso man mano che il Web 2.0 prende piede.
GESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy [email protected] Rudimenti di programmazione Programming
Programmazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP
Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro [email protected] Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate
Oggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
Sistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
Object Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
Esercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi
Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Analisi Giulio Destri Ing. del software: Analisi - 1 Scopo del modulo Definire
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Esercizio 1: trading on-line
Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente
Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.
Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in [email protected] ver 1.0 del 19/03/2013 Nettuno Solutions s.r.l. Viale
Programmazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
Progettazione della componente applicativa
7 Progettazione della componente applicativa In questo capitolo illustreremo la progettazione della componente applicativa di un sistema informativo. La metodologia da noi utilizzata sarà basata sull utilizzo
Guida alla redazione del Fascicolo XBRL
o Europeo 2015 22.2.3 BILANCIO EUROPEO 2015 Guida alla redazione del Fascicolo XBRL Versione 22.2.3 Data Marzo 2015 Sommario GUIDA ALLA REDAZIONE DEL FASCICOLO XBRL parte 1 Premessa o Europeo e la gestione
Inizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
Introduzione alla Virtualizzazione
Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: [email protected] Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse
Protezione. Protezione. Protezione. Obiettivi della protezione
Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in
Corso di Informatica
Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio
Parola chiave extends
Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi
Modulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D
BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare
Test di unità con JUnit4
Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso
Gestione Turni. Introduzione
Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi
Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)
Concetti di base di ingegneria del software
Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza
Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico
Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle
Dispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE
PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007
Progettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
Security by example. Alessandro `jekil` Tanasi [email protected] http://www.lonerunners.net. LUG Trieste. Alessandro Tanasi - alessandro@tanasi.
Security by example Alessandro `jekil` Tanasi [email protected] http://www.lonerunners.net Chi vi parla? Consulente Penetration tester Forenser Sviluppatore di software per il vulnerability assessment
E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools
Una breve introduzione operativa a STGraph Luca Mari, versione 5.3.11 STGraph è un sistema software per creare, modificare ed eseguire modelli di sistemi dinamici descritti secondo l approccio agli stati
Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
MECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza. Roberto Ugolini [email protected]
Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza Roberto Ugolini 1 Il processo di sviluppo sicuro del codice (1/2) Il processo di sviluppo sicuro del codice () è composto
Metodologie di programmazione in Fortran 90
Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di
BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone
BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell
Manuale Utente Amministrazione Trasparente GA
Manuale Utente GA IDENTIFICATIVO DOCUMENTO MU_AMMINISTRAZIONETRASPARENTE-GA_1.0 Versione 1.0 Data edizione 03.05.2013 1 Albo Pretorio On Line TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione
Introduzione alla teoria dei database relazionali. Come progettare un database
Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni
Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni Redatto dalla Commissione per l elettronica, l informatica e la telematica
Abstract Data Type (ADT)
Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo
Java: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
ALF0021M MANUALE UTENTE MODULO "SETUP"
ALF0021M MANUALE UTENTE MODULO "SETUP" ALBOFORNITORI VER. 4.9.1 Revisioni Rev. Versione software Data Descrizione 0 15/11/2010 Prima emissione 1 05/09/2011 Nuovo template 2 4.8.0 22/05/2012 Visibilitá
Proteggiamo il PC con il Firewall di Windows Vista
Proteggiamo il PC con il Firewall di Windows Vista Il momento in cui un computer è più a rischio e soggetto ad attacchi informatici, è quando è connesso a internet. Per proteggere il nostro PC ed evitare
Soluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
Programmazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)
Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se
Manuale Utente Albo Pretorio GA
Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate
Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore
ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013
IPERCA. Il metodo a sei fasi Per gestire con successo progetti, incarichi e situazioni di vita e per accrescere continuamente l esperienza.
PRInCIPI IPERCA Il metodo a sei fasi Per gestire con successo progetti, incarichi e situazioni di vita e per accrescere continuamente l esperienza. 1 Informare Qual è esattamente il mio incarico? 2 Pianificare
Manuale Tecnico Indicazioni tecniche sulle modifiche apportate al Sito WebTelemaco Pratiche
Società Consortile di Informatica delle Camere di Commercio Italiane per azioni Manuale Tecnico Indicazioni tecniche sulle modifiche apportate al Sito WebTelemaco Pratiche Release 2.0 InfoCamere S.c.p.A
Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività
Prerequisiti Mon Ami 000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività L opzione Centri di costo è disponibile per le versioni Contabilità o Azienda Pro. Introduzione
Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
MODULO PER LA GESTIONE DEI RESI
MODULO PER LA GESTIONE DEI RESI Clienti, prodotti, categorie merceologiche e stabilimenti di produzione. Difetti, tipologia difetti, test ed esiti finali di verifica. Raggruppamento dei test loro in schede
Configuration Management
Configuration Management Obiettivi Obiettivo del Configuration Management è di fornire un modello logico dell infrastruttura informatica identificando, controllando, mantenendo e verificando le versioni
È possibile organizzare corsi e cicli presso la propria sede (Classi on-site)?
Qual è l orario dei corsi? I Corsi tenuti presso il Centro di Formazione Esri Italia hanno normalmente orario 9.30-17.30. Nel caso in cui i Corsi certificati siano tenuti presso la sede del cliente, sono
Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015
Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle
Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1
Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica
Sviluppo e Gestione dei Progetti. docente: Prof. Filippo Ghiraldo [email protected]
Sviluppo e Gestione dei Progetti docente: Prof. Filippo Ghiraldo [email protected] Metodologie operative Pianificazione e dimensionamento di un progetto Controllo e gestione operativa del progetto.
I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.
I TUTORI Indice Del Manuale 1 - Introduzione al Manuale Operativo 2 - Area Tutore o Area Studente? 3 - Come creare tutti insieme i Tutori per ogni alunno? 3.1 - Come creare il secondo tutore per ogni alunno?
I file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
Progettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
FONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
Artifact Centric Business Processes (I)
Introduzione Autore: Docente: Prof. Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica SAPIENZA - Universitá di Roma 16 Novembre 2008 Una visione assiomatica La modellazione dei processi di
Introduzione alla Progettazione per Componenti
Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica
Sicurezza informatica in azienda: solo un problema di costi?
Sicurezza informatica in azienda: solo un problema di costi? Silvano Marioni, CISSP Manno, Centro Galleria 2 14 ottobre 2005 www.ated.ch Parliamo di sicurezza informatica Quali minacce possono interessarci
INFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
Corso di Amministrazione di Sistema Parte I ITIL 1
Corso di Amministrazione di Sistema Parte I ITIL 1 Francesco Clabot Responsabile erogazione servizi tecnici 1 [email protected] Fondamenti di ITIL per la Gestione dei Servizi Informatici ITSM
Una metodologia per la specifica di software basato su componenti
Luca Cabibbo Architetture Software Una metodologia per la specifica di software basato su componenti Dispensa ASW 445 ottobre 2014 La mappa non è il territorio. Douglas R. King 1 -Fonti [UML Components],
ALLEGATO 13.2 - Esempio di questionario per la comprensione e valutazione del sistema IT
ALLEGATO 13.2 - Esempio di questionario per la comprensione e valutazione del sistema IT Premessa L analisi del sistema di controllo interno del sistema di IT può in alcuni casi assumere un livello di
SOMMARIO... 3 INTRODUZIONE...
Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...
Applicativo Integrato Di Autocontrollo
Applicativo Integrato Di Autocontrollo Applicativo per la gestione integrata degli Autocontrolli IPPC-AIA, parte del Sistema di Gestione delle Verifiche Ispettive (VISPO) di ARPA Lombardia Manuale d uso
Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche
Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica
CAPACITÀ DI PROCESSO (PROCESS CAPABILITY)
CICLO DI LEZIONI per Progetto e Gestione della Qualità Facoltà di Ingegneria CAPACITÀ DI PROCESSO (PROCESS CAPABILITY) Carlo Noè Università Carlo Cattaneo e-mail: [email protected] 1 CAPACITÀ DI PROCESSO Il
Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE
Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE hardware Firmware, software memorizzato su chip di silicio Sistema Operativo venduto con l, comprende vari programmi di gestione del sistema Applicativo,
Realizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
Cosa è un foglio elettronico
Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
Corso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
Progettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)
Tecniche di Prototipazione. Introduzione
Tecniche di Prototipazione Introduzione Con il termine prototipo si intende il primo esempio di un prodotto che deve essere sviluppato e che consente di poter effettuare considerazioni preliminari prima
REGISTRAZIONE. Che applicativi devo scegliere per la registrazione all Osservatorio?...2
REGISTRAZIONE Domande e risposte frequenti per la registrazione e l accesso agli applicativi Sommario Accedendo al sito https://osservatorio.oopp.regione.lombardia.it compare il messaggio sito non disponibile
App-V Dynamic Suite Composition
App-V Dynamic Suite Composition di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione Con Microsoft Application Virtualization 4.5 è possibile utilizzare la Dynamic Suite Composition, cioè definire un
SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione
SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi
PROGETTAZIONE B.I.M.
PROGETTAZIONE B.I.M. Building Information Modeling INTRODUZIONE: Negli ultimi anni, in architettura, ingegneria e nel mondo delle costruzioni è avvenuto un radicale cambiamento negli strumenti e nei metodi
Programmi e Oggetti Software
Corso di Laurea Ingegneria Civile Elementi di Informatica Programmi e Oggetti Software Settembre 2006 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il punto di
