Software Engineering II

Obiettivi

Alla fine del corso dovresti essere in grado di comprendere le principali definizioni, sfide e principi che guidano l'area dell'ingegneria del software. Inoltre, dovresti comprendere i benefici e saper usare (in livello basico):

  • Un modello (conceptual model) di software, usato per ripresentare i diversi aspetti del software, guidando il suo sviluppo;
  • Un processo di sviluppo agile, usato per catturare le esigenze degli utenti in modo attuabile e implementarle in modo agile;
  • Un metodo specifico basato su uso di API per codificare e strutturare il software in moduli;
  • Un sistema di versioning e di collaborazione, per aiutare l’ingegnere del software a gestire il codice in un ambiente multi-persona e multi-versione.
  • Un processo di testing per i) trovare bug prima dei clienti, ii) per accelerare lo sviluppo e iii) per rendere il codice più facile da mantenere.

Libri consigliati

  • Sommerville, Ian. Software Engineering, Pearson, 10 ed., 2015.
  • Flewelling, Paul. The Agile Developer’s Handbook, Packt, 2018.
  • Embley, David W., Thalheim, Bernhard (Eds.) Handbook of Conceptual Modeling: Theory, Practice, and Research Challenges, Springer, 2011.

Timetable e Aule

  • Mercoledì, 13.30 – 15.30, Aula B106.
  • Giovedì, 08.30 – 10.30, Aula B106.

Lecturers

  • Prof. Renata Guizzardi (Responsabile) renata.guizzardi AT unitn DOT it
  • Jorge Ramirez (TA) jorge.ramirezmedina AT unitn DOT it

Office hours

Jorge Ramírez would receive students (upon appointment over email) every Monday and Friday from 10:00 to 12:00.

Location: Room 177, Povo 2.