SOFTWARE PLATFORMS
PRESENTAZIONE
Il Corso di Sw Platforms si inquadra nel contesto della progettazione e dello sviluppo del Software, attivita’ che richiedono non soltanto la conoscenza dei linguaggi di programmazione ma anche e specialmente la conoscenza di modelli e strumenti di sviluppo in continua evoluzione. A partire dal linguaggio Java descrive i modelli e gli strumenti alla base delle Web Applications, dei Web Services, dei Microservices, e introduce l’evoluzione verso il serverless computing.
OBIETTIVI E CONTENUTI
OBIETTIVI FORMATIVI
Il corso si pone come obiettivo generale quello di introdurre i paradigmi e le architetture di riferimento sui quali gli Ingegneri Informatici basano la progettazione e lo sviluppo di sistemi software complessi e come obiettivo specifico quello di analizzare il caso della realizzazione delle piattaforme software.
OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO
OBIETTIVI FORMATIVI
Lo scopo dell’insegnamento e’ quello di fornire la conoscenza sui modelli e sugli strumenti alla base della progettazione e dello sviluppo di Sw Platforms. E” un corso di tipico di Ingegneria, rivolto non tanto a descrivere le modalita' con cui progettare e sviluppare Sw Platfroms quanto a descrivere i principi alla base del funzionamento delle stesse. Poiche’ le Sw Platform sono basate sul concetto di “servizio” l'insegnamento si concentrera’ su tale concetto e sulle modalita’ con le quali lo stesso e’ stato declinato nel passato e viene oggi declinato.
RISULTATI DI APPRENDIMENTO
Al termine dell’insegnamento lo studente sara’ in grado di
- classificare i modelli e gli strumenti per lo sviluppo di Sw Platform, con particolare riferimento al concetto si “servizio”
- analizzare e descrivere il funzionamento di Sw Platform esistenti facendo riferimento ai modelli ed agli strumenti acquisiti
- progettare Sw Platform, scegliendo le architetture e gli strumenti per l’integrazione maggiormente appropriati
- definire le modalita’ di integrazione di Sw Platform
- confrontare diversi modelli di sviluppo ed integrazione di Sw Platform
La capacita’ di analisi del funzionamento delle Sw Platform e’ la caratteristica distintiva di questo corso. A differenza dei “programmatori”, che tipicamente sviluppano sistemi sw complessi semplicemente utilizzando piattafiorme esistenti in modo non sempre critic e consapevole, gli Ingegenri che avranno seguito l’insegnamento di Sw Platform avranno un'elevata sensibilita’ verso la comprensione delle modalita’ di funzionamento delle piattaforme utilizzate.
METODI DIDATTICI
- Presentazione degli aspetti teorici e modellistici in aula da parte del docente;
- Presentazione di semplici programmi in aula da parte del docente, finalizzati a dimostrare in che modo i modelli presentati vengono utilizzati nella realta';
- Realizzazione di semplici programmi da parte degli studenti (si incoraggiano gli studenti a venire a lezione con un laptop), da un lato per favorire un atteggiamento critico verso la materia e dall'altro per favorire l'acquisizione di competenze operative;
- Studio ed analisi di Sw Platform esistenti proposte dal docente;
- Studio di testi e di White Papers ed in generale di documentazione proposta dal docente.
MODALITA’ DI ACCERTAMENTO
- Frequenza ed assiduita’ alle lezioni;
- Test sulla conoscenza dei modelli e degli strumenti presentati a lezione;
- Sviluppo di documenti di descrizione di Sw Platform esistenti;
- Analisi della capacita’ di sviluppo di semplici programmi come quelli descritti a lezione
L’obiettivo che ci si pone e’ che la valutazione dello student abbia inizio durante il corso delle lezioni, attraverso l’esecuzione di esercizi proposti dal docente e l’analisi di Sw Platform esistenti, e termini alla fine del corso attraverso una discussione con il docente nel quale quanto sviluppato durante il corso viene consolidato.
PREREQUISITI
- Object Oriented Programming in Java
- Computer Networks
Modalità didattiche
- Presentazione degli aspetti teorici e modellistici in aula da parte del docente;
- Presentazione di semplici programmi in aula da parte del docente, finalizzati a dimostrare in che modo i modelli presentati vengono utilizzati nella realta';
- Realizzazione di semplici programmi da parte degli studenti (si incoraggiano gli studenti a venire a lezione con un laptop), da un lato per favorire un atteggiamento critico verso la materia e dall'altro per favorire l'acquisizione di competenze operative;
- Studio ed analisi di Sw Platform esistenti proposte dal docente;
- Studio di testi e di White Papers ed in generale di documentazione proposta dal docente.
PROGRAMMA/CONTENUTO
- Introduzione: Architectural Patterns, Paradigms, Frameworks
- Java come piattaforma per il supporto all'implmentazione di Software Platform complesse.
- Network Interface
- Thread Pools
- Dynamic Class Loading
- Paradigms
- Call/Response
- Message Passing
- Publish and Subscribe
- Web Application, Web Services e Service Oriented Architecture
- Web Server (Server Side vs Client Side processing)
- Web Services
- Sw Platforms basate su Microservices
- Evoluzione verso devops (Continuous Integration/Continuous Delivery)
- Introduzione a Virtual Machines e Containers
- Architecture di riferimento
- Strumenti per la composizione e per l'orchestrazione
- Evoluzione verso il Serverless computing
- Analisi dei principi di alcune piattaforme software (ad es. Spreadsheet Space, Blockchain).
TESTI/BIBLIOGRAFIA
Main Reference manuals and books:
- Apache Tomcat Manual, www.tomcat.apache.org
- Apache Axis 2 Manual, axis.apache.org/axis2/java/core
- I. Nadareishvili, R. Mitra, M. Mc Larty & Mike Amundsen, Microservice Architecture, O' Reilly, 2016
- Sam Newman, Building Microservices, O' Reilly, 2015
- W. Gjda, Pro Vagrant, www.allitebooks.com
- S. Goasguen, Docker in the Cloud, O' Reilly, 2016
- D. Rensin, Kubernetes, O' Reilly 2015
DOCENTI E COMMISSIONI
Ricevimento: In coda alle lezioni durante il periodo delle lezioni. Su appuntamento nellla restante parte dell'anno.
Commissione d'esame
MASSIMO MARESCA (Presidente)
ALBERTO GIORDANO
PIERPAOLO BAGLIETTO
LEZIONI
Modalità didattiche
- Presentazione degli aspetti teorici e modellistici in aula da parte del docente;
- Presentazione di semplici programmi in aula da parte del docente, finalizzati a dimostrare in che modo i modelli presentati vengono utilizzati nella realta';
- Realizzazione di semplici programmi da parte degli studenti (si incoraggiano gli studenti a venire a lezione con un laptop), da un lato per favorire un atteggiamento critico verso la materia e dall'altro per favorire l'acquisizione di competenze operative;
- Studio ed analisi di Sw Platform esistenti proposte dal docente;
- Studio di testi e di White Papers ed in generale di documentazione proposta dal docente.
ESAMI
Modalità d'esame
- Compitino e meta' corso
- Esame scritto alla fine del corso per gli studenti che hanno frequentato
- Esame orale
- In alternatiuva sviluppo di studi monografici.
Modalità di accertamento
- Frequenza ed assiduita’ alle lezioni;
- Test sulla conoscenza dei modelli e degli strumenti presentati a lezione;
- Sviluppo di documenti di descrizione di Sw Platform esistenti;
- Analisi della capacita’ di sviluppo di semplici programmi come quelli descritti a lezione
L’obiettivo che ci si pone e’ che la valutazione dello student abbia inizio durante il corso delle lezioni, attraverso l’esecuzione di esercizi proposti dal docente e l’analisi di Sw Platform esistenti, e termini alla fine del corso attraverso una discussione con il docente nel quale quanto sviluppato durante il corso viene consolidato.