LAB OF SOFTWARE PROJECT DEVELOPMENT
- Anno accademico
- 2020/2021 Programmi anni precedenti
- Titolo corso in inglese
- LAB OF SOFTWARE PROJECT DEVELOPMENT
- Codice insegnamento
- ET7018 (AF:338654 AR:182398)
- Lingua di insegnamento
- Inglese
- Modalità
- In presenza
- Crediti formativi universitari
- 6
- Livello laurea
- Laurea
- Settore scientifico disciplinare
- INF/01
- Periodo
- 2° Periodo
- Anno corso
- 3
- Spazio Moodle
- Link allo spazio del corso
Inquadramento dell'insegnamento nel percorso del corso di studio
L'unico modo per raggiungere questa consapevolezza è partecipare ad un progetto di sviluppo software in cui lo studente metta in pratica sia gli strumenti organizzativi che il processo di sviluppo.
L'obiettivo di questo corso è fornire agli studenti le basi sugli strumenti e sulle piattaforme di sviluppo software più comuni per creare e gestire il proprio progetto software.
Risultati di apprendimento attesi
Durante il corso lo studente acquisirà le seguenti conoscenze e abilità:
Conoscenza:
- Le metodologie più comuni per lo sviluppo del software: waterfall, agile, open o closed source.
- Le basi della creazione di un software Python: struttura, documentazione, pubblicazione.
- Elementi di basi di dati.
- Sviluppo test-driven.
Abilità:
- Familiarità con sistemi di versioning del software: git.
- Familiarità con piattaforme di hosting / sviluppo software: github, kanban.
- Creazione, sviluppo, documentazione e pubblicazione di un progetto Python.
- Gestione di una semplice base di dati relazionale, sql, query.
Prerequisiti
Contenuti
1) introduzione ai progetti software:
- Ingegneria del software: gestione e sviluppo del progetto. Processi waterfall, evolutionary, agile. Open source Vs closed source.
- Strumenti per il controllo delle versioni del software e lo sviluppo in team: git e github.
2) progetti Python
- Struttura del progetto
- Documentazione del progetto
- Convenzioni
- Pubblicazione del progetto
3) Moduli Python di interesse
- argparse, logging, JSON...
4) database e SQL.
- introduzione ad un database relazionale
- SQL
- il modulo SQLite
5) sviluppo guidato dai test:
- Cosa significa fare test
- Test con Python
- Integrazione con github
Testi di riferimento
Alcune delle fonti sono:
- Pro Git Book: https://git-scm.com/book/en/v2
- Ian Sommerville, Software Engineering.
- Dive Into Python: https://www.diveinto.org/python3/table-of-contents.html
a queste si aggiunge la documentazione dei progetti open source che saranno oggetto delle esercitazioni.
Modalità di verifica dell'apprendimento
Il test scritto sarà composto da domande a scelta multipla e domande aperte relative ai problemi ed alle tecniche analizzati durante le lezioni.
Durante il corso gli studenti riceveranno incarichi da integrare come parte del loro progetto software.
Modalità di esame
Metodi didattici
Gli studenti installeranno il software necessario con cui sperimentare i comandi illustrati e li utilizzeranno in prima persona.