Learning outcomes

This course is divided into two parts:

  • Part 1: An Introduction to Software Engineering;

  • Part 2: A software development project.

The purpose of Part 1 (“Introduction to Software Engineering”) is to familiarize students with the basic principles of Software Engineering, a discipline aimed at making the software development process more structured, systematic, and reliable. This component is structured around a lecture course designed to provide students with the knowledge necessary to evaluate and select the tools, techniques, and methods of this discipline based on their applicability in various professional contexts.

Part 2 (“Software Development Project”) has a twofold objective:

  • to apply the methodological principles of Software Engineering to a relatively large-scale project involving partners from the business world;

  • to integrate skills acquired in other courses (modeling, project management, programming, etc.).

Content

Part 1 (“Introduction to Software Engineering”) explores the various disciplines that make up software engineering and introduces the standards, methods, and tools used in each. The following topics will be covered:

  • Project management and development processes (plan-based and agile).

  • Requirements engineering (analysis of user needs).

  • Design, deployment, and reuse of software components.

  • Quality assurance and software quality standards.

  • Software evolution and maintenance.

Part 2 (“Software Development Project”) consists of small groups of students carrying out a relatively large-scale software project covering a significant portion of the software life cycle, from the specification of user requirements (which are inherently informal and incomplete), to the delivery and testing of an initial software solution, including the design of an overall software architecture, its refinement, and the implementation and integration of the various subsystems that comprise it. The groups are supervised by a multidisciplinary team that provides them with methodological and technical support throughout the lab, which concludes with a demonstration of the completed software.

Part 1 (“Introduction to Software Engineering”) is therefore a prerequisite for Part 2 (“Software Development Project”), providing students with the necessary perspective on the techniques, languages, and models used in the industry and helping them conduct analyses and make informed decisions within the context of the project.

Assessment method

The overall course assessment consists of:

  • a written exam (1st quarter, 30%); this exam determines eligibility for the 2nd-quarter project;

  • a software development project (ongoing throughout the second quarter, 70%), based, on the one hand, on the technical quality of the various intermediate deliverables as well as that of the final project, and, on the other hand, on the group’s work organization and the quality of the students’ implementation of methodological aspects. Please note that because this software development project is organized in a manner similar to an in-house internship, it is non-retakeable, and therefore no second exam session is offered for this project.

Overall success in the course depends on passing both components: the exam and the project.

Language of instruction

French
Training Study programme Block Credits Mandatory
Master in Computer Science Finalité spécialisée en data science 1 10 Yes
Master in Computer Science Finalité spécialisée en software engineering 1 10 Yes
Master in Computer Science Standard 1 10 Yes