Software Engineering
A.Y. 2024/2025
Learning objectives
The aim is to provide knowledge of models and tools for the analysis, design, development, and testing of software systems, in order to develop the abilities needed to design, develop, and test software systems
Expected learning outcomes
Students will be able to plan the development of medium size software projects. They will have skills on modeling software requirements, developing code from models and performing code testing. They have also skills on design and architectural patterns
Lesson period: First semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
Single course
This course can be attended as a single course.
Course syllabus and organization
Single session
Responsible
Lesson period
First semester
Course syllabus
1. PRODUCT AND PROCESS. Software properties. Software life cycle: software development steps, life cycle models. Agile development methods.
2. REQUIREMENTS AND SPECIFCATIONS. Problem and solution domains. Operational and declarative specification languages.
3. DESIGN AND IMPLEMENTATION. Design patterns. Object Oreinted design principles. Design by Contract.
4. VERIFICATION AND VALIDATION. Analysis and (unit, integration and system) testing.
2. REQUIREMENTS AND SPECIFCATIONS. Problem and solution domains. Operational and declarative specification languages.
3. DESIGN AND IMPLEMENTATION. Design patterns. Object Oreinted design principles. Design by Contract.
4. VERIFICATION AND VALIDATION. Analysis and (unit, integration and system) testing.
Prerequisites for admission
Skills acquired in the courses of Computer Programming 2 is fundamental for this course. Passing this exam is strongly recommended.
Teaching methods
Lessons and lab activities. Attending the teaching activities is strongly recommended.
Teaching Resources
· Ghezzi Carlo, Jazayeri Mehdi, Mandrioli Dino. Fundamentals of Software Engineering. Pearson Education Italia, 2002, 2nd ed.
Assessment methods and Criteria
The examination is divided in two parts: a laboratory project and an oral discussion. The laboratory lasts 4 hours and consists in the development of a software project in Java starting from the requirements provided by the instructors.
The oral discussion focuses on the all the topics of the course and it aims at assessing critical thinking on the subject.
At the end of the oral discussion a final mark (on a 30 point scale) is given, by taking into account: quality of the project developed during the lab part, knowledge of the subject and tools, critical thinking attitude, clarity of exposition and precision of language.
The oral discussion focuses on the all the topics of the course and it aims at assessing critical thinking on the subject.
At the end of the oral discussion a final mark (on a 30 point scale) is given, by taking into account: quality of the project developed during the lab part, knowledge of the subject and tools, critical thinking attitude, clarity of exposition and precision of language.
INF/01 - INFORMATICS - University credits: 12
Laboratories: 48 hours
Lessons: 72 hours
Lessons: 72 hours
Professors:
Bellettini Carlo Nicola Maria, Monga Mattia
Shifts:
Turno
Professor:
Bellettini Carlo Nicola MariaTurno A
Professor:
Bellettini Carlo Nicola MariaTurno B
Professor:
Monga MattiaProfessor(s)