INGEGNERIA DEL SOFTWARE
cod. 06015

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

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

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

Referenti e contatti

Numero verde

800 904 084

Segreteria studenti

E. segreteria.ingarc@unipr.it

Servizio per la qualità della didattica

Manager della didattica: 
Lucia Orlandini
T.+39 0521 906542
E. servizio disti.didattica@unipr.it
E. del manager lucia.orlandini@unipr.it

 

Presidente del corso di studio

Francesco Zammori
E. francesco.zammori@unipr.it

Delegato orientamento in ingresso

Giovanni Romagnoli
E. giovanni.romagnoli@unipr.it

Delegato orientamento in uscita

Giovanni Romagnoli
E. giovanni.romagnoli@unipr.it

Docenti tutor

Giovanni Romagnoli
E. giovanni.romagnoli@unipr.it

Delegati Erasmus

Roberto Montanari
E. roberto.montanari@unipr.it
Fabrizio Moroni
E. fabrizio.moroni@unipr.it
Adrian Hugh Alexander Lutey
E. adrianhughalexander.lutey@unipr.it

Responsabile assicurazione qualità

Francesco Zammori
E. francesco.zammori@unipr.it

Studenti tutor