Seleziona una pagina

Lo scopo dell’ingegneria del software

L’ingegneria del software definisce sia i modelli sia le metodologie per:

  • Formalizzare il processo di progettazione;
  • Realizzare un sistema informatico;
  • Manutenere un sistema informatico.

In questo modo viene definito un vero e proprio ciclo di vita del software, con il tentativo di trasformare lo sviluppo software da un’attività artigianale ad un processo industriale.

Quali sono le differenze tra attività artigianale e attività industriale?

In un’attività artigianale si possono raggiungere elevati livelli qualitativi e di performance. Questo però è legato all’abilità dell’artigiano.

In un’attività industriale si cerca di raggiungere un livello di qualità o di performance adeguati al posizionamento di mercato del prodotto. Tutto questo si ottiene attraverso la definizione e la formalizzazione di processi e modalità di realizzazione.

Il ciclo di vita del software

Un prodotto software ha un suo ciclo di vita:

  1. ANALISI PRELIMINARE
  2. PROGETTAZIONE DEL SOFTWARE
  3. REALIZZAZIONE DEL SOFTWARE
  4. TEST, COLLAUDO E RILASCIO IN PRODUZIONE
  5. GESTIONE DEL SISTEMA SOFTWARE
  6. TERMINE DEL CICLO DI VITA DEL SOFTWARE

Cosa non deve mancare nella documentazione di analisi?

  1. Lo scopo del progetto: Contesto di business in cui si opera e obiettivi del progetto.
  2. Cliente, committente ed altri attori: Descrizione del cliente, descrizione del committente e altri soggetti coinvolti.
  3. Utenti del progetto software: Utenti finali, proprietà degli utenti nella valutazione del nostro lavoro, partecipazione degli utenti al progetto e gli utenti addetti alla gestione del sistema.
  4. Vincoli obbligatori: Vincoli alla soluzione, ambiente per l’implementazione, applicazioni da integrare, prodotti di mercato o open source da utilizzare, ambiente di lavoro in cui è impiegato il prodotto, vincoli temporali, vincoli di budget.
  5. Convenzioni sui nomi: definizioni e acronimi utilizzati nell’ambito del progetto.
  6. Fatti rilevanti e altre assunzioni: fattori che hanno impatto sul sistema ed ipotesi verosimili.
  7. Ambito in cui viene eseguito il progetto: la situazione attuale, contesto in cui si inserisce il prodotto software e business event che devono essere implementati/supportati dal prodotto software.
  8. Ambito del prodotto software: limiti di competenza del prodotto software e use case del prodotto software, ossia le azioni auto-consistenti da parte degli utenti o di altri sistemi che il prodotto deve implementare o supportare.

Cosa sono i requisiti del prodotto?

I requisiti del prodotto descrivono cosa il sistema deve offrire e non come il sistema deve essere sviluppato.

Quindi i requisiti sono l’elemento di riscontro per verificare se il prodotto software è un prodotto di qualità.

Che cos’è l’architettura?

L’architettura è un’aspetto essenziale nella progettazione del software, perché è un sistema formato da diverse componenti che interagiscono fra loro.

I requisiti che hanno un impatto diretto sull’architettura del sistema sono:

  • Funzionalità: il sistema deve essere capace di fornire determinate funzioni;
  • Usabilità: il sistema deve essere facilmente fruibile dall’utente finale;
  • Affidabilità: il sistema deve gestire e resistere ad errori e crash;
  • Prestazioni: il sistema deve avere performance adeguate;
  • Supportabilità: il sistema deve consentire una corretta gestione e manutenzione.