Modules | Area | Type | Hours | Teacher(s) | |
INGEGNERIA DEL SOFTWARE | ING-INF/05 | LEZIONI | 60 |
|
L'insegnamento ha l'obiettivo di fornire le conoscenze di base dell'ingegneria del software.
The student who successfully completes the course will have the ability to (1) understand the basic concepts of Software Engineering; (2) design simple software systems; (3) take part in software development projects.
Esame orale basato sulla discussione di un questionario.
During the oral exam the student must be able to demonstrate his/her knowledge of the course material.
Methods:
L'insegnamento ha l'obiettivo di sviluppare le capacità di analisi e progetto del software.
The student who successfully completes the course will have the ability to (1) understand the basic concepts of Software Engineering; (2) design simple software systems; (3) take part in software development projects.
Esame orale basato sulla discussione di un questionario.
Final oral discussion of a written questionnaire.
L'insegnamento ha l'obiettivo di sensibilizzare gli studenti sulla necessità di un approccio rigoroso all'ingegneria del software.
The course aims at making students aware of the importance of a rigorous aproach to software engineering.
Esame orale basato sulla discussione di un questionario.
Final oral discussion of a written questionnaire.
Basic computer science notions, object-oriented programming.
Basic computer science notions, object-oriented programming.
Lezioni frontali, studio individuale, laboratorio.
Delivery: face to face
Learning activities:
Attendance: Not mandatory
Teaching methods:
La produzione di software come attività industriale. Ciclo di vita, modello a cascata, modelli evolutivi. Analisi e specifica dei requisiti: concetti generali; linguaggi per la specifica dei dati; logica; automi a stati finiti; reti di Petri; analisi orientata agli oggetti con notazione UML. Progettazione: concetti generali; moduli; progetto orientato agli oggetti con notazione UML, elementi e tecniche di organizzazione del software, progetto di sistema, progetto in dettaglio. Uso di uno strumento CASE per il progetto. Convalida e verifica: concetti generali; criteri di copertura; framework per il testing.
Software development process models: waterfall, iterative, Unified Process. Specification methods and formalisms: Finite State Automata, Logic, UML. Concepts of software design: modularity, polymorphism, components, concurrency. Elements of testing: structural and functional testing, unit, integration, and system testing.
Ghezzi, Jazayeri, Mandrioli, "Ingegneria del software".
Dispense fornite dal docente.
Sono inoltre consigliati:
E. Gamma, R. Helm, R. Johnson, J. Vlissides, "Design Patterns", Addison-Wesley.
Un testo a scelta sul linguaggio UML
C. Ghezzi, M. Jazayeri, D. Mandrioli "Ingegneria del software -- Fondamenti e principi" Pearson - Prentice Hall.
Course handouts.
Suggested readings:
E. Gamma, R. Helm, R. Johnson, J. Vlissides, "Design Patterns", Addison-Wesley.
Any text on the UML language.
Vedi bibliografia. Rivolgersi al docente per il ricevimento studenti.
See Bibliography and Class web page. Contact the teacher for student reception.
a) risoluzione scritta di un questionario, comprendente domande e semplici esercizi.
b) correzione individuale e discussione della prova a).
La risoluzione del questionario e la sua correzione e discussione costituiscono una prova unica
EMERGENZA COVID-19
In accordo alle norme per il contenimento del contagio, a partire dalla sessione estiva 2020 gli esami si svolgeranno a distanza come segue:
Written questionnaire with multiple-choice questions and exercises involving coding and/or diagramming. The questionnaire and its individual discussion constitute the exam and they are not separate parts.