Software Engineering

Course objectives

General objectives: The course explains the fundamentals of the methodologies and tools for the management of software processes. Particular attention is given to object-oriented analysis and design methodologies, and to their management and documentation through UML. Specific objectives: Introduction to software engineering approaches and software life cycle, in-depth analysis of the specific activities, analysis, design and testing of software systems, techniques for process management, with particular reference to the management of quality and risks and all 'cost analysis. Knowledge and understanding: At the end of the course students will have acquired knowledge about the main models of the software life cycle, the metrics for the sizing of the effort, the techniques for describing the different components of a software project. Knowledge about the use of UML language will have been acquired. Finally, they will also have become familiar with the scientific literature in the field. Application of knowledge and understanding: At the end of the course students will be able to work as a team in the activities of analysis, design, documentation and management of medium-sized software projects. Students will have learned to produce documentation based on UML, relative to the main types of diagrams: use cases, classes, interaction, status and activities, also through the use of professional software environments oriented to the systematic development of software projects. Finally, they will be able to produce an evaluation of the effort based on Function Points and Use Case Points. Judgment skills: Students will develop the analytical skills necessary to evaluate various alternatives during the software development process, with particular reference to the evaluation of architectural choices and project risks. Communication skills: Students will learn to document their choices, also through the use of documentation generation tools, in particular by exploiting diagrammatic notations. They will also have acquired the ability to prepare presentations related to scientific topics. Learning ability: The knowledge of the formal rigor aspects underlying the software engineering discipline will allow students to quickly gain confidence with techniques, in addition to those considered in the course, based on general principles.

Channel 1
ENRICO TRONCI Lecturers' profile

Program - Frequency - Exams

Course program
Basically, the course consists of three parts: introduction to software engineering and to the software life cycle; specification, analysis, design and testing of software systems; techniques for process management, mainly focusing on management of quality, management of risks, cost analysis.
Prerequisites
All topics covered during the first two years of "Laurea Triennale in Informatica". Examples of expected background knowledge are Calculus, Algebra, Programming Methodologies, Databases, Operating Systems, algorithms, Automata, and Digital Systems.
Books
Ian Sommerville, Software Engineering, 10th Edition Pearson Slides and lecture notes made available by the teacher on course web page inside Sapienza elearning web site: https://elearning2.uniroma1.it/
Teaching mode
Class lectures.
Frequency
Optional.
Exam mode
Written and oral and/or lab exam.
Bibliography
Ian Sommerville, Software Engineering, 10th Edition Pearson Slides and lecture notes made available by the teacher on course web page inside Sapienza elearning web site: https://elearning2.uniroma1.it/
Lesson mode
Class lectures.
  • Lesson code1022301
  • Academic year2024/2025
  • CourseInformatics
  • CurriculumTecnologico
  • Year3rd year
  • Semester1st semester
  • SSDINF/01
  • CFU6
  • Subject areaDiscipline Informatiche