- Dai programmi all'Ingegneria del software
- Obiettivi dell'ingegneria del software
- Il processo di produzione
- Le fasi: raccolta dei requisiti, analisi, progetto e realizzazione, test, rilascio e manutenzione
- Modelli per il processo di produzione del software: a cascata, a prototipazione rapida
- Modelli evolutivi: incrementale e iterativo
- Modello a spirale
- Metodologie agili
IL LINGUAGGIO DI MODELLIZZAZIONE UML
- Requisiti funzionali e non funzionali del software
- Diagramma dei casi d'uso e simbologia utilizzata
- Identificazione degli attori e dei casi d'uso
- Associazione di: generalizzazione/specializzazione, inclusione, estensione
- Documento di specifica di un caso d'uso
- Progettazione software
- Diagramma delle classi e simbologia utilizzata
- Rappresentazione di attributi, metodi e loro visibilità
GESTIONE E DOCUMENTAZIONE DEL CODICE
- Regole e convenzioni di codifica
- Diritto d'autore e licenze software: il copyright
- Il contratto EULA
- Le tipologie di licenze open-source : GPL, BSD, LGPL
- Documentazione del codice sorgente del software con Doxygen (per C++) e con Javadoc (per Java)
- Gestione delle versioni del codice : strumenti software Version Control System ( Subversion ), repository, operazioni di read, write , la working copy
- Tecnica di lock-modify-unlock
- Utilizzo del client grafico TortoiseSVN : installazione e simulazione delle operazioni di modifica e gestione dei conflitti generati da modifiche sullo stesso file
TEST DEL SOFTWARE
- Pianificazione e classificazione dei test
- Tipologie di test: black-box, white-box
- Articolazione dei test: test unitari, test di integrazione
- Gestione della fase di testing con NetBeans 8.2