Forum Sicurpas...

Versione completa: 05 - I fattori che determinano la qualità del software
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
La prima cosa che andremo a fare in questo articolo è definire i fattori che determinano la qualità dei prodotti e processi del software:
  • Qualità esterne: sono quelle che possono essere percepite da un osservatore esterno che analizza il processo o il prodotto come se questi fosse una scatola nera, black box.
  • Qualità interne: sono quelle che possono essere osservate analizzando la struttura interna del processo o del prodotto, come se questi fosse una scatola trasparente, white box che consente di individuare e focalizzare le parti costituenti

Chiaramente le qualità esterne costituiscono l’interesse preponderante, pertanto è su di esse che deve concentrarsi l’attenzione dell’ingegnere del software. Le qualità interne sono invece di tipo secondario, poiché effettivamente rappresentano il percorso o se si preferisce il metodo tramite il quale è possibile raggiungere le qualità esterne: ciò implica che il progettista deve mirare con grande parsimonia alle qualità interne alfine di modellare ed ottimizzare quelle esterne. Si badi bene che la distinzione sopra esposta, cioè qualità esterne ed interne sono presenti in qualsivoglia settore dell’ingegneria. Vediamo un esempio pratico: la qualità di basso consumo energetico inerente un’abitazione può essere raggiunta tramite le qualità interne dovute ad un efficiente isolamento, l’utilizzo di energia solare ed altri parametri che costituiscono il percorso ideale al raggiungimento della qualità esterna sopra menzionata. Nel caso specifico del software possiamo affermare che la caratteristica esterna improntata all’affidabilità del medesimo è senza dubbio alcuno influenzata dalla caratteristica interna volta alla scoperta degli errori in fase di compilazione e test. Da ciò desumiamo che le qualità interne del software implementano le qualità esterne dal punto di vista della realizzazione.
Il motivo del disquisire per quanto riguarda la definizione delle qualità del software è strettamente correlato con la necessità di fornire un linguaggio comune a tutti gli ingegneri del software ed una lista di riferimento che funzioni come guida per il progettista nel definire gli obbiettivi di qualità da raggiungere all’interno di un determinato progetto. Inoltre è assolutamente preponderante che l’ingegnere del software sia in grado di valutare se il prodotto rispetti i parametri che determinano la qualità posta ad obbiettivo prestabilito. Quanto sopra esposto si potrà realizzare proporzionalmente alla rigorosità della definizione che andremo a dare dei diversi fattori di qualità. Se si riuscisse ad attribuire una definizione matematicamente precisa per una qualunque caratteristica di qualità e nel contempo, idealmente, si riuscisse ad identificare un metodo quantitativo per la sua misura, nella fase legata alla specifica dei requisiti di un’applicazione potremmo qualificare ogni singolo attributo in modo formale e, in seguito, misurare dal punto di vista quantitativo il rispetto dei requisiti prestabiliti. Purtroppo, come avremo modo di vedere, molti dei fattori di qualità del software sono definibili in modo intuitivo, approssimativo e poco rigoroso, pertanto l’obbiettivo che ci consentirebbe di essere totalmente formali e fornire meccanismi precisi di misura divengono realisticamente irraggiungibili.
Come abbiamo osservato nel corso dei precedenti articoli l’approccio empirico costituisce un aspetto essenziale per quanto riguarda l’ingegneria del software, un classico esempio è dato appunto dal problema legato alla definizione e valutazione della qualità del processo e dei prodotti. Malgrado tutto si può comunque effettuare un tentativo che consenta di riportare, come vedremo nei successivi articoli, una lista di caratteristiche delle qualità del software che possa fungere da base per definire in modo relativamente standard le peculiarità desiderabili di un prodotto o un processo che possa costituire il presupposto volto ad una valutazione a posteriori della qualità raggiunta.