Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

22
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

description

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. - PowerPoint PPT Presentation

Transcript of Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

Page 1: 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

Page 2: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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 (#)

Page 3: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 4: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 5: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 6: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 7: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 8: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 9: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 10: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 11: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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)

Page 12: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 13: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 14: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 15: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 16: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

Slide 16

Lezione 15. Statecharts, Activity Diagrams

[BRJ99, Capp. 19, 20, 21]

UML State diagrams e Statecharts UML Activity diagrams

Page 17: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 18: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 19: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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’

Page 20: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 21: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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

Page 22: Lezione 1. La disciplina dell’Ingegneria del Software, e il software come prodotto

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.