Skip to Main Content (Press Enter)

Logo UNINSUBRIA
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations
  • Third Mission
  • Projects
  • Expertise & Skills

UNI-FIND
Logo UNINSUBRIA

|

UNI-FIND

uninsubria.it
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations
  • Third Mission
  • Projects
  • Expertise & Skills
  1. Courses

SCV0035 - Software Design

courses
ID:
SCV0035
Duration (hours):
72
CFU:
8
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Located in:
Varese - Università degli Studi dell'Insubria
Year:
2025
  • Overview
  • Syllabus
  • Degrees
  • People

Overview

Date/time interval

Primo Semestre (22/09/2025 - 19/12/2025)

Syllabus

Course Objectives

The goal of the course is to provide students with the necessary knowledge for the design of software systems whose functionalities and qualities fully satisfy users' and developers' needs. To this end, the students learn software design techniques at both the conceptual and application levels, the Unified Modeling Language (UML), which is de facto standard software design language, and design patterns. In addition, they learn the fundamental concepts of software quality and the basic software verification and validation techniques. At the end of the course, students will be able to 1. Apply the conceptual foundations of software design 2. Model and analyze complex systems and problems, via abstraction and formalization mechanisms 3. Recognize and apply several software design styles 4. Know and apply UML's most important and most used diagrams, such as Use Case Diagrams, Sequence Diagrams, Communication Diagrams, Class Diagrams, Package Diagrams, Object Diagrams, Statecharts, Activity Diagrams, Timing Diagrams, Composite Structure Interaction Diagrams 5. Know the main design patterns and their families 6. Apply UML and design patterns when designing a software system. 7. Know and apply the basic software verification and validation techniques. Students will develop judgement skills to analyze a software system's design by themselves or in teams, at several abstraction and complexity levels. Students will be able to master the usual and standard software design terminology, possibly in the English language, and to present with the correct terminology functional and quality characteristics of a software design. Thus, they can present a software system design's strengths and interpret possible modification proposals made by the other stakeholders of the software production process.

Course Prerequisites

Students are required to have good knowledge about software programming. Good knowledge of written English is recommended, so the students can take full advantage of the course material made available by the instructor or generally available online.

Teaching Methods

Lectures (48 hours) and exercise classes (24 hours). Lectures will present conceptual and application aspects of software design. The course topics will be applied during hands-on exercise classes about software verification and validation and the development of small- and medium-size software designs with UML by optionally using development tools.

Assessment Methods

The extent to which students learn the subject is assessed via a written test (duration: 4 hours). As an alternative, students can take a mid-term and a final test during the course. By passing both, students will have passed the exam. The goal of the written test (as well as the mid-term and final tests) is to assess the learning degree and the understanding of the elements related to software design, verification, and validation from both a theoretical and an application points of view (on problems of limited complexity). Written tests (as well as the mid-term and final tests) consist of: - questions for the assessment of the knowledge of conceptual software design aspects - an exercise on software verification and validation - an exercise to assess the understanding and the knowledge of the fundamental concepts of UML and design patterns and the ability to develop software designs—solutions to be provided on paper. The knowledge of specific terminology is assessed in an implicit way, since questions and exercise specifications use the terminology. Individual judgment skills are evaluated based on the decisions made during the written exam. Answers to questions provide around 30% of the final mark, while the exercises the remaining 70%. The final mark is expressed on a 0 to 30 scale.

Contents

The following topics will be taught in the course: The quality of software and its production process (20 h, teaching objective 1 and 7) - Introduction to ISO9126 - the waterfall development model - agile development - software testing and analysis techniques Object-oriented design in-the-small and its relationships with coding (8 h, teaching objective 2) - principles of design-in-the-small - information hiding - method design Conceptual aspects of design in-the-large (6 h, teaching objectives 2 and 3) - modules and their relations - inheritance as a conceptual tool for software design - software design description languages - design styles Unified Modeling Language (UML) (30 h, teaching objectives 4 e 6) - Structure of UML and diagram views - Use Case Diagrams, Sequence Diagrams, Communication Diagrams, Class Diagrams, Package Diagrams, Object Diagrams, Statecharts, Activity Diagrams, Timing Diagrams, Composite Structure Interaction Diagrams Design patterns (8 h, teaching objectives 5 e 6) - Underlying concepts and usefulness of design patterns - Design pattern taxonomy - Design pattern examples and applications - Model-View-Controller design pattern

Course Language

Italian

More information

To set up an appointment, students need to send an e-mail request to sandro.morasca@uninsubria.it.

Degrees

Degrees

COMPUTER SCIENCE 
Bachelor’s Degree
3 years
No Results Found

People

People (2)

GALLO IGNAZIO
Settore INFO-01/A - Informatica
PE6_11 - Machine learning, statistical data processing and applications using signal processing (e.g. speech, image, video) - (2020)
Goal 3: Good health and well-being
Gruppo 01/INFO-01 - INFORMATICA
Goal 4: Quality education
AREA MIN. 01 - Scienze matematiche e informatiche
Goal 9: Industry, Innovation, and Infrastructure
PE6_7 - Artificial intelligence, intelligent systems, multi agent systems - (2020)
PE6_8 - Computer graphics, computer vision, multi media, computer games - (2020)
Ricercatori
MORASCA SANDRO
Gruppo 09/IINF-05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
PE6_3 - Software engineering, programming languages and systems - (2024)
AREA MIN. 09 - Ingegneria industriale e dell'informazione
Settore IINF-05/A - Sistemi di elaborazione delle informazioni
Docenti di ruolo di Ia fascia
No Results Found
  • Accessibility
  • Use of cookies

Powered by VIVO | Designed by Cineca | 26.4.5.0