Software Engineering II

A Politecnico di Torino master course (Master of Science in Computer Engineering) aiming at expanding the knowledge and skills of students in the software engineering, especially concerning the management of the software development process, the organization of development activities, quality assurance, process improvement and software evolution. 

The knowledge that students acquired through the fundamental and optional courses mainly concerns technologies that can be used to build software systems (e.g. programming languages, web technologies, security, computer architectures) and basic techniques and tools to support development (e.g. deployment, version control, requirements, design). In order to effectively employ such knowledge and skills, it is fundamental to organize the development activities and manage them, curate the quality of the software products, and account for the inevitable characteristic of software: its persistent change.

This course has the goal of expanding the knowledge and skills of students in the software engineering, especially concerning: 

  • management of the software development process 
  • organization and planning of development activities 
  • quality assurance and process improvement 
  • software evolution 

Students acquire basic knowledge regarding: 

  • software development methods, focusing on agile methods 
  • software quality assurance and process improvement, in particular static analysis and technical debt assessment, 
  • software evolution dynamics. 

The course is organized with a balance of theory (20% of the evaluation) and practice (80% of the evaluation): conventional lectures introduce the theory concerning the main topics of the course. Such lectures are followed by practical sessions (either collective exercises or hands-on development sessions). A key component of software development that is exercised in the course is teamwork, including a fruitful  collaboration with stakeholders. The course obtained very high satisfaction among students throughout the years.  

Key skills acquired after the course include: 

  • coordination of individuals and their interactions, 
  • planning and monitoring the project evolution, 
  • manage stakeholders’ collaboration,  
  • set up self-organizing teams.