Corso di formazione in Architettura e Progettazione del software

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.

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.

PROGRAMMA DEL CORSO

1.Software architecture patterns: introduzione
2.Architettura Object-Oriented (OOA)
-Principi SOLID
-Object Oriented Patterns
-Pattern creazionali
-Pattern strutturali
-Pattern comportamentali
-Pattern per la concorrenza
3.Architettura Domain-driven design (DDD)
-Principi: dominio, bounded context, ubiquitous language
-Pattern Domain events
-Pattern Event sourcing
4.Architetture Client/Server e Multi-tier
-Architettura two-tier client-server
-Architettura three-tier client-server
5.Architettura Event-driven
-Caratteristiche
-Event-driven pattern
-Event mediator pattern
-Event broker pattern
-Broadcast pattern
-Polling pattern
6.Architettura Service-oriented (SOA)
-Web service e SOA
-Caratteristiche di SOA
-Principi
-SOA design pattern
7.Architettura Microservices
-Pattern di decomposizione
-Pattern di rilascio
-Pattern di progettazione
-Database pattern
8.Pattern di comunicazione (messaging pattern)
-Pattern Pipe and filter
-Pattern Message router
-Pattern Message endpoint
-Pattern Point-to-point channel
-Pattern Publish-subscribe channel
-Pattern Message bus
-Pattern Command message
-Pattern Event message
-Pattern Request-reply
-Pattern Message filter
9.Piattaforme per architetture enterprise
-TOGAF (cenni)
-Zachman (cenni)

Architettura e progettazione del software
1 Ott 2018
09:00
Senior Software Architect

Il corso ha una durata di 5 giorni.
PREREQUISITI
Conoscenza dei principi di programmazione orientata agli oggetti ed esperienza di sviluppo di sistemi informatici (in qualsiasi ambito).

AGENDA

    1.Software architecture patterns: introduzione
    2.Architettura Object-Oriented (OOA)
    3.Architettura Domain-driven design (DDD)
    4.Architetture Client/Server e Multi-tier
    5.Architettura Event-driven
    6.Architettura Service-oriented (SOA)
    7.Architettura Microservices
    8.Pattern di comunicazione (messaging pattern)
    9.Piattaforme per architetture enterprise