Presentazioni

Iscriviti subito e inizia a trasformare idee complesse in soluzioni tecnologiche tangibili che avranno un impatto sul mondo"    

##IMAGE##

La qualità del Software garantisce che i sistemi non solo soddisfino i requisiti funzionali, ma siano anche intuitivi, sicuri e sostenibili a lungo termine. Questo aspetto è particolarmente importante in settori critici come quello finanziario, sanitario o dei trasporti, dove i guasti possono avere conseguenze gravi. Inoltre, dando priorità alla qualità, si assicura che le aziende possano adattarsi in modo agile ai continui progressi tecnologici e rispondere efficacemente 
alle crescenti richieste del mercato. 

Utilizzando metodologie come lo sviluppo agile, DevOps e l'implementazione di standard internazionali di qualità, l'ingegneria del Software garantisce la consegna dei prodotti in tempi più brevi. Inoltre, i costi controllati e il livello di qualità che riduce al minimo gli errori critici sono stati ampliati con l'integrazione di tecnologie emergenti come l'intelligenza artificiale, il cloud computing e la cibersicurezza. In questo contesto, il programma che TECH ha progettato è orientato a formare professionisti altamente qualificati in progettazione, sviluppo, gestione e garanzia della qualità del Software. Per acquisire le competenze necessarie, il piano di studi del Master Specialistico include i concetti più aggiornati sulla gestione dei progetti tecnologici e la direzione strategica. Questo approccio rappresenta un valore aggiunto sia per gli ingegneri che già occupano posizioni di responsabilità e desiderano aggiornare le loro conoscenze, sia per coloro che aspirano a guidare team e progetti per la prima volta in questo settore.  

Uno dei principali vantaggi che offre questo programma è che sarà 100% online, eliminando la necessità di trasferimenti e di adattarsi a orari specifici. Inoltre, gli studenti avranno a disposizione il metodo di apprendimento Relearning, che si adatta al loro ritmo di studio. Questo approccio flessibile è molto utile, perché consente agli studenti di organizzare in modo efficiente i loro impegni quotidiani, sia professionali che familiari, raggiungendo così uno sviluppo completo. 

Grazie a TECH, non solo imparerai a sviluppare Software, ma a creare sistemi che fanno la differenza nella vita delle persone e delle aziende" 

Questo Master specialistico in Ingegneria e Qualità del Software possiede il programma più completo e aggiornato del mercato. Le sue caratteristiche principali sono:

  • Sviluppo di casi di studio pratici presentati da esperti in informatica 
  • Contenuti grafici, schematici ed eminentemente pratici che forniscono informazioni scientifiche e pratiche sulle discipline essenziali per l’esercizio della professione 
  • Esercizi pratici che offrono un processo di autovalutazione per migliorare l'apprendimento 
  • Speciale enfasi sulle metodologie innovative nel settore dell’Ingegneria e della Qualità del Software 
  • Lezioni teoriche, domande all'esperto, forum di discussione su argomenti controversi e lavoro di riflessione individuale 
  • Disponibilità di accesso ai contenuti da qualsiasi dispositivo fisso o portatile dotato di connessione a Internet 

Padroneggia le competenze e gli strumenti più avanzati dell'ingegneria con la metodologia didattica più innovativa del panorama accademico attuale" 

Il personale docente del programma comprende rinomati specialisti del settore e altre aree correlate, che forniscono agli studenti le competenze necessarie a intraprendere un percorso di studio eccellente. 

I contenuti multimediali, sviluppati in base alle ultime tecnologie educative, forniranno al professionista un apprendimento coinvolgente e localizzato, ovvero inserito in un contesto reale. 

La creazione di questo programma è incentrata sull’Apprendimento Basato su Problemi, mediante il quale lo specialista deve cercare di risolvere le diverse situazioni che gli si presentano durante il corso. Lo studente potrà usufruire di un innovativo sistema di video interattivi creati da esperti di rinomata fama.  

Aumenta le tue aspettative professionali imparando in modo 100% online, senza interferire con i tuoi impegni personali e familiari"

##IMAGE##

Diventa un leader professionale in ingegneria, pronto a imparare da qualsiasi parte del mondo"

Piano di studi

Il piano di studi del Master specialistico in Ingegneria e Qualità del Software è progettato per fornire una specializzazione completa e avanzata in tutte le aree chiave dell'ingegneria del Software. I primi moduli si concentrano sui fondamenti, che vanno dalla progettazione Software e gestione dei requisiti alle architetture tecnologiche e metodologie agili. Man mano che il programma avanza, gli studenti si immergono in aree più specializzate come l'automazione dei test, l'integrazione continua e la garanzia della qualità. Inoltre, vengono inclusi corsi sulla gestione dei progetti tecnologici, in cui i partecipanti imparano a gestire team multidisciplinari. 

##IMAGE##

Questo Master specialistico ti prepara a diventare l'esperto che fa la differenza nel settore dell'Ingegneria e della Qualità del Software" 

 Modulo 1. Qualità del Software: Livelli di sviluppo TRL

1.1. Elementi che influenzano la Qualità del Software (I). Il debito tecnico

1.1.1. Il debito tecnico: Cause e conseguenze
1.1.2. Qualità del Software: Principi generali
1.1.3. Software senza principi e con principi di qualità

1.1.3.1. Conseguenze
1.1.3.2. La necessità di applicare i principi della qualità nel Software

1.1.4. Qualità del Software: Tipologia
1.1.5. Software di Qualità: Caratteristiche specifiche

1.2. Elementi che influenzano la Qualità del Software (II). Costi associati

1.2.1. Qualità del Software: Elementi determinanti
1.2.2. Qualità del Software: Idee sbagliate
1.2.3. Qualità del Software: Costi associati

1.3. Modello di Qualità del Software (I). Gestione della conoscenza

1.3.1. Modelli di qualità generali

1.3.1.1. Gestione della qualità totale
1.3.1.2. Modello Europeo di Eccellenza Aziendale (EFQM)
1.3.1.3. Modello Six-Sigma

1.3.2. Modelli di Gestione della Conoscenza

1.3.2.1. Modello Dyba
1.3.2.2. Modello Seks

1.3.3. Esperienza di fabbrica e paradigma QIP
1.3.4. Modelli di qualità d'uso (25010)

1.4. Modello di Qualità del Software (II). Qualità dei dati, dei processi e dei modelli SEI

1.4.1. Modello di qualità dei dati
1.4.2. Modello di processo del Software
1.4.3. Software & Systems Process Engineering Metamodel Specification (SPEM)
1.4.4. Modelli del SEI

1.4.4.1. CMMI
1.4.4.2. SCAMPI
1.4.4.3. IDEAL

1.5. Standard ISO di Qualità del Software (I). Analisi degli standard

1.5.1. Norme ISO 9000

1.5.1.1. Norme ISO 9000
1.5.1.2. Famiglia di standard di qualità ISO (9000)

1.5.2. Altri standard ISO relativi alla Qualità
1.5.3. Standard di Modellazione della Qualità (ISO 2501)
1.5.4. Normativa di Misurazione della Qualità (ISO 2502n)

1.6. Standard ISO di Qualità del Software (II). Requisiti e valutazione

1.6.1. Standard dei Requisiti di Qualità (2503n)
1.6.2. Normativa sulla Valutazione della Qualità (2504n)
1.6.3. ISO/IEC 24744: 2007

1.7. Livelli di sviluppo TRL (I). Livelli da 1 a 4

1.7.1. Livelli TRL
1.7.2. Livello 1: principi di base
1.7.3. Livello 2: concetto e/o applicazione
1.7.4. Livello 3: funzione analitica critica
1.7.5. Livello 4: convalida dei componenti in ambiente di laboratorio

1.8. Livelli di sviluppo TRL (II). Livelli da 5 a 9

1.8.1. Livello 5: convalida del componente in un ambiente pertinente
1.8.2. Livello 6: modello di sistema/sottosistema
1.8.3. Livello 7: dimostrazione in ambiente reale
1.8.4. Livello 8: sistema completo e certificato
1.8.5. Livello 9: successo in un ambiente reale

1.9. Livelli di sviluppo TRL: Usi

1.9.1. Esempio di azienda con ambiente di laboratorio
1.9.2. Esempio di azienda di R&S+I
1.9.3. Esempio di azienda di R&S+I industriale
1.9.4. Esempio di joint venture laboratorio-ingegneria

1.10.  Qualità del Software: Dettagli principali

1.10.1. Dettagli metodologici
1.10.2. Dettagli tecnici
1.10.3. Dettagli sulla gestione dei progetti Software

1.10.3.1. Qualità dei sistemi informatici
1.10.3.2. Qualità del Prodotto Software
1.10.3.3. Qualità del Processo Software

Modulo 2. Sviluppo di Progetti Software: Documentazione funzionale e tecnica

 2.1. Gestione dei progetti

 2.1.1. Gestione di progetti sulla Qualità del Software
 2.1.2. Gestione dei progetti: Vantaggi
 2.1.3. Gestione dei progetti: Tipologia

 2.2. Metodologia nella gestione di progetti

 2.2.1. Metodologia nella gestione di progetti
 2.2.2. Metodologie di progetto: Tipologia
 2.2.3. Metodologia nella gestione di progetti: Applicazioni

 2.3. Fase di identificazione dei requisiti

 2.3.1. Identificazione dei requisiti del progetto
 2.3.2. Gestione delle riunioni di progetto
 2.3.3. Documentazione da fornire

 2.4. Modello

 2.4.1. Fase iniziale
 2.4.2. Fase di analisi
 2.4.3. Fase di costruzione
 2.4.4. Fase di test
 2.4.5. Consegna

 2.5. Modello di dati da utilizzare

 2.5.1. Determinazione del nuovo modello di dati
 2.5.2. Identificazione del piano di migrazione dei dati
 2.5.3. Set di dati

 2.6. Impatto su altri progetti

 2.6.1. Impatto di un progetto: Esempi

 2.7. MUST del progetto

 2.7.1. MUST de progetto
 2.7.2. Identificazione dei MUST del progetto
 2.7.3. Identificazione dei punti di attuazione per la realizzazione di un progetto

 2.8. Il team di costruzione del progetto

 2.8.1. Ruoli da svolgere in base al progetto
 2.8.2. Contatto con le risorse umane per il reclutamento
 2.8.3. Consegna dei prodotti e calendario del progetto

 2.9. Aspetti tecnici di un progetto Software

 2.9.1. Architetto del progetto: Aspetti tecnici
 2.9.2. Leader tecnici
 2.9.3. Costruzione del progetto Software
 2.9.4. Valutazione della qualità del codice Sonar

 2.10. Prodotti da consegnare al progetto

 2.10.1. Analisi funzionale
 2.10.2. Modelli di dati
 2.10.3. Diagrammi di stato
 2.10.4. Documentazione tecnica

 Modulo 3. Testing di Software: Automazione dei test

3.1. Modello di qualità del Software
 

3.1.1. Qualità del prodotto
 3.1.2. Qualità del processo
 3.1.3. Qualità d'uso

 3.2. Qualità del processo

 3.2.1. Qualità del processo
 3.2.2. Modelli di maturità
 3.2.3. Normativa ISO 15504

 3.2.3.1. Propositi
 3.2.3.2. Contesto
 3.2.3.3. Fasi

 3.3. Normativa ISO/IEC 15504

 3.3.1. Categorie di processo
 3.3.2. Processo di sviluppo: Esempio
 3.3.3. Frammento di profilo
 3.3.4. Fasi

3.4. CMMI (Capability Maturity Model Integration)

 3.4.1. CMMI: Integrazione dei modelli di maturità delle capacità
 3.4.2. Modelli e aree: Tipologia
 3.4.3. Aree di processo
 3.4.4. Livelli di capacità
 3.4.5. Gestione dei processi
 3.4.6. Gestione dei progetti

 3.5. Gestione delle modifiche e del repository

 3.5.1. Gestione delle modifiche al Software

 3.5.1.1. Voce di configurazione: Integrazione continua
 3.5.1.2. Linee
 3.5.1.3. Diagrammi di flusso
 3.5.1.4. Rami

 3.5.2. Repository

 3.5.2.1. Controllo delle versioni
 3.5.2.2. Team di lavoro e utilizzo del repository
 3.5.2.3. Integrazione continua nel repository

 3.6. Team Foundation Server (TFS)

 3.6.1. Installazione e configurazione
 3.6.2. Creazione di un progetto di squadra
 3.6.3. Aggiunta di contenuti al controllo del codice sorgente
 3.6.4. TFS on Cloud
 

3.7. Testing

 3.7.1. Motivazione per la realizzazione di test
 3.7.2. Test di verifica
 3.7.3. Test beta
 3.7.4. Implementazione e manutenzione

 3.8. Implementazione e manutenzione

 3.8.1. Load testing
 3.8.2. Test con LoadView
 3.8.3. Test con K6 Cloud
 3.8.4. Test con Loader

 3.9. Test unitari di stress e resistenza

 3.9.1. Motivazione dei test unitari
 3.9.2. Strumenti per Unit Testing
 3.9.3. Motivazione degli stress test
 3.9.4. Test con StressTesting
 3.9.5. Motivazione degli stress test
 3.9.6. Test con LoadRunner

 3.10. La scalabilità: Progettazione di Software scalabile

 3.10.1. Scalabilità e architettura del Software
 3.10.2. Indipendenza tra gli strati
 3.10.3. Accoppiamento tra gli strati: Modelli di architettura

Modulo 4. Metodologie di Gestione dei Progetti Software: Metodologie Waterfall vs. Metodologie Agili

 4.1. Metodologia Waterfall

 4.1.1. Metodologia Waterfall
 4.1.2. Metodologia Waterfall: Influenza sulla Qualità del Software
 4.1.3. Metodologia Waterfall: Esempi

 4.2. Metodologia Agile

 4.2.1. Metodologia Agile
 4.2.2. Metodologia Agile: Influenza sulla Qualità del Software
 4.2.3. Metodologia Agile: Esempi

 4.3. Metodologia SCRUM

 4.3.1. Metodologia SCRUM
 4.3.2. Manifesto SCRUM
 4.3.3. Applicazione di SCRUM

 4.4. Kanban board

 4.4.1. Metodo Kanban
 4.4.2. Kanban board
 4.4.3. Kanban board: Esempi di applicazione

 4.5. Gestione del progetto con Waterfall

 4.5.1. Fasi di un progetto
 4.5.2. Visione in un progetto Waterfall
 4.5.3. Prodotti da prendere in considerazione

4.6. Gestione del progetto con SCRUM

 4.6.1. Fasi di un progetto SCRUM
 4.6.2. Visione in un progetto SCRUM
 4.6.3. Aspetti da considerare

 4.7. Waterfall vs SCRUM: Confronto

 4.7.1. Approccio al progetto pilota
 4.7.2. Il progetto applicando Waterfall: Esempio
 4.7.3. Il progetto applicando SCRUM: Esempio

 4.8. Visione del cliente

 4.8.1. Documenti in Waterfall
 4.8.2. Documenti in SCRUM
 4.8.3. Confronto

 4.9. Struttura di Kanban

 4.9.1. Storie degli utenti
 4.9.2. Backlog
 4.9.3. Analisi Kanban

 4.10. Progetti ibridi

 4.10.1. Costruzione del progetto
 4.10.2. Gestione dei progetti
 4.10.3. Aspetti da considerare

Modulo 5. TDD (Test Driven Developement): Progettazione del Software guidata dai test

 5.1. TDD: Test Driven Development

 5.1.1. TDD: Test Driven Development
 5.1.2. TDD: Influenza del TDD sulla qualità
 5.1.3. Progettazione e sviluppo basati sui test: Esempi

 5.2. Ciclo TDD

 5.2.1. Scelta di un requisito
 5.2.2. Esecuzione di test: Tipologie

 5.2.2.1. Test unitari
 5.2.2.2. Test di integrità
 5.2.2.3. Test end-to-end

 5.2.3. Verifica del test: Errori
 5.2.4. Creazione dell’Implementazione
 5.2.5. Esecuzione di test automatizzati
 5.2.6. Eliminazione dei doppioni
 5.2.7. Aggiornamento dell'elenco dei requisiti
 5.2.8. Ripetizione del ciclo TDD
 5.2.9. Ciclo TDD: Esempio teorico e pratico

 5.3. Strategie di implementazione del TDD

 5.3.1. Implementazione di prova
 5.3.2. Implementazione triangolare
 5.3.3. Implementazione ovvia

 5.4. TDD: Uso, Vantaggi e svantaggi

 5.4.1. Vantaggi di uso
 5.4.2. Limitazioni d'uso
 5.4.3. Equilibrio qualitativo nell'implementazione

 5.5. TDD: Buone pratiche

 5.5.1. Regole TDD
 5.5.2. Regola 1: prima di codificare in produzione, eseguire un test precedente che fallisce
 5.5.3. Regola 2: non scrivere più di un test unitario
 5.5.4. Regola 3: non scrivere più codice del necessario
 5.5.5. Errori e anti-pattern da evitare in TDD

 5.6. Simulazione di un progetto reale per l'utilizzo di TDD (I)

 5.6.1. Panoramica del progetto (Azienda A)
 5.6.2. Implementazione della TDD
 5.6.3. Esercizi proposti
 5.6.4. Esercizi: Feedback

 5.7. Simulazione di un progetto reale per l'utilizzo di TDD (II)

 5.7.1. Descrizione generale del progetto (Azienda B)
 5.7.2. Implementazione della TDD
 5.7.3. Esercizi proposti
 5.7.4. Esercizi: Feedback

5.8. Simulazione di un progetto reale per l'utilizzo di TDD (III)

 5.8.1. Descrizione generale del progetto (Azienda C)
 5.8.2. Implementazione della TDD
 5.8.3. Esercizi proposti
 5.8.4. Esercizi: Feedback

 5.9. Alternative al TTD: Test Driven Development

 5.9.1. TCR (Test Commit Revert)
 5.9.2. BDD (Behavior Driven Development)
 5.9.3. ATDD (Acceptance Test Driven Development)
 5.9.4. TDD: Confronto teorico

 5.10. TDD TCR, BDD e ATDD: Confronto pratico

 5.10.1. Definizione del problema
 5.10.2. Risoluzione con il TCR
 5.10.3. Risoluzione con il BDD
 5.10.4. Risoluzione con il ATDD

Modulo 6. DevOps: Gestione della Qualità del Software

6.1. DevOps: Gestione della Qualità del Software
 

6.1.1. DevOps
 6.1.2. DevOps e Qualità del Software
 6.1.3. DevOps: Benefici della cultura DevOps

 6.2. DevOps: Rapporto con Agile

 6.2.1. Consegna accelerata
 6.2.2. Qualità
 6.2.3. Riduzione dei costi

 6.3. Implementazione di DevOps

 6.3.1. Identificazione di problemi
 6.3.2. Implementazione in un'azienda
 6.3.3. Metriche di implementazione

 6.4. Ciclo di consegna del Software

 6.4.1. Metodi di progettazione
 6.4.2. Convenzioni
 6.4.3. Tabella di marcia

 6.5. Sviluppo di codice privo di errori

 6.5.1. Codice mantenibile
 6.5.2. Modelli di sviluppo
 6.5.3. Testing del codice
 6.5.4. Sviluppo di software a livello di codice: Best practice

 6.6. Automatizzazione

 6.6.1. Automatizzazione: Tipi di test
 6.6.2. Costo dell'automazione e della manutenzione
 6.6.3. Automatizzazione: Attenuare gli errori

 6.7. Distribuzione

 6.7.1. Valutazione dell'obiettivo
 6.7.2. Progettazione di un processo automatico e adattato
 6.7.3. Feedback e capacità di risposta

 6.8. Gestione degli Incidenti

 6.8.1. Preparazione agli incidenti
 6.8.2. Analisi e risoluzione degli incidenti
 6.8.3. Come evitare errori futuri

 6.9. Automazione della distribuzione

 6.9.1. Preparazione per le distribuzioni automatiche
 6.9.2. Valutazione dello stato di salute del processo automatico
 6.9.3. Metriche e capacità di rollback

 6.10. Buone pratiche: Evoluzione di DevOps

 6.10.1. Guida alle migliori pratiche applicando DevOps
 6.10.2. DevOps: Metodologia per il team
 6.10.3. Evitare le nicchie

Modulo 7. DevOps e Integrazione Continua: Soluzioni pratiche avanzate nello sviluppo di Software

7.1. Flusso di consegna del Software
 

7.1.1. Identificazione di attori e artefatti
 7.1.2. Progettazione del flusso di consegna del Software
 7.1.3. Flusso di consegna del Software: Requisiti delle varie fasi

7.2. Automazione dei processi

 7.2.1. Integrazione continua
 7.2.2. Distribuzione continua
 7.2.3. Configurazione degli ambienti e gestione dei segreti

 7.3. Pipeline dichiarative

 7.3.1. Differenze tra pipeline tradizionali, simili al codice e dichiarative
 7.3.2. Pipeline dichiarative
 7.3.3. Pipeline dichiarative in Jenkins
 7.3.4. Confronto tra i fornitori di integrazione continua

 7.4. Gateway di qualità e feedback arricchito

 7.4.1. Gateway di qualità
 7.4.2. Standard di Qualità con gateway di qualità: Manutenzione
 7.4.3. Requisiti aziendali sulle richieste di integrazione

 7.5. Gestione degli artefatti

 7.5.1. Artefatti e ciclo di vita
 7.5.2. Sistemi di conservazione e gestione degli artefatti
 7.5.3. Sicurezza nella gestione degli artefatti

 7.6. Distribuzione continua

 7.6.1. Distribuzione continua come contenitore
 7.6.2. Distribuzione continua con PaaS

 7.7. Migliorare il runtime della pipeline: analisi statica e Git Hooks

 7.7.1. Analisi statica
 7.7.2. Regole di stile del codice
 7.7.3. Git Hooks e Test unitari
 7.7.4. L'impatto dell'infrastruttura

 7.8. Vulnerabilità dei contenitori

 7.8.1. Vulnerabilità dei contenitori
 7.8.2. Scansione di immagini
 7.8.3. Rapporti e avvisi periodici

 Modulo 8. Progettazione di Database (DB): Normalizzazione e Rendimento, Qualità del Software

 8.1. Progettazione di database
 

8.1.1. Database: Tipologia
 8.1.2. Database attualmente utilizzati

 8.1.2.1. Relazionali
 8.1.2.2. Chiave-Valore
 8.1.2.3. Basati sulla rete

 8.1.3. Qualità del dato

 8.2. Progettazione del modello entità-relazione (I)

 8.2.1. Modello entità-relazione: Qualità e documentazione
 8.2.2. Entità

 8.2.2.1. Entità forte
 8.2.2.2. Entità debole

 8.2.3. Attributi
 8.2.4. Insieme di relazioni

 8.2.4.1. 1 a 1
 8.2.4.2. 1 a molti
 8.2.4.3. Molti a 1
 8.2.4.4. Molti a molti

 8.2.5. Chiavi

 8.2.5.1. Chiave primaria
 8.2.5.2. Chiave esterna
 8.2.5.3. Chiave primaria dell'entità debole

 8.2.6. Restrizioni
 8.2.7. Cardinalità
 8.2.8. Ereditarietà
 8.2.9. Aggregazione

 8.3. Modello entità-relazione (II). Strumenti

 8.3.1. Modello entità-relazione (III). Strumenti
 8.3.2. Modello entità-relazione (IV). Esempio pratico
 8.3.3. Modello entità-relazione fattibile

 8.3.3.1. Campione visivo
 8.3.3.2. Campione in rappresentazione tabellare

8.4. Standardizzazione dei database (DB) (I). Considerazioni sulla Qualità del Software

 

8.4.1. Standardizzazione e qualità del DB
8.4.2. Dipendenze

 

8.4.2.1. Dipendenza funzionale
8.4.2.2. Proprietà della dipendenza funzionale
8.4.2.3. Proprietà desunte

 

8.4.3. Chiavi

 

8.5. Standardizzazione dei database (DB) (II). Forme normali e regole di Codd

 

8.5.1. Forme normali

 

8.5.1.1. Prima forma normale (1FN)
8.5.1.2. Seconda forma normale (2FN)
8.5.1.3. Terza forma normale (3FN)
8.5.1.4. Forma normale di Boyce-Codd (BCNF)
8.5.1.5. Quarta forma normale (4FN)
8.5.1.6. Quinta forma normale (5FN)

 

8.5.2. Le regole di Codd

 

8.5.2.1. Regola 1: Informazione
8.5.2.2. Regola 2: accesso garantito
8.5.2.3. Regola 3: Trattamento sistematico dei valori nulli
8.5.2.4. Regola 4: descrizione del database
8.5.2.5. Regola 5: Sottolinguaggio integrale
8.5.2.6. Regola 6: aggiornamento della vista
8.5.2.7. Regola 7: inserimento e aggiornamento
8.5.2.8. Regola 8: indipendenza fisica
8.5.2.9. Regola 9: indipendenza logica
8.5.2.10. Regola 10: Indipendenza dall'integrità

 

8.5.2.10.1. Regole di integrità

 

8.5.2.11. Regola 11: Distribuzione
8.5.2.12. Regola 12: Non sovversione

 

8.5.3. Esempio pratico

 

8.6. Memorizzazione di dati / sistema OLAP

 

8.6.1. Memorizzazione di dati
8.6.2. Tabella dei fatti
8.6.3. Tabella delle dimensioni
8.6.4. Creazione del sistema OLAP: Strumenti

 

8.7. Prestazioni del database (DB)

 

8.7.1. Ottimizzazione dell'indice
8.7.2. Ottimizzazione delle query
8.7.3. Partizionamento delle tabelle

 

8.8. Simulazione di un progetto reale per il disegno di DB (I)

 

8.8.1. Panoramica del progetto (Azienda A)
8.8.2. Applicazioni della progettazione di database
8.8.3. Esercizi proposti
8.8.4. Esercizi proposti: Feedback

 

8.9. Simulazione di un progetto reale per il disegno di DB (II)

 

8.9.1. Descrizione generale del progetto (Azienda B)
8.9.2. Applicazioni della progettazione di database
8.9.3. Esercizi proposti
8.9.4. Esercizi proposti: Feedback

 

8.10. Importanza dell'ottimizzazione dei DB nella qualità del software

 

8.10.1. Ottimizzazione del design
8.10.2. Ottimizzazione del codice delle query
8.10.3. Ottimizzazione del codice delle procedure memorizzate
8.10.4. Influenza dei trigger sulla Qualità del Software: Raccomandazioni per l'uso

Modulo 9. Progettazione di architetture scalabili: L'Architettura nel Ciclo di Vita del Software

9.1. Progettazione di Architetture Scalabili (I)
 

9.1.1. Architetture scalabili
9.1.2. Principi di un'architettura scalabile

 9.1.2.1. Affidabile
 9.1.2.2. Scalabile
 9.1.2.3. Manutenibile


9.1.3.  Tipi di scalabilità

 9.1.3.1. Verticale
 9.1.3.2. Orizzontale
 9.1.3.3. Combinato

9.2. Architetture DDD (Domain-Driven Design)

9.2.1. Il modello DDD: Orientamento al dominio
9.2.2. Livelli, distribuzione delle responsabilità e modelli di progettazione
9.2.3. Il disaccoppiamento come base per la qualità

9.3. Progettazione di Architetture Scalabili (II). Vantaggi, limiti e strategie di progettazione

9.3.1. Architettura scalabile: Benefici
9.3.2. Architettura scalabile: Limiti
9.3.3. Strategie per lo sviluppo di architetture scalabili (tabella descrittiva)

9.4. Ciclo di vita del Software (I). Fasi

9.4.1. Ciclo di vita del Software

9.4.1.1. Fasi di pianificazione
9.4.1.2. Fase di analisi
9.4.1.3. Fase di progettazione
9.4.1.4. Fase di implementazione
9.4.1.5. Fase di test
9.4.1.6. Fase di installazione/dispiegamento
9.4.1.7. Fase di utilizzo e manutenzione

9.5. Modelli di ciclo di vita del Software

9.5.1. Modello a cascata
9.5.2. Modello ripetitivo
9.5.3. Modello a spirale
9.5.4. Modello Big Bang

9.6. Ciclo di vita del Software (II). Automatizzazione

9.6.1. Cicli di vita dello sviluppo del Software: Soluzioni

9.6.1.1. Integrazione continua e sviluppo continuo (CI/CD)
9.6.1.2. Metodologia Agile
9.6.1.3. DevOps / operazioni di produzione

9.6.2. Tendenze future
9.6.3. Esempi pratici

9.7. Architettura del Software nel suo ciclo di vita

9.7.1. Benefici
9.7.2. Limiti
9.7.3. Strumenti

9.8. Simulazione di un progetto reale per il disegno dell’architettura del Software (I)

9.8.1. Panoramica del progetto (Azienda A)
9.8.2. Applicazioni della progettazione dell’architettura del Software
9.8.3. Esercizi proposti
9.8.4. Esercizi proposti. Feedback

9.9. Simulazione di un progetto reale per il disegno dell’architettura Software (II)

9.9.1. Descrizione generale del progetto (Azienda B)
9.9.2. Applicazioni della progettazione dell’architettura del Software
9.9.3. Esercizi proposti
9.9.4. Esercizi proposti: Feedback

9.10. Simulazione di un progetto reale per il disegno dell’architettura Software (III)

9.10.1. Descrizione generale del progetto (Azienda C)
9.10.2. Applicazioni della progettazione dell’architettura del Software
9.10.3. Esercizi proposti
9.10.4. Esercizi proposti: Feedback

Modulo 10. Criteri di qualità ISO, IEC 9126: Metriche della Qualità del Software

 10.1. Criteri di qualità: Normativa ISO, IEC 9126
 

10.1.1. Criteri di qualità
 10.1.2. Qualità del Software: Giustificazione, Normativa ISO, IEC 9126
 10.1.3. Misurare la qualità del Software come indicatore chiave

 10.2. Criteri di qualità del Software: Caratteristiche

 10.2.1. Affidabilità
 10.2.2. Funzionalità
 10.2.3. Efficienza
 10.2.4. Usability
 10.2.5. Mantenimento
 10.2.6. Portabilità

 10.3. Normativa ISO, IEC 9126 (I). Presentazione

 10.3.1. Descrizione della Normativa ISO, IEC 9126
 10.3.2. Funzionalità
 10.3.3. Affidabilità
 10.3.4. Usability
 10.3.5. Mantenimento
 10.3.6. Portabilità
 10.3.7. Qualità in uso
 10.3.8. Metriche della qualità del Software
 10.3.9. Metriche di qualità in ISO 9126

 10.4. Normativa ISO, IEC 9126 (II). Modelli McCall e Boehm

 10.4.1. Modello McCall: Fattori di qualità
 10.4.2. Modello Boehm
 10.4.3. Livello intermedio. Caratteristiche

 10.5. Metriche della qualità del Software (I). Elementi

 10.5.1. Misura
 10.5.2. Metriche
 10.5.3. Indicatore

 10.5.3.1. Tipi di indicatori

 10.5.4. Misure e modelli
 10.5.5. Ambito di applicazione delle metriche del Software
 10.5.6. Classificazione delle metriche del Software

 10.6. Misurazione della qualità del Software (II). Pratica di misurazione

 10.6.1. Raccolta dati metrici
 10.6.2. Misurazione degli attributi interni del prodotto
 10.6.3. Misurazione degli attributi esterni del prodotto
 10.6.4. Misurazione delle risorse
 10.6.5. Metriche per sistemi orientati agli oggetti

 10.7. Progettazione di un unico indicatore di qualità del Software

 10.7.1. Singolo indicatore come qualificatore globale
 10.7.2. Sviluppo, giustificazione e applicazione degli indicatori
 10.7.3. Esempi di applicazione: Necessità di conoscere i dettagli

 10.8. Simulazione di un progetto reale per la misurazione della qualità (I)

 10.8.1. Panoramica del progetto (Azienda A)
 10.8.2. Applicazione della misurazione della qualità
 10.8.3. Esercizi proposti
 10.8.4. Esercizi proposti: Feedback

 10.9. Simulazione di un progetto reale per la misurazione della qualità (II)

 10.9.1. Descrizione generale del progetto (Azienda B)
 10.9.2. Applicazione della misurazione della qualità
 10.9.3. Esercizi proposti
 10.9.4. Esercizi proposti: Feedback

 10.10. Simulazione di un progetto reale per la misurazione della qualità (III)

 10.10.1. Descrizione generale del progetto (Azienda C)
 10.10.2. Applicazione della misurazione della qualità
 10.10.3. Esercizi proposti
 10.10.4. Esercizi proposti: Feedback

Modulo 11. Metodologie, sviluppo e qualità nell'Ingegneria dei Software

 11.1. Sviluppo Software basato su modelli
 

11.1.1. Necessità
 11.1.3. Modellazione di oggetti
 11.1.4. UML
 11.1.5. Strumenti CASE

 11.2. Modellazione di applicazioni e design pattern con UML

 11.2.1. Modellazione avanzata dei requisiti
 11.2.2. Modellazione statica avanzata
 11.2.3. Modellazione dinamica avanzata
 11.2.4. Modellazione dei componenti
 11.2.5. Introduzione ai modelli di progettazione con UML
 11.2.6. Adapter
 11.2.7. Factory
 11.2.8. Singleton
 11.2.9. Strategy
 11.2.10. Composite
 11.2.11. Facade
 11.2.12. Observer

 11.3. Ingegneria guidata dai modelli

 11.3.1. Introduzione
 11.3.2. Metamodellazione dei sistemi
 11.3.3. MDA
 11.3.4. DSL
 11.3.5. Perfezionamento del modello con OCL
 11.3.6. Trasformazioni del modello

 11.4. Ontologie nell'Ingegneria dei Software

 11.4.1. Introduzione
 11.4.2. Ingegneria ontologica
 11.4.3. Applicazione delle ontologie nell'Ingegneria dei Software

Modulo 12. Gestione dei progetti Software

 12.1. Gestione degli stakeholder e del campo di applicazione
 

12.1.1. Identificare le parti interessate
 12.1.2. Sviluppare un piano per la gestione delle parti interessate
 12.1.3. Gestire il coinvolgimento delle parti interessate
 12.1.4. Controllare il coinvolgimento delle parti interessate
 12.1.5. L’obiettivo del progetto
 12.1.6. La gestione e il piano relativo al campo di applicazione
 12.1.7. Riunire i requisiti
 12.1.8. Definire l'ambito di applicazione
 12.1.9. Creare la WBS
 12.1.10. Verificare e controllare il campo di applicazione

 12.2. L’ideazione della tabella di marcia

 12.2.1. La gestione del tempo e il relativo piano
 12.2.2. Definire le attività
 12.2.3. Sequenza delle attività
 12.2.4. Stima delle risorse delle attività
 12.2.5. Stimare la durata delle attività
 12.2.6. Sviluppo della tabella di marcia e calcolo del percorso critico
 12.2.7. Controllo della tabella di marcia

 12.3. Sviluppo del budget e risposta ai rischi

 12.3.1. Fare una stima dei costi
 12.3.2. Definire il budget e la curva a S
 12.3.3. Controllo dei costi e metodo earned value
 12.3.4. I concetti di rischio
 12.3.5. Come fare un'analisi dei rischi
 12.3.6. Lo sviluppo del piano di risposta

 12.4. Comunicazione e risorse umane

 12.4.1. Pianificare la gestione delle comunicazioni
 12.4.2. Analisi dei requisiti di comunicazione
 12.4.3. Tecnologia delle comunicazioni
 12.4.4. Modelli di comunicazione
 12.4.5. Metodi di comunicazione
 12.4.6. Piano di gestione delle comunicazioni
 12.4.7. Gestire le comunicazioni
 12.4.8. La gestione delle risorse umane
 12.4.9. Soggetti principali e il loro ruolo nei progetti
 12.4.10. Tipi di organizzazione
 12.4.11. Organizzazione del progetto
 12.4.12. Squadre di lavoro

 12.5. Approvvigionamento

 12.5.1. Il processo di acquisto
 12.5.2. Pianificazione
 12.5.3. Ricerca di fornitori e presentazione di offerte
 12.5.4. Assegnazione del contratto
 12.5.5. Gestione del contratto
 12.5.6. I contratti
 12.5.7. Tipi di contratto
 12.5.8. Negoziazione del contratto

 12.6. Attuazione, monitoraggio, controllo e chiusura

 12.6.1. I gruppi dei processi
 12.6.2. Attuazione del progetto
 12.6.3. Monitoraggio e controllo del progetto
 12.6.4. Chiusura del progetto

 12.7. Responsabilità professionale

 12.7.1. Responsabilità professionale
 12.7.2. Caratteristiche della responsabilità sociale e professionale
 12.7.3. Codice etico del leader di progetto
 12.7.4. Responsabilità vs. PMP®
 12.7.5. Esempi di responsabilità
 12.7.6. Vantaggi della professionalizzazione

Modulo 13. Piattaforme di sviluppo Software

13.1. Introduzione allo sviluppo di applicazioni
 

13.1.1. Applicazioni per desktop
 13.1.2. Linguaggio di programmazione
 13.1.3. Ambienti di sviluppo integrato
 13.1.4. Applicazioni web
 13.1.5. Applicazioni mobili
 13.1.6. Applicazioni nel cloud

 13.2. Sviluppo di applicazioni e interfaccia grafica in Java

 13.2.1. Ambienti di sviluppo integrati per Java
 13.2.2. Principali IDE per Java
 13.2.3. Introduzione alla piattaforma di sviluppo Eclipse
 13.2.4. Introduzione alla piattaforma di sviluppo NetBeans
 13.2.5. Controller View Model per le interfacce utente grafiche
 13.2.6. Progettare un'interfaccia grafica in Eclipse
 13.2.7. Progettare un'interfaccia grafica in NetBeans

 13.3. Debug e test in Java

 13.3.1. Test e debug dei programmi in Java
 13.3.2. Debug in Eclipse
 13.3.3. Debug in NetBeans

 13.4. Sviluppo di applicazioni e interfaccia grafica in .NET

 13.4.1. Net Framework
 13.4.2. Componenti della piattaforma di sviluppo .NET
 13.4.3. Visual Studio .NET
 13.4.4. Strumenti GUI .NET
 13.4.5. La GUI con Windows Presentation Foundation
 13.4.6. Debug e compilazione di un'applicazione WPF

 13.5. Programmazione per reti .NET

 13.5.1. Introduzione alla programmazione di rete .NET
 13.5.2. Richieste e risposte .NET
 13.5.3. Utilizzo dei protocolli applicativi .NET
 13.5.4. Sicurezza nella programmazione di reti .NET

 13.6. Ambienti di sviluppo di applicazioni mobili

 13.6.1. Applicazioni mobili
 13.6.2. Applicazioni mobile per Android
 13.6.3. Fasi dello sviluppo in Android
 13.6.4. L'IDE Android Studio

 13.7. Sviluppo di applicazioni in ambiente Android Studio

 13.7.1. Installare e avviare Android Studio
 13.7.2. Lanciare un'applicazione Android
 13.7.3. Sviluppo di interfacce grafiche in Android Studio
 13.7.4. Avvio delle attività in Android Studio

 13.8. Debug e pubblicazione di applicazioni Android

 13.8.1. Debug di un'applicazione in Android Studio
 13.8.2. Memorizzazione delle applicazioni in Android Studio
 13.8.3. Pubblicare un'applicazione su Google Play

 13.9. Sviluppo di applicazioni per il cloud

 13.9.1. Cloud computing
 13.9.2. Tipi di cloud: SaaS, PaaS, IaaS
 13.9.3. Principali piattaforme di sviluppo nel cloud
 13.9.4. Riferimenti bibliografici

 13.10. Introduzione a Google Cloud Platform

 13.10.1. Nozioni di base di Google Cloud Platform
 13.10.2. Servizi di Google Cloud Platform
 13.10.3. Strumenti di Google Cloud Platform

 Modulo 14. Informatica client web

14.1. Introduzione a HTML

14.1.1. Struttura di un documento
14.1.2. Colore
14.1.3. Testo 
14.1.4. Collegamenti ipertestuali 
14.1.5. Immagini
14.1.6. Liste
14.1.7. Tabelle 
14.1.8. Frames
14.1.9. Moduli
14.1.10. Elementi specifici per le tecnologie mobili 
14.1.11. Articoli in disuso 

14.2. Fogli di stile web (CSS)

14.2.1. Elementi e struttura di un foglio di stile

14.2.1.1. Creazione di fogli di stile
14.2.1.2. Applicazione degli stili. Selezionatori
14.2.1.3. Ereditarietà degli stili e applicazioni in cascata 
14.2.1.4. Formattazione della pagina con gli stili
14.2.1.5. Struttura della pagina con gli stili. Box model

14.2.2. Stili di design per diversi dispositivi
14.2.3. Tipi di fogli di stile: statici e dinamici. Pseudo-classi
14.2.4. Pratiche corrette nell'uso dei fogli di stile

14.3. Introduzione e storia di JavaScript

14.3.1. Introduzione
14.3.2. Storia di JavaScript
14.3.3. Ambiente di sviluppo da utilizzare

14.4. Nozioni di base di programmazione web

14.4.1. Sintassi di base di JavaScript
14.4.2. Tipi di dati primitivi e operatori
14.4.3. Variabili e domini
14.4.4. Stringhe di testo e Template Literals
14.4.5. Numeri e booleani
14.4.6. Confronti

14.5. Strutture JavaScript complesse

14.5.1. Vettori o arrays e oggetti
14.5.2. Insiemi 
14.5.3. Mappe
14.5.4. Disgiunzioni
14.5.5. Loop

14.6. Funzioni e oggetti

14.6.1. Definizione e invocazione di funzioni
14.6.2. Argomenti
14.6.3. Funzioni della freccia
14.6.4. Funzioni di Callback
14.6.5. Funzioni di ordine superiore
14.6.6. Oggetti letterali
14.6.7. Oggetto This
14.6.8. Oggetti come spazi dei nomi: l'oggetto Math l'oggetto Date

14.7. Il modello a oggetti del documento (DOM)

14.7.1. Cos'è il DOM?
14.7.2. Un po’ di storia
14.7.3. Navigazione e ottenimento di elementi
14.7.4. Un DOM virtuale con JSDOM
14.7.5. Query Selectors
14.7.6. Navigazione attraverso le proprietà
14.7.7. Assegnazione degli attributi agli elementi
14.7.8. Creare e modificare i nodi
14.7.9. Aggiornamento dello stile degli elementi DOM

14.8. Sviluppo web moderno

14.8.1. Flusso guidato dagli eventi e Listeners
14.8.2. Toolkits web moderni e sistemi di allineamento
14.8.3. Modalità JavaScript rigorosa
14.8.4. Ulteriori informazioni sulle funzioni
14.8.5. Promesse e funzioni asincrone
14.8.6. Closure
14.8.7. Programmazione funzionale
14.8.8. POO in JavaScript

14.9. Usabilità web

14.9.1. Introduzione all’usabilità
14.9.2. Definizione di usabilità 
14.9.3. Importanza del design web incentrato sull’utente 
14.9.4. Differenze tra accessibilità e usabilità
14.9.5. Vantaggi e problemi nel combinare accessibilità e usabilità 
14.9.6. Vantaggi e difficoltà nell'implementazione di siti web usabili
14.9.7. Metodi di usabilità
14.9.8. Analisi delle richieste dell’utente
14.9.9. Principi di progettazione concettuale. Prototipazione orientata all'utente
14.9.10. Linee guida per la creazione di siti web usabili

14.9.10.1. Linee guida di usabilità di Jakob Nielsen
14.9.10.2. Linee guida di usabilità di Bruce Tognazzini

14.9.11. Valutazione dell'usabilità

14.10. Accessibilità web

14.10.1. Introduzione
14.10.2. Definizione di accessibilità del web
14.10.3. Tipi di disabilità

14.10.3.1. Disabilità temporanea o permanente 
14.10.3.2. Disabilità visiva
14.10.3.3. Disabilità uditiva
14.10.3.4. Disabilità motoria
14.10.3.5. Disabilità neurologiche o cognitive 
14.10.3.6. Difficoltà legate all'invecchiamento
14.10.3.7. Limitazioni derivanti dall'ambiente
14.10.3.8. Ostacoli all'accesso al web

14.10.4. Ausili tecnici e prodotti di assistenza per superare gli ostacoli

14.10.4.1. Ausili per non vedenti
14.10.4.2. Ausili per ipovedenti 
14.10.4.3. Ausili per persone affette da daltonismo 
14.10.4.4. Ausili per non udenti
14.10.4.5. Ausili per persone con disabilità motoria
14.10.4.6. Ausili per persone con disabilità neurologiche o cognitive

14.10.5. Vantaggi e difficoltà dell'implementazione dell'accessibilità web
14.10.6. Norme e standard di accessibilità del web
14.10.7. Organismi di regolamentazione dell'accessibilità del web
14.10.8. Confronto tra norme e standard
14.10.9. Linee guida per la conformità a normative e standard 

14.10.9.1. Descrizione delle linee guida principali (immagini, link, video, ecc.) 
14.10.9.2. Linee guida per una navigazione accessibile 

14.10.9.2.1. Percettibilità
14.10.9.2.2. Operatività
14.10.9.2.3. Comprensibilità
14.10.9.2.4. Robustezza 

14.10.10. Descrizione del processo di conformità all'accessibilità del web
14.10.11. Livelli di conformità
14.10.12. Criteri di conformità
14.10.13. Requisiti di conformità
14.10.14. Metodologia per la valutazione dell'accessibilità dei siti web

Modulo 15. Informatica per Server Web

15.1. Introduzione alla programmazione sul server: PHP
 

15.1.1. Concetti base di programmazione sul server
 15.1.2. Sintassi PHP di base
 15.1.3. Creazione di contenuti HTML con PHP
 15.1.4. Ambienti di sviluppo e test: XAMPP

 15.2. PHP avanzato

 15.2.1. Strutture di controllo PHP
 15.2.2. Funzioni in PHP
 15.2.3. Gestione degli array in PHP
 15.2.4. Gestione delle stringhe con PHP
 15.2.5. Orientamento agli oggetti in PHP

 15.3. Modelli di dati

 15.3.1. Concetto di dato: Ciclo di vita dei dati
 15.3.2. Tipi di dati

 15.3.2.1. Basici
 15.3.2.2. Registri
 15.3.2.3. Dinamici

 15.4. Modello relazionale

 15.4.1. Descrizione
 15.4.2. Entità e tipi di entità
 15.4.3. Elementi dei dati: Attributi
 15.4.4. Relazioni: tipi, sottotipi, cardinalità
 15.4.5. Chiavi: Tipi di chiavi
 15.4.6. Normalizzazione: Forme normali

 15.5. Costruzione del modello logico dei dati

 15.5.1. Specifiche della tabella
 15.5.2. Definizione delle colonne
 15.5.3. Specifiche chiave
 15.5.4. Conversione in forme normali: Dipendenze

 15.6. Il modello fisico dei dati: File di dati

 15.6.1. Descrizione dei file di dati
 15.6.2. Tipi di file
 15.6.3. Modalità di accesso
 15.6.4. Organizzazione dei file

 15.7. Accesso ai database da PHP

 15.7.1. Introduzione a MariaDB
 15.7.2. Lavorare con un database MariaDB: il linguaggio SQL
 15.7.3. Accesso al database MariaDB da PHP
 15.7.4. Introduzione a MySql
 15.7.5. Lavorare con un database MariaDB: il linguaggio SQL
 15.7.6. Accedere ai database MariaDB da PHP

 15.8. Interazione con il cliente da PHP

 15.8.1. Formulario PHP
 15.8.2. Cookie
 15.8.3. Gestione di sessioni

 15.9. Architettura delle applicazioni web

 15.9.1. Lo schema Modello-Vista-Controller
 15.9.2. Controller
 15.9.3. Modello
 15.9.4. View

 15.10. Introduzione ai servizi web

 15.10.1. Introduzione a XML
 15.10.2. Architetture orientate ai servizi (SOA): servizi web
 15.10.3. Creare servizi web SOAP e REST
 15.10.4. Il protocollo SOAP
 15.10.5. Il protocollo REST

Modulo 16. Gestione della sicurezza

16.1. Sicurezza delle informazioni
 

16.1.1. Introduzione
 16.1.2. La sicurezza delle informazioni implica riservatezza, integrità e disponibilità
 16.1.3. La sicurezza è una questione economica
 16.1.4. La sicurezza è un processo
 16.1.5. La classificazione delle informazioni
 16.1.6. La sicurezza delle informazioni comporta la gestione del rischio
 16.1.7. La sicurezza è legata ai controlli di sicurezza
 16.1.8. La sicurezza è sia fisica che logica
 16.1.9. La sicurezza coinvolge le persone

 16.2. Il professionista della sicurezza dell’informazione

 16.2.1. Introduzione
 16.2.2. La sicurezza informatica come professione
 16.2.3. Certificazioni (ISC)2
 16.2.4. Standard ISO 27001
 16.2.5. Pratiche di sicurezza nella gestione dei servizi informatici
 16.2.6. Modelli di maturità per la sicurezza delle informazioni
 16.2.7. Altre certificazioni, standard e risorse professionali

 16.3. Controllo di accessi

 16.3.1. Introduzione
 16.3.2. Requisiti del controllo di accessi
 16.3.3. Meccanismi di autenticazione
 16.3.4. Metodi di autorizzazione
 16.3.5. Contabilità e revisione degli accessi
 16.3.6. Tecnologie Triple A

 16.4. Programmi, processi e politiche di sicurezza delle informazioni

 16.4.1. Introduzione
 16.4.2. Programmi di gestione della sicurezza
 16.4.3. Gestione dei rischi
 16.4.4. Progettazione della politica di sicurezza

 16.5. Piani di continuità aziendale

 16.5.1. Introduzione ai BCP
 16.5.2. Fase I e II
 16.5.3. Fase III e IV
 16.5.4. Manutenzione del BCP

 16.6. Procedure per la corretta tutela dell'azienda

 16.6.1. Reti DMZ
 16.6.2. Sistemi di rilevamento delle intrusioni
 16.6.3. Liste di controllo di accessi
 16.6.4. Imparare dall'attaccante: Honeypot

 16.7. Architettura di sicurezza: Prevenzione

 16.7.1. Visione generale: Attività e modello a strati
 16.7.2. Difesa perimetrale (Firewalls, WAFs, IPS, ecc.)
 16.7.3. Difesa degli endpoint (strumenti, server e servizi)

 16.8. Architettura di sicurezza: Screening

 16.8.1. Panoramica di rilevamento e monitoraggio
 16.8.2. Registri, interruzione del traffico crittografato, registrazione e Siem
 16.8.3. Avvisi e informazioni

 16.9. Architettura di sicurezza: Reazione

 16.9.1. Reazione: Prodotti, servizi e risorse
 16.9.2. Gestione degli Incidenti
 16.9.3. CERT e CSIRT

 16.10. Architettura di sicurezza: Recupero

 16.10.1. Resilienza, concetti, requisiti aziendali e standard
 16.10.2. Soluzioni IT di Resilienza
 16.10.3. Gestione della crisi e Governance

 Modulo 17. Sicurezza nel Software

 17.1. Problemi di sicurezza nel Software
 

17.1.1. Introduzione al problema della sicurezza nel Software
 17.1.2. Vulnerabilità e la loro classificazione
 17.1.3. Proprietà di un Software sicuro
 17.1.4. Riferimenti

 17.2. Principi di progettazione per la sicurezza del Software

 17.2.1. Introduzione
 17.2.2. Principi di progettazione per la sicurezza del Software
 17.2.3. Tipologie di S-SDLC
 17.2.4. Sicurezza del Software nelle fasi S-SDLC
 17.2.5. Metodologie e standard
 17.2.6. Riferimenti

 17.3. Sicurezza del ciclo di vita del Software nelle fasi dei requisiti e di progettazione

 17.3.1. Introduzione
 17.3.2. Modellazione dell'attacco
 17.3.3. Casi di abuso
 17.3.4. Ingegneria dei requisiti di sicurezza
 17.3.5. Analisi dei rischi: Architettonico
 17.3.6. Pattern di progettazione
 17.3.7. Riferimenti

 17.4. Sicurezza nel ciclo di vita del Software durante le fasi di codifica, collaudo e funzionamento

 17.4.1. Introduzione
 17.4.2. Test di sicurezza basati sul rischio
 17.4.3. Revisione del codice
 17.4.4. Test di penetrazione
 17.4.5. Operazioni di sicurezza
 17.4.6. Revisione esterna
 17.4.7. Riferimenti

 17.5. Codifica sicura di applicazioni I

 17.5.1. Introduzione
 17.5.2. Pratiche di codifica sicure
 17.5.3. Gestione e convalida degli input
 17.5.4. Overflow di memoria
 17.5.5. Riferimenti

 17.6. Codifica sicura di applicazioni II

 17.6.1. Introduzione
 17.6.2. Integers overflow, errori di troncamento e problemi con le conversioni di tipo tra numeri interi
 17.6.3. Errori ed eccezioni
 17.6.4. Privacy e riservatezza
 17.6.5. Programmi privilegiati
 17.6.6. Riferimenti

 17.7. Sicurezza nello sviluppo e nel cloud

 17.7.1. Sicurezza dello sviluppo: metodologia e pratica
 17.7.2. Modelli PaaS, IaaS,CaaS e SaaS
 17.7.3. Sicurezza nel cloud e per i servizi Cloud

 17.8. Crittografia

 17.8.1. Fondamenti di Criptologia
 17.8.2. Crittografia simmetrica e asimmetrica
 17.8.3. Crittografia a riposo e in transito

 17.9. Automazione e orchestrazione della sicurezza (SOAR)

 17.9.1. Complessità dell'elaborazione manuale: necessità di automatizzare le attività
 17.9.2. Prodotti e servizi
 17.9.3. Architettura SOAR

 17.10. Sicurezza nel telelavoro

 17.10.1. Necessità e scenari
 17.10.2. Prodotti e servizi
 17.10.3. Sicurezza del telelavoro

 Modulo 18. Amministrazione di Server Web

 18.1. Introduzione ai server web
 

18.1.1. Che cos'è un server web?
 18.1.2. Architettura e funzionamento di un server web
 18.1.3. Risorse e contenuti in un server web
 18.1.4. Server di applicazioni
 18.1.5. Server proxy
 18.1.6. I principali server web presenti sul mercato
 18.1.7. Statistiche di utilizzo del server web
 18.1.8. Sicurezza del server web
 18.1.9. Bilanciamento del carico nei server web
 18.1.10. Riferimenti

 18.2. Gestione del protocollo HTTP

 18.2.1. Funzionamento e struttura
 18.2.2. Descrizione delle richieste o request methods
 18.2.3. Codici di stato
 18.2.4. Intestazioni
 18.2.5. Codifica dei contenuti: Pagine di codice
 18.2.6. Esecuzione di richieste HTTP su Internet utilizzando un proxy, livehttpheader o metodi simili, analizzando il protocollo utilizzato

 18.3. Descrizione delle architetture distribuite multi-server

 18.3.1. Modello a 3 strati
 18.3.2. Tolleranza ai guasti
 18.3.3. Condivisione del carico
 18.3.4. Archivi dello stato della sessione
 18.3.5. Archivi di cache

 18.4. Internet Information Services (IIS)

 18.4.1. Cos’è IIS?
 18.4.2. Storia ed evoluzione dell'IIS
 18.4.3. Vantaggi e caratteristiche principali di IIS7 e successivi
 18.4.4. Architettura IIS7 e successive

 18.5. Installazione, amministrazione e configurazione di IIS

 18.5.1. Premessa
 18.5.2. Installazione di Internet Information Services (IIS)
 18.5.3. Strumenti di amministrazione di IIS
 18.5.4. Creazione, configurazione e amministrazione di siti web
 18.5.5. Installazione e gestione delle estensioni di IIS

 18.6. Sicurezza avanzata di IIS

 18.6.1. Premessa
 18.6.2. Autenticazione, autorizzazione e controllo degli accessi in IIS
 18.6.3. Configurazione di un sito web sicuro su IIS con SSL
 18.6.4. Criteri di sicurezza implementati in IIS 8.x

 18.7. Introduzione ad Apache

 18.7.1. Che cos'è Apache?
 18.7.2. Principali vantaggi di Apache
 18.7.3. Caratteristiche principali di Apache
 18.7.4. Architettura

 18.8. Installazione e configurazione di Apache

 18.8.1. Installazione iniziale di Apache
 18.8.2. Configurazione di Apache

 18.9. Installazione e configurazione dei diversi moduli Apache

 18.9.1. Installazione dei moduli Apache
 18.9.2. Tipi di moduli
 18.9.3. Configurazione sicura di Apache

 18.10. Sicurezza avanzata

 18.10.1. Autenticazione, autorizzazione e controllo degli accessi
 18.10.2. Metodi di autenticazione
 18.10.3. Configurazione sicura di Apache con SSL

 Modulo 19. Audit sulla Sicurezza

 19.1. Introduzione ai sistemi informatici e al loro audit

 19.1.1. Introduzione ai sistemi informatici e al ruolo dell'auditing informatico
 19.1.2. Definizioni di Audit IT e controllo interno IT
 19.1.3. Funzioni e obiettivi dell'audit IT
 19.1.4. Differenze tra controllo interno e audit IT

 19.2. Controlli interni dei Sistemi Informatici

 19.2.1. Organigramma funzionale di un centro di elaborazione dati
 19.2.2. Classificazione dei controlli sui sistemi informatici
 19.2.3. La Regola d'Oro

 19.3. Il processo e le fasi dell'audit dei Sistemi Informatici

 19.3.1. Valutazione del rischio (RRA) e altre metodologie di audit IT
 19.3.2. Esecuzione di un audit dei Sistemi Informatici: Fasi di audit
 19.3.3. Competenze chiave dell'auditor di Sistemi Informatici

 19.4. Audit tecnico di sicurezza di sistemi e reti

 19.4.1. Audit tecnici di sicurezza: Test di intrusione, Concetti preliminari
 19.4.2. Audit di sicurezza del sistema: Strumenti di supporto
 19.4.3. Audit sulla sicurezza della rete: Strumenti di supporto

 19.5. Audit tecnico della sicurezza di Internet e dei dispositivi mobili

 19.5.1. Audit sulla sicurezza di Internet: Strumenti di supporto
 19.5.2. Audit di sicurezza dei dispositivi mobili: Strumenti di supporto
 19.5.3. Allegato 1. Struttura del rapporto esecutivo e del rapporto tecnico
 19.5.4. Allegato 2. Inventario degli strumenti
 19.5.5. Allegato 3. Metodologie

 19.6. Sistema di gestione della sicurezza delle informazioni

 19.6.1. Sicurezza IS: proprietà e fattori di influenza
 19.6.2. Rischio d'impresa e gestione del rischio: implementazione dei controlli
 19.6.3. Sistema di gestione della sicurezza delle informazioni (ISMS): concetto e fattori critici di successo
 19.6.4. ISMS - Modello PDCA
 19.6.5. ISMS ISO-IEC 27001: contesto organizzativo
 19.6.6. Contesto dell’Organizzazione
 19.6.7. Leadership
 19.6.8. Pianificazione
 19.6.9. Supporto
 19.6.10. Operazione
 19.6.11. Valutazione della prestazione
 19.6.12. Miglioramento
 19.6.13. Allegato alla ISO 27001/ISO-IEC 27002: obiettivi e controlli
 19.6.14. Audit ISMS

 19.7. Realizzazione dell'audit

 19.7.1. Procedure
 19.7.2. Tecniche

 19.8. Tracciabilità

 19.8.1. Metodologie
 19.8.2. Analisi

 19.9. Tutela

 19.9.1. Tecniche
 19.9.2. Risultati

 19.10. Reporting e presentazione delle prove

 19.10.1. Tipi di report
 19.10.2. Analisi dei dati
 19.10.3. Presentazione delle prove

 Modulo 20. Sicurezza nelle Applicazioni Online

 20.1. Vulnerabilità e problemi di sicurezza nelle applicazioni online
 

20.1.1. Introduzione alla sicurezza nelle applicazioni online
 20.1.2. Vulnerabilità di sicurezza nella progettazione di applicazioni web
 20.1.3. Vulnerabilità di sicurezza nell'implementazione di applicazioni
 20.1.4. Vulnerabilità di sicurezza nella distribuzione di applicazioni web
 20.1.5. Elenchi ufficiali di vulnerabilità di sicurezza

 20.2. Politiche e standard per la sicurezza delle applicazioni online

 20.2.1. I pilastri della sicurezza delle applicazioni online
 20.2.2. Politica di sicurezza
 20.2.3. Sistema di gestione della sicurezza delle informazioni
 20.2.4. Ciclo di vita dello sviluppo sicuro del Software
 20.2.5. Standard di sicurezza delle applicazioni

 20.3. Sicurezza nella progettazione di applicazioni web

 20.3.1. Introduzione alla sicurezza delle applicazioni web
 20.3.2. Sicurezza nella progettazione di applicazioni web

 20.4. Test di sicurezza e protezione online delle applicazioni web

 20.4.1. Analisi e test della sicurezza delle applicazioni web
 20.4.2. Sicurezza nell'implementazione e nella produzione di applicazioni web

 20.5. Sicurezza dei servizi web

 20.5.1. Introduzione alla sicurezza dei servizi web
 20.5.2. Funzioni e tecnologie di sicurezza dei servizi web

 20.6. Test di sicurezza e protezione online dei servizi web

 20.6.1. Valutazione della sicurezza dei servizi web
 20.6.2. Protezione online: Firewall e gateway XML

 20.7. Hacking etico, malware e forensic

 20.7.1. Hacking etico
 20.7.2. Analisi del malware
 20.7.3. Analisi Forense

 20.8. Le migliori pratiche per garantire la sicurezza delle applicazioni

 20.8.1. Manuale di pratiche corrette per lo sviluppo di applicazioni online
 20.8.2. Manuale di pratiche corrette per l'implementazione di applicazioni online

 20.9. Errori comuni che minano la sicurezza delle applicazioni

 20.9.1. Errori di sviluppo comuni
 20.9.2. Errori comuni nell'hosting
 20.9.3. Errori comuni nella produzione

##IMAGE##

Un programma completo che ti porterà a padroneggiare l'area dei Big Data e diventare un architetto di strategia aziendale di successo" 

Master Specialistico in Ingegneria e Qualità del Software

Nell'ultima decade, l'Ingegneria Informatica è cresciuta in modo esponenziale grazie ai progressi della tecnologia e degli strumenti digitali. Questa rapida evoluzione ha creato una forte domanda da parte dell'industria di specialisti che padroneggino tutto ciò che riguarda l'Ingegneria del Software, dalle giuste strumentazioni per la progettazione e l'implementazione dei sistemi, fino ai protocolli di sicurezza più efficaci per garantire un accesso inviolabile ai dati. Per questo motivo, presso TECH Global University abbiamo creato il Master Specialistico in Ingegneria e Qualità del  Software, un programma mirato a favorire la specializzazione dei professionisti dell'informatica attraverso le informazioni più complete e aggiornate del settore. In questo modo, otterrai una visione ampia e altamente qualificata per la progettazione e lo sviluppo di programmi basati su test, con cui garantirai elevati standard di qualità. Studia questo corso post-laurea e fai un passo decisivo nella tua carriera professionale.

Specializzati nei criteri di qualità per l'Ingegneria del Software

Se il tuo obiettivo è diventare un esperto nell'ambito dell'Ingegneria della Qualità del Software, questo corso post-laurea è quello che fa per te. Con il piano di studi, approfondirai i criteri, le attività e le metodologie più avanzate per lo sviluppo adeguato di un progetto di sistemi operativi. Inoltre, analizzerai concetti come il debito tecnico, le sue cause e conseguenze, e i fattori chiave della qualità di questo insieme di programmi: tipologia e modelli, caratteristiche specifiche, elementi influenti, idee sbagliate, costi associati, e altro ancora. Inoltre, imparerai a misurare e quantificare le condizioni del software e implementerai processi DevOps e sistemi di sicurezza per garantirne lo stato ottimale. Questo Master Specialistico ti fornirà tutto ciò di cui hai bisogno per superare le tue aspettative professionali.