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
PAOLO GASPARE BOTTONI Lecturers' profile

Program - Frequency - Exams

Course program
Introduction to software engineering Principles of Software Engineering Software Process Rapid development Rational Unified Process Requirements engineering Software Systems Modeling From analysis to the project Architectural project Project management: Planning Project Management: Cost Estimation Project Management: Quality Assurance and Risk Management Testing activity Design Pattern
Prerequisites
Knowledge of an object-oriented language and offundamentals of programming is assumed
Books
Ian Sommerville, Software Engineering, 10th Edition Pearson
Teaching mode
Recorded lessons Webinars on various subjects
Frequency
Remote learning
Exam mode
The final grade is based on the discussion of a project.
Bibliography
UML Specifications C. Ghezzi, M. Jayazeri, D. Mandrioli, Foundations of Software Engineering, (2a ed. USA), Prentice-Hall, 2003 J.Arlow, I. Neustadt, UML 2 and the Unified Process, Addison-Wesley, 2005 (ed. Italiana, McGraw-Hill, 2006) R.S.Pressman, Principi di Ingegneria del Software, 3a ed. it. (5a ed. USA), McGraw-Hill Italia, 2000 L. Baresi, L. Lavazza, M. Pianciamore, Dall’idea al codice con UML2, Pearson Education Italia, 2006 S.L. Pfleeger, J:M: Atlee: Software Engineering. Theory and Practice. Fourth Edition, 2009, Prentice-Hall
Lesson mode
Recorded lessons Webinars on various subjects
  • Lesson code1022301
  • Academic year2024/2025
  • CourseInformatics
  • CurriculumSingle curriculum
  • Year3rd year
  • Semester1st semester
  • SSDINF/01
  • CFU6
  • Subject areaDiscipline Informatiche