77805 - SOFTWARE ARCHITECTURES

Academic Year 2018/2019

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Computer Science (cod. 8028)

Learning outcomes

At the end of the course the student will be able to describe and evaluate the overall structure of complex software-intensive systems, especially of the most known ones oriented to services, including platforms and products for playing games.

Course contents

The course “Software Architecture” presents the main ideas on design methods and technologies, especially in connection with agile development (like microservices), useful to build large and complex software-intensive systems

Prerequisites:

Be able to program with an o-o language like Java or C#

Basic notions of software engineering

IMPORTANT: you should be able to recognize and use the main design patterns

Syllabus:

•Software: engineering vs architecting •The qualities of software systems •Describing software architectures •Architecting with agile methods •Languages for software architecting •Architectural styles •Special styles: interactive, distributed, cloud •Model Driven Architecture •Enterprise architecture •Evaluating a software architecture

Readings/Bibliography

H.Cervantes & R. Kazman, Designing Software Architectures, AddisonWesley 2016

Additional material will be distributed during the course

Teaching methods

Lectures

Workshops in which students create and discuss software architectures

Assessment methods

•Attending class 10%

•Report on a sw architecture topic 50%

•Presentation of the report 40%

Links to further information

http://www.cs.unibo.it/cianca/wwwpages/swarch.html

Office hours

See the website of Paolo Ciancarini