Tecnologie di Progettazione di Sistemi Informatici e di Telecomunicazioni (TPSIT) – Anno 4

Benvenuti a questo percorso formativo dedicato alle architetture software moderne e alle tecnologie cloud-native. In questo modulo esploreremo le metodologie e gli strumenti essenziali per progettare, sviluppare e distribuire applicazioni scalabili e robuste nel panorama tecnologico attuale.

I Pilastri della Progettazione e dello Sviluppo

Il corso parte dai fondamenti della modellazione funzionale tramite i diagrammi dei casi d’uso UML, strumenti indispensabili per definire i requisiti e le interazioni tra attori e sistema. Approfondiremo inoltre la progettazione dei database relazionali attraverso il modello Entità-Relazione (E-R) e il linguaggio SQL, garantendo l’integrità e l’efficienza nella gestione dei dati. Per quanto riguarda lo sviluppo web, analizzeremo:

  • Front-end: L’uso semantico di HTML, il design responsivo con CSS (Flexbox e Grid) e l’interattività di JavaScript.
  • Framework: L’adozione di tecnologie moderne come React, Angular o Vue per creare interfacce dinamiche e reattive.
  • API RESTful: La progettazione di servizi stateless basati su metodi HTTP standard e formato JSON.

Infrastruttura, Automazione e Sicurezza

La seconda parte del corso si focalizza sull’evoluzione delle architetture hardware e cloud. Studieremo le sfide delle architetture multicore e della programmazione concorrente in Java per massimizzare le prestazioni. Entreremo poi nel mondo del Cloud Computing e della containerizzazione:

  • Cloud & Docker: Analizzeremo i modelli IaaS, PaaS e SaaS, e come Docker permetta di pacchettizzare le applicazioni in container leggeri e portabili.
  • Kubernetes & CI/CD: Scopriremo l’orchestrazione dei container su larga scala e l’automazione del ciclo di vita del software tramite pipeline di Continuous Integration e Continuous Delivery.
  • Sicurezza e Testing: Implementeremo strategie di autenticazione (JWT, OAuth 2.0) e suite di test automatizzati per garantire la qualità del prodotto finale.

Padroneggiare queste competenze è fondamentale per affrontare con successo le sfide dell’ingegneria del software contemporanea e costruire sistemi pronti per il futuro digitale.