Acquire the basic scientific and professional principles of software engineering in the different phases of code development: planning, design, modeling, implementation, testing, verification and maintenance.
The objective of the course is to provide an overview of Software Engineering necessary for the design and development of large modern software systems, as well as to introduce concepts, notations, methods and tools to follow the entire life cycle of the software.
At the end of the course, the student will be able to:
To successfully follow this course, it is necessary to have passed the exams in Introduction to Programming and Object-Oriented Programming, and therefore to be familiar with the Imperative and Object-Oriented programming paradigms.
The following knowledge is assumed to have been acquired and constitutes the necessary basis for understanding the topics of the course:
The course includes both lectures and laboratory activities
AulaWeb will be used for three purposes: as a repository of course materials; as a channel for the bureaucratic communications, explanations, discussions related to the course; and finally to facilitate teamwork
The course program includes the presentation and discussion of the following topics:
Ricevimento: Appointment by email
FILIPPO RICCA (President)
GIANNA REGGIO
MAURIZIO LEOTTA (President Substitute)
In accordance with the teaching calendar approved by the Council of Study Programs in Computer Science and Computer Science
The exam consists of the following activities
Laboratory activities
The course includes laboratory activities to be carried out in groups. For some of these activities, the delivery of the work performed will be required. For others, student participation will simply be monitored. Alternative activities to be delivered via AulaWeb will be proposed to those (e.g. working students) who are unable to attend the laboratory activities.
Written
The written exam will consist of multiple-choice questions. The questions will be both theoretical and practical, covering the topics discussed in class.
During the lessons, some examples of possible questions will be discussed so that by the end of the course the type of exam will be clear
The laboratory activity aims to ascertain the collaborative skills in solving problems within the topics covered in the course, in particular the use of UML, refactoring and software testing. The written test has the objective of verifying the knowledge of both theoretical and practical aspects of the discipline. The specific knowledge of the subject and the ability of critical reasoning will be considered.