Roberto VERGALLO

Roberto VERGALLO

Settore Scientifico Disciplinare ING-INF/05: SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI.

Junior Researcher (RTDA)

Area di competenza:

ICT, Internet of Things, Fintech

Orario di ricevimento

Da concordare previo accordo con il docente, preferibile la modalità in videoconferenza

Visualizza QR Code Scarica la Visit Card

Curriculum Vitae

Roberto Vergallo is a software engineer, graduated cum laude at University of Salento in 2010. Currently he is a Junior Researcher at University of Salento. His main research topics include the application of IoT, AI and DLT to enhance and develop new customer experience in digital payments and digital banking. As a side research topic, he is currently investigating on the use of Green Software Principles to develop sustainable architectures.

During his Ph.D. he studied for 6 months at the University of California Los Angeles (UCLA), where he developed an IoT-based Point of Sale for Electric Vehicles. Basing on this experience, he developed WoX, a model-driven Cloud platform that speeds up the development of innovative IoT-based scenario. He is founder of Vidyasoft srl, a spin-off of University of Salento whose aim is to put on the market the value of his research in the fintech field. With Vidyasoft he won different contests for startups: Sellalab Fintech Program, Sella Data Challenge, and Banca d'Italia's Milano Hub.

He is author of more than 30 scientific papers. He is editor for the Journal of Telecommunication, Electronic and Engineering (JTEC).

Didattica

A.A. 2023/2024

INGEGNERIA DEL SOFTWARE

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Docente titolare LUCA MAINETTI

Ripartizione oraria Ore totali di attività frontale: 54.0

  Ore erogate dal docente ROBERTO VERGALLO: 18.0

Anno accademico di erogazione 2023/2024

Per immatricolati nel 2021/2022

Anno di corso 3

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso CURRICULUM A

Sede Lecce

PROGETTAZIONE DI ARCHITETTURE DI SERVIZI

Corso di laurea INGEGNERIA INFORMATICA

Tipo corso di studio Laurea Magistrale

Lingua ITALIANO

Crediti 6.0

Docente titolare LUCA MAINETTI

Ripartizione oraria Ore totali di attività frontale: 54.0

  Ore erogate dal docente ROBERTO VERGALLO: 36.0

Anno accademico di erogazione 2023/2024

Per immatricolati nel 2023/2024

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

A.A. 2022/2023

PROGETTAZIONE DI ARCHITETTURE DI SERVIZI

Corso di laurea INGEGNERIA INFORMATICA

Tipo corso di studio Laurea Magistrale

Lingua ITALIANO

Crediti 6.0

Docente titolare ROBERTO VERGALLO

Ripartizione oraria Ore totali di attività frontale: 54.0

  Ore erogate dal docente ROBERTO VERGALLO: 36.0

Anno accademico di erogazione 2022/2023

Per immatricolati nel 2022/2023

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

A.A. 2021/2022

PRINCIPI DI INGEGNERIA DEL SOFTWARE

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Docente titolare LUCA MAINETTI

Ripartizione oraria Ore totali di attività frontale: 54.0

  Ore erogate dal docente ROBERTO VERGALLO: 18.0

Anno accademico di erogazione 2021/2022

Per immatricolati nel 2020/2021

Anno di corso 2

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Sede Lecce

SERVICE ARCHITECTURE ENGINEERING C.I.

Corso di laurea COMPUTER ENGINEERING

Tipo corso di studio Laurea Magistrale

Crediti 4.0

Docente titolare LUCA MAINETTI

Ripartizione oraria Ore totali di attività frontale: 36.0

  Ore erogate dal docente ROBERTO VERGALLO: 27.0

Anno accademico di erogazione 2021/2022

Per immatricolati nel 2021/2022

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso PERCORSO COMUNE

Tecnologie digitali per la produzione dell’audiovisivo

Corso di laurea PROGETTAZIONE E GESTIONE DEI SISTEMI PRODUTTIVI AUDIOVISIVI E PERFORMATIVI

Tipo corso di studio Laurea Magistrale

Lingua ITALIANO

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 30.0

Anno accademico di erogazione 2021/2022

Per immatricolati nel 2021/2022

Anno di corso 1

Struttura DIPARTIMENTO DI BENI CULTURALI

Percorso PERCORSO COMUNE

A.A. 2020/2021

INFORMATICA

Corso di laurea SCIENZE BIOLOGICHE

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 52.0

Anno accademico di erogazione 2020/2021

Per immatricolati nel 2020/2021

Anno di corso 1

Struttura DIPARTIMENTO DI SCIENZE E TECNOLOGIE BIOLOGICHE ED AMBIENTALI

Percorso PERCORSO GENERICO/COMUNE

Sede Lecce

Torna all'elenco
APPLICAZIONI MOBILI E SISTEMI CLOUD

Corso di laurea INGEGNERIA INFORMATICA

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 54.0

Per immatricolati nel 2023/2024

Anno accademico di erogazione 2025/2026

Anno di corso 3

Semestre Secondo Semestre (dal 04/03/2026 al 14/06/2026)

Lingua ITALIANO

Percorso Percorso comune (999)

Sede Lecce

APPLICAZIONI MOBILI E SISTEMI CLOUD (ING-INF/05)
INGEGNERIA DEL SOFTWARE

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Docente titolare LUCA MAINETTI

Ripartizione oraria Ore totali di attività frontale: 54.0

  Ore erogate dal docente ROBERTO VERGALLO: 18.0

Per immatricolati nel 2021/2022

Anno accademico di erogazione 2023/2024

Anno di corso 3

Semestre Primo Semestre (dal 18/09/2023 al 22/12/2023)

Lingua ITALIANO

Percorso CURRICULUM A (A186)

Sede Lecce

Elementi di teoria dell’informatica. Principi e basi per la programmazione. Esecuzione di operazioni seguendo una sequenza codificata di istruzioni elementari. Concetto di algoritmo, algoritmi di base e strutture dati. Concetti di programmazione orientata agli oggetti. Linguaggio Java.

Non vi è alcuna propedeuticità ma sono suggerite le conoscenze di Fondamenti di Informatica II.

Il corso intende fornire conoscenze di ingegneria del software e sviluppare le competenze necessarie per progettare e sviluppare programmi complessi. E’ la naturale prosecuzione del corso di Fondamenti di Informatica II poiché richiede una buona padronanza del linguaggio Java, benché i contenuti teorici siano pienamente autonomi.

Nel concreto, il corso affronta in profondità le tecniche di analisi dei requisiti funzionali e non funzionali, progettazione con UML (Uniform Modeling Language) e sviluppo in Java di sistemi software organizzati secondo architetture standard (design patterns) e livelli di disaccoppiamento che ne facilitino l’evoluzione. Ogni concetto esposto è sperimentato in modo pratico insieme agli studenti, utilizzando il personal computer e strumenti di sviluppo moderni e ampiamente diffusi nel mondo industriale.

Conoscenze e comprensione. Al termine del corso gli studenti: (a) conosceranno i principi dell’ingegneria del software, in relazione alle caratteristiche e alle qualità del software; (b) conosceranno nel dettaglio le architetture software standard, i design patterns e i principi di riuso del software; (c) conosceranno e sperimenteranno i processi di sviluppo agili del software; (d) approfondiranno linguaggio Java in particolare per la costruzione di architetture software evolvibili; (e) comprenderanno le tecniche di condivisione del software e i sistemi di controllo delle versioni; (f) approfondiranno i principali ambienti di sviluppo Java anche in relazione alle necessità di sviluppo in coppia di applicazioni complesse.

Capacità di applicare conoscenze e comprensione. Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti applicativi e, in generale, per la codifica al computer in linguaggio Java di applicazioni software con principi di riuso ed evolvibilità.

Autonomia di giudizio. Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi di modellazione del software da requisiti funzionali e non funzionali, per i quali trovare le soluzioni adeguate a risolverli in linguaggio Java con riferimento a noti design patterns. Diverse soluzioni proposte interattivamente dagli studenti saranno poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative. Gli studenti apprenderanno come comunicare adeguatamente e con il corretto livello di formalismo le scelte di design adottate e le strategie di implementazione scelte. Il metodo di insegnamento interattivo e teorico/pratico favorirà momenti di confronto in cui mettere in pratica tali abilità comunicative. Lo sviluppo di prototipi software in coppia richiederà tecniche di comunicazione allo stato dell’arte per l’ingegneria del software

Capacità di apprendimento. La materia in costante evoluzione (le tecniche di sviluppo orientate alle architetture software standard, i linguaggi che le implementano, gli strumenti di sviluppo) richiederà agli studenti la capacità di aggiornarsi e di ricercare materiale on-line, valutandone anche la qualità. Il metodo didattico favorirà l’approfondimento autonomo e in coppie da parte degli studenti, incuriosendoli su tecniche di sviluppo evolute (vedi il test driven development e le metriche del software) che saranno oggetto del corso magistrale di Software Engineering.

Lezioni frontali (o on-line se l'emergenza sanitaria lo richiederà), esercitazioni pratiche svolte preferibilmente con l’uso del personal computer, elaborazione a coppie di un’applicazione Java.

L'esame prevede una prova orale per la verifica dell'apprendimento dei concetti teorici (verifica delle conoscenze) e della capacità di applicazione dei medesimi, in particolare per la codifica in coppie di applicazioni Java complesse (verifica delle competenze). Durante l’esame, che sarà svolto in coppie, gli studenti dovranno usare preferibilmente il loro personal computer, configurato con gli ambienti di sviluppo illustrati e utilizzati durante il corso.

Presentazione dettagliata del corso e delle modalità d’esame (2 ore). Processi di sviluppo del software (2 ore). Processi agili (2 ore). UML: requisiti e casi d’uso (2 ore). UML: dai requisiti ai diagrammi delle classi, di sequenza e di stato (2 ore). UML: diagrammi delle classi, di sequenza, di stato, dei package e di deployment nel dettaglio (2 ore). Introduzione alle architetture software standard (2 ore). Design patterns (10 ore). Fondamenti di basi di dati: il modello Entità-Relazioni. (2 ore). Fondamenti di basi di dati: dal modello Entità-Relazioni al modello Relazionale. (2 ore). MySQL e SQL (4 ore). Presentazione dell’elaborato software (2 ore). Creare un'applicazione Java: predisporre l'ambiente di sviluppo e l’architettura software (4 ore). Creare un'applicazione Java: implementare le classi (4 ore). Creare un'applicazione Java: accedere a dati esterni (4 ore). Creare un'applicazione Java: realizzare l'interfaccia utente (6 ore). Gestire la sessione in Java (2 ore).

  • Martin Fowler, “UML distilled. Guida rapida al linguaggio di modellazione standard”, Quarta Edizione, Pearson, Maggioli Editore, 2010.
  • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, “Design Patterns: Elementi per il riuso di software a oggetti”, Prima Edizione Italiana, Pearson, 2002.
  • Il manuale di Java consigliato per il corso di Fondamenti di Informatica II.
INGEGNERIA DEL SOFTWARE (ING-INF/05)
PROGETTAZIONE DI ARCHITETTURE DI SERVIZI

Corso di laurea INGEGNERIA INFORMATICA

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea Magistrale

Crediti 6.0

Docente titolare LUCA MAINETTI

Ripartizione oraria Ore totali di attività frontale: 54.0

  Ore erogate dal docente ROBERTO VERGALLO: 36.0

Per immatricolati nel 2023/2024

Anno accademico di erogazione 2023/2024

Anno di corso 1

Semestre Secondo Semestre (dal 04/03/2024 al 14/06/2024)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

The prerequisites for attending the corse are the knowledge of structured programming languages (Java) and the fundamentals of computer science.

After the course the student should be able to: a. Apply main software engineering principles and control software qualities (both internal and external); b. Design and implement software following industrial standards (UML) and structured software production processes; c. Manage the software engineering i.e. execute tasks as planning, organizing, staffing, controlling, estimating (software cost and size); d. Design the software adopting standard software architectures; e. Select and adopt software design patterns (creational patterns, structural patterns, behavioral patterns); f. Verify the software exploiting standard tools and adopting well-known metrics; g. Develop complex model-view-controller web and mobile software systems, exploiting at the back end the Spring framework, and at the front end the Angular framework, connecting them through REST/JSON web services; h. Manage the fundamentals of modern cloud computing and cloud service deployment; i. Use the main open source tools for the software testing and refactoring, and for the software configuration management.

The main goal of the course is to deepen students’ knowledge on modern design and development techniques for interactive software systems. In particular, methods and tools for automated software testing, dev ops and design patterns for micro service architectures. All concepts will be experimented by students designing, developing and testing a software prototype of a service based web application with a mobile extension (app). The software prototype will be developed on top of modern frameworks (Spring, Angular).

Classroom and online lessons, classroom and online practice, project work.

The module will be verified with a small software prototype implementation, intended to verify the practice of micro-service architectures and tests, which will be discussed during an oral examination. The software system must be designed using UML, adopting standard design patterns. The software system must be developed starting from MVC frameworks (Spring, Angular), and must be systematically tested collecting metrics. The software prototype must be developed following an agile process and must be documented. A month before the end of the course, the general requirements of the software prototype will be published by the teacher, a new requirements set for each year. The requirements will be effective till a new set of specifications will appear.

See www.ing.unisalento.it.

Software estimation techniques (Data Flow Diagrams and Function Points).

Software metrics.

Management of the software quality.

Service architectures design patterns.

DevOps agile development.

Introduction to the Docker platform.

Introduction to Spring Boot

Creating micro-service applications with Spring Cloud (Netflix Eureka).

Creating micro-service applications with Spring Cloud (Netflix Eureka).

Spring Data for MongoDB.

Spring Security.

Developing cross-platform mobile applications with Angular: project setup, component, template and data binding.

Angular: forms, routing and services.

Angular: consuming micro-services.

Ian Sommerville - Engineering Software Products: An Introduction to Modern Software Engineering - Pearson, 2020.

PROGETTAZIONE DI ARCHITETTURE DI SERVIZI (ING-INF/05)
PROGETTAZIONE DI ARCHITETTURE DI SERVIZI

Corso di laurea INGEGNERIA INFORMATICA

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea Magistrale

Crediti 6.0

Docente titolare ROBERTO VERGALLO

Ripartizione oraria Ore totali di attività frontale: 54.0

  Ore erogate dal docente ROBERTO VERGALLO: 36.0

Per immatricolati nel 2022/2023

Anno accademico di erogazione 2022/2023

Anno di corso 1

Semestre Secondo Semestre (dal 01/03/2023 al 09/06/2023)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

The prerequisites for attending the corse are the knowledge of structured programming languages (Java) and the fundamentals of computer science.

After the course the student should be able to: a. Apply main software engineering principles and control software qualities (both internal and external); b. Design and implement software following industrial standards (UML) and structured software production processes; c. Manage the software engineering i.e. execute tasks as planning, organizing, staffing, controlling, estimating (software cost and size); d. Design the software adopting standard software architectures; e. Select and adopt software design patterns (creational patterns, structural patterns, behavioral patterns); f. Verify the software exploiting standard tools and adopting well-known metrics; g. Develop complex model-view-controller web and mobile software systems, exploiting at the back end the Spring framework, and at the front end the Angular framework, connecting them through REST/JSON web services; h. Manage the fundamentals of modern cloud computing and cloud service deployment; i. Use the main open source tools for the software testing and refactoring, and for the software configuration management.

The main goal of the course is to deepen students’ knowledge on modern design and development techniques for interactive software systems. In particular, methods and tools for automated software testing, dev ops and design patterns for micro service architectures. All concepts will be experimented by students designing, developing and testing a software prototype of a service based web application with a mobile extension (app). The software prototype will be developed on top of modern frameworks (Spring, Angular).

Classroom and online lessons, classroom and online practice, project work.

The module will be verified with a small software prototype implementation, intended to verify the practice of micro-service architectures and tests, which will be discussed during an oral examination. The software system must be designed using UML, adopting standard design patterns. The software system must be developed starting from MVC frameworks (Spring, Angular), and must be systematically tested collecting metrics. The software prototype must be developed following an agile process and must be documented. A month before the end of the course, the general requirements of the software prototype will be published by the teacher, a new requirements set for each year. The requirements will be effective till a new set of specifications will appear.

See www.ing.unisalento.it.

Software estimation techniques (Data Flow Diagrams and Function Points).

Software metrics.

Management of the software quality.

Service architectures design patterns.

DevOps agile development.

Introduction to the Docker platform.

Introduction to Spring Boot

Creating micro-service applications with Spring Cloud (Netflix Eureka).

Creating micro-service applications with Spring Cloud (Netflix Eureka).

Spring Data for MongoDB.

Spring Security.

Developing cross-platform mobile applications with Angular: project setup, component, template and data binding.

Angular: forms, routing and services.

Angular: consuming micro-services.

Ian Sommerville - Engineering Software Products: An Introduction to Modern Software Engineering - Pearson, 2020.

PROGETTAZIONE DI ARCHITETTURE DI SERVIZI (ING-INF/05)
PRINCIPI DI INGEGNERIA DEL SOFTWARE

Corso di laurea INGEGNERIA DELL'INFORMAZIONE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Docente titolare LUCA MAINETTI

Ripartizione oraria Ore totali di attività frontale: 54.0

  Ore erogate dal docente ROBERTO VERGALLO: 18.0

Per immatricolati nel 2020/2021

Anno accademico di erogazione 2021/2022

Anno di corso 2

Semestre Secondo Semestre (dal 01/03/2022 al 10/06/2022)

Lingua ITALIANO

Percorso PERCORSO COMUNE (999)

Sede Lecce

Elementi di teoria dell’informatica. Principi e basi per la programmazione. Esecuzione di operazioni seguendo una sequenza codificata di istruzioni elementari. Concetto di algoritmo, algoritmi di base e strutture dati. Concetti di programmazione orientata agli oggetti. Linguaggio Java.

Non vi è alcuna propedeuticità ma sono suggerite le conoscenze di Fondamenti di Informatica II.

Il corso intende fornire conoscenze di ingegneria del software e sviluppare le competenze necessarie per progettare e sviluppare programmi complessi. E’ la naturale prosecuzione del corso di Fondamenti di Informatica II poiché richiede una buona padronanza del linguaggio Java, benché i contenuti teorici siano pienamente autonomi.

Nel concreto, il corso affronta in profondità le tecniche di analisi dei requisiti funzionali e non funzionali, progettazione con UML (Uniform Modeling Language) e sviluppo in Java di sistemi software organizzati secondo architetture standard (design patterns) e livelli di disaccoppiamento che ne facilitino l’evoluzione. Ogni concetto esposto è sperimentato in modo pratico insieme agli studenti, utilizzando il personal computer e strumenti di sviluppo moderni e ampiamente diffusi nel mondo industriale.

Conoscenze e comprensione. Al termine del corso gli studenti: (a) conosceranno i principi dell’ingegneria del software, in relazione alle caratteristiche e alle qualità del software; (b) conosceranno nel dettaglio le architetture software standard, i design patterns e i principi di riuso del software; (c) conosceranno e sperimenteranno i processi di sviluppo agili del software; (d) approfondiranno linguaggio Java in particolare per la costruzione di architetture software evolvibili; (e) comprenderanno le tecniche di condivisione del software e i sistemi di controllo delle versioni; (f) approfondiranno i principali ambienti di sviluppo Java anche in relazione alle necessità di sviluppo in coppia di applicazioni complesse.

Capacità di applicare conoscenze e comprensione. Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti applicativi e, in generale, per la codifica al computer in linguaggio Java di applicazioni software con principi di riuso ed evolvibilità.

Autonomia di giudizio. Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi di modellazione del software da requisiti funzionali e non funzionali, per i quali trovare le soluzioni adeguate a risolverli in linguaggio Java con riferimento a noti design patterns. Diverse soluzioni proposte interattivamente dagli studenti saranno poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative. Gli studenti apprenderanno come comunicare adeguatamente e con il corretto livello di formalismo le scelte di design adottate e le strategie di implementazione scelte. Il metodo di insegnamento interattivo e teorico/pratico favorirà momenti di confronto in cui mettere in pratica tali abilità comunicative. Lo sviluppo di prototipi software in coppia richiederà tecniche di comunicazione allo stato dell’arte per l’ingegneria del software

Capacità di apprendimento. La materia in costante evoluzione (le tecniche di sviluppo orientate alle architetture software standard, i linguaggi che le implementano, gli strumenti di sviluppo) richiederà agli studenti la capacità di aggiornarsi e di ricercare materiale on-line, valutandone anche la qualità. Il metodo didattico favorirà l’approfondimento autonomo e in coppie da parte degli studenti, incuriosendoli su tecniche di sviluppo evolute (vedi il test driven development e le metriche del software) che saranno oggetto del corso magistrale di Software Engineering.

Lezioni frontali (o on-line se l'emergenza sanitaria lo richiederà), esercitazioni pratiche svolte preferibilmente con l’uso del personal computer, elaborazione a coppie di un’applicazione Java.

L'esame prevede una prova orale per la verifica dell'apprendimento dei concetti teorici (verifica delle conoscenze) e della capacità di applicazione dei medesimi, in particolare per la codifica in coppie di applicazioni Java complesse (verifica delle competenze). Durante l’esame, che sarà svolto in coppie, gli studenti dovranno usare preferibilmente il loro personal computer, configurato con gli ambienti di sviluppo illustrati e utilizzati durante il corso.

Presentazione dettagliata del corso e delle modalità d’esame (2 ore). Processi di sviluppo del software (2 ore). Processi agili (2 ore). UML: requisiti e casi d’uso (2 ore). UML: dai requisiti ai diagrammi delle classi, di sequenza e di stato (2 ore). UML: diagrammi delle classi, di sequenza, di stato, dei package e di deployment nel dettaglio (2 ore). Introduzione alle architetture software standard (2 ore). Design patterns (10 ore). Fondamenti di basi di dati: il modello Entità-Relazioni. (2 ore). Fondamenti di basi di dati: dal modello Entità-Relazioni al modello Relazionale. (2 ore). MySQL e SQL (4 ore). Presentazione dell’elaborato software (2 ore). Creare un'applicazione Java: predisporre l'ambiente di sviluppo e l’architettura software (4 ore). Creare un'applicazione Java: implementare le classi (4 ore). Creare un'applicazione Java: accedere a dati esterni (4 ore). Creare un'applicazione Java: realizzare l'interfaccia utente (6 ore). Gestire la sessione in Java (2 ore).

  • Martin Fowler, “UML distilled. Guida rapida al linguaggio di modellazione standard”, Quarta Edizione, Pearson, Maggioli Editore, 2010.
  • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, “Design Patterns: Elementi per il riuso di software a oggetti”, Prima Edizione Italiana, Pearson, 2002.
  • Il manuale di Java consigliato per il corso di Fondamenti di Informatica II.
PRINCIPI DI INGEGNERIA DEL SOFTWARE (ING-INF/05)
SERVICE ARCHITECTURE ENGINEERING C.I.

Corso di laurea COMPUTER ENGINEERING

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea Magistrale

Crediti 4.0

Docente titolare LUCA MAINETTI

Ripartizione oraria Ore totali di attività frontale: 36.0

  Ore erogate dal docente ROBERTO VERGALLO: 27.0

Per immatricolati nel 2021/2022

Anno accademico di erogazione 2021/2022

Anno di corso 1

Semestre Secondo Semestre (dal 01/03/2022 al 10/06/2022)

Lingua

Percorso PERCORSO COMUNE (999)

The prerequisites for attending the corse are the knowledge of structured programming languages (Java) and the fundamentals of computer science.

After the course the student should be able to: a. Apply main software engineering principles and control software qualities (both internal and external); b. Design and implement software following industrial standards (UML) and structured software production processes; c. Manage the software engineering i.e. execute tasks as planning, organizing, staffing, controlling, estimating (software cost and size); d. Design the software adopting standard software architectures; e. Select and adopt software design patterns (creational patterns, structural patterns, behavioral patterns); f. Verify the software exploiting standard tools and adopting well-known metrics; g. Develop complex model-view-controller web and mobile software systems, exploiting at the back end the Spring framework, and at the front end the Angular framework, connecting them through REST/JSON web services; h. Manage the fundamentals of modern cloud computing and cloud service deployment; i. Use the main open source tools for the software testing and refactoring, and for the software configuration management.

The main goal of the course is to deepen students’ knowledge on modern design and development techniques for interactive software systems. In particular, methods and tools for automated software testing, dev ops and design patterns for micro service architectures. All concepts will be experimented by students designing, developing and testing a software prototype of a service based web application with a mobile extension (app). The software prototype will be developed on top of modern frameworks (Spring, Angular).

Classroom and online lessons, classroom and online practice, project work.

The module will be verified with a small software prototype implementation, intended to verify the practice of micro-service architectures and tests, which will be discussed during an oral examination. The software system must be designed using UML, adopting standard design patterns. The software system must be developed starting from MVC frameworks (Spring, Angular), and must be systematically tested collecting metrics. The software prototype must be developed following an agile process and must be documented. A month before the end of the course, the general requirements of the software prototype will be published by the teacher, a new requirements set for each year. The requirements will be effective till a new set of specifications will appear.

See www.ing.unisalento.it.

Software estimation techniques (Data Flow Diagrams and Function Points).

Software metrics.

Management of the software quality.

Service architectures design patterns.

DevOps agile development.

Introduction to the Docker platform.

Introduction to Spring Boot

Creating micro-service applications with Spring Cloud (Netflix Eureka).

Creating micro-service applications with Spring Cloud (Netflix Eureka).

Spring Data for MongoDB.

Spring Security.

Developing cross-platform mobile applications with Angular: project setup, component, template and data binding.

Angular: forms, routing and services.

Angular: consuming micro-services.

Ian Sommerville - Engineering Software Products: An Introduction to Modern Software Engineering - Pearson, 2020.

SERVICE ARCHITECTURE ENGINEERING C.I. (ING-INF/05)
Tecnologie digitali per la produzione dell’audiovisivo

Corso di laurea PROGETTAZIONE E GESTIONE DEI SISTEMI PRODUTTIVI AUDIOVISIVI E PERFORMATIVI

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea Magistrale

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 30.0

Per immatricolati nel 2021/2022

Anno accademico di erogazione 2021/2022

Anno di corso 1

Semestre Primo Semestre (dal 20/09/2021 al 14/01/2022)

Lingua ITALIANO

Percorso PERCORSO COMUNE (993)

Nessuno

Il corso si concentra sulle metodologie e le tecnologie delle discipline audiovisive; l’obiettivo è integrare il sapere relativo alle specificità del linguaggio audiovisivo con lo studio dei possibili utilizzi delle tecnologie digitali. Durante il corso viene presentata una rassegna delle attuali applicazioni in ambito Internet of Things, Intelligenza Artificiale, videomapping ed Extended Reality. Viene inoltre illustrato un focus sui dispositivi di produzione audio/video per le arti performative (danza), la pipeline di produzione di videogame e la produzione di contenuti per la promozione di prodotti audiovisivi sui social media.

Il corso mira a conferire le conoscenze necessarie per poter operare con le moderne tecnologie digitali approfondendo le diverse possibilità applicative. Gli studenti sperimenteranno le diverse fasi della produzione di video anche attraverso testimonianze che provengono dal mondo del lavoro.

L'insegnamento consiste in lezioni teoriche ed esercitazioni pratiche.

Progetto pratico realizzato con il software Adobe Premiere da presentare in sede di esame orale.

Gli argomenti richiesti in sede orale saranno quelli discussi nelle lezioni.

- Internet, Web e Internet of Things

- Protocolli di streaming e codifica video

- Intelligenza artificiale per il video upscaling

- Esercitazioni su Adobe Premiere

- Tecnologie digitali per la produzione video nella danza

- Tecnologie di videomapping applicate ai beni culturali

- Supporto strategico e creativo, piani editoriali e produzione contenuti per canali social

- Extended reality e Human Computer Interaction

- Pipeline di produzione per la realizzazione di videogame e prodotti cinematografici

Slide del corso e registrazioni disponibili su Teams

Tecnologie digitali per la produzione dell’audiovisivo (ING-INF/05)
INFORMATICA

Corso di laurea SCIENZE BIOLOGICHE

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 6.0

Ripartizione oraria Ore totali di attività frontale: 52.0

Per immatricolati nel 2020/2021

Anno accademico di erogazione 2020/2021

Anno di corso 1

Semestre Secondo Semestre (dal 08/03/2021 al 11/06/2021)

Lingua ITALIANO

Percorso PERCORSO GENERICO/COMUNE (PDS0-2008)

Sede Lecce

• Questo corso non ha prerequisiti, chiunque lo può seguire con profitto

• È importante prendere confidenza con gli strumenti informatici oggetti delle esercitazioni del corso utilizzandoli sin da subito

• Caratteristiche generali dell’informatica

• Architettura dei sistemi di elaborazione

• Organizzazione dei dati

• Reti di computer

• Caratteristiche del WEB e WEB 2.0

• Sicurezza informatica

• Internet of Things

• Blockchain

• Machine learning e reti neurali

Parte teorica:

• Fornire una preparazione teorica relativa all’architettura hardware e software del computer, rappresentazione dell’informazione, reti informatiche, Internet of Things, blockchain e machine learning.

 

Parte pratica

• Realizzazione di uno progettino, in coppia, in linguaggio Python su Google Colaboratory. E' possibile fare il progetto singolarmente. Non sono per nessuna ragione ammessi gruppi composti da più di 2 persone.

Lezioni frontali (prima parte del corso) ed esercitazioni (seconda parte). Le lezioni frontali uniscono ad aspetti teorici anche altri applicativi.

La componente pratica consiste di esercitazioni al calcolatore e di esercizi di consolidamento da svolgere a casa con successiva discussione in classe per permettere un monitoraggio puntuale e costante dello sviluppo delle capacità acquisite.

• L’esame consiste in una prova scritta nella quale si dovrà dare dimostrazione di avere acquisito le nozioni e le conoscenze previste dal programma del corso e da una prova orale facoltativa.

• L'esame prevede inoltre la preparazione di un piccolo elaborato di coppia da realizzare in linguaggio Python.

• Gli studenti che abbiano conseguito certificazione ECDL (o equipollente) devono sostenere esclusivamente la prova di teoria sugli argomenti lezioni teoriche.

• Chi ritiene di essere in questa situazione deve produrre copia della propria certificazione alla segreteria didattica, che, dopo averla approvata mi comunicherà con atto formale l’elenco degli esonerati. Solo dopo gli esonerati potranno sostenere l’esame teorico (prenotandosi come se dovessero fare l’esame completo) e verbalizzarlo nello stesso giorno.

Dennis P. Curtin, Kim Foley, Kunal Sen, Cathleen Morin - Informatica di base 6/ed - McGraw Hill - ISBN: 9788838664151

Stef Maruch - Python for Dummies - 1. edizione (29 agosto 2006) - For Dummies - ISBN: 978-0471778646

 

Facoltativo:

Mueller - Python for Data Science For Dummies, 2nd Edition - For Dummies - ISBN: 978-1119547624

INFORMATICA (ING-INF/05)