- Docente: Alessandro Ricci
- Crediti formativi: 6
- SSD: ING-INF/05
- Lingua di insegnamento: Inglese
- Moduli: Alessandro Ricci (Modulo 1) Andrea Omicini (Modulo 2) Danilo Pianini (Modulo 3)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2) Convenzionale - Lezioni in presenza (Modulo 3)
- Campus: Cesena
-
Corso:
Laurea Magistrale in
Digital Transformation Management (cod. 5815)
Valido anche per Laurea Magistrale in Ingegneria e scienze informatiche (cod. 8614)
Conoscenze e abilità da conseguire
Students will get acquainted with basic aspects of the following topics: - service-oriented architectures, API, microservices: principles, technologies, enterprise viewpoint - cloud computing: principles, technologies, enterprise viewpoint - agile development: principles and methodologies, the role of testing, the case of SCRUM - devops: DVCS, agile project management tools, continuous development/integration/delivery - intelligent systems: definitions, problems, applications - multi-agent systems for the engineering of intelligent systems: models, technologies, methodologies
Contenuti
The course is structured in three modules.
The first one, Principles and Methods", provides an introduction about the basic aspects that concern the engineering of modern software systems, focusing in particular on team organization and workflow, discussing methodological aspects and introducing supporting tools.
The second and third modules focus on two broad topics that are paramount in the modern digital age, namely the engineering of distributed systems and enterprise applications" and the engineering of intelligent systems.
A detailed list of the selected topics covered in the modules follows:
PRINCIPLES AND METHODS
- the role of software and software engineering in the digital age - an overview
- agile development: principles and methodologies, the role of testing, the case of SCRUM
- devops: DVCS, agile project management tools, continuous development/integration/delivery
ENGINEERING DISTRIBUTED SYSTEMS AND ENTERPRISE APPLICATIONS
- service-oriented architectures, API, microservices: principles, technologies, enterprise viewpoint
- cloud computing: principles, technologies, enterprise viewpoint
ENGINEERING INTELLIGENT SYSTEMS
- intelligent systems: definitions, problems, applications
- multi-agent systems for the engineering of intelligent systems: models, technologies, methodologies
Testi/Bibliografia
M. Richards, N. Ford.
Fundamentals of Software Architecture: An Engineering Approach. A Comprehensive Guide to Patterns, Characteristics, and Best Practices
O'Reilly
R. C Martin
Clean Agile: Back to Basics
Pearson
L. Zhu, L. J. Bass
DevOps: A Software Architect's Perspective
Addison Wesley
T. Erl
Service-Oriented Architecture Concept, Technology, and Design.
Prentice-Hall
T. Erl et al.
SOA with REST - Principles, Patterns & Constraints for Building Enterprise Solutions with REST.
Prentice-Hall. 2013
S. Newmann
Building Microservices.
O’Reilly
C. Richardson.
Microservices Patterns.
Manning, 2019
M. Wooldridge
Introduction to Multi-Agent Systems. 2nd edition
Wiley
Frederick Phillips Brooks Jr.
The Mythical Man-Month: Essays on Software Engineering
Addison-Wesley
Eric Evans
Domain-Driven Design: Tackling Complexity in the Heart of Software
Addison-Wesley
Metodi didattici
Lectures and hands-on practical sessions in the lab. Lectures will be face-to-face (if the conditions and recommendation in response to the pandemic allow for them), yet the whole course will be attendable (interactively) online.
Modalità di verifica e valutazione dell'apprendimento
The exam consists in the discussion of a project, to be developed and presented in groups.
Evaluation criteria and grading:
- 18-23:the student shows sufficient knowledge about the basic concepts and a sufficient technical and methodological preparation;
- 24-27: the student shows good knowledge about the conceptual part and adequate capabilities of applying concepts in practice;
- 28-30: the student shows good knowledge about the conceptual part, good critical and analytical skills, a good capability of applying concepts in practice by means of a satisfactory technical and methodological preparation;
- 30L: the student shows excellent knowledge about the conceptual part, extensive critical and analytical skills, remarkable abilities in applying concepts in practice by means of a robust technical and methodological preparation.
Strumenti a supporto della didattica
During the term of the lectures, material (both slides and lab exercises) will be available on Virtuale.
Orario di ricevimento
Consulta il sito web di Alessandro Ricci
Consulta il sito web di Andrea Omicini
Consulta il sito web di Danilo Pianini