Introduzione all'Ingegneria del Software
Processo e prodotto. Ciclo di vita del software. Costo dello sviluppo software. Qualità esterna: Correttezza, Affidabilità, Usabilità, Scalabilità, Efficienza, Robustezza. Qualità interna: Riparabilità, Manutenibilità, Riusabilità, Portabilità, Verificabilità.
Ingegneria dei Requisiti
Concetto di prodotto software. Analisi e specifica dei requisiti. Documento dei requisiti (SRS). Requisiti utente e requisiti di sistema. Requisiti funzionali e non funzionali. Requisiti di dominio. Modello FURPS. Completezza e consistenza dei requisiti. Elicitazione, analisi e validazione dei requisiti. Modellazione dei casi d’uso in UML. Diagramma dei casi d’uso. Template di Cockburn.
La Modellazione a Oggetti
Obiettivi della modellazione. Progettazione tradizionale e progettazione orientata agli oggetti. L’ereditarietà come strumento di progettazione e riuso. La fase di progettazione. Modellazione a oggetti in linguaggio UML. Diagrammi delle classi: attributi, operazioni, responsabilità, associazioni, molteplicità, aggregazione, composizione, classi associative, ereditarietà, interfacce. Dal progetto UML all’implementazione in Java.
Pattern Creazionali, Strutturali e Comportamentali
I pattern DAO, Observer, Factory, Singleton, Façade, Adapter, Composite, Abstract Factory, Bridge, Builder, Strategy.
Modelli e Architetture Software
Partizioni e layer. Pattern architetturali. Repository architecture. Client/Server architecture. Peer-to-peer architecture. Model/View/Controller. Architetture n-tier.
Verifica e Validazione del Software (V&V)
Analisi statica. Obiettivi e pianificazione del testing. Tecniche di testing black-box e white-box. Test di unità, integrazione, sistema, accettazione, regressione. Test strutturali, criteri di copertura. Complessità ciclomatica. Test combinatoriale. Model-based testing. Test di robustezza.
Verifica Formale di Protocolli di Sicurezza
Concetti introduttivi di cybersecurity: cifratura simmetrica, cifratura asimmetrica, freshness, autenticazione. BAN Logic: notazioni e postulati (message meaning rule, nonce verification, jurisdiction rule). Analisi formale di protocolli di sicurezza: Otway-Rees, Needham-Schroeder (chiave condivisa), Needham-Schroeder (chiave pubblica).
Ultimo aggiornamento: 16-04-2025