Lo sviluppo del software: usi e clausole commentate
Transcript
Lo sviluppo del software: usi e clausole commentate
Lo sviluppo del software: usi e clausole commentate Aspetti Tecnici Prof. Franco Sirovich Dipartimento di Informatica Università di Torino Ipotesi di Fondo • Software sviluppato “su misura” • Non “prêt à porter” • Anche quando il fornitore parte da una base di semilavorati o da software simile che ha in casa • Quanto su misura? Specificare nel contratto • Quando il contratto è scritto bene non si “litiga”! • Quali specifiche? Quanto specificato? 2 Livelli di Specifica • Requisiti di utente – Quali sono le necessità del committente • Specifiche funzionali – Come si comporterà il software da realizzare • Specifiche tecniche – Scenario di uso, software di ambiente, requisiti prestazionali • … essere il più possibile precisi! Usare linguaggi formali o semiformali 3 Studio di fattibilità • Tra il dire e il fare ci passa un mare! • I requisiti sono vaghi e incerti • Possono essere soddisfatti con funzionalità molto diverse -> costi e tempi diversi • Sviluppare i requisiti di utente, le specifiche funzionali e quelle tecniche richiede abilità, tempo e denaro -> Studio di Fattibilità • Se non si può fare uno studio di fattibilità con contratto separato, strutturare il contratto come costituito da “due parti” 4 Progettazione • Sviluppare il documento Requisiti di Utente • Attività delicata e che richiede – Collaborazione da parte del committente – Abilità da parte del fornitore e del committente – Tempo di tutti e due! • Dovrebbe essere compreso e accettato dalle due parti • Dopo di che si può passare a … 5 Progettazione (2) • Sviluppare le Specifiche Funzionali e le Specifiche Tecniche – Soddisfano le esigenze del committente in un particolare modo – Determinano il modo in cui si comporterà il software prodotto – Determinano tempi e costi per il fornitore – Devono essere comprese da committente e fornitore – Devono essere accettate dal committente e fornitore • Sviluppare piano dei test di accettazione/collaudo 6 Progettazione (3) • Sviluppare piano dei test di accettazione/collaudo – – – – Modalità di test Casi di Test Sequenze di singoli test Risultati attesi • Deve essere conforme alle specifiche funzionali! • C’è un problema di “correttezza” dei casi di test! • Un piano dei test accettato ha valore prevalente rispetto alle specifiche funzionali: è una affermazione sulla correttezza del software: un comportamento atteso • Prevedere uso di strumenti per automatizzare almeno in parte i test 7 Realizzazione • • • • • Sviluppare il software Eseguire i test di progetto Consegnare ed eseguire i test di collaudo La fase di accettazione è quella più critica Si comincia bene se si sviluppano assieme i test di collaudo • Ricicli (e penali) a causa di fallimenti del collaudo 8 Tutto in un solo contratto? • In genere si fa così • Documento dei Requisiti, realizzato in collaborazione – Obiettivi – Prestazioni attese – Software di ambiente – Ambiente informatico complessivo – Scadenze temporali 9 Piano di Lavoro • • • • • • Prodotto dal fornitore; contiene: Tempi e costi Specifiche funzionali e tecniche Procedura di accettazione Risorse messe a disposizione dal fornitore A questo punto si dovrebbe definire l’ammontare del contratto • È un punto di “recessione” 10 Sono note le “specifiche”? • Se sono note e condivise (o si deve fare come se) allora non si hanno due fasi • Il Piano di Lavoro dovrebbe essere contenuto già nel contratto che si stipula • Difficilmente la Procedura di Accettazione può essere espressa (anche per sommi capi) nel contratto • La Procedura di Accettazione è forse l’elemento chiave che determina i rapporti (buoni o cattivi) fra committente e fornitore 11 Consegna • La consegna, e configurazione, del software presso il fornitore è inclusa nel contratto solo nella misura in cui è necessaria per la procedura di accettazione • È conveniente, per i buoni rapporti fra le parte, che sia effettuata dal fornitore, con la collaborazione e la supervisione del committente • … e quindi sia così pattuito! 12 Versioni intermedie • Spesso richieste dal committente per avere visibilità dell’avanzamento • Consegnare e collaudare costa: occorre che il committente riconosca questo costo • Consegnare e non collaudare non serve a nulla! O meglio, solo ad aumentare i costi … 13 Garanzia • Risolvere i difetti che si riscontrano dopo l’accettazione • Cosa è un difetto? Importanza delle specifiche funzionali! E del manuale di uso! • Verificare il difetto, riprodurlo, … • Produrre una patch • Verificare l’assenza di regressioni: Test di accettazione! • La manutenzione del software dopo la garanzia è tutta un’altra storia! 14