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...

Corso di Ingegneria del Software. Metriche Parte I

Corso di Ingegneria del Software. Metriche Parte I Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it Concetti di base Metriche Sommario 1. Concetti di base 2. METRICHE DIMENSIONALI 3. 4. METRICHE STRUTTURALI 5. Bibliografia

Dettagli

Software project management. www.vincenzocalabro.it

Software project management. www.vincenzocalabro.it Software project management Software project management Sono le attività necessarie per assicurare che un prodotto software sia sviluppato rispettando le scadenze fissate rispondendo a determinati standard

Dettagli

Metriche del Software

Metriche del Software Il controllo di qualità del software deve classificare i programmi a riguardo di caratteristiche quali leggibilità, modificabilità, affidabilità etc. Obiettivi: - Confrontare vari programmi che realizzano

Dettagli

Ingegneria del Software MINR Giuseppe Santucci. 05 - Il metodo dei FP

Ingegneria del Software MINR Giuseppe Santucci. 05 - Il metodo dei FP Ingegneria del Software MINR Giuseppe Santucci 05 - Il metodo dei FP 05fp.1 Metriche relative al sw Dirette misure effettuabili direttamente sul codice LOC (Line Of Code) Indice di McCabe... misure effettuabili

Dettagli

Software. Engineering

Software. Engineering Software Metrica: Function Point Engineering Contenuti Misurazione del software Metriche basate sulla funzionalità Punto Funzione (Function Point) Esempio di calcolo di FP Rieferimenti: 1. Roger S. Pressman

Dettagli

GESTIONE DEI PROGETTI. Inizio

GESTIONE DEI PROGETTI. Inizio GESTIONE DEI PROGETTI Problema del management Fallimento negli anni 60, inizio 70 Non tanto dovuto alla competenza Un buon management non garantisce il successo ma un cattivo management risulta spesso

Dettagli

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti Definizioni Problemi del testing:criterio di selezione dei casi di test Test Funzionale: suddivisione in classi di equivalenza e analisi dei valori limite Test Strutturale: basato sul flusso di controllo

Dettagli

Gestione di progetto: pianificazione. Introduzione: dove siamo? Introduzione: pianificazione. Simona Bernardi

Gestione di progetto: pianificazione. Introduzione: dove siamo? Introduzione: pianificazione. Simona Bernardi Gestione di progetto: pianificazione Simona Bernardi Corso di Ingegneria del Software 04/ 05 Prof.Susanna Donatelli Introduzione: dove siamo? Gestione di progetto: Pianificazione Monitoraggio e controllo

Dettagli

GESTIONE DEI PROGETTI

GESTIONE DEI PROGETTI GESTIONE DEI PROGETTI Problema del management Fallimento negli anni 60, inizio 70 Non tanto dovuto alla competenza Un buon management non garantisce il successo ma un cattivo management risulta spesso

Dettagli

Metriche del software

Metriche del software Sviluppo di Software Applicativo Metriche del software Come misurare le diverse caratteristiche del software: dimensioni, qualità, impegno richiesto per lo sviluppo, ecc. Ercole Colonese IBM Global Services

Dettagli

STIMA DEI COSTI DI SVILUPPO DEL SOFTWARE

STIMA DEI COSTI DI SVILUPPO DEL SOFTWARE STIMA DEI COSTI DI SVILUPPO DEL SOFTWARE Classificazione dei costi per tipo di risorsa Hardware Mainframe Sistemi intermedi Personal computer Altre componenti Cablaggi Classificazione dei costi per tipo

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Il test. Marina Mongiello

Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Il test. Marina Mongiello Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del Il test Sommario Introduzione al test Teoria del test Tecniche e metodologie di test Qualità del Metriche per la stima di qualità Test

Dettagli

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica dei programmi La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica operazionale: associa ad ogni programma la sequenza delle sue

Dettagli

Leveling delle attività

Leveling delle attività Leveling delle attività Metodi per risolvere i conflitti di allocazione delle attività Allocare in modo non-uniforme Ritardare un attività Prima le attività con slack più alto Nel caso di attività con

Dettagli

02: Project Management

02: Project Management 02: Project Management Le tre P del project management Persone motivate / esperte SEI PM-CMM (People Management Capability Maturity Model) assunzione / selezione addestramento / cultura di gruppo stipendio

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

Dettagli

Qualità del software. Tecniche di Programmazione 2009/10. Giovanni A. Cignoni - http://www.di.unipi.it/~giovanni/ 1. contenuti. definizione di qualità

Qualità del software. Tecniche di Programmazione 2009/10. Giovanni A. Cignoni - http://www.di.unipi.it/~giovanni/ 1. contenuti. definizione di qualità Qualità del software Tecniche di Programmazione Lez. 05 Università di Firenze a.a. 2009/10, I semestre 1/33 contenuti Qualità? Definizioni Il prodotto software Modelli della qualità per il sw: ISO/IEC

Dettagli

DAL PROBLEMA AL PROGRAMMA

DAL PROBLEMA AL PROGRAMMA DAL PROBLEMA AL PROGRAMMA Scopo del modulo Conoscere alcuni concetti fondamentali dell informatica:algoritmo, l automa, linguaggio formale Essere in grado di cogliere l intreccio tra alcuni risultati della

Dettagli

INFORMATICA E COMPUTER : INTRODUZIONE

INFORMATICA E COMPUTER : INTRODUZIONE INFORMATICA E COMPUTER : INTRODUZIONE! Informatica: dal francese, informatique informat(ion) (automat)ique [termine coniato dall'ingegnere francese Philippe Dreyfus nel 1962] è la scienza che studia i

Dettagli

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi) Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) 3. (testo di riferimento: Bellini-Guidi) Ing. Agnese Pinto 1 di 28 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Sistemi Informativi I Function Point Analisys

Sistemi Informativi I Function Point Analisys 7. Stima dei costi. Nelle diverse fasi del progetto di sviluppo del software si possono individuare quattro principali voci di costo, corrispondenti alle fasi del ciclo posteriori allo studio di fattibilità:

Dettagli

+ / 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

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO ELEMENTI FONDAMENTALI PER LO SVILUPPO DI SISTEMI INFORMATIVI ELABORAZIONE DI

Dettagli

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso 1 Introduzione all informatica: algoritmi, linguaggi e programmi Indice 1. Introduzione 2. Risoluzione automatica di problemi - Algoritmi

Dettagli

Test del Software. Definizione SCOPO LIMITI DEL TEST

Test del Software. Definizione SCOPO LIMITI DEL TEST Definizione! Verifica dinamica del comportamento del software rispetto a quello atteso, utilizzando un insieme finito di casi di test, appropriatamente selezionati nel dominio di tutti i casi possibili

Dettagli

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO Linguaggio macchina Uno per ogni processore o famiglia di processori Linguaggio assembler Versione simbolica di quello macchina. LINGUAGGI DI ALTO

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Il software: natura e qualità

Il software: natura e qualità Sommario Il software: natura e qualità Leggere Cap. 2 Ghezzi et al. Natura e peculiarità del software Classificazione delle qualità del software Qualità del prodotto e del processo Qualità interne ed esterne

Dettagli

3. SOFTWARE MANAGEMENT

3. SOFTWARE MANAGEMENT 3. SOFTWARE MANAGEMENT Introdurre caratteristiche e problematiche della direzione di progetto software (software management) Discutere la pianificazione di un progetto e la temporizzazione (scheduling)

Dettagli

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Ingegneria del Software MINR. Esercitazione: esempi di esercizi di esame

Ingegneria del Software MINR. Esercitazione: esempi di esercizi di esame Ingegneria del Software MINR Esercitazione: esempi di esercizi di esame EserciziEsame.1 Struttura del compito 2/3 ore di tempo esercizi su Function point Test scatola nera Test scatola bianca Pianificazione

Dettagli

LINGUAGGI - COMPILATORI - INTERPRETI

LINGUAGGI - COMPILATORI - INTERPRETI LINGUAGGI - COMPILATORI - INTERPRETI Per poter risolvere un dato problema utilizzando un computer è necessario che questo venga guidato da una serie di istruzioni che specificano, passo dopo passo, la

Dettagli

Domenico Clerici Luigi Petruzzelli La gestione quantitativa di progetti software

Domenico Clerici Luigi Petruzzelli La gestione quantitativa di progetti software Domenico Clerici Luigi Petruzzelli La gestione quantitativa di progetti software Edizioni Della Vigna Indice PREFAZIONE... XIII RICHIAMI DI PROJECT MANAGEMENT... 19 1.1 - Introduzione al project management...

Dettagli

E una notazione per descrivere gli algoritmi.

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

Dettagli

STIMA DEI COSTI DI SVILUPPO DEL SOFTWARE

STIMA DEI COSTI DI SVILUPPO DEL SOFTWARE STIMA DEI COSTI DI SVILUPPO DEL SOFTWARE Di 1. Generalità Uno dei passi fondamentali dello sviluppo di un sistema software è la valutazione del suo impatto sociale (macroeconomico) ed aziendale (microeconomico).

Dettagli

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice.

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice. Convalida: attività volta ad assicurare che il SW sia conforme ai requisiti dell utente. Verifica: attività volta ad assicurare che il SW sia conforme alle specifiche dell analista. Goal: determinare malfunzionamenti/anomalie/errori

Dettagli

POLITECNICO DI MILANO

POLITECNICO DI MILANO POLITECNICO DI MILANO Scuola di Ingegneria dell Informazione Corso di Laurea Specialistica in Ingegneria Informatica Dipartimento di Elettronica e Informazione IL RUOLO DEI SISTEMI DI GOVERNANCE NELLE

Dettagli

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

LICEO SCIENTIFICO LEONARDO DA VINCI - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Modulo 1: Introduzione all informatica Fondamenti di teoria della elaborazione

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

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

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Linguaggi per COMUNICARE Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Sintassi e semantica dei linguaggi Un informazione può : Essere

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von Neumann. John Von Neumann (1903-1957) Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

Gestione. di progetto. Gestione di progetto. IS 2011 - Ingegneria del Software 1. Contenuti. Fondamenti. Criticità. Gestione dei rischi 1

Gestione. di progetto. Gestione di progetto. IS 2011 - Ingegneria del Software 1. Contenuti. Fondamenti. Criticità. Gestione dei rischi 1 Contenuti Gestione di progetto Ruoli professionali Pianificazione di progetto Ingegneria del Software Stima dei costi di progetto V. Ambriola, G.A. Cignoni, C. Montangero, L. Semini Seminario: rischi di

Dettagli

5 Gestione dei progetti software. 5.1 Attività gestionale. Sistemi Informativi I Lezioni di Ingegneria del Software

5 Gestione dei progetti software. 5.1 Attività gestionale. Sistemi Informativi I Lezioni di Ingegneria del Software 5 Gestione dei progetti software. Dopo aver completato lo studio del ciclo di vita del software, in questa parte vengono discussi gli aspetti gestionali della produzione del software. Vengono esaminate

Dettagli

Facoltà di Lettere e Filosofia Università di Verona A.A. 2005-06. Comunicazione ed interazione. Regole di design

Facoltà di Lettere e Filosofia Università di Verona A.A. 2005-06. Comunicazione ed interazione. Regole di design Facoltà di Lettere e Filosofia Università di Verona A.A. 2005-06 Comunicazione ed interazione Regole di design 1 Introduzione Le regole di design forniscono ai progettisti la capacità di stabilire le conseguenze

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

Dettagli

Obiettivi della Lezione. Project Management. Software Project Management. Che cos è un progetto

Obiettivi della Lezione. Project Management. Software Project Management. Che cos è un progetto Project Management Dott. Andrea F. Abate e-mail: abate@unisa.it Web: http://www.dmi.unisa.it/people/abate Gestione di Progetti Software: Pianificazione delle attività e rappresentazioni grafiche Obiettivi

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

La fase di progetto. UniRoma2 - Ingegneria del Software 1 1

La fase di progetto. UniRoma2 - Ingegneria del Software 1 1 La fase di progetto Fase in cui si decidono le modalità di passaggio da "che cosa" deve essere realizzato nel sistema software a "come" la realizzazione deve aver luogo La fase di progetto prende in input

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Gestione di progetto. Gestione di progetto. Criticità. Fattori di rischio. Fondamenti. Istanziare processi nel progetto

Gestione di progetto. Gestione di progetto. Criticità. Fattori di rischio. Fondamenti. Istanziare processi nel progetto Criticità Gestione di progetto Ingegneria del Software V. Ambriola, G.A. Cignoni, C. Montangero, L. Semini Aggiornamenti: T. Vardanega (UniPD) Il prodotto SW è intangibile e (troppo) flessibile Al software

Dettagli

ALLEGATO 4 AL CAPITOLATO TECNICO. Requisiti di qualità specifici della fornitura

ALLEGATO 4 AL CAPITOLATO TECNICO. Requisiti di qualità specifici della fornitura CONSIP S.p.A. ALLEGATO 4 AL CAPITOLATO TECNICO Requisiti di qualità specifici della fornitura Capitolato relativo all affidamento dei servizi di Sviluppo, Manutenzione, Assistenza e Servizi intellettivi

Dettagli

PROGRAMMA DI INFORMATICA

PROGRAMMA DI INFORMATICA PROGRAMMA DI INFORMATICA A.S. 2014-2015 CLASSE IV SEZ. A INDIRIZZO SIA PROF. Pascarelli Anna Lucia I.T.P. Robilotta Alessandro MODULO 1 : LA PROGRAMMAZIONE VISUALE Unità Didattica 1 : L ambiente di programmazione

Dettagli

Verifica e validazione della qualità del sw

Verifica e validazione della qualità del sw Verifica e validazione della qualità del sw Tecniche di Programmazione Lez. 07 Università di Firenze a.a. 2009/10, I semestre 1/40 contenuti Termini e definizioni Tecniche rispetto alle caratteristiche

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Automazione Industriale 4- Ingegneria del Software

Automazione Industriale 4- Ingegneria del Software Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica

Dettagli

Il software e la programmazione

Il software e la programmazione Il software e la programmazione Concetti base sul software Elementi di programmazione Cenni sul linguaggio Pascal Che cosa è il software Determina ciò che un computer può fare Include istruzioni memorizzate

Dettagli

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio Test (o analisi dinamica) Verifica parte IIA Rif. Ghezzi et al. 6.3-6.3.3 Consiste nell osservare il comportamento del sistema in un certo numero di condizioni significative Non può (in generale) essere

Dettagli

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa

Dettagli

La Progettazione del Software

La Progettazione del Software del Software Definizioni IEEE Metodologie di progettazione Principi di progettazione Tecniche di progettazione (top down e bottom up) Moduli e criteri di modularizzazione: coesione ed accoppiamento, indipendenza

Dettagli

MATEMATICA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE ALLA FINE DELLA SCUOLA PRIMARIA

MATEMATICA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE ALLA FINE DELLA SCUOLA PRIMARIA MATEMATICA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE ALLA FINE DELLA SCUOLA PRIMARIA L alunno si muove con sicurezza nel calcolo scritto e mentale con i numeri naturali e sa valutare l opportunità di

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Testing - Tecniche di Collaudo del Software Collaudabilità Un attributo di qualità del software E il grado di semplicità con cui il software può essere collaudato Si compone di

Dettagli

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante Tiipii dii Datii iin Viisuall Basiic Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante l'esecuzione di un'applicazione. Alle variabili è associato un nome, utilizzato

Dettagli

Algoritmi, Linguaggi e Programmi

Algoritmi, Linguaggi e Programmi Algoritmi, Linguaggi e Programmi Algoritmi Definizione di algoritmo e caratteristiche di un algoritmo Nel linguaggio comune, da qualche decina d anni, è entrata a far parte la parola programma ; il significato

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

UNIVERSITÀ DEGLI STUDI DELL INSUBRIA

UNIVERSITÀ DEGLI STUDI DELL INSUBRIA UNIVERSITÀ DEGLI STUDI DELL INSUBRIA Facoltà Di Scienze Matematiche, Fisiche e Naturali Sede di Como Laurea Triennale in Scienze e Tecnologie dell Informazione I FUNCTION POINT E LE METRICHE FUNZIONALI:

Dettagli

Data Base. Prof. Filippo TROTTA

Data Base. Prof. Filippo TROTTA Data Base Definizione di DataBase Un Database può essere definito come un insieme di informazioni strettamente correlate, memorizzate su un supporto di memoria di massa, costituenti un tutt uno, che possono

Dettagli

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica Tecnologie dell informazione e della comunicazione per le aziende CAPITOLO 3: Progettazione e sviluppo

Dettagli

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

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Visual Basic Visual Basic Linguaggio di programmazione

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

CURRICOLO MATEMATICA

CURRICOLO MATEMATICA 1 CURRICOLO MATEMATICA Competenza 1 al termine della scuola dell Infanzia 2 NUMERI Raggruppare, ordinare, contare, misurare oggetti, grandezze ed eventi direttamente esperibili. Utilizzare calendari settimanali

Dettagli

Esercizio. Pseudocodice

Esercizio. Pseudocodice Esercizio Trovare quoziente e resto di una divisione intera per differenze successive (supponendo cioè di non disporre dell operatore di divisione) Dati di Input: D, D1 (supponiamo D1>0) Dati di Output:

Dettagli

Competenza chiave europea: MATEMATICA. Scuola Primaria. DISCIPLINE DI RIFERIMENTO: MATEMATICA DISCIPLINE CONCORRENTI: tutte

Competenza chiave europea: MATEMATICA. Scuola Primaria. DISCIPLINE DI RIFERIMENTO: MATEMATICA DISCIPLINE CONCORRENTI: tutte Competenza chiave europea: MATEMATICA Scuola Primaria DISCIPLINE DI RIFERIMENTO: MATEMATICA DISCIPLINE CONCORRENTI: tutte TAB. A TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE al termine della Scuola Primaria

Dettagli

con ANTLR tesi di laurea Anno Accademico 2007-2008 Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr. 534001505

con ANTLR tesi di laurea Anno Accademico 2007-2008 Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr. 534001505 tesi di laurea con ANTLR Anno Accademico 2007-2008 Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr. 534001505 Obiettivo Analisi statica di codice sorgente, realizzato in javascript,

Dettagli

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente T4 Contenuto di un analisi dei requisiti Presentate un indice di un documento di analisi dei requisiti e descrivete in modo sintetico contenuto e ruolo di ogni capitolo. INDICE 1. STORIA DELLE REVISIONI

Dettagli

La programmazione. Sviluppo del software

La programmazione. Sviluppo del software La programmazione problema Sviluppo del software idea (soluzione informale) algoritmo (soluzione formale) programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico)

Dettagli

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

GUFPI-ISMA. Evoluzione delle Linee Guida: l utilizzo contrattuale dei Function Points. Roberto Meli

GUFPI-ISMA. Evoluzione delle Linee Guida: l utilizzo contrattuale dei Function Points. Roberto Meli GUFPI-ISMA Evoluzione delle Linee Guida: l utilizzo contrattuale dei Function Points Roberto Meli Coordinatore Consiglio Direttivo GUFPI-ISMA 2 Perché era necessario intervenire? I contratti per il software

Dettagli

PIANO DI LAVORO (a.s. 2014/2015) Prof.Andrea Luppichini Prof. Marco Fiorentinini DISCIPLINA Informatica

PIANO DI LAVORO (a.s. 2014/2015) Prof.Andrea Luppichini Prof. Marco Fiorentinini DISCIPLINA Informatica Istituto Tecnico Commerciale Statale e per Geometri E. Fermi Pontedera (Pi) Via Firenze, 51 - Tel. 0587/213400 - Fax 0587/52742 http://www.itcgfermi.it E-mail: mail@itcgfermi.it PIANO DI LAVORO (a.s. 2014/2015)

Dettagli

Stima dei costi nei progetti Software

Stima dei costi nei progetti Software Stima dei costi nei progetti Software Rif. Sommerville, Capitolo 26 (stima dei costi) Pressman, Capitolo 20 Ingegneria del Software 2 Stima dei Costi 1 Argomenti Produttività Software e determinazione

Dettagli

Introduzione. La misurazione dei sistemi di Data Warehouse. Definizioni & Modelli. Sommario. Data Warehousing. Introduzione. Luca Santillo (CFPS)

Introduzione. La misurazione dei sistemi di Data Warehouse. Definizioni & Modelli. Sommario. Data Warehousing. Introduzione. Luca Santillo (CFPS) Introduzione La misurazione dei sistemi di Data Warehouse Luca Santillo (CFPS) AIPA, 17/5/01 In pratica I concetti generali, le definizioni e le regole di conteggio possono essere difficili da applicare

Dettagli

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

2) Codici univocamente decifrabili e codici a prefisso.

2) Codici univocamente decifrabili e codici a prefisso. Argomenti della Lezione ) Codici di sorgente 2) Codici univocamente decifrabili e codici a prefisso. 3) Disuguaglianza di Kraft 4) Primo Teorema di Shannon 5) Codifica di Huffman Codifica di sorgente Il

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

Ingegneria del Software Progettazione

Ingegneria del Software Progettazione Ingegneria del Software Progettazione Obiettivi. Approfondire la fase di progettazione dettagliata che precede la fase di realizzazione e codifica. Definire il concetto di qualità del software. Presentare

Dettagli

Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure

Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure COLLAUDO Esempi di errori/difetti algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure Verifica e Validazione Validazione Requisiti

Dettagli

CURRICOLO MATEMATICA ABILITA COMPETENZE

CURRICOLO MATEMATICA ABILITA COMPETENZE CURRICOLO MATEMATICA 1) Operare con i numeri nel calcolo aritmetico e algebrico, scritto e mentale, anche con riferimento a contesti reali. Per riconoscere e risolvere problemi di vario genere, individuando

Dettagli

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete Funzioni in due variabili Raccolta di FAQ by Andrea Prevete 1) Cosa intendiamo, esattamente, quando parliamo di funzione reale di due variabili reali? Quando esiste una relazione fra tre variabili reali

Dettagli

Complessità computazionale

Complessità computazionale 1 Introduzione alla complessità computazionale Un problema spesso può essere risolto utilizzando algoritmi diversi Come scegliere il migliore? La bontà o efficienza di un algoritmo si misura in base alla

Dettagli

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga Software Testing Lezione 2 Livelli di test Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: F.Rabini/F.Spiga 1 2 Livelli di test Unit Testing Integration Testing System Testing Unit Testing

Dettagli

Scuola Primaria Conta oggetti o eventi, a voce e a mente, in senso progressivo e regressivo e per salti di due, tre ;

Scuola Primaria Conta oggetti o eventi, a voce e a mente, in senso progressivo e regressivo e per salti di due, tre ; Primo anno Secondo anno Terzo anno Primo anno MATEMATICA Scuola dell Infanzia Scuola Primaria Conta oggetti o eventi, a voce e a mente, in senso progressivo e regressivo e per salti di due, tre ; legge

Dettagli

SISTEMI OPERATIVI E SOFTWARE SOFTWARE. Software: Programmi Applicativi. Software: device driver

SISTEMI OPERATIVI E SOFTWARE SOFTWARE. Software: Programmi Applicativi. Software: device driver SOFTWARE L hardware è la parte che si può prendere a calci; il software quella contro cui si può solo imprecare. SOFTWARE E l insieme dei dati e dei programmi che rendono possibile l inserimento dei dati

Dettagli