iSAQB® Certified Professional for Software Architecture - Foundation Level
-
dal 25-02-26 al 27-02-26
Italy - Online
English
Descrizione
I corsi di formazione per Certified Professional for Software Architecture – Foundation Level (CPSA-F) forniranno ai partecipanti le conoscenze e le competenze necessarie per progettare, specificare e documentare un'architettura software adeguata a soddisfare i rispettivi requisiti per sistemi di piccole e medie dimensioni. In base alla loro esperienza pratica individuale e alle competenze esistenti, i partecipanti impareranno a derivare decisioni architetturali da una visione del sistema esistente e da requisiti sufficientemente dettagliati. I corsi CPSA-F insegnano metodi e principi per la progettazione, la documentazione e la valutazione delle architetture software, indipendentemente dai processi di sviluppo specifici.
Focus sulla formazione delle seguenti competenze:
- Discutere e conciliare decisioni architetturali fondamentali con gli stakeholder di requisiti, gestione, sviluppo, operazioni e test.
- Comprendere le attività essenziali dell'architettura software e svolgerle per sistemi di piccole e medie dimensioni.
- Documentare e comunicare le architetture software basandosi su vista architetturale, modelli architetturali e concetti tecnici.
Capitolo 1: Concetti di base dell'architettura software
- Discutere le definizioni di architettura software.
- Comprendere e identificare i benefici dell'architettura software.
- Comprendere l'architettura software come parte del ciclo di vita del software.
- Comprendere i compiti e le responsabilità degli architetti software.
- Relazionare il ruolo degli architetti software con altri stakeholder.
- Spiegare la correlazione tra approcci di sviluppo e architettura software.
- Differenziare tra obiettivi a breve e lungo termine.
- Distinguere tra dichiarazioni esplicite e assunzioni implicite.
- Responsabilità degli architetti software nel contesto architetturale più ampio.
- Differenziare i tipi di sistemi IT
Capitolo 2: Progettazione e sviluppo di architetture software
- Selezionare e utilizzare approcci ed euristiche per lo sviluppo architetturale.
- Progettare architetture software.
- Identificare e considerare i fattori che influenzano l'architettura software.
- Progettare e implementare problematiche trasversali (cross-cutting concerns.
- Descrivere, spiegare e applicare in modo appropriato i principali modelli architetturali.
- Spiegare e utilizzare i principi di progettazione.
- Pianificare le dipendenze tra elementi costitutivi.
- Raggiungere i requisiti di qualità con approcci e tecniche adeguate.
- Progettare e definire le interfacce.
Capitolo 3: Specifica e comunicazione delle architetture software
- Spiegare e considerare la qualità della documentazione tecnica.
- Descrivere e comunicare le architetture software.
- Spiegare e applicare notazioni/modelli per descrivere l'architettura software.
- Spiegare e utilizzare le viste architetturali.
- Spiegare e applicare la vista di contesto dei sistemi.
- Documentare e comunicare problematiche trasversali.
- Descrivere le interfacce.
- Spiegare e documentare le decisioni architetturali.
- Utilizzare la documentazione come comunicazione scritta.
- Conoscere risorse e strumenti aggiuntivi per la documentazione.
Capitolo 4: Architettura software e qualità
- Discutere i modelli di qualità e le caratteristiche di qualità.
- Chiarire i requisiti di qualità per le architetture software.
- Analisi qualitativa e valutazione delle architetture software.
- Analisi quantitativa delle architetture software.
Capitolo 5: Esempi di architetture software
- Conoscere la relazione tra requisiti, vincoli e soluzioni.
- Conoscere la motivazione dell'implementazione tecnica di una soluzione.
Pubblico destinatario
Questo curriculum riflette i contenuti attualmente considerati necessari e utili dai membri di iSAQB per il raggiungimento degli obiettivi di apprendimento del CPSA-F. Non costituisce una descrizione esaustiva dell'intero dominio dell''software architecture'.
Requisiti
I partecipanti dovrebbero possedere le seguenti conoscenze e/o esperienze. In particolare, una significativa esperienza pratica nello sviluppo software in un team è un prerequisito importante per comprendere il materiale di apprendimento e ottenere con successo la certificazione.
- Più di 18 mesi di esperienza pratica nello sviluppo software, acquisita attraverso lo sviluppo in team di diversi sistemi al di fuori dell’ambito della formazione formale
- Conoscenza ed esperienza pratica con almeno un linguaggio di programmazione di alto livello, in particolare:
- Concetti di
- Modellazione e astrazione
- Passaggio di parametri (call-by-value, call-by-reference)
- Scope, ossia dichiarazione e definizione di tipi e variabili
- Basi dei sistemi di tipi (tipizzazione statica vs. dinamica, tipi di dati generici)
- Gestione degli errori e delle eccezioni nel software
- Problemi potenziali legati a stato e variabili globali
- Concetti di
- Conoscenze di base aggiuntive:
- Modellazione e astrazione
- Algoritmi e strutture dati (es. liste, alberi, hash table, dizionari/mappe)
- UML (diagrammi di classi, pacchetti, componenti e sequenze) e la loro relazione con il codice sorgente
Ulteriori conoscenze utili per comprendere vari concetti:
- Basi e differenze tra programmazione imperativa, dichiarativa, orientata agli oggetti e funzionale
- Esperienza pratica in:
- Linguaggi di programmazione orientati agli oggetti (es. Java o C#)
- Progettazione e implementazione di applicazioni distribuite, come sistemi client-server o applicazioni web
- Documentazione tecnica, in particolare documentazione del codice sorgente, della progettazione del sistema o di concetti tecnici