Vi siete mai chiesti come un’idea geniale, un insieme di concetti e parole, a volte anche un po’ confuse, possa diventare un’applicazione software? Che essa sia un social network, un software per la sicurezza o la gestione, un negozio e-commerce, un app, un videogame o chissà cos’altro tutto ha inizio da una sola e semplice idea di una persona. L’idea diventa un concetto, poi un’insieme di richieste e requisiti affinchè funzioni, poi un grande disegno su carta o su una lavagna ed infine tante stringhe di codice ed il miracolo è compiuto. Questo ciclo di vita è studiato dall’ingegneria del software.Ma facciamo un passo alla volta.

Ingegneria del Software

Che cos’è un software e un sistema software?

Il software è tipicamente un programma o procedure utilizzate per far eseguire al computer un determinato compito. Con sistema software, invece, si indica un insieme di componenti realizzati tutti per far funzionare in modo corretto il software ed è composto da una serie di programmi, file di configurazione, documentazione di sistema, documentazione utente ed a volte anche da un sito web per l’assistenza e per gli aggiornamenti.

Il compito che deve essere eseguito e come deve essere eseguito è definito dalle specifiche del sistema.

Esistono 2 tipi di software:

  • Prodotti generici: sistemi autosufficienti disponibili sul mercato ed acquistabili dai clienti che li desiderano. Le specifiche sono realizzate e controllate dallo stesso sviluppatore.
  • Prodotti personalizzati: sistemi commissionati ad un fornitore da uno specifico cliente. Le specifiche sono indicate e controllate dal cliente stesso.

Che cos’è l’ingegneria del software?

L’ingegneria in generale si occupa di applicare la scienza per risolvere problemi rispettando dei vincoli.

L’ingegneria del software è una disciplina ingegneristica che si occupa di tutti gli aspetti della produzione del software con l’obiettivo di sviluppare sistemi software di alta qualità senza sprechi.

È differente dall’informatica. L’informatica si occupa della teoria e dei fondamenti dei sistemi software e sistemi informatici, mentre l’ingegneria del software degli aspetti pratici che riguardano l’intero processo di sviluppo del software che comprende aspetti non strettamente informatici, come la comunicazione con il cliente.

È differente dall’ingegneria dei sistemi. ha come oggetto tutti gli aspetti dello sviluppo e dell’evoluzione di sistemi informatici (hardware, software e di processo); l’ingegneria del software è solo una parte di questo processo. La prima si occupa principalmente di definire un architettura generale del sistema integrando le diverse parti necessarie alla realizzazione del prodotto finito ed ha meno interesse per l’ingegneria dei singoli componenti.