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:
- Iniziale: Processo incontrollato.
- Ripetibile: Procedimento disciplinato.
- Definito: Processo standardizzato.
- Managed: Processo prevedibile e controllato.
- 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.