SOFTWARE DEVELOPMENT METHODOLOGIES
- Anno accademico
- 2026/2027 Programmi anni precedenti
- Titolo corso in inglese
- SOFTWARE DEVELOPMENT METHODOLOGIES
- Codice insegnamento
- CM0634 (AF:733837 AR:436301)
- Lingua di insegnamento
- Inglese
- Modalità
- In presenza
- Crediti formativi universitari
- 6
- Livello laurea
- Laurea magistrale (DM270)
- Settore scientifico disciplinare
- IINF-05/A
- Periodo
- I Semestre
- Anno corso
- 1
- Sede
- VENEZIA
Inquadramento dell'insegnamento nel percorso del corso di studio
Le evoluzioni della tecnologia combinate con le evoluzioni della società e del mercato richiedono una preparazione ampia che si sviluppa generalmente con l'esperienza sul campo. Obiettivo di questo corso è anticipare i principali temi e vederne quindi le soluzioni ad oggi più diffuse con il fine di essere pronti nella gestione di progetti con le future architetture e tecnologie.
Si parlerà di metodologie, tecnologie, tool e casi reali di applicazione. A titolo esemplificativo ma non esaustivo si parlerà di Metodologia DevOps, Continuous Integration e Continuous Deployment, Merge Request e PR, Distributed Deployment, Test automatici e Applicazioni "Cloud Native".
E' richiesta conoscenze di programmazione.
Risultati di apprendimento attesi
- principali problematiche nello sviluppo di applicazioni complesse
- l'importanza di usare una metodologia e impostare il lavoro nel modo corretto
- l'uso di strumenti software per l'automazione della fasi di build, deployment e test del software
- le modalità di collaborazione per lavorare a più mani su uno stesso progetto
Prerequisiti
- la conoscenza di un linguaggio di programmazione
- aver fatto esperienza di coding (meglio se di gruppo)
- conoscenza di base di reti e ingegneria del software
Si suggerisce la frequenza alle lezioni per meglio affrontare i temi e i asi pratici che verranno proposti e discussi.
Contenuti
- Metodologie per l'esecuzione di progetti di sviluppo software
- Concetti di Quality Assurance e relativa applicazione in termini di processi e strumenti
- Strutturazione di un progetto di sviluppo software complesso
- Condivisione di casi reali e analisi limiti e punti di miglioramento
- Argomenti avanzati nello sviluppo software
Testi di riferimento
1. Joel Spolsky, "Joel on Software And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity", Apress 2024, ISBN 1590593898
2. Gene Kim, Kevin Behr, George Spafford, Chris Ruen, "The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win", IT Revolution Press; Third edition (February 27, 2018), ISBN 1942788290
3. https://refactoring.fm/ and Refactoring Community
Modalità di verifica dell'apprendimento
La prova scritta consiste in un caso/progetto da svolgere e organizzare in tutte le sue fasi approfondendo determinati temi che sono stati trattati durante il corso.
La valutazione dell'esame terrà conto della capacità di svolgere e discutere i casi di studio proposti (70%) e della capacità di esporre i concetti fondamentali della disciplina in modo sintetico e completo (30%).
Modalità di esame
Il/la docente ha il dovere di vigilare affinché siano rispettate le regole di autenticità e originalità delle prove d'esame. Di conseguenza, nei casi in cui vi sia il sospetto di un comportamento irregolare, l'esame può prevedere un ulteriore approfondimento, contestuale alla prova d'esame, che potrà essere realizzato anche in modalità differente rispetto alle modalità sopra riportate.
Metodi didattici
Risorse online (note, slide, video);
Chat e forum;