Fondamenti di Ingegneria del Software: Metodologie e Ciclo di Vita

Classificato in Informatica

Scritto il in italiano con una dimensione di 841,23 KB

Caratteristiche del Software

Il software non si consuma e non è sensibile ai problemi ambientali. Un fallimento indica un errore nell'intero progetto o nell'attuazione. La manutenzione del software è più complessa rispetto all'hardware, poiché è realizzato su misura. La maggior parte dei software moderni è orientata agli oggetti, favorendo la riusabilità, che riduce i costi e migliora la progettazione.

Componenti di un sistema informatico

  • Hardware
  • Software
  • Informazioni
  • Utenti
  • Compiti
  • Documentazione

Tipologie di applicazioni software

Software di base, Real Time, Shopping, Scienza e Ingegneria, Embedded, Personal Computer, IA.

Ingegneria del Software

L'ingegneria del software è la creazione e l'utilizzo di principi ingegneristici per ottenere, in modo economico, software affidabile che funzioni efficacemente su macchine reali.

Paradigmi principali

  • Life Cycle Classic (Modello a cascata)
  • Prototipazione
  • Modello a spirale
  • Tecniche di quarta generazione (L4G)

Modelli di Sviluppo

Life Cycle Classic: Modello a Cascata

Basato sulle fasi di: Ingegneria dei Sistemi, Analisi dei requisiti, Definizione, Progettazione, Codifica, Test e Manutenzione.

Problemi: I progetti reali raramente seguono un flusso sequenziale. È difficile stabilire tutti i requisiti all'inizio a causa dell'incertezza naturale. Inoltre, una versione eseguibile è disponibile solo in fase avanzata, causando spesso inattività degli sviluppatori.

Prototipazione

Il processo prevede: Requisiti > Progettazione rapida > Costruzione prototipo > Valutazione > Raffinatezza > Iterazione. Il prototipo può soddisfare le esigenze dell'utente o diventare parte del prodotto finale. Problema: Il cliente può insistere su modifiche improvvisate che finiscono per compromettere il prodotto finale.

Modello a Spirale

Le fasi includono: Definizione degli obiettivi, Valutazione dei rischi (identificazione e risoluzione), Sviluppo e validazione, e Pianificazione.

Linguaggi di Quarta Generazione (L4G)

Strumenti per specifiche ad alto livello: query al database, reporting, manipolazione dati, interfaccia grafica e generazione del codice. Dominio predominante: sistemi informativi aziendali e produttività. Problemi: Per sistemi di grandi dimensioni, richiede molto tempo e una fase di progettazione rigorosa.

Qualità e Maturità del Software

La qualità è la capacità del prodotto di soddisfare condizioni esplicite e implicite. La garanzia di qualità misura la maturità dell'ingegneria del software. Cause di immaturità: problemi di budget, scadenze mancate e processi non standardizzati.

CMM (Capability Maturity Model)

Modello per valutare la maturità dei processi:

  1. Iniziale: Processo incontrollato.
  2. Ripetibile: Procedimento disciplinato.
  3. Definito: Processo standardizzato.
  4. Managed: Processo prevedibile e controllato.
  5. Ottimizzazione: Miglioramento continuo.

CMMI Livello 2

Implementazione del Software

Fasi: 1. Consapevolezza, 2. Preparazione, 3. Formazione, 4. Sondaggio, 5. Sviluppo piano di miglioramento, 6. Definizione processi, 7. Definizione ruoli e responsabilità, 8. Realizzazione, 9. Monitoraggio e regolazioni.

Project Management

Caso studio: Santista Textil S/A (2002)

Diagnosi: assenza di pianificazione standard, obiettivi poco chiari e mancanza di strumenti adeguati. Si è deciso di focalizzarsi su tre aree: gestione del campo di applicazione, gestione del tempo e gestione della comunicazione.

Le cinque fasi del ciclo di vita di un progetto

Azioni intraprese

  • Formazione sul Project Management concettuale.
  • Definizione degli strumenti metodologici.
  • Pianificazione dell'attuazione.
  • Formazione dei project manager.
  • Monitoraggio tramite indicatori di performance.

Voci correlate: