Principi di misurazione del software (le metriche)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Principi di misurazione del software (le metriche)"

Transcript

1 1 Principi di misurazione del software (le metriche)

2 Le METRICHE: metodi di misura nel processo di produzione del software 2 Chi gestisce un progetto software dovrebbe essere in grado di capire quali correttivi apportare al processo di produzione del software, in base a quella che è la sua valutazione della situazione in ogni momento di tale processo. Ha quindi necessità di tecniche che consentono di "misurare" il processo: se è in ritardo; se ha consumato più (o meno) del previsto in termini di risorse (in particolare il tempo); se la produttività, cioè la quantità di codice prodotto è sufficiente e quali costi ha comportato; se il software prodotto rispetta certi requisiti di qualità. Questo richiede: 1) Stima a priori di tali grandezze 2) Misurazione durante il processo, o a posteriori, di tali grandezze E' un campo che ha fondamentalmente delle basi empiriche: anche se vengono derivati dall'economia alcuni concetti come l'analisi delle decisioni o tipi di stime, la pratica si basa molto sul confronto con esperienze acquisite.

3 ASPETTI CHE SI VORREBBERO MISURARE: 3 LUNGHEZZA (DIMENSIONE FISICA OCCUPAZIONE MEMORIA) FUNZIONALITÀ COMPLESSITÀ

4 4 LUNGHEZZA ---> METRICHE DIMENSIONALI FUNZIONALITÀ ---> METRICHE FUNZIONALI COMPLESSITÀ COMPUTAZIONALE o COMPLESSITÀ DEL PROBLEMA o COMPLESSITÀ DELL'ALGORITMO STRUTTURALE ---> METRICHE STRUTTURALI COGNITIVA (relativa alla COMPRENSIBILITÀ)

5 MISURAZIONE O STIMA DEI SEMILAVORATI DEL PROCESSO DI SVILUPPO: 5 DOCUMENTI DI SPECIFICA DOCUMENTI DI PROGETTO CODICE DOCUMENTAZIONE LA MISURAZIONE DI UN SEMILAVORATO PUÒ FORNIRE UNA STIMA DEL SEMILAVORATO SUCCESSIVO

6 6 Metriche dimensionali La dimensione del programma viene generalmente valutata in numero di linee di codice (LOC) indicatore considerato tradizionalmente importante, anche se in realtà non sempre significativo, specie se riferito a linguaggi di programmazione differenti, dove diverse sono le densità di significato per ogni linea di codice. È discutibile se nel conteggio siano da considerare anche i commenti (in genere no), utili per la documentazione e la parte dichiarativa, che contribuisce in maniera rilevante a determinare la qualità del SW. Ë numero degli statement eseguibili (ES) Ë source of lines of code (SLOC)

7 7 numero di istruzioni (KDSI) (Kilo Delivered Source Instruction = migliaia di istruzioni sorgente rilasciate); ancora difficoltà ed ambiguità nel conteggio, specie nei linguaggi dotati di una struttura a blocchi in cui il costrutto linguistico di istruzione è definito ricorsivamente. Per lo stesso programma le due misurazioni viste risultano tra loro proporzionali secondo un fattore che dipende dal linguaggio usato e dallo stile di programmazione: in certi contesti produttivi, dove l'imposizione di una strategia aziendale rende più rigido il modo di scrivere i programmi, la proporzionalità può essere strettamente verificata. ALTRI PROBLEMI di queste metriche dimensionali: MISURA del CODICE RIUTILIZZATO

8 MISURA del CODICE NON TESTUALE (es. VISUAL BASIC) 8

9 ALTRE MISURE DI LUNGHEZZA 9 CLOC = numero di commenti in un programma LOC = NCLOC + CLOC Occupazione di memoria del codice oggetto (in Bytes) Occupazione di memoria del codice sorgente (in Bytes) ~ Numero di caratteri del testo del programma (CHAR) CHAR = a * LOC numero medio di caratteri per linea di codice

10 10 ALTRE GRANDEZZE DIRETTAMENTE MISURABILI Durata dello sviluppo del programma (ore) Durata di una fase dello sviluppo del programma (ore) Sforzo programmativo compiuto nello sviluppo del programma (mesi-uomo) Sforzo richiesto da una fase dello sviluppo del programma (mesi-uomo) Numero di difetti riscontrati durante il processo di testing (numero) Numero di cambiamenti effettuati in un prodotto software in un anno (ACT)...

11 11 GRANDEZZE INDIRETTAMENTE MISURABILI - produttività (P) P = LOC / M (M = num. mesi uomo - tempo occorso per sviluppare il programma) - qualità (Q) Q = LOC / E (E = numero errori rilevati. 1/Q dà la densità di errori rilevati nel codice ) NOTA: è da considerare di qualità "migliore" un programma in cui non siano stati rilevati errori in fase di testing, o uno in cui siano stati rilevati (e corretti) molti errori?

12 12 - livello di documentazione (D) D = PD / LOC (PD = pagine di documentazione ) Waston & Felix, 1977 PD = 49 * L 1.01 (L in KLOC) - densità dei commenti in un programma CLOC / LOC - stabilità dei requisiti numero iniziale di requisiti / numero totale di requisiti...

13 13 ALCUNE OSSERVAZIONI: LOC misura la lunghezza del codice, non va considerata come un indicatore della sua complessità Le metriche descritte permettono di misurare a posteriori alcune caratteristiche di un programma e del suo sviluppo. Al fine di verificare il corretto svolgimento del processo di sviluppo, è necessario avere metodi di stima a priori.

14 14 COCOMO Barry Boehm (TRW) Constructive Cost Model è un modello algoritmico per la stima dei costi. Permette di stimare le quantità: Sforzo programmativo in mesi-uomo (M) (ossia quantità di lavoro per sviluppare il programma) Tempo necessario (T) (è il tempo per portare a termine lo sviluppo del programma) Queste stime vengono fatte a priori mediante formule e parametri tabellati. Queste formule sono state realizzate da un gruppo di esperti considerando i dati di una serie di progetti reali (controllo di processo, avionica, SW di base). Per il COCOMO si assume che il progetto e lo sviluppo si svolga secondo il ciclo di vita a cascata con le seguenti fasi: -Pianificazione ed analisi dei requisiti. -Progetto. -Sviluppo. -Integrazione e test.

15 15 Le formule differiscono a seconda della classe di applicazioni: Organic Mode (semplici,sistemi informatici tradizionali) Semi-detached Mode (intermedie, compilatori) Embedded Mode (complesse, grossi sistemi operativi, real-time, controllo di processi) Le stime sono suddivise in tre modelli per dare una prima stima, una stima intermedia, ed una stima finale, affinando di volta in volta sempre più in base a dati più dettagliati: modello base modello intermedio modello avanzato.

16 16 Modello base Nel modello base M e T sono dati da: b M = a S b b T = c M b dove a b, b b, c b, d b sono dei coefficienti da prelevare dalla tabella per le varie classi. d b Tipo di applicazione a b b b c b d b Semplici Intermedie Complesse In questo modello T e M sono quasi proporzionali. S è una STIMA della dimensione del programma!!!!!

17 17 Nel modello base si usano anche tabelle che indicano per ogni classe la suddivisione percentuale per le varie fasi del ciclo di vita esse sono parametrizzate in funzione della dimensione del programma. Per esempio le varie percentuali di quantità di lavoro nella classe di applicazioni semplici sono: Modo Organic Dimensione in KDSI Fasi Pianificaz Progetto Sviluppo Integr.test All'aumentare della dimensione del sistema i tempi per la pianificazione ed il progetto restano pressochè invariati mentre il tempo per lo sviluppo diminuisce a scapito dell'integrazione e test. All'aumentare della complessità del sistema (applicazioni intermedie, complesse) i tempi aumentano - tranne quello dello sviluppo che addirittura uguaglia quello del progetto.

18 Modello intermedio 18 Si calcola un M fondamentalmente identico a quello del modello base, con altri coefficienti. M nom = a i * S b i M = M nom * P j=1..15 c j La quantità complessiva si ottiene dalla quantità nominale moltiplicata per 15 fattori correttivi che tengono conto di varie caratteristiche e vincoli. Component Level Estimation Stima fatta per ogni componente previsto nell'applicazione (a livello di fase di progetto) Modello Avanzato Ulteriori perfezionamenti, con l'introduzione di nuovi coefficienti moltiplicativi. Punto critico del COCOMO --> È un metodo di stima, non di misura a posteriori; ma si basa su una grandezza (LOC) difficilmente stimabile a priori.

19 (Il difficile problema di stima dello sforzo viene sostituito da un altro problema di stima 19 ugualmente difficile)

20 Metriche dimensionali per le fasi di specifica e di progetto 20 - numero di pagine - numero di oggetti atomici : DFD Bolle (processi), Stores STD Stati, transizioni SC Moduli Design-to-code expansion ratio: Size of design Size of code De Marco s BANG metrics: FUNCTION BANG: numero delle bolle di più basso livello, pesato con il numero dei flussi DATA BANG: numero delle entità, pesato con il numero delle variabili

21 Metriche funzionali 21 Queste metriche ricavano un indice delle dimensioni di un programma attraverso la misura indiretta delle funzioni che esso deve svolgere. (Ricavabile appena è disponibile una specifica dettagliata del programma) Metodo dei Punti Funzione (Albrecht) Metodo dei Punti Funzione (applicazioni commerciali tipo Basi di Dati). (Function Point), utilizzabile soprattutto nell'ambito delle applicazioni di tipo EDP Il valore del Punto Funzione (FP) viene calcolato a partire da alcune caratteristiche funzionali del programma. In particolare vengono considerati cinque indici :

22 22 1. Numero di input: è il numero di informazioni distinte fornite dall'utente e utilizzate dal programma come dati di ingresso. 2. Numero di output: è il numero di output distinti che il programma ritorna all'utente come risultato delle proprie elaborazioni. 3. Numero di richieste: è il numero di interrogazioni in linea che producono una risposta immediata del sistema. 4. Numero di file: numero di file creati ed utilizzati internamente dal programma. 5. Numero di interfacce esterne: è il numero dei file o di altri insiemi di dati scambiati dal programma con altri programmi.

23 23 Per calcolare il valore di FP di un programma, si utilizza la tabella mostrata di seguito, dove VPi sono i valori pesati per ciascun indice, ottenuti moltiplicando il campo Valore (cioè il numero fornito dal progettista relativo all'indice considerato) con uno dei tre pesi indicati, che variano a seconda che l'applicazione sia considerata semplice, media o complessa. I pesi sono calcolati in modo empirico, in base all' osservazione di programmi esistenti. Pesi Indici Valore Semplice Medio Complesso VPi N.Input V * P1 N.Output : N.Richieste : N.File : N.Interfacce V * P5 - Tabella di calcolo per i punti funzione -

24 24 Il valore di FP viene poi ottenuto attraverso la seguente formula (empirica): FP = S i = 1..5 VP i * ( * S i = F i ) UFC (Unadjusted Function Point Count) FUNZIONALITÀ TCF (Technical Complexity Factor) COMPLESSITÀ I valori Fi sono 14 parametri di aggiustamento che vengono calcolati in base al questionario e ai valori (compresi tra 0 e 5 ) descritti nella tabella seguente, a seconda dell' influenza che il fattore i-esimo (i = ) ha nello sviluppo del programma Ininfluente Incidenza scarsa Incidenza moderata Incidenza media Incidenza significativa Incidenza essenziale

25 25 Fi - FATTORI DI COMPLESSITÀ : 1. Il sistema richiede procedure di recovery e backup affidabili? 2. E' richiesta la trasmissione di dati? 3. Vi sono funzionalità che richiedono elaborazioni distribuite? 4. Le prestazioni sono critiche? 5. Il programma funzionerà in un ambiente operativo già pesantemente utilizzato? 6. Il sistema richiede funzionalità avanzate per l'emissione e la consultazione in linea di dati? 7. Le funzionalità di immissione dei dati devono essere costruite tramite interfacce a finestre? 8. Gli archivi principali sono aggiornati in tempo reale? 9. Le informazioni scambiate tra utente e programma sono complesse? 10. Il codice del programma è complesso? 11. Il codice è scritto per essere riusabile? 12. Nel progetto sono incluse anche le attività di installazione e conversione? 13. Il programma è stato progettato per essere installa to presso diversi utenti? 14. Il programma è stato progettato per facilitare l'uso e le modifiche da parte dell'utente? Gli Fi sono fattori di complessità del programma, che non riguardano tanto la funzionalità ( quella calcolata in  VP i ) quanto lo sforzo aggiuntivo che dovrà essere fatto per rispondere ai 14 requisiti non funzionali.

26 26 I valori di FP così ricavati possono essere utilizzati in modo equivalente alle linee di codice (LOC) per quantificare la dimensione del programma e per ricavare le altre misure indirette (P, Q, C, D). Relazione tra la grandezza del codice e i Punti Funzione: LINGUAGGIO NUMERO COMANDI DEL CODICE SORGENTE PER FP Assembler 320 C 150 Algol 106 COBOL 106 (110) FORTRAN 106 Pascal 91 RPG 80 PL/1 80 (65) MODULA-2 71 LISP 64 BASIC 64 4GL Database 40 (25) APL 32 SMALLTALK 21 QUERY Languages 16

27 Spreadsheet languages 6 27

28 Metrica dei Punti Funzione: 28 adatta anche alla stima a priori della dimensione del programma: possono venir stipulati contratti sulla base dei FP stimati (fissato un prezzo per FP); monitoraggio dei progetti; FP specificati, progettati, codificati, testati; indipendente dalla tecnologia; più difficoltosa, a posteriori, del conteggio dei LOC; i fattori di aggiustamento della complessità hanno rilevato spesso di fornire poca informazione interessante (cioè la stima effettuata senza tali fattori non si è rilevata troppo più distante dai valori effettivi di quanto fosse la stima aggiustata); molti utenti dei FP usano direttamente UFC; dipendenza dal dominio di applicazione: I FP funzionano bene per Data-Processing, non per programmi Real-Time; neanche la metrica dei Punti Funzione è molto raffinata perché non fa riferimento alla complessità dell'algoritmo: ad es. data una funzione con un certo input e un certo output, ci possono essere algoritmi molto semplici o molto complessi; (anche in termini di LOC) che la realizzano, mentre resta invariato il loro FP. International Function Point User Group

29 Software science di Halstead 29 Un'altra metrica funzionale è la SOFTWARE SCIENCE di Halstead, dove, ancora più semplicisticamente della tecnica dei Punti Funzione, si vede un programma come un insieme di operandi ed operatori : Esempio: begin max := 0; read(x); while x <>0 do begin if x > max then max := x; read(x) end; write(max) end;

30 30 Operatori (occorrenza) Operandi (occorrenza) begin...end 2 max 4 := ; 5 x 5 read 2 (...) 3 while...do 1 <> 1 if...then 1 > 1 write 1 h1 = 10 N1 = 19 h2 = 3 N2 = 11 sono considerati operatori anche i seguenti : (...) operatore di raggruppamento ; operatore di sequenzializzazione Le seguenti grandezze (calcolabili a partire da quelle appena definite) servono non solo per dare una misura del programma, ma anche per calcolare alcuni indicatori ed i rispettivi stimatori (che ne danno una stima prima che il programma sia stato ultimato):

31 31 Æ lunghezza ( N ) N = N1 + N2 ( si calcola a posteriori ) Æ stimatore della lunghezza (N^) N^ = h 1 log 2 (h 1 ) + h 2 log 2 (h 2 ) (formula empirica; anche qui, come per i Punti Funzione, non si tiene conto dell'algoritmo e quindi la stima è semplicistica) Æ volume (V ) V = N log 2 (h) (V indica lo spazio che il SW occupa in memoria: log 2( h ) è il num. min. di bit necessari per codificare ciascun operatore od operando, essendo ovviamente h = h1 + h2) Æ volume potenziale(v* ) V* = (2+ h* 2 ) log 2 (2+ h* 2 ) (indica lo spazio che sarebbe occupato in memoria dal programma, se esistesse nel linguaggio di programmazione un'istruzione che ne realizza le funzionalità; h * 2 è il num. di operandi concettuali del programma: sono gli input e output e non gli operandi interni, cioè le variabili interne; la lunghezza è data dal num. di operandi (h * 2 ) più 2 operatori: il nome della procedura predefinita e un operatore (le parentesi) di raggruppamento dei suoi argomenti) Æ livello del programma ( L ) L = V * / V

32 (se è basso vuol dire che il linguaggio di programmazione usato è di basso livello; se si avvicina ad 1 vuol dire che è di alto livello; se ad es. lavoro in Assembler scriverò un programma con tanti operatori ed operandi, molto distante dal suo volume potenziale) 32

33 Æ stimatore del livello ( L^ ) L^ = 2 h 2 / (h 1 N2 ) (formula empirica; e' stato introdotto in base ad una serie di approssimazioni) 33 Æ difficoltà ( D ) D = 1/ L (indica la difficoltà che si incontra nella realizzazione del programma) 2 * Æ sforzo ( E ) E = D V = V / L = V / V (indica lo sforzo richiesto per scrivere il programma) Esso è inteso come numero di discriminazioni mentali effettuate nella stesura del programma. Un'altra quantità di grande importanza è il tempo che occorre per scrivere il programma. Æ tempo occorrente ( T^ ) T^ = E / S (indica il tempo che occorre per scrivere il programma) Dove S è il numero di discriminazioni mentali effettuate in un secondo. S = 18 In realtà il programmatore non pensa facendo una ricerca binaria ma con ragionamenti dettati dall'intuizione e questo soprattutto nelle parti più creative del programma.

34 Da criticare è inoltre il fatto che questi indici sono tutti esatti e quindi non possono essere fatti studi statistici a proposito. 34

35 35 METRICHE "A POSTERIORI" BASATE SULLA COMPLESSITÀ DEL PROGRAMMA (METRICHE STRUTTURALI) NUMERO CICLOMATICO (McCabe) Dà la dimensione, su base matematica, della complessità del SW in funzione dei possibili cammini percorribili nel programma. La struttura del programma viene vista come un grafo i cui nodi sono i principali punti di scelta del programma (if, while,...) GRAFO di FLUSSO Dalla teoria dei grafi fortemente connessi si sa che il numero di cammini linearmente indipendenti è dato da : n. c. l. i.= e - n +1 e = numero di archi

36 n = numero di nodi. 36

37 37 if (a) S1 else S2; if (b) S3 else S4; if (c) S5 else S6; if (d) S7 else S8; T S 1 T a b F S 2 F Base (insieme di cammini linearmente indipendenti mediante i quali è possibile costruire ogni altro cammino): S 3 T c S 4 F 1 false false false false 2 true false false false 3 false true false false 4 false false true false 5 false false false true S 5 T S 7 d S 6 F S 8 il cammino true false true false può essere ottenuto sommando 2 a 4 e sottraendo 1. n if base di n+1 cammini linearmente indipendenti - 2**n cammini

38 38 Un grafo fortemente connesso è un grafo dove da ogni nodo parte un cammino per i nodi rimanenti. I grafi associati ai programmi non sono fortemente connessi e quindi si aggiunge ad essi un arco che collega il nodo finale con il nodo iniziale rendendoli così fortemente connessi. Fatto questo il numero di cammini linearmente indipendenti che è proprio il numero ciclomatico sarà: v( G) = e - n + 2 (da cui il numero di n+1 cammini linearmente indipendenti per n if)

39 39 SEQUENZA IF THEN ELSE REPEAT UNTIL V(G)=1 V(G)=2 V(G)=2 Numero CICLOMATICO

40 40 Si può dimostrare (teorema di Mills) che il numero ciclomatico è pari al numero di decisioni più uno, dove per decisione si intende la scelta tra un ramo ed un altro: v( G) = d +1 Estendendo il numero ciclomatico alle procedure, potremmo fare la stessa cosa per tutti i grafi associati alle procedure ottenendo la formula: v( G) = e - n + 2 p e = numero totale di archi n = numero totale di nodi p = numero di procedure.

41 41 Note: numero ciclomatico -> informazioni sul flusso di controllo non sul flusso dei dati. Si è riscontrato un buon legame tra questo indice e l'intuizione soggettiva di complessità di programma. In genere se per un modulo numero ciclomatico > 10 è buona regola scomporre il modulo in sottomoduli; --> misura per valutare dove fermare la scomposizione in moduli tipica del processo di sviluppo top-down.

42 VARIANTI DEL NUMERO CICLOMATICO 42 if x=0 then... else... end if; A if x=0 and y>1 then... else... end if; B if x=0 then... if y>1 then... else... end if; end if; C Intuitivamente, compl(a) < compl(b) < compl(c)

43 43 ma il numero ciclomatico è 2 per A e per B, 3 per C contando le condizioni, invece delle decisioni, il numero ciclomatico è 2 per A, 3 per B e per C Myers: intervallo di complessità: inf: numero delle decisioni più uno sup: numero delle condizioni più uno V(A) = 2..2, V(B) = 2..3, V(C) = 3..3 Hansen (complexity by the pair): Coppia (numero ciclomatico, numero degli operatori) distingue la complessità della struttura dalla complessità delle espressioni V(A) =(2,1), V(B) = (2,3), V(C) = (3,2) (ordinamento lessicografico)

44 METRICA del FLUSSO di INFORMAZIONE di Kafura - Henry 44 Misura della complessità dei flussi di informazione tra moduli. Complexity(M) = length(m) * ((fan-in(m) * fan-out(m))2 dove: fan-in(m) è il numero di flussi locali di informazione che terminano in M, più il numero delle strutture dati dalle quali M preleva informazioni; fan-out(m) è il numero di flussi locali di informazione che escono da M, più il numero delle strutture dati aggiornate da M.

45 45 M1 M2 M3 M4 M5 Può essere stimata abbastanza precisamente durante la fase di progetto, cioè prima che venga scritto il codice.

46 METRICHE DI MODULARITÀ 46 (Misure strutturali sul grafo delle chiamate) Tree impurity La bontà del progetto è legata ad una struttura il più possibile gerarchica (albero) delle relazioni tra moduli. m(g) = 2 (e n + 1) / ((n-1)*(n-2)) ( numero degli archi aggiuntivi rispetto allo spanning tree ) Riuso interno r(g) = e n + 1

47 47 m(g) = 0 1/10 1/5 1 r(g) = massimo riuso con bassa tree impurity

48 COUPLING (accoppiamento tra moduli) in genere indesiderato 48 0 moduli totalmente indipendenti 1 accoppiamento di dati (parametri) 2 Strong coupling stesso tipo record come parametro 3 Control coupling parametri di controllo 4 Common coupling accesso a dati globali comuni 5 Content coupling un modulo riferisce il contenuto di un altro (modifica dati, salta dentro, modifica statements) COESIONE in genere desiderata Loosel y coupl ed Tigthl y coupl ed 6 Funzionale - singola funzione 5 Sequenziale - + funzioni, ma in ordine prescritto 4 Comunicazionale - + funzioni, ma sullo stesso insieme di dati 3 Procedurale - + funzioni, in ordine dato da una procedura esterna 3 Temporale - + funzioni, nello stesso intervallo di tempo 1 Logica - + funzioni, con solo relazione logica (es. libreria trigonometrica) 0 Coincidenziale - + funzioni, totalmente scorrelate

49 METRICHE OBJECT_ORIENTED 49 Chidamber & Kemerer 1991 proposta 6 metriche OO WMC DIT NOC WEIGHTED METHOD PER CLASS Somma della complessità dei metodi di una classe DEPTH OF INHERITANCE TREE NUMBER OF CHILDREN CBO COUPLING BETWEEN OBJECT CLASSES Per una classe, numero delle altre classi a cui è accoppiata RFC RESPONSE FOR A CLASS Numero dei metodi locali + numero dei metodi chiamati dai metodi locali LCOM LACK OF COHESION IN METHODS Numero dei metodi locali disgiunti (cioè che non lavorano sulle stesse variabili locali) della classe

50 NOC(Food) = 8 DIT(Food) = 3 50

51 51 Negli ulitmi anni, vi è stato un proliferare di definizioni di metriche Object Oriented (circa 150) che cercano di migliorare le 6 originali CK metrics catturando diverse caratteristiche dei programmi OO. Studi statistici in corso per stabilire quali siano correlate tra loro, quali siano utili come indicatori di Fault-proneness (WMC, RFC,...), etc...

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Project Management dei Progetti Software

Project Management dei Progetti Software Project Management dei Progetti Software 1 Obiettivi della lezione Il Project Management Tecniche per la stima dei costi sw Misurare le dimensioni di un progetto sw Linee di codice Function Point Stima

Dettagli

STRUTTURE (O COSTRUTTI) DI CONTROLLO

STRUTTURE (O COSTRUTTI) DI CONTROLLO Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

Introduzione al Project Management. AIPA Area Monitoraggio e Verifiche

Introduzione al Project Management. AIPA Area Monitoraggio e Verifiche Introduzione al Project Management AIPA Area Monitoraggio e Verifiche Contenuti del corso Impostazione del progetto; Pianificazione delle attività, risorse e costi; Coordinamento e controllo durante le

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

I file di dati. Unità didattica D1 1

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à

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Abstract Data Type (ADT)

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

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12 A / A / Seconda Prova di Ricerca Operativa Cognome Nome Numero Matricola Nota: LA RISOLUZIONE CORRETTA DEGLI ESERCIZI CONTRADDISTINTI DA UN ASTERISCO È CONDIZIONE NECESSARIA PER IL RAGGIUNGIMENTO DELLA

Dettagli

Cos è l Ingegneria del Software?

Cos è l Ingegneria del Software? Cos è l Ingegneria del Software? Corpus di metodologie e tecniche per la produzione di sistemi software. L ingegneria del software è la disciplina tecnologica e gestionale che riguarda la produzione sistematica

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Architetture CISC e RISC

Architetture CISC e RISC FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architetture CISC e RISC 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

Programmazione Funzionale

Programmazione Funzionale Programmazione Funzionale LP imperativi: apparenza simile modello di progettazione = macchina fisica Famiglia dei LP imperativi = progressivo miglioramento del FORTRAN Obiezione: pesante aderenza dei LP

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense Linguaggio del calcolatore Circuiti e reti combinatorie ppendice + dispense Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e nche per esprimere concetti complessi

Dettagli

Istruzioni per il controllo di ciclo - ciclo a condizione generica

Istruzioni per il controllo di ciclo - ciclo a condizione generica Istruzioni per il controllo di ciclo - ciclo a condizione generica Permette di ripetere l esecuzione di un blocco di istruzioni finchè non viene verificata una condizione logica. Sintassi istruzione_1...

Dettagli

Tipologie di pianificatori. Pianificazione. Partial Order Planning. E compiti diversi. Pianificazione gerarchica. Approcci integrati

Tipologie di pianificatori. Pianificazione. Partial Order Planning. E compiti diversi. Pianificazione gerarchica. Approcci integrati Tipologie di pianificatori Pianificazione Intelligenza Artificiale e Agenti II modulo Pianificazione a ordinamento parziale (POP) (HTN) pianificazione logica (SatPlan) Pianificazione come ricerca su grafi

Dettagli

2 Formulazione dello shortest path come problema di flusso

2 Formulazione dello shortest path come problema di flusso Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10 Lecture 20: 28 Maggio 2010 Cycle Monotonicity Docente: Vincenzo Auletta Note redatte da: Annibale Panichella Abstract In questa lezione

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN per Expert NANO 2ZN Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie Expert NANO 2ZN Nome documento: MODBUS-RTU_NANO_2ZN_01-12_ITA Software installato: NANO_2ZN.hex

Dettagli

Maurizio Vichi Sapienza Università di Roma

Maurizio Vichi Sapienza Università di Roma Percorsi didattici, interdisciplinari ed innovativi per la Statistica Maurizio Vichi Sapienza Università di Roma Presidente Federazione Europea delle Società Nazionali di Statistica Scuola Estiva di Matematica

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Definiamo innanzitutto una relazione d ordine tra le funzioni. Siano φ e ψ funzioni

Dettagli

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione Alberi binari Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari

Dettagli

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testualilezione 2 Le principali tecniche di analisi testuale Facendo riferimento alle tecniche di data mining,

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE

Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE Programma Enti Locali Innovazione di Sistema Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE 1 Premessa Il presente documento ha lo scopo di facilitare la disseminazione e il riuso

Dettagli

Capitolo 9: PROPAGAZIONE DEGLI ERRORI

Capitolo 9: PROPAGAZIONE DEGLI ERRORI Capitolo 9: PROPAGAZIOE DEGLI ERRORI 9.1 Propagazione degli errori massimi ella maggior parte dei casi le grandezze fisiche vengono misurate per via indiretta. Il valore della grandezza viene cioè dedotto

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

Flusso a costo minimo e simplesso su reti

Flusso a costo minimo e simplesso su reti Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo

Dettagli

PROBABILITA, VALORE ATTESO E VARIANZA DELLE QUANTITÁ ALEATORIE E LORO RELAZIONE CON I DATI OSSERVATI

PROBABILITA, VALORE ATTESO E VARIANZA DELLE QUANTITÁ ALEATORIE E LORO RELAZIONE CON I DATI OSSERVATI statistica, Università Cattaneo-Liuc, AA 006-007, lezione del 08.05.07 IDICE (lezione 08.05.07 PROBABILITA, VALORE ATTESO E VARIAZA DELLE QUATITÁ ALEATORIE E LORO RELAZIOE CO I DATI OSSERVATI 3.1 Valore

Dettagli

Permutazione degli elementi di una lista

Permutazione degli elementi di una lista Permutazione degli elementi di una lista Luca Padovani padovani@sti.uniurb.it Sommario Prendiamo spunto da un esercizio non banale per fare alcune riflessioni su un approccio strutturato alla risoluzione

Dettagli

Controllori a Logica Programmabile. Cos è un PLC? Cenni storici. Cenni storici. Cenni storici. Definizione dallo Standard IEC 61131

Controllori a Logica Programmabile. Cos è un PLC? Cenni storici. Cenni storici. Cenni storici. Definizione dallo Standard IEC 61131 Controllori a Logica mabile Nella presente lezione vedremo le caratteristiche principali del controllore a logica programmabile (in inglese, mable Logic Controller, o PLC). In particolare, ci soffermeremo

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale RUOLO DELLA MODELLAZIONE GEOMETRICA E LIVELLI DI MODELLAZIONE PARTE 2 Prof. Caterina Rizzi... IN QUESTA LEZIONE Modelli 2D/3D Modelli 3D/3D Dimensione delle primitive di modellazione Dimensione dell oggettoy

Dettagli

IL PROBLEMA DELLO SHORTEST SPANNING TREE

IL PROBLEMA DELLO SHORTEST SPANNING TREE IL PROBLEMA DELLO SHORTEST SPANNING TREE n. 1 - Formulazione del problema Consideriamo il seguente problema: Abbiamo un certo numero di città a cui deve essere fornito un servizio, quale può essere l energia

Dettagli

ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione.

ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione. ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione. COMPETENZE MINIME- INDIRIZZO : ELETTROTECNICA ED AUTOMAZIONE 1) CORSO ORDINARIO Disciplina: ELETTROTECNICA

Dettagli

Ricapitoliamo. Ricapitoliamo

Ricapitoliamo. Ricapitoliamo Ricapitoliamo Finora ci siamo concentrati sui processi computazionali e sul ruolo che giocano le procedure nella progettazione dei programmi In particolare, abbiamo visto: Come usare dati primitivi (numeri)

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

Fondamenti di Informatica T. Linguaggio C: File

Fondamenti di Informatica T. Linguaggio C: File Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Prolog: aritmetica e ricorsione

Prolog: aritmetica e ricorsione Capitolo 13 Prolog: aritmetica e ricorsione Slide: Aritmetica e ricorsione 13.1 Operatori aritmetici In logica non vi è alcun meccanismo per la valutazione di funzioni, che è fondamentale in un linguaggio

Dettagli

1 Definizione: lunghezza di una curva.

1 Definizione: lunghezza di una curva. Abstract Qui viene affrontato lo studio delle curve nel piano e nello spazio, con particolare interesse verso due invarianti: la curvatura e la torsione Il primo ci dice quanto la curva si allontana dall

Dettagli

RUP (Rational Unified Process)

RUP (Rational Unified Process) RUP (Rational Unified Process) Caratteristiche, Punti di forza, Limiti versione del tutorial: 3.3 (febbraio 2007) Pag. 1 Unified Process Booch, Rumbaugh, Jacobson UML (Unified Modeling Language) notazione

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo stituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di nformatica Anno Scolastico 2008/2009 Classe 3APS Dal Problema all'algoritmo Pr.: 001 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input Release Management Obiettivi Obiettivo del Release Management è di raggiungere una visione d insieme del cambiamento nei servizi IT e accertarsi che tutti gli aspetti di una release (tecnici e non) siano

Dettagli

MATEMATICA. { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un numero x ed un numero y che risolvano entrambe le equazioni.

MATEMATICA. { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un numero x ed un numero y che risolvano entrambe le equazioni. MATEMATICA. Sistemi lineari in due equazioni due incognite. Date due equazioni lineari nelle due incognite x, y come ad esempio { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un

Dettagli

Minimo sottografo ricoprente. Minimo sottografo ricoprente. Minimo albero ricoprente. Minimo albero ricoprente

Minimo sottografo ricoprente. Minimo sottografo ricoprente. Minimo albero ricoprente. Minimo albero ricoprente Minimo sottografo ricoprente Minimo sottografo ricoprente Dato un grafo connesso G = (V, E) con costi positivi sugli archi c e, un minimo sottografo ricoprente è un insieme di archi E E tale che: G = (V,

Dettagli

Software Emeris Communication Manager

Software Emeris Communication Manager ecm Software Emeris Communication Manager Manuale operativo Fantini Cosmi S.p.A. Via dell Osio 6 20090 Caleppio di Settala MI Tel 02.956821 - Fax 02.95307006 e-mail: info@fantinicosmi.it http://www.fantinicosmi.it

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Elementi di Statistica

Elementi di Statistica Elementi di Statistica Contenuti Contenuti di Statistica nel corso di Data Base Elementi di statistica descrittiva: media, moda, mediana, indici di dispersione Introduzione alle variabili casuali e alle

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

Studio sperimentale della propagazione di un onda meccanica in una corda

Studio sperimentale della propagazione di un onda meccanica in una corda Studio sperimentale della propagazione di un onda meccanica in una corda Figura 1: Foto dell apparato sperimentale. 1 Premessa 1.1 Velocità delle onde trasversali in una corda E esperienza comune che quando

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test Prefazione, Contenuto Parte 1: Sviluppo di programmi Parte 2: Uso e test SIMATIC Parte 3: Descrizione del linguaggio Programmazione di blocchi Appendici Glossario, Indice analitico Manuale Numero di ordinazione

Dettagli

Manipolazione di testi: espressioni regolari

Manipolazione di testi: espressioni regolari Manipolazione di testi: espressioni regolari Un meccanismo per specificare un pattern, che, di fatto, è la rappresentazione sintetica di un insieme (eventualmente infinito) di stringhe: il pattern viene

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

TIPOLOGIE DI PROCESSI PRODUTTIVI E CONTROLLO DI GESTIONE PRODUZIONE SU COMMESSA PRODUZIONE SU MODELLO PRODUZIONE A FLUSSO CONTINUO

TIPOLOGIE DI PROCESSI PRODUTTIVI E CONTROLLO DI GESTIONE PRODUZIONE SU COMMESSA PRODUZIONE SU MODELLO PRODUZIONE A FLUSSO CONTINUO TIPOLOGIE DI PROCESSI PRODUTTIVI E CONTROLLO DI GESTIONE PRODUZIONE SU COMMESSA PRODUZIONE SU MODELLO PRODUZIONE A FLUSSO CONTINUO 1 PRODUZIONE SU COMMESSA CARATTERISTICHE DELL ATTIVITA : - ORIGINA DAL

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

γ (t), e lim γ (t) cioè esistono la tangente destra e sinistra negli estremi t j e t j+1.

γ (t), e lim γ (t) cioè esistono la tangente destra e sinistra negli estremi t j e t j+1. Capitolo 6 Integrali curvilinei In questo capitolo definiamo i concetti di integrali di campi scalari o vettoriali lungo curve. Abbiamo bisogno di precisare le curve e gli insiemi che verranno presi in

Dettagli

Da una a più variabili: derivate

Da una a più variabili: derivate Da una a più variabili: derivate ( ) 5 gennaio 2011 Scopo di questo articolo è di evidenziare le analogie e le differenze, relativamente al calcolo differenziale, fra le funzioni di una variabile reale

Dettagli

INDUSTRY PROCESS AND AUTOMATION SOLUTIONS. Lo strumento universale per la messa in esercizio e la diagnosi

INDUSTRY PROCESS AND AUTOMATION SOLUTIONS. Lo strumento universale per la messa in esercizio e la diagnosi Con Vplus, BONFIGLIOLI VECTRON offre uno strumento per la messa in esercizio, la parametrizzazione, il comando e la manutenzione. VPlus consente di generare, documentare e salvare le impostazioni dei parametri.

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Ricerca non informata in uno spazio di stati

Ricerca non informata in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Il ciclo di vita del software

Il ciclo di vita del software Il ciclo di vita del software Il ciclo di vita del software Definisce un modello per il software, dalla sua concezione iniziale fino al suo sviluppo completo, al suo rilascio, alla sua successiva evoluzione,

Dettagli

GESTIONE STUDIO. Compatibile con: Win 7, Vista, XP

GESTIONE STUDIO. Compatibile con: Win 7, Vista, XP GESTIONE ADEMPIMENTI FISCALI Blustring fornisce la stampa dei quadri fiscali, cioè dei quadri del modello UNICO relativi alla produzione del reddito d impresa, o di lavoro autonomo (RG, RE, RF, dati di

Dettagli

Appendice I. Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice

Appendice I. Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice . Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice Ordinamento di osservazioni: PROC SORT PROC SORT DATA=fa il sort è numerico

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo: ALGORITMI 1 a Parte di Ippolito Perlasca Algoritmo: Insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema (De Mauro) Procedimento che consente di ottenere

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,

Dettagli