INGEGNERIA DEL SOFTWARE
cod. 06015

Anno accademico 2015/16
3° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ambito
Ingegneria informatica
Tipologia attività formativa
Caratterizzante
63 ore
di attività frontali
9 crediti
sede: PARMA
insegnamento
in - - -

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 realizzarne 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 introduce il linguaggio di programmazione Java. In particolare, il corso affronta i seguenti argomenti: il processo di produzione del software, le metodologie per lo sviluppo del software, i processi di ingegneria dei requisiti, la progettazione di sistemi software, l'implementazione, il test e la manutenzione del software, UML, l’analisi orientata agli oggetti, la progettazione e l’implementazione di sistemi orientati agli oggetti, i design pattern, gli strumenti per lo sviluppo di sistemi software, e il linguaggio Java.

Programma esteso

Fondamenti di ingegneria del software
- Processo di produzione del software
- Metodologie per lo sviluppo del software
- Processi di ingegneria dei requisiti
- Progettazione di sistemi software
- Implementazione, test e manutenzione del software

Sviluppo di sistemi orientati agli oggetti
- UML
- Analisi dei sistemi orientata agli oggetti
- Progettazione e implementazione di sistemi orientati agli oggetti
- Design pattern

Strumenti per lo sviluppo di sistemi software

Il Linguaggio Java
- Oggetti e classi
- Ereditarietà e polimorfismo
- Eccezioni
- Input/output
- Collezioni di oggetti
- Interfacce grafiche
- Programmazione riflessiva e concorrente

Bibliografia

Ian Sommerville. Ingegneria del Software, 8/ed, Pearson Education, 2007.

Metodi didattici

Il corso si basa su lezioni teoriche ed esercitazioni in laboratorio. In particolare le attività di laboratorio, saranno dedicate allo sviluppo di alcuni sistemi software utilizzando il linguaggio Java e gli strumenti presentati durante il corso. In queste attività, gli studenti opereranno individualmente, chiaramente sotto la guida e con il supporto del docente del corso e senza precludere positive interazioni tra gli studenti.

Modalità verifica apprendimento

Sono previste una prova scritta, con domande a risposta aperta, relative alla parte teorica del corso, ed alcuni esercizi di progettazione, e un progetto software per valutare le capacità pratiche dello studente. Il progetto software sarà valutato per la qualità del sistema realizzato e delle documentazione allegata. Normalmente la prova scritta e il progetto hanno lo stesso peso nel voto finale. Sono previste due prove in itinere con domande a risposta aperta relative alla parte teorica del corso ed alcuni esercizi di progettazione. Il superamento di entrambe le prove in itinere permette di evitare la prova scritta.

Altre informazioni

- - -