Metriche per programmi Java. Angelo Gargantini Informatica III (B) 2010

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Metriche per programmi Java. Angelo Gargantini Informatica III (B) 2010"

Transcript

1 Metriche per programmi Java Angelo Gargantini Informatica III (B) 2010

2 Misure statiche di programmi Una serie di misure sui programmi da usare come indici di qualità/quantità Esempi: Numero di linee di codice Numero di commenti Quanti if hai usato...

3 Useremo questi tool Javac: warning di Javac (aumenta il livello) es.: Uso di deprectated, generics,... PMD Metrics Jdepend

4 Altri tools FindBugs CheckStyle STAN Vedi il tutorial su ilias!!!!

5 PMD PMD scans Java source code and looks for potential problems like: Possible bugs - empty try/catch/finally/switch statements Dead code - unused local variables, parameters and private methods Suboptimal code - wasteful String/StringBuffer usage Overcomplicated expressions - unnecessary if statements, for loops that could be while loops Duplicate code - copied/pasted code means copied/pasted bugs

6 PMD rules Many rules divided into categoeries Some examples: Code ExcessiveMethodLength Design UseSingleton (a class with only static methods) Strings... UseEqualsToCompareStrings (== used instead of equals)

7 Demo!! How to run PMD

8 PMD - CPD Finding duplicate code Try to extract common methods...

9 metrics Alcune metriche di complessità: McCabe Cyclomatic Complexity Misura il numero di percorsi computazionali di un metodo Weighted Methods per Class (WMC) Lack of Cohesion of Methods Split classes

10 Demo Mectrics plugin

11 JDepend JDepend traverses Java class file directories and generates design quality metrics for each Java package. JDepend allows you to automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to manage package dependencies effectively.

12 Running Jdepend Select a folder, RunJdepend

13 output

14 Metriche di stabilità Nom e Metrica Definizione CC Classi concrete Il numero di classi concrete in un package P AC Classi astratte Il numero di classi astratte o di interfacce in un package P Ca Ce Accoppiamento afferente (afferent coupling) Accoppiamento efferente (efferent coupling) Il numero di package che dipendono da classi del package P Il numero di package da cui dipendono le classi del package P A Astrattezza La percentuale di classi astratte del package P, definita come il rapporto AC / (AC + CC) I Instabilità Il rapporto fra l'accoppiamento efferente e l'accoppiamento totale Ce / (Ce + Ca). E' un indicatore della difficoltà di modificare il package P (se infatti è alto, ciò significa che molte classi dipendono da esso). D Distanza dalla sequenza principale La distanza del package P dalla retta di equazione A + I = 1. E' un indicatore del compromesso raggiunto dal package fra astrattezza (A = 1, I = 0) e instabilità (A = 0, I = 1).

15 Situazione ideale

16 Cosa fare Spostare delle classi concrete in package instabili Rendere astratte classi in packages stabili

17 Dipendenza di packaes Un package A che importa da un altro B e B importa da A Oppure indirette

18 Cosa fare Rompere i cicli è molto difficile Vedere dove è il ciclo e spostare metodi/classi Rivela in genere un problema di progettazione

19 Quando usare questi tools Usa queste metriche fin dall'inizio Altrimenti se devi rimodificare il codice quando sei avanti con il progetto può essere problematico

20 refactoring Una volta scoperto i punti critici del vostro software cosa fare? I punti critici sono detti anche bad smell... refactoring

SEERP. Quality Report

SEERP. Quality Report SEERP Quality Report Introduzione In questa sezione vengono forniti i dati relativi alle metriche raccolte ai fini di una valutazione qualitativa del progetto. Il modello di Qualità di ISO/IEC 9126 Software

Dettagli

Strumenti di gestione del ciclo di vita del software

Strumenti di gestione del ciclo di vita del software Strumenti di gestione del ciclo di vita del software Università degli studi di Padova a.a. 2017/18 Laurea in Informatica Corso di Ingegneria del Software Presenta Nicola Bertazzo nicola.bertazzo@gmail.com

Dettagli

Strumenti di gestione del ciclo di vita del software

Strumenti di gestione del ciclo di vita del software Strumenti di gestione del ciclo di vita del software Università degli studi di Padova a.a. 2015/16 Laurea in Informatica Corso di Ingegneria del Software mod. A Presenta Nicola Bertazzo nicola.bertazzo@gmail.com

Dettagli

College Algebra. Logarithms: Denitions and Domains. Dr. Nguyen November 9, Department of Mathematics UK

College Algebra. Logarithms: Denitions and Domains. Dr. Nguyen November 9, Department of Mathematics UK College Algebra Logarithms: Denitions and Domains Dr. Nguyen nicholas.nguyen@uky.edu Department of Mathematics UK November 9, 2018 Agenda Logarithms and exponents Domains of logarithm functions Operations

Dettagli

Question 1: introduction to computer programming

Question 1: introduction to computer programming Question 1: introduction to computer programming Question 1: introduction to computer programming What is a compiler? (4 points). Cos è un compilatore? (4 punti). c 2006 Marco Bernardo 1/14 Question 1:

Dettagli

Laboratorio di Progettazione di Sistemi Software Progetto: UMLPatterns2Java

Laboratorio di Progettazione di Sistemi Software Progetto: UMLPatterns2Java Laboratorio di Progettazione di Sistemi Software Progetto: UMLPatterns2Java Riccardo Solmi Progetto UMLPatterns2Java Progettare ed implementare uno strumento generativo che velocizzi l applicazione programmatica

Dettagli

Docenti: Patrizia Scandurra (referente princiaple) Angelo Gargantini. patrizia.scandurra@unibg.it

Docenti: Patrizia Scandurra (referente princiaple) Angelo Gargantini. patrizia.scandurra@unibg.it Progetto di Informatica III Introduzione al corso Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Contatti Obiettivo Natura Argomenti Organizzazione Materiale didattico Modalità

Dettagli

Progetto di Informatica III. Introduzione al corso

Progetto di Informatica III. Introduzione al corso Progetto di Informatica III Introduzione al corso Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Contatti Obiettivo Natura Argomenti Organizzazione Materiale didattico Modalità

Dettagli

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento) Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento) Prof. Marco Cadoli, Canale M-Z A.A. 2005-06 USO DEL FRAMEWORK JUNIT

Dettagli

Functional programming in F#: Data Structures

Functional programming in F#: Data Structures Programmazione Avanzata Corso di Laurea in Informatica (L31) Scuola di Scienze e Tecnologie 31 / 51 Summary of previous lectures In the previous lecture we have... : introduced basic principles of programming

Dettagli

Indice generale. Prefazione alla prima edizione...xiii. Introduzione...xvii. Nota sui nomi delle rifattorizzazioni...xxv

Indice generale. Prefazione alla prima edizione...xiii. Introduzione...xvii. Nota sui nomi delle rifattorizzazioni...xxv Prefazione alla prima edizione...xiii Introduzione...xvii Che cos è il refactoring?...xviii Che cosa c è in questo libro?...xviii Un libro Web-first...xix Esempi JavaScript...xx Chi dovrebbe leggere questo

Dettagli

Spring Stack Testing: Continuous integration, Continuous Agitation

Spring Stack Testing: Continuous integration, Continuous Agitation Spring Stack Testing: Continuous integration, Continuous Agitation Massimiliano Dessì CRS4 http://wiki.java.net/bin/view/people/massimilianodessi Cagliari, 28 ottobre 2006 1 Lo speaker Consulente Java,

Dettagli

Tecnologie e applicazioni web TypeScript

Tecnologie e applicazioni web TypeScript Tecnologie e applicazioni web TypeScript Filippo Bergamasco ( filippo.bergamasco@unive.it) http://www.dais.unive.it/~bergamasco/ DAIS - Università Ca Foscari di Venezia Anno accademico: 2017/2018 What

Dettagli

INFORMATICA III Parte B - Progettazione e Algoritmi. Contatti

INFORMATICA III Parte B - Progettazione e Algoritmi. Contatti INFORMATICA III Parte B - Progettazione e Algoritmi Introduzione Patrizia Scandurra patrizia.scandurra@unibg.it Università degli Studi di Bergamo a.a. 2010-11 Contatti Docenti: Angelo Gargantini (parte

Dettagli

Virtualizzazione con OpenVZ

Virtualizzazione con OpenVZ Workshop CCR Dicembre 2008 Stefano Stalio Laboratori Nazionali del Gran Sasso stefano.stalio@lngs.infn.it Da wikipedia: OpenVZ is an operating system level virtualization technology based on the Linux

Dettagli

Usare il tool emma. info3 angelo unibg

Usare il tool emma. info3 angelo unibg Usare il tool emma info3 angelo gargantini @ unibg Cosa vuol dire copertura Quando si scrivono dei test è importante: 1) controllare mediante assert che il ns programma si comporti come atteso 2) valutare

Dettagli

Corso di Laurea in Informatica a.a

Corso di Laurea in Informatica a.a Corso di Laurea in Informatica anno di corso codice denominazione cfu 1 E3101Q106 PROGRAMMAZIONE 2 turno A-L PROGRAMMAZIONE 2 turno M-Z settore scientifico disciplinare tipo semestre 8 INF/01 obbligatorio

Dettagli

Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione

Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione 1 Conoscere l uso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali classi di Collection usare in casi specifici Conoscere

Dettagli

The jgrapht library. Tecniche di Programmazione A.A. 2016/2017

The jgrapht library. Tecniche di Programmazione A.A. 2016/2017 The jgrapht library Tecniche di Programmazione Summary } The JGraphT library } Creating graphs 2 Introduction to jgrapht The jgrapht library JGraphT } http://jgrapht.org } (do not confuse with jgraph.com)

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

INFORMATICA III Parte B -Progettazione e Algoritmi

INFORMATICA III Parte B -Progettazione e Algoritmi INFORMATICA III Parte B -Progettazione e Algoritmi Introduzione Patrizia Scandurra patrizia.scandurra@unibg.it Università degli Studi di Bergamo a.a. 2011-12 Contatti Docenti: Angelo Gargantini(parte A

Dettagli

Indice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma

Indice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma Indice Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java Introduzione all ambiente di sviluppo - Compilazione ed esecuzione di un programma - Compilazione ed esecuzione

Dettagli

06 Analisi di qualità del codice, collezioni avanzate, enumeration e classi innestate

06 Analisi di qualità del codice, collezioni avanzate, enumeration e classi innestate 06 Analisi di qualità del codice, collezioni avanzate, enumeration e classi innestate Danilo Pianini Angelo Croatti, Simone Grotti, Mirko Viroli C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum

Dettagli

Indice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma

Indice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma Indice Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java Introduzione all ambiente di sviluppo - Compilazione ed esecuzione di un programma - Compilazione ed esecuzione

Dettagli

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java Capitolo 1 Introduzione Cay S. Horstmann Concetti di informatica e fondamenti di Java Obiettivi del capitolo Comprendere la distinzione fra linguaggi macchina e linguaggi di programmazione di alto livello

Dettagli

PRIMO MODULO. DURATA: 80 ore CONTENUTI

PRIMO MODULO. DURATA: 80 ore CONTENUTI 0 PRIMO MODULO DURATA: 80 ore CONTENUTI 1. Introduzione alla programmazione a. Cosa è la programmazione strutturata b. Strutture dati c. Come si affronta una problematica da risolvere d. Quali sono i passi

Dettagli

The jgrapht library. Tecniche di Programmazione A.A. 2018/2019

The jgrapht library. Tecniche di Programmazione A.A. 2018/2019 The jt library Tecniche di Programmazione Summary The JT library Creating graphs 2 Introduction to jt The jt library JT http://jgrapht.org (do not confuse with jgraph.com) Free Java graph library that

Dettagli

INFORMATICA III Parte B -Progettazione e Algoritmi

INFORMATICA III Parte B -Progettazione e Algoritmi INFORMATICA III Parte B -Progettazione e Algoritmi Introduzione Patrizia Scandurra patrizia.scandurra@unibg.it Università degli Studi di Bergamo a.a. 2013-14 Contatti Docente: Patrizia Scandurra (parte

Dettagli

Python Start. Docente: M. Chiara Debernardi. Lingua del corso. Descrizione del corso e obiettivi. Destinatari. Italiano

Python Start. Docente: M. Chiara Debernardi. Lingua del corso. Descrizione del corso e obiettivi. Destinatari. Italiano Python Start Docente: M. Chiara Debernardi Lingua del corso Italiano Descrizione del corso e obiettivi Il corso mira a far conoscere i fondamenti di Python i cui ambiti di utilizzo sono molteplici: intelligenza

Dettagli

Strumenti open source per la misura di caratteristiche di qualità del codice sorgente

Strumenti open source per la misura di caratteristiche di qualità del codice sorgente Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Ingegneria del Software e dei Dati Strumenti open source per la misura di caratteristiche di qualità del codice sorgente

Dettagli

Esercizi design patterns. Angelo Di Iorio,

Esercizi design patterns. Angelo Di Iorio, Esercizi design patterns Angelo Di Iorio, diiorio@cs.unibo.it Esercizio 1 Una parete, che contiene porte e finestre, deve essere dipinta con una vernice. Ogni barattolo contiene una data quantità di vernice,

Dettagli

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016 Macchine Astratte Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione 010194 29 feb, 2016 Sommario 1 Introduzione Macchina astratta Interprete Implementazione

Dettagli

Java il Corso Fondamentale

Java il Corso Fondamentale Java il Corso Fondamentale Imparare a Programmare APP per Android, applicativi per Server e Desktop, applet e molto altro. IlTuoCorso - Ermes srl Via E.De Amicis 57 20123 Milano Il corso Ciao! Se desideri

Dettagli

Laboratorio di Statistica e Analisi Dati: Lezione 4

Laboratorio di Statistica e Analisi Dati: Lezione 4 Laboratorio di Statistica e Analisi Dati: Lezione 4 Tommaso C. & Marco G. 16-18 Novembre 2016 Controllo del flusso di esecuzione di un programma In Resistono strutture di controllo specifiche per regolare

Dettagli

Capitolo 5 - Funzioni

Capitolo 5 - Funzioni Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

Dettagli

Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2.

Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. Scuola Sec. SECONDO Grado Gara 2 IND - 15/16 ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. Sono date le seguenti regole: regola(1,[a],b)

Dettagli

Maps. a.k.a, associative array, map, or dictionary

Maps. a.k.a, associative array, map, or dictionary Maps a.k.a, associative array, map, or dictionary Definition } In computer science, an associative array, map, or dictionary is an abstract data type composed of (key, value) pairs, such that each key

Dettagli

RenderCAD S.r.l. Formazione

RenderCAD S.r.l. Formazione Descrizione In questo corso viene descritto PL/SQL e vengono illustrati i vantaggi derivanti dall'uso di questo potente linguaggio di programmazione. Viene spiegato come creare blocchi di codice PL/SQL

Dettagli

Estratto dal Cap. 8 di: Statistics for Marketing and Consumer Research, M. Mazzocchi, ed. SAGE, 2008.

Estratto dal Cap. 8 di: Statistics for Marketing and Consumer Research, M. Mazzocchi, ed. SAGE, 2008. LEZIONI IN LABORATORIO Corso di MARKETING L. Baldi Università degli Studi di Milano BIVARIATE AND MULTIPLE REGRESSION Estratto dal Cap. 8 di: Statistics for Marketing and Consumer Research, M. Mazzocchi,

Dettagli

Laboratorio di Progettazione di Sistemi Software Design Patterns

Laboratorio di Progettazione di Sistemi Software Design Patterns TITLE Laboratorio di Progettazione di Sistemi Software Design Patterns Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Tipi di Design Patterns Creazionali Strutturali Comportamentali

Dettagli

Elaborato finale in Ingegneria del Softwer Miglioramento della qualità del software con attività di refactoring

Elaborato finale in Ingegneria del Softwer Miglioramento della qualità del software con attività di refactoring Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Ingegneria del Softwer Miglioramento della qualità del software con attività di refactoring Anno

Dettagli

Marco Faella Introduzione al corso

Marco Faella Introduzione al corso Marco Faella Introduzione al corso 1 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com A.A. 2009-2010 Linguaggi

Dettagli

Corso: Banche dati e sistemi per l informazione e la valutazione della ricerca (9-10 dicembre 2015)

Corso: Banche dati e sistemi per l informazione e la valutazione della ricerca (9-10 dicembre 2015) Corso: Banche dati e sistemi per l informazione e la valutazione della ricerca (9-10 dicembre 2015) La valutazione della ricerca sul Web of Science Creazione di un proprio profilo Researcher ID/ORCID Gaetana

Dettagli

IM-IU v0.1. alternata e continua. pag. 1 / 5

IM-IU v0.1. alternata e continua. pag. 1 / 5 MANUALE OPERATIVO IM-IU v0.1 INSTRUCTION MANUAL SERIE TTC-V-485 Trasformatore di corrente alternata e continua PROTOCOLLO DI COMUNICAZIONE MODBUS TTC-V-485 SERIES AC/DC current transformer MODBUS COMMUNICATION

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

Tecniche di Progettazione: Design Patterns

Tecniche di Progettazione: Design Patterns Tecniche di Progettazione: Design Patterns GoF: Startegy 1 Strategy pattern: the duck 2 Strategy pattern: the duck 3 The rubber duck 4 First solution Override fly() Class Rubberduck{ fly() { \\ do nothing

Dettagli

Maven2.apache.org: usare un linguaggio formale per descrivere in modo standard tutte le fasi del ciclo di vita del software

Maven2.apache.org: usare un linguaggio formale per descrivere in modo standard tutte le fasi del ciclo di vita del software Maven2.apache.org: usare un linguaggio formale per descrivere in modo standard tutte le fasi del ciclo di vita del software Evoluzione nella gestione dei progetti Ogni riferimento a volti o persone conosciute

Dettagli

Università degli Studi di Salerno

Università degli Studi di Salerno Università degli Studi di Salerno Corso di Gestione Dei Progetti Software Quality Plan Versione 2.0 16/06/2009 Coordinatore del progetto: Nome Matricola Angelo D Amato Andrea De Lucia Rocco Uliveto Scritto

Dettagli

Eclipse for the dummies. Primi passi nel mondo Eclipse Lorenzo Cioni LIP 1 Modulo a.a. 2006/2007

Eclipse for the dummies. Primi passi nel mondo Eclipse Lorenzo Cioni LIP 1 Modulo a.a. 2006/2007 Eclipse for the dummies Primi passi nel mondo Eclipse Lorenzo Cioni LIP 1 Modulo a.a. 2006/2007 Eclipse: elementi strutturali 1 1) workspace: directory principale di lavoro, al suo interno Eclipse crea,

Dettagli

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring TITLE Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 SCOPO DEL CORSO Una simulazione è l imitazione delle operazioni eseguite

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

Corso di Ingegneria del Software. La architettura software

Corso di Ingegneria del Software. La architettura software Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it Il concetto e il ruolo della architettura Sommario 1. Il concetto e il ruolo della architettura 2. Tipi di architettura

Dettagli

Introduction to High Resolution Virulence Allelic Profiling (HReVAP)

Introduction to High Resolution Virulence Allelic Profiling (HReVAP) Introduction to High Resolution Virulence Allelic Profiling (HReVAP) Valeria Michelacci NGS course, June 2016 The E. coli pangenome Genomic plasticity Huge pangenome Van Elsas J.D. et al., 2011 Pangenome

Dettagli

Le command line di Java. Esercitazioni di Sistemi Operativi III Lezione n. 2

Le command line di Java. Esercitazioni di Sistemi Operativi III Lezione n. 2 Le command line di Java Esercitazioni di Sistemi Operativi III Lezione n. 2 Esempio 1 - Punti e Segmenti Punto 2 0..n Segmento PuntoColorato Le tre classi appartengono al package geometrie. I file sorgenti

Dettagli

Informatica. Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven

Informatica. Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven Tesi di laurea in Informatica Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven Relatore Ch.mo Prof. Giuseppe Trautteur Candidato Gioacchino Del

Dettagli

Strada Cavalli, n 4 C.A.P. 43038. Sala Baganza Parma - Italia

Strada Cavalli, n 4 C.A.P. 43038. Sala Baganza Parma - Italia ITALIANO Strada Cavalli, n 4 C.A.P. 43038 Sala Baganza Parma - Italia tel. +39 0521 83.80 r.a fax +39 0521 83.33.91 www.tecnogaz.com INTERLOCK BOWIE & DICK TEST PACK è un pratico test monouso progettato

Dettagli

ACADEMY SVILUPPATORE JAVA

ACADEMY SVILUPPATORE JAVA ACADEMY SVILUPPATORE JAVA PERCORSO ACADEMY SVILUPPATORE JAVA DESCRIZIONE Al termine del percorso di formazione i partecipanti potranno utilizzare con padronanza i linguaggi di programmazione Java. Inoltre

Dettagli

Question 1: algorithms, data structures, problem classes, and algorithmic techniques

Question 1: algorithms, data structures, problem classes, and algorithmic techniques Question 1: alg. s, data struct. s, problem classes, and alg. techniques Question 1: algorithms, data structures, problem classes, and algorithmic techniques What is a dynamic data structure? (4 points).

Dettagli

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION 0 DURATA 200 ore CONTENUTI Oracle PL/SQL Introduzione al PL/SQL Cenni su SQL con utilizzo di SQL*PLUS Configurazione ambiente Developer DB Classi,

Dettagli

Commenti per documentare il codice (doc comments) I commenti speciali devono essere delimitati da /**... */.

Commenti per documentare il codice (doc comments) I commenti speciali devono essere delimitati da /**... */. Linguaggi Corso di Laurea Ingegneria Informatica (M-Z) A.A. 2006-2007 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Documentazione in Java 1 Javadoc Terminology

Dettagli

PROGRAMMAZIONE. Ivan Lanese, Cosimo Laneve

PROGRAMMAZIONE. Ivan Lanese, Cosimo Laneve PROGRAMMAZIONE Ivan Lanese, Cosimo Laneve Argomenti Consigli utili Installare Eclipse Il corso di programmazione Questo corso è fondamentale per il vostro futuro di informatici Vedremo i principi base

Dettagli

Laboratorio di Progettazione di Sistemi Software Introduzione

Laboratorio di Progettazione di Sistemi Software Introduzione Laboratorio di Progettazione di Sistemi Software Introduzione Valentina Presutti (A-L) Riccardo Solmi (M-Z) Indice degli argomenti Introduzione all Ingegneria del Software UML Design Patterns Refactoring

Dettagli

PIANO DI STUDIO DELLA DISCIPLINA DISCIPLINA: Informatica

PIANO DI STUDIO DELLA DISCIPLINA DISCIPLINA: Informatica ISIS C. Facchinetti Sede: via Azimonti, 5-21053 Castellanza Tel. 0331 635718 fax 0331 679586 info@isisfacchinetti.gov.it https://isisfacchinetti.gov.it PIANO DI STUDIO DELLA DISCIPLINA Rev. 1.1 del 26/07/17

Dettagli

Ambienti di Sviluppo. Linguaggi compilati

Ambienti di Sviluppo. Linguaggi compilati Insieme omogeneo di strumenti adatti allo sviluppo di progetti software. Compilatori e/o interpreti; Editor; Ambienti di Sviluppo Strumenti di debug e/o test; 1 Linguaggi compilati Codice sorgente convertito

Dettagli

Esempio di architettura software

Esempio di architettura software Esempio di architettura software Corso di Principi di Progettazione del Software, a.a. 2012/13 29 novembre 2016 Ing. Roberto Vergallo 1 Esempio di architettura software View (GUI) Action Listener Business

Dettagli

OFFERTA DI LAVORO (1)

OFFERTA DI LAVORO (1) OFFERTA DI LAVORO (1) JUNIOR VISUALIZATION AND DIAGNOSTIC SW ENGINEER You will have the opportunity to be involved in the entire project scope from the creation of concept documentation and requirements

Dettagli

Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007

Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E01 Esempi di programmi A. Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di programmi - 1 1 Contenuti

Dettagli

Qui u ck c k PE P R E L

Qui u ck c k PE P R E L Quick PERL Why PERL??? Perl stands for practical extraction and report language Similar to shell script but lot easier and more powerful Easy availability All details available on web Basic Concepts Perl

Dettagli

Tesi di laurea specialistica SPERIMENTAZIONI DI TECNICHE DI TESTING STATICO PER APPLICAZIONI ANDROID

Tesi di laurea specialistica SPERIMENTAZIONI DI TECNICHE DI TESTING STATICO PER APPLICAZIONI ANDROID Tesi di laurea specialistica SPERIMENTAZIONI DI TECNICHE DI TESTING STATICO PER APPLICAZIONI ANDROID Anno Accademico 2011/2012 Relatore Prof. Porfirio Tramontana Candidato Pasquale Giacomino Matr. 885/349

Dettagli

Scheduling. Scheduler. Class 1 Class 2 Class 3 Class 4. Scheduler. Class 1 Class 2 Class 3 Class 4. Scheduler. Class 1 Class 2 Class 3 Class 4

Scheduling. Scheduler. Class 1 Class 2 Class 3 Class 4. Scheduler. Class 1 Class 2 Class 3 Class 4. Scheduler. Class 1 Class 2 Class 3 Class 4 Course of Multimedia Internet (Sub-course Reti Internet Multimediali ), AA 2010-2011 Prof. 4. Scheduling Pag. 1 Scheduling In other architectures, buffering and service occur on a per-flow basis That is,

Dettagli

Corso Programmazione Java Standard

Corso Programmazione Java Standard Corso Programmazione Java Standard Codice: ITJS0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle varie sfaccettature della sintassi del linguaggio Java, integrata con mirate

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

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

JAVA GENERICS. Angelo Di Iorio Università di Bologna

JAVA GENERICS. Angelo Di Iorio Università di Bologna JAVA GENERICS Angelo Di Iorio Università di Bologna Tipi parametrici In diversi casi è utile definire classi che operano su tipi di dato diverso e implementano un comportamento comune e indipendente dal

Dettagli

ESERCIZIO 1 Si faccia riferimento alla GUIDA - OPS 2017, problema ricorrente MOVIMENTO DI UN ROBOT O DI UN PEZZO DEGLI SCACCHI.

ESERCIZIO 1 Si faccia riferimento alla GUIDA - OPS 2017, problema ricorrente MOVIMENTO DI UN ROBOT O DI UN PEZZO DEGLI SCACCHI. ESERCIZIO 1 Si faccia riferimento alla GUIDA - OPS 2017, problema ricorrente MOVIMENTO DI UN ROBOT O DI UN PEZZO DEGLI SCACCHI. PROBLEMA In un campo di gara il robot è nella casella [47,49] con orientamento

Dettagli

CAPITOLO 5 Introduzione ai piani fattoriali

CAPITOLO 5 Introduzione ai piani fattoriali Douglas C. Montgomery Progettazione e analisi degli esperimenti 2006 McGraw-Hill CAPITOLO 5 Introduzione ai piani fattoriali Metodi statistici e probabilistici per l ingegneria Corso di Laurea in Ingegneria

Dettagli

Graph Visits. Tecniche di Programmazione A.A. 2016/2017

Graph Visits. Tecniche di Programmazione A.A. 2016/2017 Graph Visits Tecniche di Programmazione Summary Graph visits Visits in JGraphT 2 Graph visits Representing and visiting graphs Visit Algorithms Visit = Systematic exploration of a graph Starting from a

Dettagli

Esempio con Google Play tore Example with Google Play tore

Esempio con Google Play tore Example with Google Play tore Guida all installazione ed uso dell App VR Tour Camerata Picena Per installare l App occorre aprire lo Store del vostro smartphone (Play Store o App Store) e cercare l App con parola chiave Camerata Picena.

Dettagli

Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse

Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse Universita degli Studi di Bologna Facolta di Ingegneria Anno Accademico 2008-2009 Laboratorio di Tecnologie Web Introduzione ad Eclipse http://www-lia.deis.unibo.it/courses/tecnologieweb0809 Cosa è Eclipse

Dettagli

Il codice generato automaticamente da NetBeans

Il codice generato automaticamente da NetBeans Il codice generato automaticamente da NetBeans La creazione di applicazioni in NetBeans si svolge principalmente con il supporto di strumenti grafici per la progettazione dell interfaccia utente, tramite

Dettagli

Breve introduzione a Java (2) (ed alla programmazione ad oggetti)

Breve introduzione a Java (2) (ed alla programmazione ad oggetti) Breve introduzione a Java (2) (ed alla programmazione ad oggetti) Marco Piastra Java Intro (2) - 1 Argomenti 1. Modello astratto e modello implementativo (in un linguaggio di programmazione) 2. Modello

Dettagli

Sta?c vs Dynamic Typing. Come unificare FP e OOP? Java 8 e Lambda Expressions. Java 8 e Lambda Expressions. come. cosa. unifica moduli ed oggetti

Sta?c vs Dynamic Typing. Come unificare FP e OOP? Java 8 e Lambda Expressions. Java 8 e Lambda Expressions. come. cosa. unifica moduli ed oggetti Come unificare FP e OOP? unifica moduli ed oggetti modular mixin composi,on (intersec?on types) Type paramenters per classi parametriche Abstract types per nascondere i dedagli dei?pi Path-dependent types

Dettagli

Corso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010

Corso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010 Corso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010 Istruzioni: scrivere le risposte alle domande negli spazi presenti nel testo e riconsegnare

Dettagli

Pannello principale di Trakbox

Pannello principale di Trakbox Pannello principale di Trakbox A - Pulsanti con relativi comandi che sono disponibili in base a RTX o Trakbox selezionato. B - Se Auto Frequency è selezionato Trakbox aggiorna automaticamente la frequenza

Dettagli

Piano di ingegnerizzazione del prototipo di InViMall

Piano di ingegnerizzazione del prototipo di InViMall Piano di ingegnerizzazione del prototipo di InViMall Survey Nel presente documento si riassumono i contenuti del deliverable D-H.2_1 Piano di ingegnerizzazione del prototipo di InViMall relativo all attività

Dettagli

Constant Propagation. A More Complex Semilattice A Nondistributive Framework

Constant Propagation. A More Complex Semilattice A Nondistributive Framework Constant Propagation A More Complex Semilattice A Nondistributive Framework 1 The Point Instead of doing constant folding by RD s, we can maintain information about what constant, if any, a variable has

Dettagli

IDE. Integrated Development Environment. Jacopo Torrini

IDE. Integrated Development Environment. Jacopo Torrini IDE Integrated Development Environment Jacopo Torrini IDE Cosa chiede un programmatore da una IDE Gestibilità del codice avere il codice sotto controllo molto utile per grossi progetti Source assistant

Dettagli

Graphs: Cycles. Tecniche di Programmazione A.A. 2012/2013

Graphs: Cycles. Tecniche di Programmazione A.A. 2012/2013 Graphs: Cycles Tecniche di Programmazione Summary Definitions Algorithms 2 Definitions Graphs: Cycles Cycle A cycle of a graph, sometimes also called a circuit, is a subset of the edge set of that forms

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmi Un programma è un insieme di istruzioni che il computer deve seguire Usiamo programmi in continuazione

Dettagli

ISTRUZIONI A B K A, B, K A<B? SI A<B? SI A<B? SI

ISTRUZIONI A B K A, B, K A<B? SI A<B? SI A<B? SI SECONDA PARTE 6. LA RIPETIZIONE while ISTRUZIONI A B K A, B, K 0 10 0 While A

Dettagli

Verifica e Validazione del Software

Verifica e Validazione del Software Verifica e Validazione del Software Testing Object Oriented Ingegneria del Software 2 Testing Object Oriented 1 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli 22-23-24 (più dettagliato

Dettagli