Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
FUNCTION POINTS
Software engineering, esistono delle metriche per misurare il software con:
- Metriche dirette: relative al codice (LOC) o ai requisiti (FUNCTION POINTS)
- Metriche indirette: sul livello di servizio, opinioni dei clienti
Con i LOC misuro indicatori che mi consentono di valutare il codice, tipo misuro il rapporto tra gli errori su una linea di codice nel t. Mi serve ovviamente la dimensione della linea di codice ed è abbastanza difficile da calcolare perché strettamente legato al linguaggio di programmazione e lo stile di programmazione. → Albrecht nel ’79 suggerì di misurare il software con i Function Points formula empirica che misura in maniera pesata le funzionalità di base. Si vogliono quantificare le funzionalità fornite dal prodotto finale in termini di dati e processi significativi per gli utenti finali.
Il metodo dei FP fornisce una misura che assiste nella valutazione, progettazione, amministrazione e controllo della
produzione software. Consentono di convertire la dimensione di un'applicazione in qualsiasi linguaggio (in linee di codice) nella dimensione dell'applicazione equivalente scritta in un altro linguaggio. Come avviene il conteggio? Il metodo fornisce una quantificazione delle informazioni che, da un punto di vista logico, entrano, escono e vengono memorizzate attraverso l'esecuzione di una applicazione. I termini "interno" e "esterno" presuppongono di aver determinato un limite che distingua l'applicazione da quantificare dalle altre applicazioni del sistema. Un'applicazione software è essenzialmente un insieme definito di processi elementari. Gli elementi sono Dati in movimento (EI, EO, EQ) e Dati in riposo (ILF, EIF):
- EI (External input) → Riguarda le attività elementari di input, elabora dati o informazioni di controllo proveniente dall'esterno del confine dell'applicazione, l'obiettivo è mantenere
Uno o più ILF. Aggiorna lo storagedell'app. Possono essere dati di business (nome cliente, tel...) e dati di controllo.
- EO (External output) → Misura le uscite e riguarda le attività elementari di output. Manda informazioni al di fuori del sistema, è prodotto dal mio applicativo per l'esterno attraverso una computazione perché il semplice recupero dei dati lo fa EQ. I dati creano dei report o file di output mandati ad altre applicazioni.
- EQ (External inquiry) Richiesta di domande da clienti o applicazioni. Si tratta di semplice presentazione di dati acquisiti da qualcun altro. Costa meno dell'EO. Processo elementare che invia data o info di controllo fuori dai confini dell'applicazione. L'intento primario dell'EQ è di presentare l'info all'utente da un ILF o EIF. Non vengono mantenuti ILF durante il processo è pura presentazione.
- EIF (External logical file)
Scambio di informazioni tramite file con altri sistemi.
Gruppo di informazioni di controllo o dati che servono dell'app ma che vengono acquisite da un'altra applicazione. Deve mantenere i dati. The primary intent of an EIF is to hold data referenced through one or more elementary processes within the boundary of the application counted, ciò significa che un EIF di un'applicazione è un ILF di un'altra. Si tratta di sola lettura.
- ILF (Internal logical file) sistema di gestioni dati e processi all'interno dell'applicazione. L'intento primario di un ILF è trattenere i data attraverso uno o più processi elementari dell'applicazione su cui si sta effettuando la misurazione. Si tratta di un archivio che si può sia leggere che aggiornare. Il rating degli ILF si basa sul numero di DET e RET.
Ogni elemento ha un peso (Low, Medium, High). La produttività di un software si misura facendo punti.
funzione/Input. Ci sono degli step da seguire per il conteggio dei punti funzione:
- Determinare il tipo di conteggio di punto funzione→
- Determinare i confini dell’applicazione. Il confine indica il limite fra il progetto applicazione che viene misurata e le applicazioni esterne o dominio utente.
- Identificare e valutare i tipi di funzione di transizione per determinare il loro contributo al conteggio dei punti funzione.
- Identificare e valutare i tipi di funzione dato per determinare il loro contributo al conteggio dei punti funzione.
- Determinare il valore del fattore di aggiustamento.
- Calcolare.
Si deve modificare il FP non pesato del +-35% con una formula correttiva che cattura le caratteristiche generali attraverso 14 indicatori. Ogni indicatore ha un valore tra 0 e 5 (0= not relevant...5= essential). (Adjusted FP) AFP= Total x (0,65+ 0,01* sommaFi) la somma è su tutti i 14 indicatori e il massimo valore che può assumere questa somma è 5*14.
in quanto 5 è il massimo peso che si può dare ad ogni indicatore. PRO dei FP: • Calcolano obiettivi • Molto usati • Possono essere usati presto nei processi di sviluppo • Accurati quanto i SLOC CONTRO dei FP: • La semantica è difficile • Incompleti • Mancanza di calcoli automatici • Differenti versioni A pagina seguente vedremo una tabella in cui per ogni linguaggio si ha a quante righe di codice equivalgono i LOC e i FP. Come calcoliamo le 5 funzionalità dei dati? Per misurare quanto contano ILF e EIF ci servono i DET (Data Element Type, campo fondamentale) e i RET (Record Element Type). La complessità di ILF e EIF si misura in base ai RET e DET. • Il RET è un sottogruppo di dati riconoscibile dall'utente all'interno di un internal logic file (ILF) o di un external interface file (EIF). • Il FTR è un tipo di file a cui si fa riferimento attraverso una transazione. • Il DET è un campo.unico riconoscibile dall'utente. Un DET è un'informazione dinamica. Es di DET:
- Messaggi di errore o di conferma
- Dati derivati
- Valori su report che vengono letti da un file logico interno o da un file di interfaccia esterno
Tutte le componenti vengono valutate rispetto a DET, FRT e RET. Un'applicazione può contenere un file come un EIF o un ILF ma non entrambi. (Tabella che mostra la complessità di ILF e EIF)
Riguardo invece l'aspetto transazionale dobbiamo valutare gli altri FP che sono EI, EO, EQ e che rappresentano i processi elementari, ovvero le più piccole unità di azione significative per l'utente.
Quali sono gli elementi che consentono di fare il computo? I DET e gli FTR.
- DET campo singolo utente identificabile con un ILF/EIF
- FTR modifica/legge ILF o legge EIF (File Type Referenced)
Nel seguito è possibile visionare anche le tabelle della complessità di EI, EO,
Caratteristiche generali del sistema: Il value adjustment factor si basa su 14 caratteristiche generali di sistema che valutano la funzionalità generale dell'applicazione che viene conteggiata. Il peso viene assegnato su una scala da 1 a 5 → una volta che si è risposto a tutte le 14 GSC queste vengono utilizzate per calcolare l'AFP.
FP = UFP * VAF
Dove UFP = conteggio dei punti funzione non aggiustato e VAF = value adjustment factor
ESEMPIO FP:
Devo gestire le informazioni sui clienti e per ogni fattura fare la gestione. Si vogliono gestire le informazioni sul cliente e per ogni fattura anche mettere tutti i dati così come per gli oggetti. L'obiettivo è calcolare i FP di un'applicazione che permette di inserire, eliminare, modificare e vedere clienti e fatture.
- Fare schema ER del contesto →
- ILF e EIF ILF Customer, ILF Invoice e EIF Item
Se ne deve calcolare la complessità, un RET è un insieme di tuple (record) relative
A un ER. Quindi è come se un RET fosse una tabella del modello relazionale mentre i DET sono i numeri di attributi.
Ho 19 FP da ILF e EIF3. Ora calcolo gli elementi primari ovvero:
- →EI le attività sono insert, delete, update su customer e invoices. L'obiettivo primario è aggiornare un ILF.
La complessità si calcola per ogni gruppo su tutte le attività. Ad esempio per l'operazione di delete il DET è 1 perché si applica solo alla chiave. Su Update sarà attributi - numero di chiavi che sono immodificabili.
A questo punto misuro la complessità con le tabelle per dare un valore low, medium, high
Ripeto l'operazione anche per EO:
Svolgiamo l'operazione anche su EQ:
- Abbiamo 1 EQ Stampare cliente cercare dati e mostrarli quando richiesto dal cliente
In input nulla perché è solo presentazione e viene attivato dall'utente.
In output abbiamo FTR 1 (Customer) e DET 6 (attributi del cliente)
4.
Si procede con il calcolo totale dei FU sommando quelli di ILF, ELF, EI, EO, EQ→ Nell’esercizio in questione abbiamo 19 + 24 + 5 + 3= 51 UFP5. Con la tabella LOC/FP effettuo la conversione per capire il numero di linee di codice in base al programma che uso. Conoscere il numero di linee di codice è utile anche per capire quanto verrà a costare il programma. (FAI SLIDES CON ESERCIZI) STIMA DELL’EFFORT (Software Engeneering) A partire dal fabbisogno si fa una stima dell’effort considerando le tre sfere di costo, tempo ed effort. Il fabbisogno viene tradotto in Function Points per avere un’idea quantitativa della situazione, dopodiché si fa la conversione da FP a LOC (a partire da Adjusted FP) e si ha una misura del Tempo/ Effort per poi a questo punto avere un’idea del costo. Lo strumento utilizzato per giungere a misurazioni sul Delivery Time, effort e di conseguenza costi è COCOMO. Ovviamente in base alle dimensioni del progetto essoavrà valori temporali differenti (sempre considerando la dimensione del progetto grazie ai FP)Facciamo una stima dell'effort a partire dai LOC attraverso COCOMO (Constructive Cost Model):
Grazie a questo modello facciamo una stima dell'effort M e dell'ottimo T. Si basa su delle statistiche ed è un modello a cascata. Ci dà indicazioni sull'effort in 4 fasi:
- analysis and planning
- design
- development
- integration and test
E la formula base è M=aS^b T=cM^d (S è KLOC)
- →M: Effort, cost. Tempo uomo/lavoro richiesto per sviluppare il progetto
- →T: Delivery time. Tempo ottimo necessario per consegnare il software
- →Manpower (derived measure). L'impegno nel tempo, rappresenta