No Silver Bullet

16
No Silver Bullet Essenza ed Accidenti nella Ingegneria del Software Mario Capurso http://info.bazarinfo.info

description

No Silver Bullet. Essenza ed Accidenti nella Ingegneria del Software Mario Capurso http://info.bazarinfo.info. Tra tutti i mostri , i piu’ terribili sono i lupi mannari. Un progetto e’ apparentemente innocente ...ma diventa un mostro a causa di: scadenze inevase preventivi disattesi - PowerPoint PPT Presentation

Transcript of No Silver Bullet

Page 1: No Silver Bullet

No Silver Bullet

Essenza ed Accidenti nella Ingegneria del SoftwareMario Capurso

http://info.bazarinfo.info

Page 2: No Silver Bullet

Tra tutti i mostri , i piu’ terribili sono i lupi mannari

Un progetto e’ apparentemente innocente

...ma diventa un mostro a causa di: scadenze inevase preventivi disattesi prodotti disastrosi

Ci fosse una Pallottola d’Argento

Page 3: No Silver Bullet

Non c’e’ Pallottola d’Argento

A causa della stessa natura del Software Niente che migliori di due volte ogni 18

mesi (legge di Moore) Niente che migliori di sei ordini di

grandezza in 30 anni Niente che permetta di scegliere tra migliori

prestazioni o minor prezzo

Page 4: No Silver Bullet

Le difficolta’ di fare Software

Analizzare, Progettare, Testare il progetto con l’utente: DIFFICILE

Programmare: RELATIVAMENTE FACILE

Facciamo ancora errori di sintasssi, ma sono banali rispetto agli errori concettuali

Page 5: No Silver Bullet

Le Proprieta’ della Essenza del Software

Complessita’ Conformita’ Cambiabilita’ Invisibilita’

Page 6: No Silver Bullet

Complessita’

Le entita’ software sono complesse per: la dimensione la mancanza di oggetti ripetuti la quantita’ enorme di stati la mancanza di scalabilita’

Page 7: No Silver Bullet

La complessita’ fa parte della essenza, e determina...

Difficolta’ di comunicazione in un team Errori nei prodotti Esplosione nei costi Ritardi nelle consegne Difficolta’ nell’uso Difficolta’ di manutenzione Difficolta’ di apprendimento Difficolta’ nella sostituzione del personale

Page 8: No Silver Bullet

Conformita’

Non ci sono principi unificanti Il Software deve conformarsi ai voleri di

molte istituzioni umane Il software deve interfacciarsi a molti

sistemi Deve conformarsi perche e’ l’ultimo

arrivato o e’ ritenuto il piu’ malleabile

Page 9: No Silver Bullet

Cambiabilita’ - 1

Il Software e’ sotto continua pressione per il cambiamento

Anche i prodotti tangibili cambiano, ma meno frequentemente

Il Software incorpora la funzione, che e’ cio’ che risente di piu’ del cambiamento

Il Software e’ pensiero puro, infinitamente malleabile

Page 10: No Silver Bullet

Cambiabilita’ - 2

Il Software di successo viene cambiato L’utente lo prova in nuovi casi L’utente vuole nuove funzioni Il Software sopravvive all’hardware Il Software e’ inserito in una matrice

culturale di leggi, usi, utenti, macchine, situazioni che cambiano in continuazione

Page 11: No Silver Bullet

Invisibilita’

Il Software e’ invisibile Gli oggetti sono visualizzabili, il Software

puo’ essere rappresentato da una molteplicita’ di grafi sovrapposti

Il Software e’ non visualizzabile Questo rende difficile la comunicazione tra

menti differenti

Page 12: No Silver Bullet

I Progressi passati hanno risolto le difficolta’ accidentali

I Linguaggi ad alto livello– Risolvono la complessita’ accidentale legata al

computer usato: bits, registri, periferiche I Computer usati in maniera interattiva

– Risolvono la complessita’ accidentale legata ai tempi di risposta

Gli ambienti di programmazione integrati– Risolvono la complessita’ accidentale legata all’uso

di programmi separati

Page 13: No Silver Bullet

Speranze d’Argento - 1

I progressi nei linguaggi di programmazione– Favoriscono il training del programmatore

La programmazione ad oggetti– Riduce la quantita’ di materiale da esprimere

L’Intelligenza Artificiale in generale– Troppo legata a problemi specifici

I Sistemi Esperti– Utile per formalizzare l’esperienza dei migliori

programmatori

Page 14: No Silver Bullet

Speranze d’Argento - 2

La programmazione automatica– Utile per problemi con pochi parametri e librerie di

alternative La programmazione grafica

– Offre una visione limitata Ambienti e strumenti di programmazione

– Guadagni marginali Stazioni di lavoro potenti

– Benvenute, ma non sono magia

Page 15: No Silver Bullet

Gli Attacchi Promettenti all’Essenza Concettuale -1

Compra piuttosto che costruire– Compra software sotto forma di prodotti,

strumenti, moduli– Usa programmi generali come spreadsheets e

data bases

Page 16: No Silver Bullet

Gli Attacchi Promettenti all’Essenza Concettuale -2

Raffina i requisiti attraverso prototipi– Estrai iterativamente i requisiti– Aiuta l’utente a capire cosa vuole

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