Ingegneria del software: non è fantascienza.
L’ingegneria del software si occupa di tutto il processo software. Ma cos’è?
Il processo software è un’insieme di attività il cui scopo è lo sviluppo o la modifica del software. Le attività comuni a tutti i tipi di processo sono:
- Specifica: i clienti e gli ingegneri definiscono cosa deve fare il software ed i vincoli di progettazione;
- Sviluppo: progettazione e programmazione;
- Convalida: si verifica che il software sia esattamente quello richiesto dal cliente;
- Evoluzione: si modifica il prodotto per adeguarlo ai requisiti dell’utente e del mercato che cambiano.
Il processo software è molto complesso e si preferisce avere una descrizione semplificata. Per questo si usano i modelli di processo software per osservare il processo da un determinato punto di vista. Esistono diversi modelli di processo e sono:
- Modello a flusso di lavoro (workflow model): mostra la sequenza di attività del processo con rispettivi ingressi, uscite e dipendenze. Ogni attività è un’azione umana.
- Flusso di dati o modello di attività (data flow o activity model): il processo è visto come insieme di attività le quali modificano qualche dato dell’informazione. Ogni attività rappresenta una trasformazione dell’input in output operata da persone o computer.
- Il modello ruolo/azione (role/action model): mostra i ruoli delle persone coinvolte nel processo e le attività di cui sono responsabili.
La maggior parte dei modelli di processo si basano sui seguenti modelli generici o paradigmi:
- approccio a cascata: le attività sono fasi di lavorazione separate – un’attività inizia quando le precedenti sono concluse e “firmate per accettazione firmate per accettazione”;
- sviluppo ciclico: il processo è organizzato in iterazioni, in cui vengono eseguite varie attività;
- ingegneria del software basata su componenti (CBSE): tecnica che presuppone l’esistenza di alcune parti del sistema, e che concentra lo sviluppo sull’integrazione di queste parti, anziché sullo sviluppo dal nulla.
Software di qualità. Ma quanto costa l’ingegneria del software?
I costi dell’ingegneria del software sono circa il 60% legati allo sviluppo ed il restante alle prove. Per il software personalizzato spesso i costi di evoluzione superano quelli di sviluppo.
Le caratteristiche di un software di qualità
Un buon software deve fornire le funzionalità e le prestazioni richieste dall’utente; la qualità si vede dal comportamento durante l’esecuzione del software, l’organizzazione e la struttura del programma sorgente e della documentazione. Le caratteristiche essenziali del software di qualità sono:
- Manutenibilità: il software deve essere scritto in modo da evolversi in rapporto alle richieste del cliente.
- Fidatezza: comprende l’affidabilità, la protezione e la sicurezza. L’applicazione non deve provocare danni fisici ed economici in caso di malfunzionamento.
- Efficienza: non deve far uso dispendioso delle risorse del sistema.
- Usabilità: deve essere facile da usare per gli utenti.
Quindi cosa fa l’ingegneria del software?
La sfida dell’ingegneria del software è affrontare la crescente diversità dei sistemi e sviluppare software affidabile in tempi sempre più ridotti.
Riferimenti
Libro: “Ingegneria del Software”, di Ian Sommerville, Casa editrice Pearson Italia S.p.a.
Rispondi