Unit SOFTWARE ENGINEERING

Course
Informatics
Study-unit Code
55024706
Curriculum
In all curricula
Teacher
Francesco Betti Sorbelli
Teachers
  • Francesco Betti Sorbelli
Hours
  • 42 ore - Francesco Betti Sorbelli
CFU
6
Course Regulation
Coorte 2024
Offered
2025/26
Learning activities
Base
Area
Formazione informatica di base
Sector
INF/01
Type of study-unit
Obbligatorio (Required)
Type of learning activities
Attività formativa monodisciplinare
Language of instruction
Italian
Contents
The course provides an introductory overview of software engineering, focusing on the fundamental principles and models that guide the design and development of modern digital systems. It covers methods for analysis and design, along with key techniques for ensuring software quality, maintenance, and evolution. Part of the course is dedicated to verification and validation methods, good programming practices, and essential security aspects. Strategies for reuse, integration, and the management of existing software components are also presented, offering a modern and flexible perspective on the overall development process.
Reference texts
The primary course materials consist of the notes and slides provided on the UniStudium platform. The main reference text is I. Sommerville, *Software Engineering* (Pearson, latest edition), supplemented, when necessary, by additional resources recommended by the instructor for specific topics.
Educational objectives
The aim of the course is to provide a clear understanding of the essential techniques for software design and of the main phases of the development process, from requirements definition to maintenance, in accordance with internationally recognized methodologies and best practices.

By the end of the course, students will have acquired basic knowledge of techniques and standards for software analysis, design and development, of metrics for evaluating software systems, of fundamental testing and security practices, of design patterns, and of software integration methods.

The skills developed include the ability to apply analysis, design and testing techniques to simple case studies, to collaborate effectively within a group project, and to recognize when to adopt appropriate design patterns and integration strategies.
Prerequisites
The prerequisites for effectively learning and understanding the contents of this course include basic programming knowledge, familiarity with object-oriented programming, elements of logic, and an understanding of the fundamental concepts of algorithmic complexity, efficiency, and data structures.
Teaching methods
In class lectures.
Other information
Elearning platform for student-lecturer interaction and communication http://www.unistudium.unipg.it
Learning verification modality
Final written exam.
Extended program
The course introduces software both as a process and as a product, presenting the main lifecycle models and the methodologies that guide requirements analysis, system design, implementation, testing, and maintenance. It covers the essential concepts for defining requirements, structuring software projects, and applying verification and validation techniques, with reference to widely adopted industrial practices and modeling approaches.

A section of the course focuses on the fundamentals of software modeling, including standard languages for representing requirements, architectures, and system behavior. Practical exercises on illustrative case studies are included, together with the use of tools supporting development activities, version control, and documentation.

The course also addresses key aspects of software quality and the main metrics used to evaluate software systems, as well as essential concepts related to reliability, security, and testing, with examples drawn from common secure programming practices.

Finally, the course introduces the fundamental principles of software reuse, design patterns, and software integration techniques, providing an overview of the most common solutions used to build complex and interoperable software systems.
Obiettivi Agenda 2030 per lo sviluppo sostenibile
Quality Education
Industry , Innovation, Infrastrucures
Sustainable cities and communities
Share on/Follow us on