No Silver Bullet Essenza ed Accidenti nella Ingegneria del Software Mario Capurso
Tra tutti i mostri, i piu terribili sono i lupi mannari Un progetto e apparentemente innocente...ma diventa un mostro a causa di: u scadenze inevase u preventivi disattesi u prodotti disastrosi Ci fosse una Pallottola dArgento
Non ce Pallottola dArgento u A causa della stessa natura del Software u Niente che migliori di due volte ogni 18 mesi (legge di Moore) u Niente che migliori di sei ordini di grandezza in 30 anni u Niente che permetta di scegliere tra migliori prestazioni o minor prezzo
Le difficolta di fare Software u Analizzare, Progettare, Testare il progetto con lutente: DIFFICILE u Programmare: RELATIVAMENTE FACILE Facciamo ancora errori di sintasssi, ma sono banali rispetto agli errori concettuali
Le Proprieta della Essenza del Software u Complessita u Conformita u Cambiabilita u Invisibilita
Complessita Le entita software sono complesse per: u la dimensione u la mancanza di oggetti ripetuti u la quantita enorme di stati u la mancanza di scalabilita
La complessita fa parte della essenza, e determina... u Difficolta di comunicazione in un team u Errori nei prodotti u Esplosione nei costi u Ritardi nelle consegne u Difficolta nelluso u Difficolta di manutenzione u Difficolta di apprendimento u Difficolta nella sostituzione del personale
Conformita u Non ci sono principi unificanti u Il Software deve conformarsi ai voleri di molte istituzioni umane u Il software deve interfacciarsi a molti sistemi u Deve conformarsi perche e lultimo arrivato o e ritenuto il piu malleabile
Cambiabilita - 1 u Il Software e sotto continua pressione per il cambiamento u Anche i prodotti tangibili cambiano, ma meno frequentemente u Il Software incorpora la funzione, che e cio che risente di piu del cambiamento u Il Software e pensiero puro, infinitamente malleabile
Cambiabilita - 2 u Il Software di successo viene cambiato u Lutente lo prova in nuovi casi u Lutente vuole nuove funzioni u Il Software sopravvive allhardware u Il Software e inserito in una matrice culturale di leggi, usi, utenti, macchine, situazioni che cambiano in continuazione
Invisibilita u Il Software e invisibile u Gli oggetti sono visualizzabili, il Software puo essere rappresentato da una molteplicita di grafi sovrapposti u Il Software e non visualizzabile u Questo rende difficile la comunicazione tra menti differenti
I Progressi passati hanno risolto le difficolta accidentali u I Linguaggi ad alto livello –Risolvono la complessita accidentale legata al computer usato: bits, registri, periferiche u I Computer usati in maniera interattiva –Risolvono la complessita accidentale legata ai tempi di risposta u Gli ambienti di programmazione integrati –Risolvono la complessita accidentale legata alluso di programmi separati
Speranze dArgento - 1 u I progressi nei linguaggi di programmazione –Favoriscono il training del programmatore u La programmazione ad oggetti –Riduce la quantita di materiale da esprimere u LIntelligenza Artificiale in generale –Troppo legata a problemi specifici u I Sistemi Esperti –Utile per formalizzare lesperienza dei migliori programmatori
Speranze dArgento - 2 u La programmazione automatica –Utile per problemi con pochi parametri e librerie di alternative u La programmazione grafica –Offre una visione limitata u Ambienti e strumenti di programmazione –Guadagni marginali u Stazioni di lavoro potenti –Benvenute, ma non sono magia
Gli Attacchi Promettenti allEssenza Concettuale -1 u Compra piuttosto che costruire –Compra software sotto forma di prodotti, strumenti, moduli –Usa programmi generali come spreadsheets e data bases
Gli Attacchi Promettenti allEssenza Concettuale -2 u Raffina i requisiti attraverso prototipi –Estrai iterativamente i requisiti –Aiuta lutente a capire cosa vuole u Trovati dei Grandi Progettisti –Le differenze sono di un ordine di grandezza –Identifica e fa crescere un grande progettista –Premia un grande progettista –Fa interagire i progettisti con un grande progettista