SOFTWARE PLATFORMS

SOFTWARE PLATFORMS

_
iten
Codice
98460
ANNO ACCADEMICO
2018/2019
CFU
6 cfu al 1° anno di 8733 INGEGNERIA INFORMATICA (LM-32) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE
ING-INF/05
SEDE
GENOVA (INGEGNERIA INFORMATICA )
periodo
1° Semestre
materiale didattico

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

The course aims at introducing the architectural patterns and the paradigms that computer engineers use to build complex software systems. The objective is to describe and analyze the main patterns upon which software platforms are based

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

  1. classificare i modelli e gli strumenti per lo sviluppo di Sw Platform, con particolare riferimento al concetto si “servizio”
  2. analizzare e descrivere il funzionamento di Sw Platform esistenti facendo riferimento ai modelli ed agli strumenti acquisiti
  3. progettare Sw Platform, scegliendo le architetture e gli strumenti per l’integrazione maggiormente appropriati
  4. definire le modalita’ di integrazione di Sw Platform
  5. 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

  1. Presentazione degli aspetti teorici e modellistici in aula da parte del docente;
  2. Presentazione di semplici programmi in aula da parte del docente, finalizzati a dimostrare in che modo i modelli presentati vengono utilizzati nella realta';
  3. 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;
  4. Studio ed analisi di Sw Platform esistenti proposte dal docente;
  5. Studio di testi e di White Papers ed in generale di documentazione proposta dal docente.

MODALITA’ DI ACCERTAMENTO

  1. Frequenza ed assiduita’ alle lezioni;
  2. Test sulla conoscenza dei modelli e degli strumenti presentati a lezione;
  3. Sviluppo di documenti di descrizione di Sw Platform esistenti;
  4. 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

  1. Object Oriented Programming in Java
  2. Computer Networks

Modalità didattiche

  1. Presentazione degli aspetti teorici e modellistici in aula da parte del docente;
  2. Presentazione di semplici programmi in aula da parte del docente, finalizzati a dimostrare in che modo i modelli presentati vengono utilizzati nella realta';
  3. 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;
  4. Studio ed analisi di Sw Platform esistenti proposte dal docente;
  5. Studio di testi e di White Papers ed in generale di documentazione proposta dal docente.

PROGRAMMA/CONTENUTO

  1. Introduzione: Architectural Patterns, Paradigms, Frameworks
  2. Java come piattaforma per il supporto all'implmentazione di Software Platform complesse.
    1. Network Interface
    2. Thread Pools
    3. Dynamic Class Loading
  3. Paradigms
    1. Call/Response
    2. Message Passing
    3. Publish and Subscribe
  4. Web Application, Web Services e Service Oriented Architecture
    1. Web Server (Server Side vs Client Side processing)
    2. Web Services
  5. Sw Platforms basate su Microservices
    1. Evoluzione verso devops (Continuous Integration/Continuous Delivery)
    2. Introduzione a Virtual Machines e Containers
    3. Architecture di riferimento
    4. Strumenti per la composizione e per l'orchestrazione
  6. Evoluzione verso il Serverless computing
  7. Analisi dei principi di alcune piattaforme software (ad es. Spreadsheet Space, Blockchain).

TESTI/BIBLIOGRAFIA

Main Reference manuals and books:

  1. Apache Tomcat Manual, www.tomcat.apache.org
  2. Apache Axis 2 Manual, axis.apache.org/axis2/java/core
  3. I. Nadareishvili, R. Mitra, M. Mc Larty & Mike Amundsen, Microservice Architecture, O' Reilly, 2016
  4. Sam Newman, Building Microservices, O' Reilly, 2015
  5. W. Gjda, Pro Vagrant, www.allitebooks.com
  6. S. Goasguen, Docker in the Cloud, O' Reilly, 2016
  7. 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

  1. Presentazione degli aspetti teorici e modellistici in aula da parte del docente;
  2. Presentazione di semplici programmi in aula da parte del docente, finalizzati a dimostrare in che modo i modelli presentati vengono utilizzati nella realta';
  3. 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;
  4. Studio ed analisi di Sw Platform esistenti proposte dal docente;
  5. Studio di testi e di White Papers ed in generale di documentazione proposta dal docente.

ESAMI

Modalità d'esame

  1. Compitino e meta' corso
  2. Esame scritto alla fine del corso per gli studenti che hanno frequentato
  3. Esame orale
  4. In alternatiuva sviluppo di studi monografici.

Modalità di accertamento

  1. Frequenza ed assiduita’ alle lezioni;
  2. Test sulla conoscenza dei modelli e degli strumenti presentati a lezione;
  3. Sviluppo di documenti di descrizione di Sw Platform esistenti;
  4. 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.