1. Cos'è il Software e lo Sviluppo Professionale

Spesso si pensa che il software sia solo codice, ma nell'ingegneria del software esso comprende i programmi, tutta la documentazione associata e i dati di configurazione necessari per farlo funzionare.

Lo sviluppo professionale del software produce due tipi principali di prodotti:

Un software ben progettato non deve solo funzionare, ma deve possedere quattro caratteristiche essenziali:

  1. Manutenibilità: Deve poter evolvere per soddisfare le esigenze dei clienti che cambiano nel tempo.

  2. Affidabilità e sicurezza: Non deve causare danni economici o fisici in caso di guasto e deve essere protetto da utenti malintenzionati.

  3. Efficienza: Non deve sprecare risorse del sistema (come memoria o potenza del processore).

  4. Accettabilità: Deve essere facile da usare, comprensibile e compatibile con i sistemi degli utenti a cui è destinato.

  5. Definizione di Ingegneria del Software

L'ingegneria del software è definita come una disciplina ingegneristica che si occupa di tutti gli aspetti della produzione di software. Essere una disciplina ingegneristica significa applicare teorie, metodi e strumenti in modo mirato, risolvendo problemi pratici tenendo conto di vincoli finanziari e organizzativi.

È una materia fondamentale perché l'economia e la società dipendono ormai da sistemi software avanzati. Inoltre, realizzare software applicando questi metodi è molto più economico a lungo termine, specialmente perché i costi di manutenzione ed evoluzione del software superano di gran lunga i costi di sviluppo iniziale.

Tutti i processi software prevedono quattro attività fondamentali:

Il capitolo individua anche le sfide generali che questa disciplina deve affrontare: l'eterogeneità dei sistemi distribuiti su reti diverse, i rapidi cambiamenti aziendali e sociali, la garanzia di sicurezza e fiducia, e la necessità di gestire scale di grandezza diverse (dai micro-dispositivi ai sistemi globali basati su cloud).

  1. La Diversità dei Sistemi e l'Impatto del Web