Ciclo di vita del software: Ingegneria del software Ingegneria del

Transcript

Ciclo di vita del software: Ingegneria del software Ingegneria del
Operatore Giuridico Informatica
Informatica Giuridica
A.A 2005/2006
II Semestre
Ciclo di vita del software:
Ingegneria del software
Lezione 3
prof. Monica Palmirani
Ingegneria del software
9 Il termine viene coniato durante una conferenza NATO
nel 1968 in Germania a Garmish - crisi del software - costi,
controllo, governabilità, qualità, manutenzione
9 La IEEE (1993) definisce gli ambiti dell’ingegneria del software:
(a) disciplina che regola in modo scientifico lo sviluppo, la
gestione e la manutenzione del software, (b) studio delle
strategie di cui al punto a).
Insieme di passi che
definiscono il percorso
di creazione del software
Strategia di base
Tools automatizzati di supporto
ai metodi e ai processi -CASE
STUMENTI
METODI
PROCESSO
QUALITA’ TOTALE
Tecniche per
governare i passi
© Palmirani
1
Motivazioni
9 incrementare la qualità del software ossia rendere
maggiormente industrializzato un processo che è
ancora molto artigianale
9 governare la complessità ossia non far fallire progetti
di grandi dimensioni o di nuova concezione
9 minimizzare i costi di produzione e manutenzione
ossia consentire un facile intervento da parte di
persone diverse dallo sviluppatore originario
9 riciclare il software ossia riutilizzo di lavoro già fatto
© Palmirani
Fasi del processo di sviluppo sw
1.
2.
3.
4.
5.
6.
7.
Analisi - analisi dei requisiti -3%*
Progettazione - specifiche -8%
Implementazione - sviluppo del codice -7%
Validazione - collaudo -15%
10% correzioni
Installazione e documentazione
Modificazione - 67% del costo
10% adattamenti
Smaltimento
50% nuove funzioni
© Palmirani
2
Modelli di processo
9 Modello a cascata - le fasi elencate sono in stretta
sequenza -’70
9 Modello prototipale - le fasi si intersecano e
producono ciclicamente prototipi da sottoporre al
cliente - “usa e getta” o “esplorativa”
9 Modello incrementale - produce versioni
intermedie di prodotto raffinabile fino alla
versione finale
9 Modello a spirare di Boehm - ‘88
ogni ciclo della spirale rappresenta una fase
suddivisa per funzioni che mirano a controllare il
rischio
© Palmirani
Modello a cascata
Fase 1
Fase 2
Fase 3
Fase 4
Fase
5e6
© Palmirani
3
Modello prototipale
© Palmirani
Modello incrementale
Fase 3
Fase 2
Fase 1
© Palmirani
4
Modello a spirale
© Palmirani
Prodotti del processo
Attivita’
1) Analisi requisiti
Documenti Prodotti
Studio di fattibilita’,
Schema di requisiti
Definizione requisiti
Documenti dei requisiti
2) Specifica del sistema
Specifiche funzionali,
piano di accettazione,
Draft del manuale utente
Progetto architetturale Specifica architetturale,
piano di testing del
sistema
Progetto interfaccia
Specifica interfaccia,
piano di integrazione
Progetto dettagliato
Specifica del progetto,
piano di testing unita’
3) Codifica
Codice del programma
4) Testing delle unita’
Rapporto sul test delle
unita’
Testing dei moduli
Rapporto sul test dei
moduli
Testing di integrazione Rapporto sul tesi di
integrazione,manuale
Testing del sistema
Rapporto sui test del
sistema
5)Test di accettazione
Sistema finale e
documentazione
© Palmirani
5
Prodotti del processo
e clausole contrattuali
9 Studio di fattibilità - deve essere accettato dal cliente- nei casi di gara
9
9
9
9
9
9
di appalto pubblica l’AIPA indica lo schema da seguire e il documento
diviene la base per comporre il capitolato tecnico
Elenco dei requisiti di sistema - deve essere approvato dal clientedefinisce la base delle funzioni su cui si effettuerà il collaudo finale
Specifiche di interfaccia - è bene farle firmare dal cliente
Verbale di avanzamento lavori - deve essere prodotto dal fornitore e
vidimato dal cliente al fine di documentare ritardi, modificazioni,
integrazioni, etc. rispetto all’elenco dei requisiti di sistema
Verbale di collaudo finale - deve essere approvato dal cliente e
solitamente è il passo che da vita al pagamento
Manutenzione - è buona norma inserire una clausola di
regolamentazione della manutenzione
Documentazione tecnica e documentazione utente - occorre
sempre richiederla - non sempre viene infatti fornita
© Palmirani
Clausole per la
tutela della prodotto
9 marchio e logo
9 proprietà - colui che è proprietario del bene
9 uso - clausole che regolamentano l’uso del bene differenziando anche la
9
9
9
9
9
9
destinazione d’uso (per ricerca, scopo di lucro, etc.)
accesso - clausole che regolamentano l’accesso ai dati connessi al bene
(banche dati)
rivendita/cessione - clausole che regolamentano la rivendita a terzi
territorialità - clausole che regolamentano la territorialità geografica
delle clausole sopra esposte
Responsabilità –clausola di discarico della responsabilità di datti dovuti
all’utilizzo improprio del software
modificazioni - clausole che regolamentano la modificabilità del software
- personalizzazioni su cliente
integrabilità - clausole che regolamentano la possibilità di integrare il
software altri programmi per evitare che il cliente possa legalmente
effettuare il reverse engineering
© Palmirani
6
Riferimenti
9 Per approfondimenti si veda:
9 Informatica arte e mestiere, Cer,
Mandrioli, Sbattella, MacGrow-Hill
9 cap. 18-19
© Palmirani
7