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