SOFTWARE ENGINEERING
cod. 06015

Academic year 2024/25
3° year of course - First semester
Professor
Vincenzo BONNICI
Academic discipline
Informatica (INF/01)
Field
Discipline informatiche
Type of training activity
Characterising
72 hours
of face-to-face activities
9 credits
hub:
course unit
in ITALIAN

Learning objectives

the course starts with the analysis of the Software Crisis. It passes through the study of traditional development models, and ends up defining the fundamental architectural aspects of modern software systems with particular attention to web applications.

With reference to the Dublin Indicators:

Knowledge and understanding
The course introduces the first concepts related to software engineering. Particular emphasis is given to understanding classical methodologies. The reference text is in Italian, but English terminology is also used during the lessons as a starting point for consulting international scientific literature.

Ability to apply knowledge and understanding
The theoretical knowledge presented is always applied to the resolution of specific problems. The assigned project accompanying the course focuses on the creation of Web applications. The solution methods are often presented in algorithmic form, developing in students the ability to structure procedures useful in numerous parts of computer science and not only in the study of software engineering.

Autonomy of judgement
The exercises, which are proposed in relation to the theoretical part carried out in class, can be solved individually or in groups. Discussion with classmates, during homework or during classroom discussions on the progress of the project, promotes the development of specific skills to be able to clarify one's arguments to classmates or teachers. Often the problems that arise from the development of the project can be resolved in very different ways and listening to the solutions proposed by others allows you to develop the ability to identify common structures, beyond the apparent superficial differences.

Communication skills
Numerous discussions on different methods for solving the proposed problems allow you to improve communication skills. Furthermore, some communication methods specific to information technology are routinely used during explanations (and explicitly highlighted in class).

Learning ability
The study of the origins of technological solutions and their introduction motivated by qualitative and quantitative considerations contributes to realizing in students the ability to learn in a profound way and not just superficially and repetitively. The knowledge thus acquired is never rigid and definitive, but is perfectly adaptable to any evolution and change in perspective and context.

Prerequisites

Basic computer programming skills.

Course unit content

The course offers the foundations for designing complex software with particular emphasis on web applications.

Full programme

Introduction to complex software systems and software engineering
Software configuration management
Web development methods
Structured and agile software development processes
Design for reuse and design patterns
Software testing

Bibliography

I. Sommerville, Ingegneria del software, 10 ed, Pearson
I. Sommerville, Introduzione all'ingegneria del software moderna, Pearson
M. Fowler, UML Distilled, 4 ed, Pearson
C. Ghezzi, A. Fuggetta, S. Morasca, A. Morzenti, M. Pezze, Ingegneria del Software, Mondadori Informatica, II edizione
Simon Bennett, John Skelton, Ken Lunn, UML, McGraw-Hill
E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns, Addison-Wesley
Lorna Jana Mitchell. PHP web services: APIs for the modern web. O'Reilly.
Nick Rozanski, Eoin Woods. Software Systems Architecture. Addison-Wesley.

Teaching methods

Classes

Assessment methods and criteria

Learning outcomes and assessment methods
Know how to understand and appropriately use the techniques relating to the analysis, design, implementation, testing and validation of software. Know how to work in a web environment to create simple software architectures. Know the basics of project management. Know and be able to use the main techniques for building complex applications.

Verification/examination methods
The exam consists of a written test and a project.

Other information

- - -

2030 agenda goals for sustainable development

- - -