- Docente: Paolo Ciancarini
- Crediti formativi: 9
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Moduli: Paolo Ciancarini (Modulo 1) Giancarlo Succi (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (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) un progetto da fare in gruppo seguendo un metodo di sviluppo agile, 2) una presentazione preparata e consegnata prima dell'appello su un articolo scientifico a scelta dello studente; 3) una discussione orale del progetto e della presentazione.
Il progetto mira ad accertare le abilità collaborative ("teamwork") acquisite nel risolvere problemi nell'ambito delle principali tematiche affrontate nel corso, in particolare: sviluppo agile, uso di UML e design patterns.
La presentazione mira a verificare l'acquisizione delle conoscenze previste dal programma del corso mediante una relazione sintetica su un articolo scientifico a scelta dello studente. Sia il progetto che la presentazione hanno l'ulteriore 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 in entrambe le prove in proporzione 3/4 (rapporto di progetto) e 1/4 (discussione orale). Lo studente può chiedere di essere interrogato sui contenuti del corso per migliorare il voto così ottenuto.
Strumenti a supporto della didattica
Copie dei trasparenti (slide) mostrati a lezione. Esercizi degli anni precedenti. Quiz a domande chiuse somministrati online con Kahoot. Canale di comunicazione basato su Telegram. Ambiente di sviluppo con strumenti per controllo di progetto e di 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



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