- Docente: Alessandro Ricci
- Crediti formativi: 6
- SSD: ING-INF/05
- Lingua di insegnamento: Inglese
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Cesena
- Corso: Laurea Magistrale in Ingegneria e scienze informatiche (cod. 8614)
-
dal 18/09/2023 al 18/12/2023
Conoscenze e abilità da conseguire
The goal of this course is to introduces the essential concepts of software architecture and related abilities expected for a software architect in the practice of software engineering, including the application of modern architectures (e.g. Service-Oriented Architectures and REST, microservices, event-driven Architectures, cloud-computing architectures) to concrete application contexts, including cyber-physical systems and the IoT. The student will learn to: - analyze how a software architecture relates to an organization and identify its quality attributes; - design software architectures using fundamental principles, patterns, and styles; - implement, deploy and manage software architectures using proper software platforms; - document and evaluate software architectures, using standard languages (e.g. UML) and tools.
Contenuti
- Software Architecture introduction
-- What do we mean for Software Architecture and Architectural Thinking
-- The Role of Software Architect
- Software Architecture foundations
-- Basic Concepts and Design Principles
-- Architectural Styles and Patterns
--- main examples including Layered Architecture, Clean Architecture, Service-Oriented Architecture, Microservices, Event-Driven Architecture
- Software Architecture and the Software Engineering Process
-- Architectural Significant Requirements
-- Designing, implementing, evaluating, documenting, evolving a software architecture
-- Software Architectures and Domain-Driven Design
-- Software Architectures and DevOps
- Software Architectures in Practice - selected domains and case studies
-- Pervasive Computing, Internet of Things and Web of Things - with a focus on Digital Twins
-- Enterprise Applications and Cloud Computing
-- Autonomous/Intelligent Systems - with a focus on Intelligent Agents and Cognitive Architectures
Testi/Bibliografia
Mark Richardson and Neal Ford. Fundamental of Software Architecture - An Engineering Approach O'Reilly (2020)
Richard N. Taylor et al. Software Architecture - Foundations, Theory, and Practice. Wiley (2010)
Robert C. Martin. Clean Architecture. Addison Wesley (2018)
Len Bas et al. Software Architecture in Practice. Addison Wesley (2022, 4th ed.)
Martin Fowler. Patterns of Enterprise Application Architecture. Addison Wesley (2003)
Gregor Hohpe. The Software Architect Elevator. O'Reilly (2020)
Metodi didattici
Three credits (about 30 hours) are devoted to theory and activities in the classroom and three credits (about 30 hours) to practice in the lab.
Modalità di verifica e valutazione dell'apprendimento
The final assessment is composed by two parts:
- practical part: a set of three assignments assigned during the course or a single project assigned at the end of the course
- an oral discussion, with questions about the theory and the assignments/project
Strumenti a supporto della didattica
- slides projected during the lectures, available on the course web site
- scientific papers and articles
Link ad altre eventuali informazioni
https://virtuale.unibo.it/course/view.php?id=53404
Orario di ricevimento
Consulta il sito web di Alessandro Ricci