INGEGNERIA DEL SOFTWARE (1° MODULO)
cod. 1010130

Anno accademico 2024/25
3° anno di corso - Primo semestre
Docente
Agostino POGGI
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ambito
Ingegneria informatica
Tipologia attività formativa
Caratterizzante
48 ore
di attività frontali
6 crediti
sede:
insegnamento
in

Modulo dell'insegnamento integrato: INGEGNERIA DEL SOFTWARE+TECNOLOGIE INTERNET

Obiettivi formativi

Il corso intende fornire una conoscenza approfondita sulle metodologie e tecniche per lo sviluppo del software, sul linguaggio di programmazione Java e sugli strumenti che possono semplificare lo sviluppo e la gestione di sistemi software.
Inoltre, il corso ha l’obiettivo di fornire la capacità di utilizzare la conoscenza acquisita e l’esperienza accumulata durante le esercitazioni per individuare le migliori soluzioni per progettare dei sistemi software e per realizzare delle implementazioni soddisfacenti sia per quanto riguarda la qualità dei sistemi realizzati e sia per quanto riguarda il costo dello sviluppo.

Prerequisiti

Fondamenti di informatica, Fondamenti di programmazione.

Contenuti dell'insegnamento

Il corso presenta le principali tecniche e metodologie per lo sviluppo di sistemi software, con particolare riferimento ai sistemi orientati agli oggetti e al linguaggio di programmazione Java. In particolare, il corso affronta i seguenti argomenti:
Introduzione
Processi e modelli di sviluppo
Ingegneria dei Requisiti
Progettazione
Implementazione e il testing
Installazione e manutenzione
Gestione dei progetti
Java

Programma esteso

Introduzione
Processi e modelli di sviluppo
- Processi di sviluppo del software
- Modelli per lo sviluppo del software
- UML
Ingegneria dei Requisiti
- Introduzione
- UML e OCL per l'ingegneria dei requisiti
- Raccolta dei requisiti
- Analisi dei requisiti
- Valutazione e gestione dei requisiti
Progettazione
- Processo di progettazione
- Principi di progettazione
- Progettazione architetturale
- Progettazione interfacce utente
- Software Pattern
- Progettazione orientata agli oggetti
Implementazione e il test
- Implementazione del software
- Test del software
Installazione e manutenzione
- Installazione del software
- Manutenzione deò software
Gestione dei progetti
Java
- Introduzione
- Classi e interfacce
- Eccezioni
- Input e output
- Tipi generici
- Collezioni di oggetti
- Interfacce grafiche
- Programmazione funzionale
- Programmazione riflessiva e concorrente
Tecniche, strumenti e modelli per i sistemi software

Bibliografia

Ian Sommerville. Ingegneria del Software, 10/ed, Pearson Education, 2017.

Metodi didattici

Il corso si basa su lezioni teoriche ed esercitazioni di laboratorio. In particolare, le attività di laboratorio, saranno dedicate allo sviluppo di alcune applicazioni e sistemi software utilizzando il linguaggio Java e gli strumenti presentati durante il corso.
In queste attività, gli studenti opereranno individualmente o a coppie, sotto la guida e il supporto del docente del corso e senza precludere positive interazioni tra gli studenti.
Le slide utilizzate a supporto delle lezioni verranno caricate sulla piattaforma Elly, prima di ogni lezione, e per ogni lezione verrà fornita una dispensa. Per scaricare le slide di un insegnamento è necessaria l’iscrizione all'insegnamento tramite Elly . Le slide vengono considerate parte integrante del materiale didattico.
Quindi gli studenti non frequentanti dovranno controllare il materiale didattico e le indicazioni fornite dal docente disponibili sulla piattaforma Elly.

Modalità verifica apprendimento

Sono previste delle prove scritte e delle prove pratiche.
Le prove scritte si basano su domande a risposte aperte sulla teoria a cui bisogna rispondere senza l'aiuto di appunti e libri. Queste domande hanno lo scopo di valutare la conoscenza acquisita sugli argomenti discussi durante il corso.
Le prove pratiche consistono nello sviluppo di applicazioni e sistemi software e può essere svolta dagli studenti in modo individuale o in gruppi con massimo 2 persone. Queste prove hanno lo scopo principale di valutare la capacità di applicare la conoscenza acquisita durante il corso. Inoltre, la valutazione delle prove dipenderà dalla qualità delle applicazioni e dei sistemi sviluppati, della relativa documentazione.
La durata di una prova scritta è pari a 1 ora e trenta minuti; la durata di una prova pratica dipenderà dalla complessità dell'assegnamento.
Le prove scritte e pratiche sono valutate con scala 0-30. Una prova è superata se il suo risultato è maggiore o uguale a 18. Il voto finale è uguale alla media aritmetica dei voti delle prove. La lode può essere assegnata nel caso del raggiungimento del massimo punteggio su tutte le prove.

Altre informazioni

- - -