Analisi dei punti funzione - Dipartimento di Matematica e Informatica

Transcript

Analisi dei punti funzione - Dipartimento di Matematica e Informatica
Analisi dei punti funzione
FPA è un metodo per suddividere i sistemi in componenti
più piccole in modo che questi possano essere capiti e
analizzati meglio
I punti funzione sono un tipo di misura funzionale, capace
di quantificare un’applicazione software dal punto di vista
dell’utente ricavando un indice delle dimensioni di un
programma mediante la misura indiretta delle
funzionalità che deve fornire
Approccio: Alan Albrecht
Punti funzione
Il metodo dei punti funzione fornisce una misura che assiste nella
valutazione, progettazione, amministrazione e controllo della
produzione software
• Misurano le funzionalità utente
• Misurano il ritmo dello sviluppo e del mantenimento del software
indipendentemente dalla tecnologia usata per l’implementazione
• 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
• Consentono di misurare la produttività di un progetto scritto con più
linguaggi
Processo elementare
• Un’applicazione software è essenzialmente un insieme
definito di processi elementari
• Quando questi processi elementari vengono combinati
insieme, interagiscono per formare ciò che chiamiamo
un sistema software (o un’applicazione software)
• Un processo elementare non è totalmente indipendente,
ma i processi elementari sono intrecciati insieme
diventando interdipendenti
In un’applicazione software:
– Dati in movimento (external input, external output, external
inquiries)
– Dati in riposo (internal logic file, external interface file)
Tipi di conteggi di punto funzione
Il conteggio dei punti funzione può essere
associato a diversi tipi di progetti software
– Sviluppo
– Miglioramento
– Applicazione
Produttività
“Rapporto output/input nell’ambito di un periodo di tempo”
La produttività può essere migliorata
1. Incrementando gli output con gli stessi input
2. Decrementando gli input con gli stessi output
3. Incrementando gli output ed decrementando gli input
PRODUTTIVITA’ SOFTWARE: punti funzione/Input
Passi per il conteggio dei punti
funzione
1.
2.
3.
4.
5.
6.
Determinare il tipo di conteggio di punto funzione
Determinare i confini dell’applicazione
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
Confini dell’applicazione
• Poiché è comune per i sistemi informatici interagire con
altri sistemi e con utenti, bisogna determinarne i confini
prima di classificare le componenti
• Questi confini devono essere dedotti dal punto di vista
dell’utente sofisticato
• Il confine indica il limite fra il progetto o applicazione che
viene misurata e le applicazioni esterne o dominio utente
• Una volta che il confine è stato stabilito, le componenti
possono essere classificate e contate
RET, DET, FTR
• Record Element Type: è un sotto gruppo di dati
riconoscibile dall’utente all’interno di un internal
logic file o di un external interface file
• File Type Referenced: FTR è un tipo di file a cui
si fa riferimento attraverso una transazione
• Data Element Type: è un campo unico
riconoscibile dall’utente. Un DET è
un’informazione dinamica.
Valutazioni
Tutte le componenti vengono valutate rispetto ai
DET, FRT e RET
Component
RET’s
External Inputs (EI)
External Outputs (EO)
External Inquiries (EQ)
External Interface Files (EIF)
External Logical Files (ELF)
√
√
FTR’s
√
√
√
DET’s
√
√
√
√
√
External input
• E’ un processo elementare in cui i dati attraversano i
confini dell’applicazione dall’esterno all’interno
• Se un input esterno aggiunge, cambia e cancella
(mantiene) informazione su un file logico interno allora
questo rappresenta tre input esterni
1-4
5-15
Greater than 15
Less than 2
Low (3)
Low(3)
Average(4)
2
Low(3)
Average(4)
High(6)
Greater than 2
Average(4)
High(6)
High(6)
Esempio
Esempio
External input possono essere:
• Dati di business: nome del cliente,
indirizzo, telefono
• Dati di controllo:
• Le informazioni di controllo cambiano o
alterano lo stato (o comportamento)
dell’applicazione
External output
• Un processo elementare in cui i dati
derivati passano attraverso i confini
dell’applicazione dall’interno all’esterno
• Può anche aggiornare un ILF
• I dati creano dei report o file di output
mandati ad altre applicazioni
Valutazione degli output esterno
Basata sul numero dei DET e dei FTR
1-4
6-19
Greater than 19
Less than 2
Low (4)
Low(4)
Average(5)
2 or 3
Low(4)
Average(5)
High(7)
Greater than 3
Average(5)
High(7)
High(7)
Esempi
• Generalmente business data, ma anche
• Messaggi di notifica
• Dati derivati
Data Elements ed FTR
• DET sono
– 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
• File Types Referenced
– Un FTR deve essere un ILF o un EIF
Esempio
External Inquiry
• Un processo elementare con entrambe
componenti input e output che risultano in
recupero dati da uno o più file logici interni
e file di interfaccia esterna
• Il processo di input non aggiorna o
mantiene FTR (ILF o EIF) e la parte di
output non contiene dati derivati
Rating
• Come tutte le componenti, le EQ vengono
valutate e ad esse viene assegnato un
punteggio
1-4
6-19
Greater than 19
Less than 2
Low (3)
Low(3)
Average(4)
2 or 3
Low(3)
Average(4)
High(6)
Greater than 3
Average(4)
High(6)
High(6)
Data elements
Input
• Click del mouse
• Valori di ricerca
• Bottoni dei comandi
• Messaggi di errore
• Messaggi di conferma
• …
Output
• Valori letti da un file
logico interno
• Valori letti da un file di
interfaccia esterno
• Messaggi di errore
• Messaggi di conferma
File logici interni
Un gruppo di dati collegati logicamente, identificabili
dall’utente che risiede interamente all’interno dei confini
dell’applicazione e che viene mantenuto dagli input
esterni
– Il rating degli ILF è basato sul numero di elementi di dati (DET) e
tipi di record (RET)
1-19
20-50
51 or more
1 RET
Low (7)
Low(7)
Average(10)
2 to 5 RET
Low(7)
Average(10)
High(15)
6 or more RET
Average(10)
High(15)
High(15)
RET
• L’idea dietro i RET è di quantificare relazioni di dati
complessi mantenute in un singolo FTR
• Gran parte dei RET dipendono da una relazione
padre/figlio
Esempio
• Si immagini un file cliente che contiene Nome, Indirizzo
e così via
• In aggiunta, tutte le carte di credito e i numeri delle carte
di credito del cliente sono contenute nel file
• La carta di credito e i numeri sarebbero senza significato
se non fossero collegate al cliente
Determine type of Count
Identify Boundary
Count
Transactional
Function Types
Count Data
Function Types
Determine Unadjusted Function Point Count
Determine Adjusted Function Point Count
L’applicazione
User Domain
External
Inputs
(EI)
External
Outputs
(EO)
External
Inquiries
(EQ)
EQ
Internal Logical Files
(ILF)
Application Boundary
EI
EO
External
Interface Files
(EIF)
Other Applications
File di interfaccia esterna
• Sono un gruppo di dati collegati logicamente,
identificabili dall’utente, che vengono usati solo a scopo
di riferimento. I dati risiedono interamente fuori dai
confini dell’applicazione e vengono mantenuti dagli input
esterni di altre applicazioni
• Il file di interfaccia esterna è un file logico interno per
un’altra applicazione
• Un’applicazione può contenere un file come un EIF o un
ILF ma non entrambi
• Ogni EIF incluso nel conteggio dei punti funzione deve
essere incluso come FTR di una transizione
Rating
• La valutazione si basa su DET e RET
1-19
20-50
51 or more
1 RET
Low (5)
Low(5)
Average(7)
2 to 5 RET
Low(5)
Average(7)
High(10)
6 or more RET
Average(7)
High(10)
High(10)
Caratteristiche generali di sistema
Il value adjustment factor è basato su 14
caratteristiche generali di sistema (GSC’s)
che valutano la funzionalità generale
dell’applicazione che viene conteggiata
Ogni caratteristica ha delle descrizioni
associate per determinare i gradi di
influenza
Rating
•
•
•
•
•
•
0: non è presente, oppure non ha influenza
1: influenza casuale
2: influenza moderata
3: influenza media
4: influenza significativa
5: influenza forte
Le GSC possono essere valutate relativamente presto nel
ciclo di vita del software. Se l’utente non riesce a
rispondere a queste 14 domande l’intero progetto deve
essere rivisto
Value adjustment factor
Una volta che si è risposto a tutte le 14
GSC, queste ultime vengono utilizzate per
calcolare il value adjustment factor:
14
VAF = 0.65 + [(Σ Ci)]
i=1
Oppure VAF = (65 + TDI) /100, dove TDI è
la somma dei risultati per ogni domanda
Caratteristiche generali del sistema
•
•
•
GSC’s at a Glance:
General System Characteristic
1. Data communications
•
2. Distributed data processing
•
3. Performance
•
4. Heavily used configuration
•
5. Transaction rate
•
6. On-Line data entry
Brief Description
How many communication facilities are there
to aid in the transfer or exchange of
information?
How are distributed data and processing
functions handled?
Did the user require response time or
throughput?
How heavily used is the current hardware
platform where the application will be
executed?
How frequently are transactions executed daily,
weekly, monthly, etc.?
What percentage of the information is entered
On-Line?
Caratteristiche generali del sistema
•
7. End-user efficiency
•
8. On-Line update
•
9. Complex processing
•
10. Reusability
•
11. Installation ease
•
12. Operational ease
•
13. Multiple sites
•
14. Facilitate change
Was the application designed for end-user
efficiency?
How many ILF’s are updated by On-Line
transaction?
Does the application have extensive
logical or mathematical processing?
Was the application developed to meet
one or many user’s needs?
How difficult is conversion and
installation?
How effective and/or automated are startup, back up, and recovery procedures?
Was the application specifically designed,
developed, and supported to be installed
at multiple sites for multiple
organizations?
Was the application specifically designed,
developed, and supported to facilitate change?
Dati di comunicazione
• Score
• 0
Application is pure batch processing or a stand-alone PC.
• 1
• 2
• 3
Application is batch but has remote data entry or remote printing.
Application is batch but has remote data entry and remote printing.
Application includes online data collection or TP (teleprocessing)
front end to a batch process or query system.
Application is more than a front-end, but supports only one
type of TP communications protocol.
Application is more than a front-end, and supports more than
one type of TP communications protocol.
• 4
• 5
Processing dei dati distribuiti
• Score
•
0
•
1
•
2
•
3
•
4
•
5
Application does not aid the transfer of data or processing
function between components of the system.
Application prepares data for end user processing on
another component of the system such as PC
spreadsheets and PC DBMS.
Data is prepared for transfer, then is transferred and
processed on another component of the system (not for
end user processing).
Distributed processing and data transfer are online and in
one direction only.
Distributed processing and data transfer are online and in
both directions.
Processing functions are dynamically performed on the
most appropriate component of the system.
Performance
•
•
Score
0
•
1
•
2
•
3
•
4
•
5
No special performance requirements were stated by the
user.
Performance and design requirements were stated and
reviewed but no special actions were required.
Response time or throughput is critical during peak hours.
No special design for CPU utilization was required.
Processing deadline is for the next business day.
Response time or throughput is critical during all business
hours. No special design for CPU utilization was required.
Processing deadline requirements with interfacing systems
are constraining.
In addition, stated user performance requirements are
stringent enough to require performance analysis tasks in the
design phase.
In addition, performance analysis tools were used in the
design, development, and/or implementation phases to meet
ùthe stated user performance requirements.
Conteggio punti funzione
Functional Complexity
Low
Average High
External Inputs
__x 3 =__ __x 4 =__ __x 6 =__
External Outputs
__x 4 =__ __x 5 =__ __x 7 =__
External Inquiries
__x 3 =__ __x 4 =__ __x 6 =__
Internal Logical Files
__x 7 =__ __x 10 =__ __x 15=__
External Interface Files
__x 5 =__ __x 7 =__ __x 10 =__
Total
Unadjusted Function Points
Multiplied by Value Adjustment Factor X 1.0
Adjusted Function Points
Conteggio dei punti funzione
FP = UFP * VAF
UFP = conteggio dei punti funzione non
aggiustato
VAF = value adjustment factor