Scheda programma d'esame
ADVANCED SOFTWARE ENGINEERING
(SOFTWARE ENGINEERING)
ANTONIO BROGI
Anno accademico2017/18
CdSINFORMATICA E NETWORKING
Codice290AA
CFU9
PeriodoPrimo semestre
LinguaInglese

ModuliSettore/iTipoOreDocente/i
INGEGNERIA DEI SERVIZI SOFTWAREINF/01LEZIONI72
ANTONIO BROGI unimap
Obiettivi di apprendimento
Conoscenze

Students will study the main aspects in the design, analysis, development and deployment of modern software systems, in particular of service-based and cloud-based systems.

Modalità di verifica delle conoscenze

Such knowledge will be assessed with questions in the final oral exam and with exercises developed in the lab sessions (and, optionally, in the homework assignments during the term).

Capacità

Students will learn how to face in the design, analysis, development and deployment of modern software systems, in particular of service-based and cloud-based systems.

Modalità di verifica delle capacità

Such knowledge will be assessed with questions in the final oral exam and with exercises developed in the lab sessions (and, optionally, in the homework assignments during the term).

Comportamenti

Students will learn how to face in the design, analysis, development and deployment of modern software systems, in particular of service-based and cloud-based systems.

Modalità di verifica dei comportamenti

Such knowledge will be assessed with questions in the final oral exam and with exercises developed in the lab sessions (and, optionally, in the homework assignments during the term).

Prerequisiti (conoscenze iniziali)

None.

Indicazioni metodologiche

The course is given with traditional classes and with “hands on” lab classes.

All information on the course is available from the Web page devoted to the course, which also links the moodle site employed for the course.

Optional homework assignments are given during the term.

Programma (contenuti dell'insegnamento)

Service-based software engineering

  • Core interoperability standards (REST, XML, SOAP, WSDL)
  • Software design by service composition (WS-BPEL, syntax & semantics)
  • Business process modelling and analysis (with workflow nets)

Cloud-based software engineering

  • Introduction to cloud computing
  • DevOps techniques (TOSCA, Docker, combining TOSCA and Docker, microservices, CICD)
  • Introduction to fog computing

Hands-on laboratory

  • Java 101, GitHub 101, REST, Spring Boot, Heroku, WS-BPEL with OpenESB, workflow nets with WoPeD
  • Docker, TosKer, TosKeriser, Jenkins, fog computing with micro:bit, thingspeak and node.js
Bibliografia e materiale didattico

[1] A. Brogi, S. Forti. Advanced Software Engineering – Lecture Notes. 2017.

[2] R. Buyya, C. Vecchiola, T. Selvi. Mastering Cloud Computing. 2013. /*Chapter 1 only.*/

[3] P. Lipton. Escaping Vendor Lock-in with TOSCA, an emerging Cloud Standard for Portability. 2013.

[4] Docker Documentation

[5] A. Brogi, L. Rinaldi, J. Soldani. TosKer: Orchestrating applications with TOSCA and Docker. In V. Stolz and A. Zoltán (editors), Advances in Service-Oriented and Cloud Computing: Workshops of ESOCC 2017, CCIS series, 2017. (In press.)

[6] A. Brogi, D. Neri, L. Rinaldi, J. Soldani. From (incomplete) TOSCA specifications to running applications, with Docker. In A. Cerone and M. Roveri (editors), SEFM 2017 Workshops, LNCS series, 2017. (In press.)

[7] J. Lewis, M. Fowler. Microservices. 2014.

[8] Thoughtworks. Continuos integration.

[9] J. Willis. Docker and the Three Ways of DevOps.

[10] A. Dastjerdi, R. Buyya. Fog Computing: Helping the Internet of Things Realize Its Potential. IEEE Computer 49(8): 112-116, 2016.

[11] Slides used in the lab

Indicazioni per non frequentanti

All information on the course is available from the Web page devoted to the course, which also links the moodle site employed for the course.

Modalità d'esame

The final evaluation will consist of:

  • an oral presentation on a topic chosen by the student, and
  • some questions on the topics of the syllabus, and
  • increment for the [optional] homework assignments submitted during the term.
Ultimo aggiornamento 14/01/2018 16:55