PROGETTAZIONE DEL SOFTWARE

Francesco ORCIUOLI PROGETTAZIONE DEL SOFTWARE

0212800018
DIPARTIMENTO DI SCIENZE ECONOMICHE E STATISTICHE
CORSO DI LAUREA
STATISTICA PER I BIG DATA
2021/2022

OBBLIGATORIO
ANNO CORSO 3
ANNO ORDINAMENTO 2018
SECONDO SEMESTRE
CFUOREATTIVITÀ
1060LEZIONE
Obiettivi
IL CORSO SI PONE L’OBIETTIVO DI PRESENTARE LE METODOLOGIE, LE TECNICHE E GLI STRUMENTI FONDAMENTALI PER LA GESTIONE DELLE VARIE FASI DEL PROCESSO DI SVILUPPO DI SISTEMI SOFTWARE, CON PARTICOLARE RIFERIMENTO AL PARADIGMA DI PROGETTAZIONE E PROGRAMMAZIONE ORIENTATO AGLI OGGETTI.


CONOSCENZA E CAPACITÀ DI COMPRENSIONE

IL CORSO CONSENTIRÀ ALLO STUDENTE DI ACQUISIRE CONOSCENZE E ABILITÀ RELATIVE AI FONDAMENTI DELL’INGEGNERIA DEL SOFTWARE, ALL’ANALISI, LA PROGETTAZIONE E LO SVILUPPO OBJECT-ORIENTED (OO) DEI SISTEMI SOFTWARE, A UML (UNIFIED MODELING LANGUAGE), AI DESIGN PATTERN E ALLE ARCHITETTURE E, INFINE, ALLE NOZIONI DI BASE SULLA GESTIONE DEI PROGETTI SOFTWARE. INOLTRE, PER QUANTO RIGUARDA LO SVILUPPO DEI SISTEMI SOFTWARE, GLI STUDENTI AVRANNO LA POSSIBILITÀ DI AFFRONTARE LO STUDIO DEI COSTRUTTI OO DI PYTHON (MESSI A CONFRONTO CON QUELLI DI ALTRI LINGUAGGI COME, AD ESEMPIO, JAVA).


CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE

LE CONOSCENZE E LE ABILITÀ ACQUISITE CONSENTIRANNO ALLO STUDENTE DI SVILUPPARE COMPETENZE UTILI A COMPRENDERE, ANALIZZARE E GESTIRE LE PROBLEMATICHE CHE POSSONO EMERGERE DURANTE L’ESECUZIONE DEI PROCESSI DI SVILUPPO DEL SOFTWARE, A SELEZIONARE ED APPLICARE STRUMENTI ADEGUATI AD AFFRONTARE E RISOLVERE LE SUDDETTE PROBLEMATICHE E A VALUTARE CRITICAMENTE I RISULTATI OTTENUTI. AL TERMINE DEL CORSO, GLI STUDENTI AVRANNO SVILUPPATO LE COMPETENZE NECESSARIE A PROGETTARE E REALIZZARE APPLICAZIONI SOFTWARE DI TIPO DESKTOP E WEB, A INTEGRARE IL PROPRIO SOFTWARE CON API DI TERZE PARTI E CON I SISTEMI DI STORAGE PIÙ UTILIZZATI, A DOCUMENTARE IN MANIERA EFFICACE IL PROGETTO E IL CODICE SORGENTE REALIZZATO E, INFINE, A GESTIRE AL MEGLIO LE RISORSE LUNGO TUTTO IL PROCESSO DI SVILUPPO.


AUTONOMIA DI GIUDIZIO

LO STUDENTE SARÀ IN GRADO DI VALUTARE IN AUTONOMIA:
LA VALIDITÀ E I LIMITI DI UNA SOLUZIONE ALGORITMICA AD UN PROBLEMA COMPUTAZIONALE
LA VALIDITÀ E I LIMITI DI UN MODELLO OBJECT ORIENTED E DI UN'ARCHITETTURA SOFTWARE RISPETTO A SPECIFICI REQUISITI FUNZIONALI E NON FUNZIONALI
- LA METODOLOGIA DI LAVORO, LE LIBRERIE E GLI STRUMENTI SOFTWARE, I DESIGN PATTERN E I MODELLI ARCHITETTURALI PIÙ ADEGUATI PER AFFRONTARE UNO SPECIFICO PROCESSO DI SVILUPPO DEL SOFTWARE


ABILITÀ COMUNICATIVE

LO STUDENTE SARÀ IN GRADO DI SOSTENERE CONVERSAZIONI SU TEMATICHE LEGATE AD ANALISI, PROGETTAZIONE E SVILUPPO DEL SOFTWARE, UTILIZZANDO LA GIUSTA TERMINOLOGIA RIFERITA ALLA MODELLAZIONE OBJECT-ORIENTED E ALL'USO DEI PATTERN PIÙ NOTI.
Prerequisiti
- PROGRAMMAZIONE DEI COMPUTER CON IL LINGUAGGIO DI PROGRAMMAZIONE PYTHON
- BASI DI DATI E SQL
Contenuti
L'INSEGNAMENTO CONSISTE DI 60 ORE DI LEZIONE, DI CUI 40 DI LEZIONE FRONTALE E 20 DI ESERCITAZIONI IN AULA. I PRINCIPALI ARGOMENTI DEL CORSO, ORGANIZZATO IN UN UNICO MODULO, SONO:

- NOZIONI DI BASE DI INGEGNERIA DEL SOFTWARE
- PROGETTAZIONE OBJECT-ORIENTED (OO) DEL SOFTWARE E NOZIONI DI BASE DI UML
- PROGRAMMAZIONE OBJECT-ORIENTED (OO) IN PYTHON
- DESIGN PATTERN (CREATIONAL, STRUCTURAL AND BEHAVIORAL) E PATTERN ARCHITETTURALI (E.G., EVENT-DRIVEN, MVC, MICROSERVICES, PIPE-AND-FILTER)
- PROGRAMMING PRACTICES AND TOOLS: LOGGING, TESTING, DEBUGGING, ESPRESSIONI REGOLARI, ACCESSO AD API DI TERZE PARTI, INTEGRAZIONE CON STORAGE SYSTEM
- SVILUPPO DI APPLICAZIONI IN DIVERSI CONTESTI (E.G., DESKTOP, WEB, NETWORK)
Metodi Didattici
LE ATTIVITÀ DI INSEGNAMENTO SARANNO SUDDIVISE IN LEZIONI FRONTALI (CON L'AUSILIO DI MATERIALE MULTIMEDIALE), PER UN TOTALE DI 40 ORE, E LEZIONI IN LABORATORIO, PER UN TOTALE DI 20 ORE, DOVE GLI STUDENTI POTRANNO APPLICARE QUANTO APPRESO IN AULA E MEDIANTE STUDIO INDIVIDUALE.
Verifica dell'apprendimento
L'ESAME DI PROFITTO SARÀ COSTITUITO DA DUE PROVE: LA PROVA PRATICA AL COMPUTER (2 ORE) E LA PROVA ORALE (30 MINUTI). PER LA PROVA PRATICA, PROPEDEUTICA ALLA PROVA ORALE, SARÀ RICHIESTA LA SCRITTURA DI UN PROGRAMMA IN PYTHON PER RISOLVERE UNO SPECIFICO PROBLEMA (INDICATO DALLA TRACCIA). LA PROVA ORALE SI BASERÀ ESSENZIALMENTE SU UN COLLOQUIO CHE VERTERÀ SU TUTTI GLI ARGOMENTI TRATTATI DURANTE LE ATTIVITÀ DI INSEGNAMENTO E SUL SELF-ASSESSMENT DELLO STUDENTE. GLI STUDENTI SARANNO VALUTATI IN TRENTESIMI.
Testi
- DUSTY PHILLIPS - "PYTHON 3 OBJECT-ORIENTED PROGRAMMING" - THIRD EDITION - PACKT

- JOHN HUNT - "ADVANCED GUIDE TO PYTHON 3 PROGRAMMING" - SPRINGER

- JOHN HUNT - "A BEGINNERS GUIDE TO PYTHON 3 PROGRAMMING" - SPRINGER

- DANE HILLARD - "PRACTICES OF THE PYTHON PRO" - MANNING

- ANAND BALACHANDRAN - "SOFTWARE ARCHITECTURE WITH PYTHON" - PACKT

- ANAND BALACHANDRAN - "SOFTWARE ARCHITECTURE WITH PYTHON" - PACKT

- KAMON AYEVA - "MASTERING PYTHON DESIGN PATTERNS" - SECOND EDITION - PACKT


BY KAMON AYEVA
Altre Informazioni
ULTERIORE MATERIALE DIDATTICO SARÀ RESO DISPONIBILE SUL SITO WEB DEL DOCENTE.
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2021-12-09]