Software Engineering

Download Report

Transcript Software Engineering

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