230 likes | 370 Views
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. Lezione 2. Il modello Waterfall e le sue fasi.
E N D
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
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 (#)
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
Lezione 4. Analisi dei requisiti • [AC96, Cap. 1] • [S2001, Cap. 4, Sez. 4.1-4.2] • Requirements engineering • 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
Lezione 5. Viewpoints • [S95, Cap. 5] • Analisi dei requisiti • Viewpoint oriented analysis • Metodo VORD ed esempio ATM (Bancomat) • Validazione dei requisiti • Evoluzione dei requisiti • duraturi • volatili
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
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
Lezione 8. Petri nets • [GJM91, Sez. 5.5] • [G87] • Condition-Event nets • Place-Transition nets • Token con valore • ESEMPI • Case study - Sistema di ascensori
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
Lezione 10. LOTOS - Introd. al linguaggio • [BB87] - Copia distribuita a lezione • [B88] (Lucidi) - Copia distribuita a lezione • Inquadramento • Tipi di dato astratti (ACT ONE) • I processi e le behaviour expression • Semantica operazionale degli operatori principali • action prefix, composizione parallela, sequenziale, disabling… • Basic LOTOS e Full LOTOS • Observational Equivalence • ESEMPIO: Daemon Game
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)
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
Lezione 13. Architecture • [S95, Cap. 13] • 1. System structuring • repository-based • client server • abstract machines (layered architecture) • 2. Control policy models • centralised control • event driven systems • 3. Modular decomposition
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
Lezione 14. UML - Diagrammi • [BRJ99, Capp. 7, 15, 16, 17, 18] • Five Views and nine Diagrams • Use cases • Use case diagrams • Interaction Diagrams
Lezione 15. Statecharts, Activity Diagrams • [BRJ99, Capp. 19, 20, 21] • UML State diagrams e Statecharts • UML Activity diagrams
Lezione 16. Verifica (I) • [S95, Cap. 22] • [GJM91, Cap. 6] • [R85, Cap. 6] • Articoli citati nelle diapositive, e appunti • Generalità; verification & validation • Algoritmi di analisi per modelli a stati finiti • Reachability analysis • 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
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
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-, stress-testing. • Black box (functional) testing • White box (structural) testing • Path testing e metrica ‘cyclomatic complexity’
Lezione 19. Pianificazione e stima dei costi • [S95, Cap. 29] • [GJM91, Sez. 8.2] • Composizione dei costi • Misure di produttività (LOC, FP) • Tecniche di stima dei costi di sviluppo software • Stima algoritmica dei costi • il modello COCOMO • Staffing
Libri • [BRJ99] G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language - UserGuide, Addison-Wesley, 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 Object-Oriented 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
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.