Скачать презентацию Lezione 2 Il modello Waterfall e le sue Скачать презентацию Lezione 2 Il modello Waterfall e le sue

7fd4934eb2a163c5846c538aa993cc73.ppt

  • Количество слайдов: 32

Lezione 2. Il modello Waterfall e le sue fasi • [GJM 91, Sez. 7. Lezione 2. Il modello Waterfall e le sue fasi • [GJM 91, Sez. 7. 1], [S 2001, Cap. 3], [TMc. G 93, Cap. 2 (#) fotocopia] • • Modello code-and-fix Processo di sviluppo: specifica, progetto e codifica, validazione, evoluzione Le fasi del modello Waterfall. Fattibilità, requisiti, specifica, progetto, codifica, testing unitario, integrazione e test di sistema, verifica e validazione, manutenzione, evoluzione Waterfall, variante STARTS (#) Waterfall, variante ESA (#) • • • Slide 1

Il ‘modello’ di sviluppo Code-and-fix Prima: • • • ==> Modello a due fasi Il ‘modello’ di sviluppo Code-and-fix Prima: • • • ==> Modello a due fasi ‘CODE-AND-FIX’ • Problemi: il codice diventa rapidamente illeggibile. Poi: • • • Problemi di complessita’ relativamente bassa Programmatore unico Programmatore = utente finale, di formazione scientifica Problemi di alta complessita’ (p. es. business administr. ) Team di programmatori (problemi di comunicazione) Utenti finali inesperti (problemi di comunicazione) ==> nuovo approccio: il ‘processo’ Slide 2

Quattro attività fondamentali del processo software Vengono riconosciute quattro attività: • • Specification Design Quattro attività fondamentali del processo software Vengono riconosciute quattro attività: • • Specification Design and implementation (coding) Validation Evolution Il processo di sviluppo deve essere modellato esplicitamente, per poter essere gestito e monitorato Slide 3

Waterfall model Appare in letteratura negli anni ‘ 50 • in rif. a sistema Waterfall model Appare in letteratura negli anni ‘ 50 • in rif. a sistema difensivo SAGE - Semi-Automated Ground Environment. Larga diffusione a partire dagli anni ‘ 70. Slide 4

Modello Waterfall [S 2001] Slide 5 Modello Waterfall [S 2001] Slide 5

Modello Waterfall [GJM 91] Feasibility study Requirements analysis and specification Design and specification Coding Modello Waterfall [GJM 91] Feasibility study Requirements analysis and specification Design and specification Coding and module testing Integration and sytem testing Delivery Maintenance Slide 6

Modello Waterfall [AC 96] Slide 7 Modello Waterfall [AC 96] Slide 7

Requirements engineering process Consistenti Completi Realistici (specification) * * User requirements = ‘requirements definition’ Requirements engineering process Consistenti Completi Realistici (specification) * * User requirements = ‘requirements definition’ in Sommerville 5 th edition System requirements = ‘requirements specification’ in Sommerville 5 th Software specification = Requirements Engineering [S 2001, p. 55] Slide 8

Feasibility study Valuta i costi e i benefici della applicazione proposta. Contiene almeno: • Feasibility study Valuta i costi e i benefici della applicazione proposta. Contiene almeno: • • • Definizione del problema Soluzioni alternative e relativi vantaggi Risorse richieste, costi, tempi per ciascuna alternativa Si conclude con una offerta al Cliente Il cliente potrebbe ritirarsi, dunque lo studio e’ spesso affrettato. . . Slide 9

Requirements (elicitation, analysis, specification, validation) Identifica le qualita’ richieste per l’applicazione • I requisiti Requirements (elicitation, analysis, specification, validation) Identifica le qualita’ richieste per l’applicazione • I requisiti esprimono il COSA ma non il COME. • Descrivono cosa fa il sistema, con notazioni formali, informali, o miste. Requisiti non-funzionali • non devono vincolare la architettura e gli algoritmi ===> liberta’ di implementazione Requisiti funzionali • funzionalita’, performance, facilita’ d’uso, portabilita’… Su reliability, safety, performance, man-machine interface, portability, operating requirements. Requisiti sul processo di sviluppo e manutenzione • Sulle procedure di controllo di qualita’ e di testing Slide 10

Requirements document Il requirements document e’ una interfaccia fra cliente e sviluppatore • • Requirements document Il requirements document e’ una interfaccia fra cliente e sviluppatore • • Comprensibile, precisa, completa, consistente, non-ambigua Puo’ offrire anche Manuale d’uso e Piano di test. Descrizione del sistema sotto piu’ punti di vista, ma allo stesso livello (alto) di astrazione. Esempio: • • • Modello dei dati (diagrammi ER) Modello delle funzioni (diagrammi data-flow) Strutture di controllo (Reti di Petri) Slide 11

Design Definisce l’architettura del sistema, mediante decomposizione in moduli. Il design (specification) document descrive Design Definisce l’architettura del sistema, mediante decomposizione in moduli. Il design (specification) document descrive le relazioni fra moduli, e cosa fa ciascuno, non come la fa, sebbene. . . …la decomposizione puo’ essere iterata (vertical modularity) su piu’ livelli di astrazione. Design e implementazione (codifica) sono correlati, e vengono spesso eseguiti in ciclo. Slide 12

Diversi modi di intendere high-level/low-level design Slide 13 Diversi modi di intendere high-level/low-level design Slide 13

Formati e notazioni per il design specification document Companywide standards Spesso vengono adottati standard Formati e notazioni per il design specification document Companywide standards Spesso vengono adottati standard internazionali (ISO, CCITT, OMG) Esempi • • LOTOS (Language of Temporal Ordering Specification) ESTELLE (Ext. State Transition Language) SDL (Specification and Description Language) UML (Unified Modelling Language) Slide 14

The software design process [S 2001] Ripartizione in sottosistemi Identif. dei servizi offerti da The software design process [S 2001] Ripartizione in sottosistemi Identif. dei servizi offerti da ogni sottosistema (Software Architecture) High Level (Software Design) Low Level Slide 15

Design methods Systematic approaches to developing a software design The design is usually documented Design methods Systematic approaches to developing a software design The design is usually documented as a set of graphical models Possible models • • • Data-flow model Entity-relation-attribute model Object models Slide 16

Coding (programming) e unit+module testing (debugging) Produce e testa le implementazioni dei moduli del Coding (programming) e unit+module testing (debugging) Produce e testa le implementazioni dei moduli del Design Corrisponde al vecchio code-and-fix, o Programming-in-the-small: attività creativa personale (non c’è ‘processo’) Company standards per: • • • Convenzioni su nomi di variabili nei programmi Convenzioni sui commenti Vincoli su numero di linee di codice per modulo. Slide 17

Testing Unit testing • Modules are integrated into sub-systems and tested. The focus here Testing Unit testing • Modules are integrated into sub-systems and tested. The focus here should be on interface testing System testing • Related collections of dependent components are tested Sub-system testing • Individual components are tested Testing of the system as a whole. Testing of emergent properties Acceptance testing = a-testing • Testing with customer data to check that it is acceptable Slide 18

Testing phases Può rivelare problemi di performance Le componenti possono venire aggiunte e testate Testing phases Può rivelare problemi di performance Le componenti possono venire aggiunte e testate incrementalmente. a-testing: esposizione del sistema (specifico) al cliente, che è ‘paziente’. Slide 19

Verifica & validazione Verifica: il software è corretto, cioè conforme alla specifica (system testing) Verifica & validazione Verifica: il software è corretto, cioè conforme alla specifica (system testing) Validazione: si è costruito il sistema giusto, che soddisfa le aspettative del cliente (acceptance testing) La verifica puo’ riguardare tutti i passi del processo di sviluppo, ed essere formale. Slide 20

Delivery and maintenance b-testing: distribuzione del sistema (generico) limitata a pochi utenti finali, poi Delivery and maintenance b-testing: distribuzione del sistema (generico) limitata a pochi utenti finali, poi Distribuzione illimitata. Manutenzione (60% dei costi di sviluppo) • • • Correttiva - rimuovere errori (20%) Adattiva - adattare l’applicazione a cambi nell’ambiente in cui il sistema ‘gira’ (20%) Perfettiva - migliorare, cambiare, aggiungere qualita’ o funzioni (60%) Slide 21

Costi di manutenzione [Lientz, Swanson ‘ 80] Costi di manutenzione - survey su 400 Costi di manutenzione [Lientz, Swanson ‘ 80] Costi di manutenzione - survey su 400 software house: • • 42% 17% 12% 9% 6% 5% 4% cambiamenti negli user requirements cambiamenti nel formato dei dati emergency fixes routine debugging cambiamenti di hardware modifiche nella documentazione miglioramento della efficienza ==> puntare a requirements piu’ affidabili Slide 22

Waterfall model documents [S 95] Slide 23 Waterfall model documents [S 95] Slide 23

Waterfall, variante STARTS (‘ 87) Software Technology for Application to large Real-Time Systems - Waterfall, variante STARTS (‘ 87) Software Technology for Application to large Real-Time Systems - National Computing Centre, Manchester, UK Waterfall esteso: ogni attività si estende a tutte le fasi • Fonti: The STARTS Guide, 2 nd edition, Vol. 1, 1987. In [TMc. G 93] Slide 24

Una cascata … a ‘V’ Slide 25 Una cascata … a ‘V’ Slide 25

Attività per fase Slide 26 Attività per fase Slide 26

. . . Slide 27 . . . Slide 27

ESA - Software Lifecycle Model (*) UR phase: User Requirements definition SR phase: Software ESA - Software Lifecycle Model (*) UR phase: User Requirements definition SR phase: Software Requirements definition • AD phase: Architectural Design • con stima dei costi al 30% di accuratezza con stima dei costi al 10% di accuratezza DD phase: Detailed Design and production (code) TR phase: Transfer OM phase: Operations and Maintenance • (*) ESA (European Space Agency) Software Engineering Standards, ESA-PSS 05 -0, Issue 2, Feb. 91 - In [TMc. G 93] Slide 28

Slide 29 Slide 29

ESA - Waterfall approach * Waterfall approach e’ la più ovvia interpretazione di ESA ESA - Waterfall approach * Waterfall approach e’ la più ovvia interpretazione di ESA Soft. Lifecycle Model Le frecce inverse (tratteggiate) rappresentano possibili cicli di correzione (waterfall? ) Gli altri due approcci ESA sono: - Incremental delivery - Evolutionary development Slide 30

Software evolution Il Software is intrinsecamente flessibile, e puo’ cambiare, per adeguarsi a nuovi Software evolution Il Software is intrinsecamente flessibile, e puo’ cambiare, per adeguarsi a nuovi requisiti derivanti da nuove situazioni legali, economiche. . . Sempre piu’ spesso lo sviluppo di ‘nuovi’ sistemi non parte da zero, ma si configura come evoluzione e/o assemblaggio di sistemi sviluppati in precedenza. COTS = Components Off The Shelf (o Commmercial…) Slide 31

Modello Waterfall - problemi e applicabilità Rigida partizione del progetto in fasi • difficile Modello Waterfall - problemi e applicabilità Rigida partizione del progetto in fasi • difficile e costoso accogliere nuovi requisiti tardivamente Applicabile quando i requisiti sono ben comprensibili, e stabili Slide 32