Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto
description
Transcript of Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto
Slide 1
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 2
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 3
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 4
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
Slide 5
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
Slide 6
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 7
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 8
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 9
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 10
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
Slide 11
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 12
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 13
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
Slide 14
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 15
Lezione 14. UML - Diagrammi
[BRJ99, Capp. 7, 15, 16, 17, 18]
Five Views and nine Diagrams Use cases Use case diagrams Interaction Diagrams
Slide 16
Lezione 15. Statecharts, Activity Diagrams
[BRJ99, Capp. 19, 20, 21]
UML State diagrams e Statecharts UML Activity diagrams
Slide 17
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
Slide 18
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 19
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’
Slide 20
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
Slide 21
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
Slide 22
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.