Attributi interni del prodotto

Gli attributi interni del prodotto descrivono i prodotti software in un modo che dipende solo dal prodotto stesso. Il motivo principale per misurare gli attributi interni del prodotto è che aiuterà a monitorare e controllare i prodotti durante lo sviluppo.

Misurazione degli attributi interni del prodotto

I principali attributi interni del prodotto includono size e structure. Le dimensioni possono essere misurate staticamente senza doverle eseguire. La dimensione del prodotto ci dice lo sforzo necessario per crearlo. Allo stesso modo, la struttura del prodotto gioca un ruolo importante nella progettazione della manutenzione del prodotto.

Misurare le dimensioni

La dimensione del software può essere descritta con tre attributi:

  • Length - È la dimensione fisica del prodotto.

  • Functionality - Descrive le funzioni fornite dal prodotto all'utente.

  • Complexity - La complessità è di diversi tipi, come.

    • Problem complexity - Misura la complessità del problema sottostante.

    • Algorithmic complexity - Misura la complessità dell'algoritmo implementato per risolvere il problema

    • Structural complexity - Misura la struttura del software utilizzato per implementare l'algoritmo.

    • Cognitive complexity - Misura lo sforzo richiesto per comprendere il software.

La misurazione di questi tre attributi può essere descritta come segue:

Lunghezza

Esistono tre prodotti di sviluppo la cui misurazione delle dimensioni è utile per prevedere lo sforzo necessario per la previsione. Sono specifiche, design e codice.

Specifiche e design

Questi documenti di solito combinano testo, grafici e simboli e diagrammi matematici speciali. La misurazione delle specifiche può essere utilizzata per prevedere la lunghezza del progetto, che a sua volta è un indicatore della lunghezza del codice.

I diagrammi nei documenti hanno una sintassi uniforme come digrafi etichettati, diagrammi di flusso di dati o schemi Z. Poiché i documenti di specifica e progettazione sono costituiti da testi e diagrammi, la sua lunghezza può essere misurata in termini di una coppia di numeri che rappresentano la lunghezza del testo e la lunghezza del diagramma.

Per queste misurazioni, gli oggetti atomici devono essere definiti per diversi tipi di diagrammi e simboli.

Gli oggetti atomici per i diagrammi di flusso di dati sono processi, entità esterne, archivi di dati e flussi di dati. Le entità atomiche per le specifiche algebriche sono ordinamenti, funzioni, operazioni e assiomi. Le entità atomiche per gli schemi Z sono le varie linee che compaiono nella specifica.

Codice

Il codice può essere prodotto in diversi modi come il linguaggio procedurale, l'orientamento agli oggetti e la programmazione visiva. La misura tradizionale più comunemente usata della lunghezza del programma del codice sorgente è le linee di codice (LOC).

La lunghezza totale,

LOC = NCLOC + CLOC

cioè

LOC = Non-commented LOC + Commented LOC

Oltre alla riga di codice, per misurare la lunghezza possono essere utilizzate anche altre alternative come la dimensione e la complessità suggerite da Maurice Halsted.

La scienza del software di Halstead ha tentato di catturare diversi attributi di un programma. Ha proposto tre attributi interni del programma come lunghezza, vocabolario e volume che riflettono diversi punti di vista delle dimensioni.

Ha iniziato definendo un programma Pcome raccolta di token, classificati da operatori o operandi. Le metriche di base per questi token erano,

  • μ1 = Numero di operatori univoci

  • μ2 = Numero di operandi univoci

  • N1 = Occorrenze totali di operatori

  • N2 = Numero di operatori univoci

La lunghezza P può essere definito come

$$ N = N_ {1} + N_ {2} $$

Il vocabolario di P è

$$ \ mu = \ mu _ {1} + \ mu _ {2} $$

Il volume del programma = Numero di confronti mentali necessari per scrivere un programma di lunghezza N, è

$$ V = N \ times {log_ {2}} \ mu $$

Il livello di programma di un programma P di volume V è,

$$ L = \ frac {V ^ \ ast} {V} $$

Dove, $ V ^ \ ast $ è il volume potenziale, cioè il volume dell'implementazione di dimensione minima di P

L'inverso del livello è la difficoltà -

$$ D = 1 \ diagup L $$

Secondo la teoria di Halstead, possiamo calcolare una stima L come

$$ {L} '= 1 \ diagup D = \ frac {2} {\ mu_ {1}} \ times \ frac {\ mu_ {2}} {N_ {2}} $$

Allo stesso modo, la lunghezza stimata del programma è $ \ mu_ {1} \ times log_ {2} \ mu_ {1} + \ mu_ {2} \ times log_ {2} \ mu_ {2} $

Lo sforzo richiesto per generare P è dato da,

$$ E = V \ diagup L = \ frac {\ mu_ {1} N_ {2} Nlog_ {2} \ mu} {2 \ mu_ {2}} $$

Dove l'unità di misura E sono le discriminazioni mentali elementari necessarie per capire P

Le altre alternative per misurare la lunghezza sono:

  • In termini di numero di byte di memoria del computer necessari per il testo del programma

  • In termini di numero di caratteri nel testo del programma

Lo sviluppo orientato agli oggetti suggerisce nuovi modi per misurare la lunghezza. Pfleeger et al. ha scoperto che un conteggio di oggetti e metodi portava a stime di produttività più accurate rispetto a quelle che utilizzavano righe di codice.

Funzionalità

La quantità di funzionalità insita in un prodotto fornisce la misura della dimensione del prodotto. Esistono tanti metodi diversi per misurare la funzionalità dei prodotti software. Discuteremo uno di questi metodi, il metodo Function Point di Albrecht, nel prossimo capitolo.