Dgroove

Corso di formazione Architettura e Progettazione del software

L’impatto di IA e Blockchain nella Pubblica Amministrazione

OBIETTIVO DEL CORSO
Il corso ha la finalità di preparare la figura professionale del software architect che è colui che si occupa della progettazione ad alto livello di un applicativo software, definendone i vari componenti e come questi si relazionano e interagiscono logicamente tra di loro.

Il corso prevede l’apprendimento di diverse metodologie di progettazione del software, che hanno una ricaduta diretta sulla sua modalità di sviluppo, quali:
– Object Oriented: è ormai un fondamento della programmazione che consiste nel definire delle classi con determinati attributi e metodi di impiego di cui gli oggetti software sono delle istanze che operativamente elaborano i dati scambiandosi messaggi tra di loro.
– Domain Design Driven: è un approccio alla realizzazione del software in un contesto complesso che prevede il riferimento a un modello spesso in continua evoluzione, e perciò incentrato sulla scalabilità.
– Multi-tier o N-Tier: è un’architettura del software che prevede la distribuzione delle funzioni su più livelli comunicanti tra di loro, sebbene spesso funzionanti all’interno dello stesso sistema: tipicamente il database, l’elaborazione dei dati e la loro presentazione.
– Client / Server: è il caso più semplice di architettura a software a livelli, con due soli strati.
– Event Driven: è un modello di programmazione in cui il flusso di esecuzione del programma è determinato non a priori ma in base a degli eventi esterni.
– Service Oriented: è un modello di architettura del software che prevede una serie di servizi che comunicano tra di loro.
– Microservizi: è un sistema di progettazione e sviluppo del software legato all’avvento del cloud computing e si basa sull’idea che ogni singolo servizio è svolto da un componente software che gira su un processo autonomo e indipendente che comunica con gli altri tramite API.
– Design Pattern: si tratta di soluzioni progettuali generali a problemi ricorrenti. In particolare possono riguardare le relazioni tra classi o oggetti, oppure a livello più alto, posso descrivere un pattern adottato come schema generale dall’intero progetto software.

PREREQUISITI: conoscenza dei principi di programmazione orientata agli oggetti ed esperienza di sviluppo di sistemi informatici (in qualsiasi ambito).

PROGRAMMA DEL CORSO

Introduzione ai microservizi

Pattern architetturali dei microservizi

Domain-Driven Design (DDD)

Scomposizione di un monolite

Command Query Responsibility Segregation (CQRS)

Event Storming

Event Sourcing

Transazioni distribuite e saga

Pattern di resilienza

Osservabilità e monitoraggio

Exit mobile version