Salta al contenuto principale
CODICE 101807
ANNO ACCADEMICO 2025/2026
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 1° Semestre

PRESENTAZIONE

Questo corso si propone di introdurre e analizzare le tecniche attuali per la progettazione e la modellazione di sistemi software su larga scala. Il corso guiderà gli studenti nella loro applicazione, con particolare attenzione alla selezione delle varianti più appropriate per specifici progetti software. Sarà inoltre incoraggiato l'apprendimento autonomo di argomenti avanzati, in linea con i principi dell'apprendimento continuo.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Apprendere attraverso l'esperienza pratica gli strumenti concettuali di base per la progettazione e la modellazione dei sistemi software, acquisendo competenze comunicative e capacità di apprendimento continuo.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Al termine di questo corso, gli studenti più attenti saranno in grado di:

  • Conoscenza e comprensione:
    • Comprendere i principi e le tecniche fondamentali della modellazione visuale del software basata su UML.
    • Identificare e descrivere i concetti chiave della progettazione, come pattern, componenti riutilizzabili, tattiche e framework per lo sviluppo di sistemi software.
    • Spiegare i concetti chiave dell'architettura dei sistemi software e le relative implicazioni progettuali.
  • Applicare conoscenza e comprensione:
    • Applicare la modellazione visuale basata su UML a supporto della progettazione architetturale di un sistema software.
    • Utilizzare pattern, tattiche, architetture di riferimento, framework e componenti riutilizzabili specifici nello sviluppo concreto di sistemi software.
    • Progettare l'architettura di un sistema software, selezionando le soluzioni più appropriate in base ai requisiti.
  • Autonomia di giudizio:
    • Valutare criticamente diverse soluzioni alternative applicabili a problemi di progettazione architetturale per selezionare quelle più adatte a un progetto specifico.
    • Analizzare e risolvere problemi di progettazione e qualità relativi alle architetture software.
  • Competenze comunicative:
    • Presentare in modo efficace un argomento tecnico complesso a un gruppo di colleghi, dimostrando chiarezza e capacità argomentative.
    • Discutere e collaborare in team su problemi di progettazione software.
  • Competenze di apprendimento:
    • Esplorare in modo autonomo specifici argomenti tecnici relativi al programma del corso.
    • Valutare la loro comprensione e individuare aree di apprendimento continuo, nell'ottica di una formazione continua.

PREREQUISITI

Per partecipare con successo a questo corso, gli studenti devono possedere solide conoscenze di base di:

  • Programmazione (in particolare orientata agli oggetti).
  • Database.
  • Sviluppo di applicazioni web.
  • Utilizzo della notazione di modellazione UML.
  • Ingegneria del software (terminologia e principali attività di sviluppo).

Per i primi quattro argomenti elencati, oltre alle conoscenze teoriche, sono richieste anche comprovate competenze pratiche.

MODALITA' DIDATTICHE

Il corso si avvarrà di una combinazione di:

  • Lezioni frontali: per la presentazione dei concetti e delle tecniche fondamentali nella progettazione e modellazione del software.
  • Attività pratiche e di laboratorio: per consentire agli studenti di applicare i concetti appresi, comprendere le sfide pratiche e sviluppare competenze concrete.
  • Studio individuale e presentazione autonoma: gli studenti saranno incoraggiati ad approfondire autonomamente un argomento correlato al programma e a presentarlo ai propri colleghi, sviluppando così le proprie capacità di autoapprendimento e di comunicazione.

PROGRAMMA/CONTENUTO

Il corso tratterà i seguenti argomenti:

  • Revisione dei requisiti software:
    • Requisiti funzionali e non funzionali.
    • Specifica dei requisiti mediante casi d'uso.
    • Specifica dei requisiti orientata agli obiettivi.
  • Modellazione visuale del software:
    • Ripasso dei concetti fondamentali della modellazione.
    • Studio dei diagrammi UML più frequentemente utilizzati nelle attività pratiche del corso.
  • Architetture dei sistemi software:
    • Principi e concetti di base dell'architettura software.
    • Progettazione di architetture di sistemi software.
    • Metodo di progettazione basata sugli attributi (AAD) con casi di studio.
    • Varie categorie di concetti di progettazione (vari tipi di pattern, tattiche, architetture di riferimento, framework e componenti riutilizzabili).

TESTI/BIBLIOGRAFIA

Testo di riferimento:

  • Cervantes, H., e Kazman, R. (2016). Designing Software Architectures: A Practical Approach. Addison-Wesley.

Bibliografia aggiuntiva: Ulteriore bibliografia e risorse online saranno indicate e discusse durante le lezioni e rese disponibili sulla pagina AulaWeb del corso.

DOCENTI E COMMISSIONI

LEZIONI

INIZIO LEZIONI

In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://corsi.unige.it/corsi/11964/studenti-orario

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

L'insegnamento è erogato integralmente in lingua Inglese. Per tutte le informazioni relative, si veda la corrispondente sezione in lingua Inglese.

MODALITA' DI ACCERTAMENTO

L'insegnamento è erogato integralmente in lingua Inglese. Per tutte le informazioni relative, si veda la corrispondente sezione in lingua Inglese.

ALTRE INFORMAZIONI

Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare il docente.

OpenBadge

 PRO3 - Soft skills - Imparare a imparare avanzato 1 - A
PRO3 - Soft skills - Imparare a imparare avanzato 1 - A