SOFTWARE DEVELOPMENT METHODOLOGIES

Anno accademico
2024/2025 Programmi anni precedenti
Titolo corso in inglese
SOFTWARE DEVELOPMENT METHODOLOGIES
Codice insegnamento
CM0634 (AF:513717 AR:286782)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea magistrale (DM270)
Settore scientifico disciplinare
ING-INF/05
Periodo
I Semestre
Anno corso
1
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
Il corso introduce concetti e tecnologie di sviluppo del software, metodi e strumenti operativi per lavorare efficacemente e con qualità ad applicazioni complesse collaborando con gruppi di lavoro ampi.
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.
Gli obiettivi del corso sono far acquisire conoscenza di:
- 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 sono:
- 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.
Il corso presenterà diverse tematiche:
- 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
Lecture Notes from the Professor, mostly based on:
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
La verifica dell'apprendimento avviene attraverso una prova scritta che ha lo scopo di accertare le conoscenze acquisite sui diversi argomenti del corso.
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%).
Lezioni teoriche e pratiche in aula;
Risorse online (note, slide, video);
Chat e forum;
Inglese
scritto
Programma definitivo.
Data ultima modifica programma: 12/10/2024