ID:
64418
Tipo Insegnamento:
Opzionale
Durata (ore):
0
CFU:
0
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Url:
INGEGNERIA ELETTRONICA E INFORMATICA/Ingegneria informatica - Sistemi web Anno: 3
Anno:
2024
Dati Generali
Periodo di attività
Secondo Semestre (24/02/2025 - 05/06/2025)
Syllabus
Obiettivi Formativi
Il corso proposto si concentra sulla comprensione e sulla pratica degli aspetti architetturali fondamentali dei moderni sistemi software, con particolare enfasi sulla formazione dei progettisti di applicazioni web complesse. Di seguito sono riportati gli elementi chiave del programma:
1. **Sviluppo del Software**: Si affrontano aspetti economici, organizzativi e metodologici del processo di sviluppo del software, inclusi modelli come il tradizionale modello a cascata e varianti evolutive.
2. **Modellazione del Software**: Si utilizzano strumenti e linguaggi di modellazione come UML per rappresentare graficamente il software e comprendere i suoi requisiti e la sua struttura.
3. **Requisiti del Software**: Si studia l'interazione con gli stakeholder per definire e formalizzare i requisiti del software, utilizzando metodologie come il metodo dei casi d'uso.
4. **Architetture Software**: Si esplorano varie architetture, comprese quelle client-server, multi-tier e web, con un focus sul pattern MVC e sul riuso delle componenti.
5. **Linguaggio Java**: Si fornisce una panoramica dell'architettura di Java2 e dei concetti di programmazione orientata agli oggetti, concentrandosi sull'utilizzo di Java per sistemi multi-tier.
6. **Progettazione del Software**: Si illustrano i principi e i metodi di progettazione, inclusi la modularità, l'incapsulamento e l'uso dei design pattern per creare sistemi robusti e flessibili.
7. **Test e Qualità del Software**: Si esplorano metodologie e metriche per valutare e garantire la qualità del software attraverso la fase di test.
8. **Gestione dei Progetti Software**: Si tratta la pianificazione e la gestione del lavoro di sviluppo software, includendo aspetti come la definizione degli obiettivi, la scelta degli strumenti e il lavoro di squadra.
9. **Esecuzione dei Progetti Software**: Si analizzano gli aspetti operativi della gestione di progetti software, compresa la gestione dei vincoli, la comunicazione e la manutenzione evolutiva dei sistemi.
Al termine del corso, lo studente sarà in grado di modellare un sistema software in base ai requisiti specificati o eseguire il reverse engineering di un sistema esistente. Avrà acquisito competenze nella progettazione e nello sviluppo di applicazioni web complesse utilizzando tecnologie come HTML, CSS, Javascript e JSP, con l'obiettivo di soddisfare requisiti di riuso e adattabilità.
1. **Sviluppo del Software**: Si affrontano aspetti economici, organizzativi e metodologici del processo di sviluppo del software, inclusi modelli come il tradizionale modello a cascata e varianti evolutive.
2. **Modellazione del Software**: Si utilizzano strumenti e linguaggi di modellazione come UML per rappresentare graficamente il software e comprendere i suoi requisiti e la sua struttura.
3. **Requisiti del Software**: Si studia l'interazione con gli stakeholder per definire e formalizzare i requisiti del software, utilizzando metodologie come il metodo dei casi d'uso.
4. **Architetture Software**: Si esplorano varie architetture, comprese quelle client-server, multi-tier e web, con un focus sul pattern MVC e sul riuso delle componenti.
5. **Linguaggio Java**: Si fornisce una panoramica dell'architettura di Java2 e dei concetti di programmazione orientata agli oggetti, concentrandosi sull'utilizzo di Java per sistemi multi-tier.
6. **Progettazione del Software**: Si illustrano i principi e i metodi di progettazione, inclusi la modularità, l'incapsulamento e l'uso dei design pattern per creare sistemi robusti e flessibili.
7. **Test e Qualità del Software**: Si esplorano metodologie e metriche per valutare e garantire la qualità del software attraverso la fase di test.
8. **Gestione dei Progetti Software**: Si tratta la pianificazione e la gestione del lavoro di sviluppo software, includendo aspetti come la definizione degli obiettivi, la scelta degli strumenti e il lavoro di squadra.
9. **Esecuzione dei Progetti Software**: Si analizzano gli aspetti operativi della gestione di progetti software, compresa la gestione dei vincoli, la comunicazione e la manutenzione evolutiva dei sistemi.
Al termine del corso, lo studente sarà in grado di modellare un sistema software in base ai requisiti specificati o eseguire il reverse engineering di un sistema esistente. Avrà acquisito competenze nella progettazione e nello sviluppo di applicazioni web complesse utilizzando tecnologie come HTML, CSS, Javascript e JSP, con l'obiettivo di soddisfare requisiti di riuso e adattabilità.
Prerequisiti
------------------------------------------------------------
Insegnamento raggruppato: 008520 - INGEGNERIA DEL SOFTWARE
------------------------------------------------------------
Una buona conoscenza dei fondamenti della programmazione object-oriented e di un linguaggio di programmazione OO, preferibilmente Java o C++
------------------------------------------------------------
Insegnamento raggruppato: 013672 - INGEGNERIA DEI SISTEMI WEB
------------------------------------------------------------
Conoscenza della programmazione Object Oriented Conoscenza del linguaggio Java
Conoscenza dei protocolli applicativi TCP/IP
Insegnamento raggruppato: 008520 - INGEGNERIA DEL SOFTWARE
------------------------------------------------------------
Una buona conoscenza dei fondamenti della programmazione object-oriented e di un linguaggio di programmazione OO, preferibilmente Java o C++
------------------------------------------------------------
Insegnamento raggruppato: 013672 - INGEGNERIA DEI SISTEMI WEB
------------------------------------------------------------
Conoscenza della programmazione Object Oriented Conoscenza del linguaggio Java
Conoscenza dei protocolli applicativi TCP/IP
Metodi didattici
------------------------------------------------------------
Insegnamento raggruppato: 008520 - INGEGNERIA DEL SOFTWARE
------------------------------------------------------------
Durante il corso, gli argomenti verranno illustrati con slide contenenti la parte teorica, con esempi pratici ed esercitazioni in aula.
Per ogni concetto si illustrerà l'obiettivo, la sua evoluzione, come viene implementato attraverso JAVA ed esercitazioni per meglio comprenderne l'applicazione pratica.
------------------------------------------------------------
Insegnamento raggruppato: 013672 - INGEGNERIA DEI SISTEMI WEB
------------------------------------------------------------
Il corso prevede lezioni di teoria ed esercizi guidati dal docente. Verrà inoltre realizzato un piccolo progetto con la guida del docente, che costituirà la base di partenza per il progetto d'esame.
Insegnamento raggruppato: 008520 - INGEGNERIA DEL SOFTWARE
------------------------------------------------------------
Durante il corso, gli argomenti verranno illustrati con slide contenenti la parte teorica, con esempi pratici ed esercitazioni in aula.
Per ogni concetto si illustrerà l'obiettivo, la sua evoluzione, come viene implementato attraverso JAVA ed esercitazioni per meglio comprenderne l'applicazione pratica.
------------------------------------------------------------
Insegnamento raggruppato: 013672 - INGEGNERIA DEI SISTEMI WEB
------------------------------------------------------------
Il corso prevede lezioni di teoria ed esercizi guidati dal docente. Verrà inoltre realizzato un piccolo progetto con la guida del docente, che costituirà la base di partenza per il progetto d'esame.
Verifica Apprendimento
L'esame consiste in quattro prove, ognuna finalizzata a valutare diverse competenze acquisite durante il corso:
1. **Prova Scritta**: Questa prova verifica le conoscenze teoriche tramite domande a risposta chiusa sulla teoria trattata durante il corso e esercizi pratici. Gli esercizi possono includere la conversione tra modelli UML e codice Java, esercizi sui design pattern e la creazione di modelli UML da descrizioni di problemi in linguaggio naturale. La durata prevista è di circa un'ora.
2. **Progetto**: Gli studenti devono realizzare un progetto, fornendo il codice sorgente, una relazione UML e un piano di progetto. Il progetto può essere proposto dai docenti o essere di complessità equivalente e proposto dagli studenti previa approvazione dei docenti.
3. **Presentazione/Pitch**: Gli studenti devono creare una breve presentazione tramite slide legata al progetto svolto. L'obiettivo è valutare la capacità di sintetizzare argomenti complessi. Sono ammesse fino a 10 slide, incluso il titolo.
4. **Esame Orale**: Durante l'orale, gli studenti devono descrivere lo scopo dell'applicazione, le funzionalità implementate, il modello dei dati utilizzato e l'architettura applicativa realizzata. Devono dimostrare di aver compreso le tecniche di progettazione e le tecnologie di implementazione come HTML, CSS, Javascript e JSP. Gli studenti devono anche eseguire l'applicativo sviluppato per dimostrarne il funzionamento corretto.
Il superamento dell'esame richiede un livello minimo di competenza in tutte le prove. Il voto finale è determinato da una media aritmetica tra i punteggi della prova scritta e dei punteggi ottenuti dalla presentazione/ptich e dall'esame orale.
Il superamento dell'esame attesta l'acquisizione delle conoscenze e delle abilità specificate negli obiettivi formativi del corso, sia per quanto riguarda gli aspetti teorici che pratici.
1. **Prova Scritta**: Questa prova verifica le conoscenze teoriche tramite domande a risposta chiusa sulla teoria trattata durante il corso e esercizi pratici. Gli esercizi possono includere la conversione tra modelli UML e codice Java, esercizi sui design pattern e la creazione di modelli UML da descrizioni di problemi in linguaggio naturale. La durata prevista è di circa un'ora.
2. **Progetto**: Gli studenti devono realizzare un progetto, fornendo il codice sorgente, una relazione UML e un piano di progetto. Il progetto può essere proposto dai docenti o essere di complessità equivalente e proposto dagli studenti previa approvazione dei docenti.
3. **Presentazione/Pitch**: Gli studenti devono creare una breve presentazione tramite slide legata al progetto svolto. L'obiettivo è valutare la capacità di sintetizzare argomenti complessi. Sono ammesse fino a 10 slide, incluso il titolo.
4. **Esame Orale**: Durante l'orale, gli studenti devono descrivere lo scopo dell'applicazione, le funzionalità implementate, il modello dei dati utilizzato e l'architettura applicativa realizzata. Devono dimostrare di aver compreso le tecniche di progettazione e le tecnologie di implementazione come HTML, CSS, Javascript e JSP. Gli studenti devono anche eseguire l'applicativo sviluppato per dimostrarne il funzionamento corretto.
Il superamento dell'esame richiede un livello minimo di competenza in tutte le prove. Il voto finale è determinato da una media aritmetica tra i punteggi della prova scritta e dei punteggi ottenuti dalla presentazione/ptich e dall'esame orale.
Il superamento dell'esame attesta l'acquisizione delle conoscenze e delle abilità specificate negli obiettivi formativi del corso, sia per quanto riguarda gli aspetti teorici che pratici.
Testi
------------------------------------------------------------
Insegnamento raggruppato: 008520 - INGEGNERIA DEL SOFTWARE
------------------------------------------------------------
Testi principali di riferimento:
- Robert Cecil Martin, Clean Code, Prentice Hall
- Ian Sommerville, Ingegneria del software, Pearson Education
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994 (Versione Italiana, McGraw-Hill, 2003)
Martin Fowler - UML Distilled. Pearson Addison Wesley
------------------------------------------------------------
Insegnamento raggruppato: 013672 - INGEGNERIA DEI SISTEMI WEB
------------------------------------------------------------
Il materiale didattico del corso si trova sul sito o su Classroom (Codice Corso: 4yqvguj).
Insegnamento raggruppato: 008520 - INGEGNERIA DEL SOFTWARE
------------------------------------------------------------
Testi principali di riferimento:
- Robert Cecil Martin, Clean Code, Prentice Hall
- Ian Sommerville, Ingegneria del software, Pearson Education
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994 (Versione Italiana, McGraw-Hill, 2003)
Martin Fowler - UML Distilled. Pearson Addison Wesley
------------------------------------------------------------
Insegnamento raggruppato: 013672 - INGEGNERIA DEI SISTEMI WEB
------------------------------------------------------------
Il materiale didattico del corso si trova sul sito o su Classroom (Codice Corso: 4yqvguj).
Contenuti
------------------------------------------------------------
Insegnamento raggruppato: 008520 - INGEGNERIA DEL SOFTWARE
------------------------------------------------------------
1.Introduzione all'ingegneria del software
2.Il processo di produzione del software
3.Riepilogo dei fondamenti dell'OOP
4.Evoluzione storica dell'OOP
5.OOP, concetti avanzati
6.Implementazione degli oggetti
7.Introduzione a UML
8.Elementi di progettazione orientata agli oggeti (OOD)
9.Componenti software: concetti e modelli
------------------------------------------------------------
Insegnamento raggruppato: 013672 - INGEGNERIA DEI SISTEMI WEB
------------------------------------------------------------
1. Modelli, Protocolli e Architetture per le Applicazioni Web Based
1.1 Il modello Client Server
1.2 Il Protocollo HTTP
1.3 Architetture dei Sistemi Distribuiti Web Based
1.4 La sessione nelle Applicazioni Web
2. Tecnologie e Linguaggi di Programmazione Frontend
2.1 Presentation Layer: I linguaggi HTML e CSS
2.2 Il linguaggio Javascript
2.3 Javascript Event-Driven Programming
2.4 Il linguaggio TypeScript
3. Tecnologie e Linguaggi di Programmazione Backend
3.1 JSON: JavaScript Object Notation
3.2 Restful Web Services
3.3 Ajax: Asynchronous Web Application
3.4 Modello Applicativo Single Page
5. Framework di Sviluppo per Single Page Application
5.1 Web Services Restful: Spring Boot
5.2 Single Page Application: Angular
Insegnamento raggruppato: 008520 - INGEGNERIA DEL SOFTWARE
------------------------------------------------------------
1.Introduzione all'ingegneria del software
2.Il processo di produzione del software
3.Riepilogo dei fondamenti dell'OOP
4.Evoluzione storica dell'OOP
5.OOP, concetti avanzati
6.Implementazione degli oggetti
7.Introduzione a UML
8.Elementi di progettazione orientata agli oggeti (OOD)
9.Componenti software: concetti e modelli
------------------------------------------------------------
Insegnamento raggruppato: 013672 - INGEGNERIA DEI SISTEMI WEB
------------------------------------------------------------
1. Modelli, Protocolli e Architetture per le Applicazioni Web Based
1.1 Il modello Client Server
1.2 Il Protocollo HTTP
1.3 Architetture dei Sistemi Distribuiti Web Based
1.4 La sessione nelle Applicazioni Web
2. Tecnologie e Linguaggi di Programmazione Frontend
2.1 Presentation Layer: I linguaggi HTML e CSS
2.2 Il linguaggio Javascript
2.3 Javascript Event-Driven Programming
2.4 Il linguaggio TypeScript
3. Tecnologie e Linguaggi di Programmazione Backend
3.1 JSON: JavaScript Object Notation
3.2 Restful Web Services
3.3 Ajax: Asynchronous Web Application
3.4 Modello Applicativo Single Page
5. Framework di Sviluppo per Single Page Application
5.1 Web Services Restful: Spring Boot
5.2 Single Page Application: Angular
Lingua Insegnamento
ITALIANO
Corsi
Corsi
3 anni
No Results Found