Diamo uno sguardo ai vari modi per misurare le dimensioni del software

Dimensionare il software non è semplice, perché esistono centinaia di linguaggi, architetture e tecniche per scriverlo. L’industria ha provato molti approcci diversi nel corso degli anni, ma il più efficace è un approccio chiamato dimensionamento funzionale. Conoscere la dimensione è generalmente più utile prima che il codice venga scritto. Le dimensioni possono anche essere un indicatore della quantità di funzionalità aziendali coinvolte. Tecniche come il conteggio delle storie degli utenti, il conteggio dei punti della storia e i principali metodi di analisi dei punti funzione: i punti funzione COSMIC e i punti funzione tradizionali (IFPUG) sono tutti discussi qui. È anche possibile valutare la dimensione dopo che il codice è stato scritto, questo generalmente è meno utile.

Dritto al punto: ti consigliamo di utilizzare i punti funzione COSMIC nella maggior parte dei casi. Perché? perché sono validi, affidabili, coerenti, inutilizzabili, rapidi da misurare e adatti al lavoro Agile in cui i requisiti completi potrebbero non essere conosciuti in anticipo.

Perché il dimensionamento del software è importante?

Lo sviluppo di software è un lavoro ad alta intensità di manodopera e di conoscenza. Il principale fattore di costo per lo sviluppo di software è solitamente lo sforzo umano per crearlo, progettarlo e testarlo. Ciò che generalmente vogliamo sapere è quanto impegno e quanto tempo ci vorrà per consegnarlo. Ci sono molti fattori che influenzano il tempo e lo sforzo. Il fattore più significativo è dimensione del software.  Esaminiamo quindi i vari approcci al software di dimensionamento. Spesso confondiamo il dimensionamento con la stima dello sforzo. Ad esempio, i punti della storia e le taglie delle magliette sono in realtà solo una stima dello sforzo, non delle taglie.

Righe di codice

Le righe di codice vengono eseguite facilmente e automaticamente dalla maggior parte degli strumenti di codifica. Esistono due valori principali, il numero lordo di righe utilizzate (LOC) e il numero netto di righe di codice funzionale (SLOC).

Il conteggio delle righe di codice ha vantaggi limitati nella gestione dei progetti software. Considera ad esempio due sviluppatori che scrivono entrambi 50 righe di codice in un giorno. Potrebbe darsi che uno degli sviluppatori scriva un codice conciso ed efficiente che faccia buon uso delle capacità del linguaggio sottostante. Le sue 50 righe forniscono funzionalità significative, forse anche un'intera (piccola) applicazione, mentre l'altra potrebbe semplicemente eseguire una convalida molto semplice. Superficialmente sono produttivi l'uno quanto l'altro, entrambi scrivono 50 righe al giorno. Questo è il motivo principale per cui limitiamo l'uso di SLOC per il dimensionamento del software. VELOCE, INCOERENTE, INGANNEVOLE

Contare le storie

Molte persone sono dell’opinione che contare semplicemente il numero di storie sia la soluzione migliore. Questo è un approccio inaffidabile poiché alcune storie utente sono iniziative di sviluppo significative, potremmo davvero chiamarle epiche, mentre altre storie utente sono così banali da non coinvolgere alcuna funzionalità riconoscibile dall'utente. L'intervallo che vediamo tipicamente è 0 – 120 CFP. Come puoi vedere, stiamo utilizzando la metodologia di dimensionamento COSMIC per verificare se altri approcci hanno valore. VELOCE, INCOERENTE, INGANNEVOLE

Conteggio dei punti della storia

I punti storia sono un proxy arbitrario per la misurazione delle dimensioni che dovrebbe essere utilizzato solo all'interno di una squadra. Non sono una misura né una metrica valida per determinare i progressi contro la squadra. Ricorda che i punti della storia possono cambiare nel tempo e rappresentano un'opinione incoerente sulla durata probabile di alcune attività. Sono altamente abili nel gioco da parte di coloro che forniscono il conteggio. La popolarità degli story point è un comportamento alquanto bizzarro della maggior parte dell’industria del software: la loro popolarità non è meritata. D’altro canto, COSMIC Sizing e IFPUG Sizing sono entrambi standard ISO formali e coerenti per la misurazione delle dimensioni.

Una storia utente può variare notevolmente in termini di dimensioni. Una storia può essere consegnata in pochi minuti, un'altra può richiedere il lavoro di un intero team per un mese. Contare storie di dimensioni diverse è un'indicazione di progresso ma non è una misura valida del progresso.  LENTO, INCOERENTE, INGANNEVOLE

Il dimensionamento dei punti funzione automatizzato da ScopeMater è un approccio innovativo per dare certezza ai progetti software

In che modo è utile il ridimensionamento dei punti funzione?

Il fattore di costo più significativo sul software è sforzo (lavoro umano coinvolto nella specifica, progettazione, sviluppo e test) del software. Il miglior indicatore anticipato della quantità di sforzo necessario è misurare, in particolare la dimensione in punti funzione . Se conosci le dimensioni, puoi prevedere lo sforzo. Puoi effettivamente prevedere, con sicurezza, il personale necessario, il tempo necessario e persino il numero di difetti che devi trovare e correggere.  Questa prevedibilità aiuta i manager a pianificare in modo efficace.  Naturalmente ci saranno alcune incognite, ma non così tante come molti affermerebbero.

Diversi modi per dimensionare il software

Consigliato:

  • Punti funzione COSMICA
  • Punti funzione IFPUG

Può essere utile:

  • RISO
  • Conteggio oggetti
  • Righe di codice
  • Contare le tabelle DB
  • Conta le classi OO

Non consigliato:

  • Punti della storia
  • Contare le storie
  • Taglie delle magliette

Analisi dei punti funzione

Dimensionamento funzionale standard ISO

L'unico modo coerente per misurare la dimensione del software (a partire dal 2023) è il dimensionamento funzionale. Esistono due standard principali per il dimensionamento funzionale:   Punti funzione IFPUG (1a generazione) e  Punti funzione COSMICA Punti (2a generazione).

Entrambi gli standard Function Point sono maturi, validi e comprovati (IFPUG:1974, COSMIC:1998). Costituiscono una descrizione coerente e incentrata sull'utente e una misura della funzionalità in termini di input, output e dati archiviati. Vengono conteggiati esaminando i requisiti e applicando alcune regole/principi per determinare i tipi di dati che vengono spostati e archiviati. Entrambi gli standard sono maturi, mantenuti in modo indipendente e gratuiti o poco costosi da apprendere. Raccomandiamo la metodologia di dimensionamento COSMIC di seconda generazione. Le unità della metodologia di dimensionamento COSMIC sono i COSMIC Function Point (CFP). Il lavoro per eseguire il dimensionamento dei punti funzione è chiamato analisi dei punti funzione (FPA).

Standard di misurazione software Cosmic e ifpug per il dimensionamento dei Function Point

Punti funzione COSMICA. CONSIGLIATO

Alcuni dei principali vantaggi dello standard COSMIC FP sono:

  1. COSMIC Sizing si basa sui principi della progettazione software. Di norma, non è necessaria alcuna messa a punto quando applicato a diversi tipi di software (codifica personalizzata, middleware, app Web, software multilivello, software di sistema, sistemi embedded o progetti di data warehouse).
  2. COSMIC ci fornisce una definizione di singolo punto funzione, ogni movimento di un gruppo di dati Entrata, Uscita, Lettura, Scrittura conta come 1 CFP.
  3. La CFP può essere misurata accuratamente da requisiti incompleti che li rendono adatti ad Agile e a varie forme di lavoro Agile su larga scala.
  4. I CFP sono più veloci e più facili da apprendere rispetto ai FP IFPUG. (1/3 del numero di pagine dell'intero programma metodologico)
  5. COSMIC FP può essere determinato automaticamente con un grado di precisione più elevato rispetto a IFPUG tramite l'analisi automatizzata dei requisiti.

Per saperne di più sul dimensionamento COSMIC ti consigliamo La guida al dimensionamento del software di Charles Symons

Punti funzione IFPUG

Detto che i FP COSMIC sono preferibili rispetto ai tradizionali FP IFPUG, questi ultimi beneficiano di maggiori volumi di dati benchmark pubblicati e disponibili. La metodologia di dimensionamento IFPUG è stata ideata negli anni '70, quando la progettazione del software era meno stratificata e segregata di quanto lo sia oggi. Gli standard rimangono sostanzialmente invariati rispetto al concetto iniziale. Ci piace IFPUG FP, ma preferiamo COSMIC FP. Simple Function Points è un'approssimazione del FP IFPUG adottato dall'organizzazione nel 2019. ScopeMaster stima entrambi IFPUG E FP semplice.

Conteggio manuale dei punti funzione

Fino ad ora, il conteggio dei punti funzione è stato un processo manuale laborioso. È necessario leggere i requisiti e quindi registrare i conteggi dei punti funzione su carta o in un foglio di calcolo. Si ottengono conteggi accurati e coerenti solo se il conteggio viene eseguito da uno specialista di Function Point certificato ed esperto. In media un misuratore certificato può misurare fino a 2000 FP/settimana, questo equivale a circa $2m di software.  LENTO, ACCURATO

Stima della dimensione del punto funzione

Utilizzando alcune regole pratiche, i conteggi FP stimati possono essere ottenuti esaminando una serie di fattori contributivi. Se l'applicazione è prevalentemente di tipo database, è possibile contare il numero di tabelle di dati del database gestite dall'applicazione. Quindi moltiplica il numero di tabelle per 27-30 per una stima IFPUG. Questa è solo una delle tante utili regole pratiche e non dovrebbe essere utilizzata per nient'altro che per dimensioni di alto livello. Velocità di conteggio: 5.000 – 50.000 FP/persona settimana  VELOCE, IMPRECISO

Punti funzione controproducenti da righe di codice

La maggior parte dei linguaggi software ha pubblicato le medie delle righe di codice per punto funzione. Ad esempio, 50 righe di Java equivalgono, in media, a un punto funzione. Contare le righe di codice e dividere per questo numero si chiama “backfiring”. Questo è utile Dopo il codice è stato scritto. È necessario prestare attenzione a questo approccio soprattutto quando si utilizzano grandi volumi di framework già scritti che potrebbe dover essere escluso dal conteggio del codice personalizzato. Velocità di conteggio: fino a 5.000 FP/persona settimana.  VELOCE, IMPRECISO, INGANNEVOLE

Conteggio automatizzato dei punti funzione dal codice

Ora è possibile automatizzare il conteggio dei punti funzione dal codice. La società Cast Software ha sviluppato un software in grado di eseguire un conteggio affidabile dei Function Point automatizzati basato sul codice dell'applicazione esistente. È necessario un certo sforzo per preparare il codice in modo che possa essere interpretato, in seguito è possibile ottenere un conteggio affidabile. Questo è di gran lunga superiore all’approccio controproducente. Ha l'ulteriore vantaggio di fornire una visione approfondita del codice dell'applicazione.   VELOCE, COERENTE, PRECISO

Dimensionamento automatizzato dei punti funzione COSMIC

Utilizzando ScopeMaster® puoi beneficiare di un conteggio automatizzato dei punti funzione COSMIC in pochi minuti. Analizzando il testo dei requisiti dell'utente, possiamo rilevare la dimensione funzionale (movimenti di dati). ScopeMaster® fornirà un risultato coerente con una precisione superiore a 85% rispetto a un conteggio manuale effettuato da un misuratore esperto.

I risultati sono coerente E trasparente. In combinazione con un controllo manuale da parte di uno specialista di Function Point, vediamo tassi di conteggio di 10.000 – 20.000 FP / per settimana uomo. (circa $10- $20m di software) VELOCE, COERENTE, ABBASTANZA ACCURATO

informazioni sui punti funzione generate da ScopeMaster®

Alcune delle analisi delle taglie che ScopeMaster® genera automaticamente dalle tue storie utente scritte.

Conclusione

Se desideri determinare la dimensione di un'applicazione dai requisiti scritti hai due scelte principali: contare i punti funzione manualmente o utilizzare ScopeMaster® per contarli per te. Se disponi già di codice applicativo che desideri misurare, ci sono ulteriori scelte: ritorno di fiamma dalle righe di codice, stima dai componenti tecnici (ad esempio in base al conteggio delle tabelle del database) o guarda l'automazione del dimensionamento funzionale dal software CAST .