Comments
Description
Transcript
Contenuti e bibliografia
Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto • • [GJM91, Capp. 1, 2] [S2001, Cap. 1] La disciplina S. E. - generalità Caratteristiche del prodotto software. Requisiti di qualità in diverse aree applicative Slide 1 Lezione 2. Il modello Waterfall e le sue fasi • [GJM91, Sez. 7.1], [S2001, Cap. 3], [TMcG93, 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 2 Lezione 3. Altri modelli di processo software • [GJM91, Sez. 7.1], [S2001, Cap. 3], [TMcG93, Cap. 2], [BRJ99, App. C (°)] • • Incremental delivery Modello evolutivo » uso di prototipi • • • • • • • Modello formale-trasformazionale Reuse Extreme programming Modelli ibridi e metamodello a spirale Modello Unified (UML) (°) Visibilità nei vari modelli Supporto CASE Slide 3 Lezione 4. Analisi dei requisiti • • Requirements engineering • • • • • [AC96, Cap. 1] [S2001, Cap. 4, Sez. 4.1-4.2] studio di fattibilità comprensione del dominio, glossario estrazione, definizione, specifica, ispezione dei requisiti specifica formale e modelli astratti requisiti funzionali e non-funzionali Il documento dei requisiti Viewpoints in generale Slide 4 Lezione 5. Viewpoints • Analisi dei requisiti • • [S95, Cap. 5] Viewpoint oriented analysis Metodo VORD ed esempio ATM (Bancomat) Validazione dei requisiti Evoluzione dei requisiti • • duraturi volatili Slide 5 Lezione 6. Modelli astratti: DF, ER • • [S95, Cap. 6] [GJM91, Cap. 5] Modelli astratti classificati secondo il loro orientamento a rappresentare dati/funzioni/controllo. Modelli astratti per la fase dei requisiti: • • Data-Flow diagrams Entity-Relation diagrams Slide 6 Lezione 7. FSM e XFSM [GJM91, sez. 5.5.2] Finite State Machines - definizioni, applicabilita’, esempi Prodotto di FSM XFSM: Extended FSM Reti di XFSM Esempio: Dispatcher Slide 7 Lezione 8. Petri nets • • [GJM91, Sez. 5.5] [G87] Condition-Event nets Place-Transition nets Token con valore ESEMPI Case study - Sistema di ascensori Slide 8 Lezione 9. Petri Net estese e Case Study • • [GJM91, Sez. 5.5] [G87] Richiami di logica Predicate-Transition (PrT-) nets [Genrich’87] Time Petri Nets [Merlin] ESEMPI Case study - Sistema di ascensori Slide 9 Lezione 10. LOTOS - Introd. al linguaggio • • Inquadramento Tipi di dato astratti (ACT ONE) I processi e le behaviour expression Semantica operazionale degli operatori principali • [BB87] - Copia distribuita a lezione [B88] (Lucidi) - Copia distribuita a lezione action prefix, composizione parallela, sequenziale, disabling… Basic LOTOS e Full LOTOS Observational Equivalence ESEMPIO: Daemon Game Slide 10 Lezione 11. Tre stili di specifica LOTOS [Copia lucidi distribuita a lezione] Stile state-oriented (due varianti) Stile resource-oriented Stile Constraint-Oriented • Esempio: Switching node (Al’s node) Slide 11 Lezione 12. Software Design [S95, Cap. 12] [FK92] Strategie di design: functional decomposition e object-oriented design Prospettiva storica e confronti • • Structured design methods - process-oriented/data-oriented Object-Oriented analysis and design Design quality attributes • • • cohesion coupling adaptability Slide 12 Lezione 13. Architecture [S95, Cap. 13] 1. System structuring • • • 2. Control policy models • • repository-based client server abstract machines (layered architecture) centralised control event driven systems 3. Modular decomposition Slide 13 Lezione 13. UML - Classi e relazioni [BRJ99, Capp. 4, 5] Classi, attributi, operazioni, segnature, packages Responsabilità Criteri per la identificazione di classi Relazioni • • • dependency generalization - inheritance - classi e operazioni astratte association » aggregation » composition • realization Slide 14 Lezione 14. UML - Diagrammi [BRJ99, Capp. 7, 15, 16, 17, 18] Five Views and nine Diagrams Use cases Use case diagrams Interaction Diagrams Slide 15 Lezione 15. Statecharts, Activity Diagrams [BRJ99, Capp. 19, 20, 21] UML State diagrams e Statecharts UML Activity diagrams Slide 16 Lezione 16. Verifica (I) • • • • Generalità; verification & validation Algoritmi di analisi per modelli a stati finiti Reachability analysis • [S95, Cap. 22] [GJM91, Cap. 6] [R85, Cap. 6] Articoli citati nelle diapositive, e appunti limiti ed evoluzione Algoritmi e complessità di problemi per reti di Petri • • boudedness, reachability in P/T nets e Time PN’s analisi degli invarianti Slide 17 Lezione 17. Verifica (II) • • • • [GJM91, Cap. 6] [BB87] [P93] appunti 1. Verifica di equivalenze per algebre di processo 2. Dimostrazione di correttezza di programmi 3. Esecuzione simbolica Slide 18 Lezione 18. Testing • • [S95, Cap. 22-23] [GJM91, Sez. 6.3] Generalità Testing statistico vs. Defect testing Top down-, bottom up-, thread-, back to back-, stresstesting. Black box (functional) testing White box (structural) testing • Path testing e metrica ‘cyclomatic complexity’ Slide 19 Lezione 19. Pianificazione e stima dei costi • • Composizione dei costi Misure di produttività (LOC, FP) Tecniche di stima dei costi di sviluppo software Stima algoritmica dei costi • [S95, Cap. 29] [GJM91, Sez. 8.2] il modello COCOMO Staffing Slide 20 Libri [BRJ99] G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language - UserGuide, AddisonWesley, 1999. [GJM91] C. Ghezzi, M. Jazayeri, D. Mandrioli, Fundamentals of software engineering, Prentice-Hall, 1991 [S95] Ian Sommerville, Software Engineering - Fifth Edition, Addison-Wesley, 1995. [AC96] V. Ambriola, G. A. Cignoni, Laboratorio di Programmazione, Jackson Libri, 1996. [B95] F. P. Brooks, The mythical man-month - Essays on software engineering, 20th Anniversary edition, Addison-Wesley, 1995. [F97] M. Fowler, UML Distilled, Addison-Wesley, 1997. [GHJV95] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns - Elements of reusable ObjectOriented Software, Addison-Wesley, 1995. [P93] V. R. Pratt, ‘Logics of Programs’, in A. Ralston, E. D. Reilly (Eds.) Encyclopedia of Computer Science, IEEE Press, 1993. [R85] W. Reisig, Petri Nets - An Introduction, EATCS Monographs on Theoretical Computer Science, Vol. 4, Springer-Verlag, 1985. [TMcG93] R. H. Thayer, A. D. Mc Gettrick (eds.), Software Engineering, A European Perspective, IEEE Computer Society Press, 1993 (raccolta). - - - COPIA Cap. 2 CONSEGNATA A LEZIONE Slide 21 Articoli [BB87] T. Bolognesi, E. Brinksma, 'Introduction to the ISO Specification Language LOTOS’, Computer Networks and ISDN Systems, Vol. 14, No. 1, pp. 25-59, North-Holland, 1987. Apparso anche in P. H. J. Van Eijk, C. A. Vissers, M. Diaz (editors), The Formal Description Technique LOTOS, North-Holland 1989. - - COPIA CONSEGNATA A LEZIONE [B88] T. Bolognesi, ‘Transparent LOTOS’ (LUCIDI), CNUCE, Tech. Rep. C88-40, 1988 - - - COPIA CONSEGNATA A LEZIONE [FK92] Fichman and Kemerer, ‘Object-Oriented and Conventional Analysis & Design Methodologies Comparison and Critique, IEEE Computer, Oct. 92] [G87] H. J. Genrich, 'Predicate/Transition Nets', In: Brauer, W.; Reisig, W.; Rozenberg, G.: Lecture Notes in Computer Science, Vol. 254, pages 207-247. Springer-Verlag, 1987. [H87] D. Harel, 'STATECHARTS: a Visual Formalism for Complex Systems', Science of Computer Programming, 8 (1987), pp. 231-274. [R85] W. Reisig, Petri Nets - An Introduction, EATCS Monographs on Theoretical Computer Science, Vol. 4, Springer-Verlag, 1985. Slide 22