CODE 101807 ACADEMIC YEAR 2025/2026 CREDITS 9 cfu anno 1 COMPUTER SCIENCE 11964 (LM-18) - GENOVA 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 GIANNA REGGIO Ricevimento: Appointment to be required by email MAURA CERIOLI Ricevimento: On request by email 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