Titolo universitario
La più grande facoltà di informatica del mondo"
Presentazioni
Iscriviti subito e inizia a trasformare idee complesse in soluzioni tecnologiche tangibili che avranno un impatto sul mondo"

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"

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.

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.5. Standardizzazione dei database (DB) (II). Forme normali e regole di Codd
8.6. Memorizzazione di dati / sistema OLAP
8.7. Prestazioni del database (DB)
8.8. Simulazione di un progetto reale per il disegno di DB (I)
8.9. Simulazione di un progetto reale per il disegno di DB (II)
8.10. Importanza dell'ottimizzazione dei DB nella qualità del software
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

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.