Skip to main content
CODE 101807
ACADEMIC YEAR 2025/2026
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INF/01
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 1° Semester

OVERVIEW

This course aims to introduce and analyze current techniques for the design and modeling of large-scale software systems. The course will guide students in their application, with a focus on selecting the most appropriate specializations for specific software projects. Autonomous learning of advanced topics will also be encouraged, in line with the principles of lifelong learning.

AIMS AND CONTENT

LEARNING OUTCOMES

Learning through practical experience the basic conceptual tools for the design and modelling of software systems, and acquiring communication skills and lifelong learning capabilities.

AIMS AND LEARNING OUTCOMES

Upon successful completion of this course, diligent students will be able to:

  • Knowledge and Understanding:
    • Comprehend the fundamental principles and techniques of visual software modeling based on UML.
    • Identify and describe key design concepts, such as patterns, reusable components, tactics, and frameworks for software system development.
    • Explain the core concepts of software system architecture and their design implications.
  • Applying Knowledge and Understanding:
    • Apply visual modeling based on UML to support the architectural design of a software system.
    • Utilize specific patterns, tactics, reference architectures, frameworks, and reusable components in the concrete development of software systems.
    • Design the architecture of a software system, selecting the most appropriate solutions based on requirements.
  • Making Judgements:
    • Critically evaluate various alternative solutions applicable to architectural design problems to select the most suitable ones for a specific project.
    • Analyze and resolve design and quality issues related to software architectures.
  • Communication Skills:
    • Present effectively a complex technical topic to a group of colleagues, demonstrating clarity and argumentative skills.
    • Discuss and collaborate in a team on software design problems.
  • Learning Skills:
    • Independently explore specific technical topics related to the course program.
    • Evaluate their understanding and identify areas for continuous learning, in the spirit of lifelong education.

PREREQUISITES

For successful participation in this course, students must possess solid basic knowledge of:

  • Programming (particularly object-oriented).
  • Databases.
  • Web application development.
  • Use of UML modeling notation.
  • Software Engineering (terminology and main development activities).

For the first four listed topics, in addition to theoretical knowledge, proven practical skills are also required.

TEACHING METHODS

The course will utilize a combination of:

  • Lectures: for the presentation of core concepts and techniques in software design and modeling.
  • Practical and Laboratory Activities: to enable students to apply learned concepts, understand practical challenges, and develop concrete skills.
  • Self-study and Autonomous Presentation: students will be encouraged to autonomously study an in-depth topic related to the program and present it to their peers, thereby developing their self-learning and communication skills.

SYLLABUS/CONTENT

The course will cover the following topics:

  • Software Requirements Review:
    • ​Functional and non-functional requirements.
    • Requirement specification using Use Cases.
    • Goal-oriented requirement specification.
  • Visual Software Modeling:
    • Review of fundamental modeling concepts.
    • Study of the most frequently used UML diagrams in the course's practical activities.
  • Software System Architectures:
    • Principles and basic concepts of software architecture.
    • Design of software system architectures.
    • Attribute-Driven Design (AAD) method with case studies.
    • Various categories of design concepts (various types of patterns, tactics, reference architectures, frameworks, and reusable components).

RECOMMENDED READING/BIBLIOGRAPHY

Core Textbook:

  • Cervantes, H., & Kazman, R. (2016). Designing Software Architectures: A Practical Approach. Addison-Wesley.

Additional Bibliography: Further bibliography and online resources will be indicated and discussed during lectures and made available on the course's AulaWeb page.

TEACHERS AND EXAM BOARD

LESSONS

LESSONS START

According to the calendar approved by the Degree Program Board: https://corsi.unige.it/corsi/11964/studenti-orario

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The exam will consist of three parts:

  • a project, consisting of the development of the design of a software system

  • an oral presentation of a recent technical innovation related to the software development

  • an oral examination and  project discussion

ASSESSMENT METHODS

The quality of the project delivered will allow the teachers to evaluate the student understanding of the design method and their knowledge of the conceptual tools involved.
The oral presentation of innovative technologies will allow the teachers to assess the students' communication skills and their capabilities of self-learning, together with the depth of their technological understanding.
The final oral will start with the project discussion to understand the individual contributions to the project and generate related technical questions to better evaluate students' knowledge.

FURTHER INFORMATION

 

For further information, please refer to the course’s AulaWeb module or contact the instructor.

OpenBadge

 PRO3 - Soft skills - Imparare a imparare avanzato 1 - A
PRO3 - Soft skills - Imparare a imparare avanzato 1 - A