Software engineering project

linfo2255  2026-2027  Louvain-la-Neuve

Software engineering project
6.00 credits
30.0 h + 30.0 h
Q1
Teacher(s)
Language
Prerequisites
Required : initial experience in computer projects, as targeted in course LINFO1001 
Required : skills in C programming language as taught in course LEPL1503 
Main themes
This course treats a specific advanced topic or selection of topics of current research interest in the area of software engineering.
The actual topic(s) may vary from year to year, and will be chosen from a variety of software engineering domains such as data-intensive computing, software analytics, development and analysis of large evolving software systems, big data techniques, software repository mining, software recommendation systems, software visualization, novel programming technologies, software requirements and analysis,model-driven software engineering, software configuration management, software engineering processes, software engineering tools and methods, software testing and quality aspects, etc.
Learning outcomes

At the end of this learning unit, the student is able to :

Given the learning outcomes of the "Master in Computer Science and Engineering" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
  • INFO2.1-5
  • INFO4.1-4
  • INFO5.1-6
  • INFO6.1, INFO6.5
Given the learning outcomes of the "Master [120] in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
  • SINF1.M3
  • SINF2.1-4
  • SINF4.1-4
  • SINF5.1-3
  • SINF6.2-4
Given the learning outcomes of the "Master [60] in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
  • 1SINF1.M3
  • 1SINF2.1-4
  • 1SINF3.1-4
  • 1SINF4.1-3
  • 1SINF5.2-4
At the outcome of this course, the students will have acquired the necessary competences to build a large-scale software system under semi-professional working conditions. More specifically, students having completing this course with success will be able to:
  • describe the differences among several major process models (e.g., waterfall, iterative, and agile);
  • differentiate among the phases of software development (specification, architecture, design, implementation, validation, documentation);
  • complete, in a rigorous and systematic way, the artefacts produced in these different software life cycle phases;
  • apply a software development methodology currently practiced in industry;
  • work efficiently in a team to develop a medium-to large-scale software system;
  • manage the coordination and communication between the different team members;
  • interact with a client to identify his requirements, to clarify imprecise specifications, and to take into account requested modifications throughout the development process;
  • describe the functional requirements of a software system using, for example, use cases or users stories;
  • estimate the time and resources needed to complete such a software development project, plan the tasks to be executed and the deliverables to be produced, and respect this planning;
  • use some project management tool to assign and follow the planned software development tasks;
  • put in practice different methods and techniques to assure the quality of the produced software;
  • understand the problems inherent to the development of large software systems having different stakeholders and that consist of multiple components.
 
Content
This software engineering project consists of the development (analysis, design, implementation, validation, documentation, integration, and deployment) of a realistic and non-trivial software application, if possible proposed by and developed with the participation of a real client, under semi-professional working conditions.

The subject of the application to be built is proposed by an industrial partner or a non-profit organization participating in the organization of this course.

Teams of 6 to 8 students, necessary to carry out a large-scale project, will collaborate under the supervision of a project manager.

Weekly meetings will be held with the project manager (an assistant or tutor) to present progress and difficulties encountered, evaluate alternatives, and discuss the distribution and planning of work within the team.

The application to be developed will most likely be a web application. However, the choice of programming language, environment, application framework, and development tools will depend on the requirements of the project client.
Teaching methods
The course is based on the complete development (analysis, design, implementation, validation, documentation, integration, and deployment) of a large-scale software system for a potential client, carried out by a team of 6 to 8 students and supervised by a project manager.

Weekly meetings will be held with the project manager to ensure work monitoring, task planning, and the follow-up of the project's progress. Various prototypes and technical reports will have to be produced throughout the semester.

Regarding the use of generative artificial intelligence, we will follow the EPL guidelines for the responsible use of generative artificial intelligence.
Evaluation methods
The course will be assessed based on the following elements:
  • Individual, continuous, active, and balanced participation in group work, as well as in the weekly meetings with the course assistants/tutors.
  • The completion of a report identifying the project specifications.
  • The development of two to three intermediate prototypes, accompanied by their respective technical reports, as well as presentations and question-and-answer sessions. For each prototype, technical interviews will also be conducted to assess the students' understanding and mastery of the solutions they have developed.
  • The final report, the delivered system and its documentation, as well as the presentation and demonstration of the final product to the client or an intermediary.
  • The integration of the solutions developed by the different groups into a complete product.
Warning! Since this course is based on participation in a team project carried out throughout the academic year with a potential client, project-related grades will automatically be carried over to the second examination session. It will therefore not be possible to redo the project or improve its grade during the second session.

Important clarification: active and balanced participation by each student is expected across all aspects of the project:
  • analysis and design;
  • development (implementation and testing);
  • integration;
  • documentation (reports and demonstration).
This distribution is intended to ensure a complete and equitable learning experience for all students. Therefore, for each prototype, every student must demonstrate a tangible contribution in each of these aspects. If a student does not participate in one or more of these aspects, they may be assigned an individual grade of 0 for the corresponding prototype.

In the event of misuse of generative artificial intelligence, we will refer to the EPL's regulations regarding the misuse of generative artificial intelligence.
Other information
Prerequisites:
  • Have good knowledge of and experience with the concepts of object-oriented programming, algorithms and data structures.
  • Have participated in the development of a small to medium-sized software system.
Bibliography
French
Des lectures supplémentaires seront suggérées dans le plan de cours qui décrit les produits livrables et l'organisation du projet. Les supports de cours pertinents, des slides et des informations pratiques seront accessibles sur Moodle, qui sera également le principal moyen de communication entre l'enseignant et les étudiants.
English Additional reading material will be suggested in the course plan which describes the deliverables and organisation of the project. All relevant course material, slides and practical information will be available on Moodle, which will also be the main means of communication between the teacher and the students.
Faculty or entity


Programmes / formations proposant cette unité d'enseignement (UE)

Title of the programme
Sigle
Credits
Prerequisites
Learning outcomes
Master [120] in Computer Science and Engineering

Master [120] in Computer Science

Master [60] in Computer Science