Cosa fa e a che cosa serve l’Ingegneria del Software
L’Ingegneria del Software è una disciplina metodologica, cioè studia i metodi di produzione e gli strumenti fondamentali di sviluppo e misura della qualità di sistemi software complessi.
I problemi principali che affronta l’Ingegneria del Software riguardano la gestione delle risorse durante il processo di sviluppo e l’anticipazione del cambiamento dei requisiti d’uso, lo studio dei modelli di processo di sviluppo del software, lo sviluppo degli strumenti di produzione del software, gli aspetti economici dei prodotti e dei processi e ancora tanti altri.
Parliamo dunque di Ingegneria del Software per identificare gli studi di processi della produzione di software, principi di sviluppo, tecniche e notazioni con lo scopo ultimo di ottenere un prodotto di qualità, sviluppato nei tempi ed entro il budget previsti e che soddisfi il cliente. L’ingegneria del software affronta dunque tutte quelle problematiche di tipo manageriale, organizzativo e metodologico, per permettere che il lavoro degli sviluppatori possa essere condotto con la maggiore efficacia, avvalendosi di tecniche e modi di procedere sperimentati in contesti eterogenei, risolvendo i problemi (soprattutto di comunicazione) legati al fatto che lo sviluppo di sistemi software è un’attività intellettuale complessa, e che coinvolge una pluralità di soggetti diversi tra loro.
Infatti, la disciplina ben si adatta in tutti quei progetti che per la loro complessità:
- coinvolgono un team di persone ciascuna con il proprio ruolo specifico
- in cui il prodotto o la famiglia di prodotti risultanti abbia un ciclo di vita lungo
- in cui il riutilizzo sia auspicabile per una riduzione di costi
- in cui la manutenzione e gli ulteriori sviluppi abbiano un peso significativo.
Possiamo quindi identificare alcuni principi chiave:
- rigore e formalismo
- separazione dei concetti (modularità ed astrazione)
- anticipazione dei cambiamenti
- generalizzazione
- scalabilità
- produzione di componenti
Questi ed altri principi rendono l’ingegneria del software una disciplina particolarmente indicata soprattuto nel caso di sviluppo software object-oriented e progetti di qualunque dimensione.