SOFTWARE ARCHITECTURES FOR ENTERPRISE SYSTEMS

Nicola CAPUANO SOFTWARE ARCHITECTURES FOR ENTERPRISE SYSTEMS

0622700107
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
CORSO DI LAUREA MAGISTRALE
INGEGNERIA INFORMATICA
2024/2025

OBBLIGATORIO
ANNO CORSO 2
ANNO ORDINAMENTO 2022
SECONDO SEMESTRE
CFUOREATTIVITÀ
324LEZIONE
216ESERCITAZIONE
18LABORATORIO
Obiettivi
L’INSEGNAMENTO AFFRONTA LE PROBLEMATICHE LEGATE ALLO SVILUPPO DI APPLICAZIONI SOFTWARE DI GRANDI DIMENSIONI E CON ELEVATI REQUISITI IN TERMINI DI SCALABILITÀ E DISPONIBILITÀ (APPLICAZIONI ENTERPRISE), PRESENTANDO LE ARCHITETTURE SOFTWARE DI RIFERIMENTO, LE METODOLOGIE SPECIFICHE DI PROGETTAZIONE, LE TECNOLOGIE E GLI STRUMENTI DI SVILUPPO MAGGIORMENTE UTILIZZATI.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE
PROBLEMATICHE NELLA PROGETTAZIONE E NELLO SVILUPPO DI APPLICAZIONI ENTERPRISE. ARCHITETTURE ORIENTATE AI SERVIZI (SOA). SISTEMI DISTRIBUITI ORIENTATI AI SERVIZI: WEB SERVICES, REST SERVICES, MICROSERVICES, DATA AS A SERVICE (DAAS), FUNCTION AS A SERVICE (FAAS), SERVERLESS PROGRAMMING, LOAD BALANCER. TECNOLOGIE ABILITANTI PER ARCHITETTURE ORIENTATE AI SERVIZI. FRAMEWORK DI SVILUPPO A SUPPORTO DELLE ARCHITETTURE ORIENTATE AI SERVIZI.

CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE
PROGETTARE L’ARCHITETTURA DI UN’APPLICAZIONE ENTERPRISE, SCEGLIENDO LE SOLUZIONI PIÙ APPROPRIATE SULLA BASE DEI REQUISITI FUNZIONALI E NON FUNZIONALI. PROGETTARE E SVILUPPARE SERVIZI E MICROSERVIZI NELL’AMBITO DI UNA SOA UTILIZZANDO LE TECNOLOGIE ABILITANTI E I FRAMEWORK PIÙ APPROPRIATI.
Prerequisiti
ESAME PROPEDEUTICO: SOFTWARE ENGINEERING
Contenuti
UNITÀ DIDATTICA 1: INTRODUZIONE ALLE ARCHITETTURE SOFTWARE
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/0)
- 1 (2 ORE LEZIONE): CONCETTO DI ARCHITETTURA SOFTWARE, IL RUOLO DEL SOFTWARE ARCHITECT, I SISTEMI ENTERPRISE, LE VISTE ARCHITETTURALI.
- 2 (2 ORE LEZIONE): ARCHITECTURAL DRIVERS, REQUISITI E ATTRIBUTI DI QUALITÀ (QA) DEL SOFTWARE, RACCOLTA E DOCUMENTAZIONE DEI QA.
- 3 (2 ORE ESERCITAZIONE): ESERCITAZIONE GUIDATA SULLA RACCOLTA E LA DESCRIZIONE DI SCENARI QA.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONCETTI DI ARCHITETTURA, VISTA ARCHITETTURALE, ARCHITECTURAL DRIVER, QUALITY ATTRIBUTE (QA).
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: FORMALIZZARE I QA DI UN'APPLICAZIONE ENTERPRISE.

UNITÀ DIDATTICA 2: PATTERN E TATTICHE ARCHITETTURALI
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 10/0/0)
- 1 (2 ORE LEZIONE): PATTERN E TATTICHE PER LA MODIFICABILITÀ (CLIENT-SERVER, MICROKERNEL, LAYERS, EVENT-DRIVEN, ECC.)
- 2 (2 ORE LEZIONE): PATTERN E TATTICHE PER L'INTEGRABILITÀ (ARCHITETTURE ORIENTATE AI SERVIZI, ORCHESTRAZIONE, COREOGRAFIA, ECC.)
- 3 (2 ORE LEZIONE): PATTERN E TATTICHE PER LA DEPOYABILITY (ARCHITETTURE A MICROSERVIZI, SERVICE MASH, FEATURE TOGGLE, ECC.)
- 4 (2 ORE LEZIONE): PATTERN E TATTICHE PER LA DISPONIBILITÀ (HOT, WORM E COLD SPARE, RIDONDANZA, CIRCUIT BREAKER, ECC.)
- 5 (2 ORE LEZIONE): PATTERN E TATTICHE PER LE PERFORMANCE (LOAD BALANCING, THROTTLING, MAP-REDUCE, ECC.)
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: PRINCIPALI PATTERN E TATTICHE ARCHITETTURALI.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: IDENTIFICARE PATTERN E TATTICHE ARCHITETTURALI APPLICABILI SULLA BASE DEI QA DA SODDISFARE.

UNITÀ DIDATTICA 3: FOCUS SULLE ARCHITETTURE SERVICE ORIENTED
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 2/10/0)
- 1 (2 ORE LEZIONE): INTRODUZIONE ALLE API REST, USARE SERVIZI RESTFUL IN UN'APPLICAZIONE, IL PRINCIPIO HATEOAS
- 2 (2 ORE ESERCITAZIONE): PROGETTARE E DOCUMENTARE UNA API REST, DEFINIZIONE DEGLI GLI ENDPOINT, DELLE RISPOSTE E DEI MESSAGGI DI ERRORE
- 3 (3 ORE ESERCITAZIONE), SVILUPPARE UN WEB SERVICE RESTFUL IN PYTHON, UNIT E PERFORMANCE TESTING CON POSTMAN
- 4 (2 ORE ESERCITAZIONE): INTRODUZIONE A MIRCOSOFT AZURE, CONTAINERIZZAZIONE E DEPLOY DI UN WEB SERVICE SU CLOUD
- 5 (3 ORE ESERCITAZIONE): ESERCITAZIONE GUIDATA SULLA PROGETTAZIONE, SVILUPPO E DEPLOY DI UN'ARCHITETTURA ORIENTATA AI SERVIZI
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONCETTI DI WEB SERVICE, REST, SOA
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER PROGETTARE, IMPLEMENTARE E TESTARE UN'ARCHITETTURA ORIENTATA AI SERVIZI

UNITÀ DIDATTICA 4: ALTRI PATTERN ARCHITETTURALI IN PRATICA
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 0/10/0)
- 1 (3 ORE ESERCITAZIONE): ESERCITAZIONE GUIDATA SULLA REALIZZAZIONE DI UN'ARCHITETTURA CLIENT-SERVER IN PYTHON
- 2 (3 ORE ESERCITAZIONE): ESERCITAZIONE GUIDATA SULLA REALIZZAZIONE DI UN'ARCHITETTURA THREE-TIER CON DBMS GESTITO SU CLOUD
- 3 (2 ORE ESERCITAZIONE): ESERCITAZIONE GUIDATA SULLA REALIZZAZIONE DI UN'ARCHITETTURA EVENT-DRIVEN CON IL MESSAGE BROKER RABBITMQ
- 4 (2 ORE ESERCITAZIONE): SERVERLESS COMPUTING, IMPLEMENTARE IN MODELLO FUNCTION AS A SERVICE (FAAS) CON AZURE FUNCTIONS
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONCETTI DI SERVERLESS COMPUTING, FAAS, MESSAGE BROKER
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER APPLICARE PRATICAMENTE ALCUNI DEI PATTERN APPRESI NELL'UNITÀ DIDATTICA 2

UNITÀ DIDATTICA 5: PROGETTARE E DOCUMENTARE UN'ARCHITETTURA SOFTWARE
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 8/2/0)
- 1 (4 ORE LEZIONE): PROGETTARE UN'ARCHITETTURA SOFTWARE, ATTRIBUTE-DRIVEN DESIGN, DOCUMENTARE LE VISTE, LE INTERFACCE E I COMPORTAMENTI
- 2 (4 ORE LEZIONE): LE NOTAZIONI GRAFICHE: UML PER LE ARCHITETTURE SOFTWARE, SYSML, C4, DIAGRAM AS CODE
- 3 (2 ORE ESERCITAZIONE): STUDIO DELL'ARCHITETTTURA SOFTWARE DI UN SISTEMA ENTERPRISE ESISTENTE E DISCUSSIONE IN AULA

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: ATTRIBUTE-DRIVEN DESIGN, PRINCIPALI DIAGRAMMI DI UML, SYSML E C4
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER PROGETTARE, DOCUMENTARE ED INTERPRETARE UN'ARCHITETTURA SOFTWARE
Metodi Didattici
IL CORSO SI ARTICOLA IN LEZIONI FRONTALI (24 ORE) ED ESERCITAZIONI IN CLASSE (24 ORE). LE LEZIONI FRONTALI PERMETTERANNO AGLI STUDENTI DI ACQUISIRE CONOSCENZE FONDAMENTALI SULLE ARCHITETTURE SOFTWARE, SUI SISTEMI ENTERPRISE, SUI DRIVER ARCHITETTURALI, SUGLI ATTRIBUTI DI QUALITÀ (QA), SUI PRINCIPALI PATTERN E TATTICHE ARCHITETTURALI, SULLA METODOLOGIA ATTRIBUTE-DRIVEN DESIGN, SUI PRINCIPALI FORMALISMI PER LA RAPPRESENTAZIONE DELLE VISTE, DEI COMPORTAMENTI E DELLE INTERFACCE. LE ESERCITAZIONI SVILUPPERANNO LA CAPACITÀ DI FORMALIZZARE I QA DI UN'APPLICAZIONE ENTERPRISE, IDENTIFICARE I PATTERN E LE TATTICHE ARCHITETTURALI PIÙ ADATTI IN BASE AI QA, PROGETTARE, IMPLEMENTARE E TESTARE UN'ARCHITETTURA SOFTWARE APPLICANDO ALCUNI DEI PATTERN APPRESI. LA PARTECIPAZIONE ALLA DIDATTICA FRONTALE È OBBLIGATORIA E L’ACCESSO ALL’ESAME RICHIEDE LA FREQUENZA DI ALMENO IL 70% DELLE ORE DI LEZIONE. LA FREQUENZA SARÀ VERIFICATA UTILIZZANDO IL SISTEMA DI RILEVAZIONE AUTOMATICO EASYBADGE MESSO A DISPOSIZIONE DALL’ATENEO.
Verifica dell'apprendimento
L’ESAME CONSISTE NELLA REALIZZAZIONE DI UN PROJECT WORK E IN UNA PROVA ORALE. IL PROJECT WORK RICHIEDE AGLI STUDENTI DI APPLICARE CRITICAMENTE LE METODOLOGIE APPRESE DURANTE IL CORSO A UN CASO PRATICO. IN PARTICOLARE, GLI STUDENTI DOVRANNO SVILUPPARE UN PROGETTO COMPLETO CHE INCLUDA LA FORMALIZZAZIONE DEI QA, L'IDENTIFICAZIONE DEI PATTERN E DELLE TATTICHE ARCHITETTURALI, LA PROGETTAZIONE, LA DOCUMENTAZIONE E L'IMPLEMENTAZIONE DELL'ARCHITETTURA DI UN APPLICATIVO SOFTWARE. LA PROVA ORALE VALUTERÀ LE COMPETENZE TEORICHE ACQUISITE DURANTE IL CORSO, LA CAPACITÀ DI ARGOMENTARE LE SCELTE PROGETTUALI EFFETTUATE NEL PROJECT WORK E DI RISPONDERE A DOMANDE SU ARGOMENTI SPECIFICI TRATTATI NELLE LEZIONI FRONTALI. IL VOTO FINALE SARÀ DETERMINATO DALLA MEDIA DEI VOTI OTTENUTI NELLE DUE PROVE.
Testi
TESTO DI RIFERIMENTO:
L. BASS, P. CLEMENTS, R. KAZMAN: SOFTWARE ARCHITECTURES IN PRACTICE (4TH ED.), PEARSON EDUCATION.

TESTI DI CONSULTAZIONE:
P. CLEMENTS ET AL.: DOCUMENTING SOFTWARE ARCHITECTURES: VIEWS AND BEYOND (2ND ED.), ADDISON WESLEY.
M. FOWLER: UML DISTILLED (3RD ED.), ADDISON WESLEY.

MATERIALE DIDATTICO INTEGRATIVO SARÀ DISPONIBILE NELLA SEZIONE DEDICATA DELL'INSEGNAMENTO ALL'INTERNO DELLA PIATTAFORMA E-LEARNING DI ATENEO (HTTPS://ELEARNING.UNISA.IT) ACCESSIBILE AGLI STUDENTI DEL CORSO TRAMITE LE CREDENZIALI UNICHE DI ATENEO
Altre Informazioni
IL CORSO È EROGATO IN ITALIANO
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-11-18]