90106 - INGEGNERIA DEL SOFTWARE (9 CFU)

Anno Accademico 2023/2024

  • Docente: Paolo Ciancarini
  • Crediti formativi: 9
  • SSD: INF/01
  • Lingua di insegnamento: Italiano
  • Moduli: Paolo Ciancarini (Modulo 1) Giancarlo Succi (Modulo 2)
  • Modalità didattica: In presenza e a distanza - Blended Learning (Modulo 1) In presenza e a distanza - Blended Learning (Modulo 2)
  • Campus: Bologna
  • Corso: Laurea in Informatica (cod. 8009)

Conoscenze e abilità da conseguire

Al termine del corso, lo studente conosce metodi e strumenti di analisi, progettazione e misura di sistemi software. Comprende il ruolo dei modelli di processo di sviluppo del software, specialmente quelli orientati alla collaborazione agile. È in grado di descrivere un sistema software con il formalismo UML, di programmarlo con un linguaggio orientato agli oggetti, utilizzando strumenti collaborativi per le gestione delle versioni e della qualità del codice.

Contenuti

•La produzione del software •Il ciclo di vita del software •I metodi di sviluppo agili •Il metodo Scrum •L'analisi e la specifica dei requisiti •Schemi (pattern) di progettazione •La modellazione del software con UML •Gli strumenti di sviluppo agile •Project Management per sistemi software • Controllare e misurare la qualità del software • La manutenzione dei sistemi software •La gestione della configurazione

Testi/Bibliografia

Sommerville, Introduzione all'Ingegneria del Software moderna, Pearson 2021

Jacobson, The essentials of modern software engineering, ACM Books 2019

Metodi didattici

Lezioni frontali, esercitazioni, letture e presentazioni di articoli scientifici. Quiz di verifica in classe usando strumenti online: es. Kahoot.

NOTA BENE: In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai Moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, [https://elearning-sicurezza.unibo.it/] in modalità e-learning.

Modalità di verifica e valutazione dell'apprendimento

La verifica dell'apprendimento avviene attraverso: 1) orale sui temi del corso 2) un progetto opzionale da fare in gruppo seguendo un metodo di sviluppo agile.

L'orale mira a verificare l'acquisizione delle conoscenze previste dal programma del corso.

Il progetto mira ad sviluppare le abilità collaborative ("teamwork") nel risolvere problemi nell'ambito delle principali tematiche affrontate nel corso, in particolare: sviluppo sostenibile, uso di strumenti collaborativi open source, competenze di analisi dei requisiti e di gestione del progetto.

Sia il progetto che l'orale hanno lo scopo di verificare l'apprendimento dei metodi dell'ingegneria del software e l'acquisizione di giudizio critico in relazione alle soluzioni dei problemi di analisi, specifica, progettazione e valutazione di sistemi software. Il voto finale, espresso in trentesimi, tiene conto delle valutazioni riportate nell'orale e nel progetto, se effettuato.

Strumenti a supporto della didattica

Copie dei trasparenti (slide) mostrati a lezione. Esercizi degli anni precedenti. Quiz a domande chiuse somministrati online. Canale di comunicazione basato su Telegram. Ambiente di sviluppo open source con strumenti collaborativi di versionamento, di controllo di progetto e di analisi della qualità del codice

Link ad altre eventuali informazioni

http://www.cs.unibo.it/~cianca/wwwpages/labisw

Orario di ricevimento

Consulta il sito web di Paolo Ciancarini

Consulta il sito web di Giancarlo Succi

SDGs

Istruzione di qualità Lavoro dignitoso e crescita economica Imprese innovazione e infrastrutture

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.