Nuova ricerca

Franco ZAMBONELLI

Professore Ordinario
Dipartimento di Scienze e Metodi dell'Ingegneria

Insegnamento: Software and Service Engineering

Ingegneria gestionale (Offerta formativa 2020)

Obiettivi formativi

Conoscenze e capacità di comprensione:

- Conoscere e sapere usare i principi base dell'ingegneria del software.
- Conoscere e sapere usare i principi base e le principali tecnologie per lo sviluppo di servizi software distribuiti.
- Conoscere il processo di sviluppo del software e le tecniche necessarie per progettare e gestire il processo di sviluppo.
- Conoscere le tecniche di ingegnerizzazione dei sistemi di servizi ICT, anche complessi.


Capacità di applicare conoscenza e comprensione:

- Acquisire la capacità di pianificare e sapere gestire il processo di sviluppo di software e sistemi di servizi complessi, anche attraverso strumenti di simulazione.

Prerequisiti

Conoscere almeno un linguaggio di programmazione strutturata.

Conoscere i principi base della programmazione ad oggetti.

Conoscere i principi di sistemi informativi e basi di dati.

Programma del corso

PARTE I: INGEGNERIA DEL SOFTWARE

- Le peculiarità del prodotto "software"
- Software e criticità del prodotto
- Il processo software: fasi e caratteristiche
- Modelli di processi software (a cascata, a spirale, evolutivo, agile)
- Il modello di processo RUP
- Metriche quantitative e qualitative del software
- Modellazione UML (casi di uso, diagrammi delle classi, diagrammi delle interazioni, diagrammi di stato)
- Gestione del processo di sviluppo
- Il modello COCOMO
- Il modelli CMMI
- Gestione della sicurezza

PARTE II: INGEGNERIA DEI SERVIZI
- Il software come servizio
- Architetture orientate ai servizi
- Tecnologie per servizi software
- Reti sociali e servizi di social networking
- Sistemi ad agente e sistemi multiagente
- Sistemi di simulazione e simulazione multiagente
- Modelli di servizi basati su intelligenza collettiva

Metodi didattici

Il corso prevede lezioni frontale in classe, con periodiche esercitazioni di uso di sistemi a supporto dello sviluppo software. Il corso prevede inoltre presentazioni periodiche del lavoro progettuale svolto dagli studenti.

Testi di riferimento

I. Sommerville, "Software Engineering", 8th Edition, Addison Wesley. (available also in Italian)

Notes of the Teacher. Available on the Web page of the course: http://mars.ing.unimo.it/didattica/ingss/Home.html

Verifica dell'apprendimento

Per tutti gli studenti:
- esame orale volto a verificare l'acquisizione delle conoscenze del corso.

E inoltre, una delle seguenti due opzioni a scelta, volte a verificare la capacità di applicazione delle conoscenze acquisite:
- Esame scritto relativo alla pianificazione di un progetto di sviluppo software.
- Progetto di gruppo per lo sviluppo di un prototipo software.

Risultati attesi

Vedi "Obiettivi".