Software engineering project

LINGI2255  2016-2017  Louvain-la-Neuve

Software engineering project
6.0 crédits
30.0 h + 30.0 h
1q

Enseignants
Mens Kim;
Langue
d'enseignement
Anglais
Thèmes abordés
En général, la meilleure façon pour les étudiants de se renseigner sur le génie logiciel est en participant à un projet. Un tel projet devrait exiger que les étudiants à travailler sur une équipe pour développer un système de logiciel à travers autant de son cycle de vie que possible. Une grande partie du génie logiciel est consacré à la communication efficace entre les membres de l'équipe et les parties prenantes. Utilisant des équipes de projet, les projets peuvent être suffisamment difficile d'obliger les étudiants à utiliser des techniques de génie logiciel efficaces et de développer et de mettre en pratique leurs compétences en communication. La meilleure façon d'apprendre à appliquer la théorie du génie logiciel et de la connaissance est dans l'environnement pratique d'un projet.
Le projet pratique sera accompagné par quelques séances théoriques où les étudiants vont se familiariser avec:
  • des modèles de développement logiciel (par exemple, cascade, incrémentielle, agile) et les activités au sein de cycles de vie des logiciels;
  • des approches pratiques d'ingénierie des exigences;
  • l'analyse et la conception de logiciels techniques et leurs notations;
  • la description des données du système en utilisant, par exemple, la modélisation objet rôle ou diagrammes entité-relation;
  • la gestion de projet et les techniques de planification.
Acquis
d'apprentissage

Eu égard au référentiel AA du programme « Master ingénieur civil en informatique », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :

  • INFO2.1-5
  • INFO4.1-4
  • INFO5.1-6
  • INFO6.1, INFO6.4

Eu égard au référentiel AA du programme « Master [120] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :

  • INFO2.1-4
  • INFO4.1-4
  • INFO5.1-3
  • INFO6.2-4

Eu égard au référentiel AA du programme « Master [60] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :

  • 1SINF1.M3
  • 1SINF2.1-4
  • 1SINF3.1-4
  • 1SINF4.1-3
  • 1SINF5.2-4

A l'issue de ce cours, les étudiants auront appris à développer un produit logiciel de grande taille dans des conditions semi-professionnelles.  Les étudiants ayant suivi ce cours avec fruit seront capables de :

  • Décrire les différences entre plusieurs modèles de développement majeurs (par exemple, cascade, itératif et agile);
  • Distinguer entre les phases de développement de logiciels (spécifications, architecture, conception, implémentation, validation, documentation);
  • Réaliser, d'une manière rigoureuse et systématique, les artefacts produits dans ces différentes phases du cycle de vie du logiciel;
  • Appliquer une méthodologie de développement logiciel actuellement pratiquée dans l'industrie;
  • Travailler efficacement dans une équipe pour développer un système logiciel de taille moyenne à grande;
  • Gérer la coordination et la communication entre les différents membres de l'équipe;
  • Interagir avec un client pour identifier ses besoins, pour clarifier les spécifications imprécises, et de prendre en compte la demande des modifications tout au long du processus de développement;
  • Décrire les exigences fonctionnelles d'un système logiciel en utilisant, par exemple, les cas d'utilisation ou utilisateurs des histoires;
  • Estimer le temps et les ressources nécessaires pour compléter un tel projet de développement de logiciels, planifier les tâches à exécuter et les délivrables à produire, et assurer le respect de cette planification;
  • Utilisez un outil de gestion de projet pour affecter le suivi les tâches de développement logiciel;
  • Mettre en pratique différentes méthodes et techniques pour assurer la qualité du logiciel produit;
  • Comprendre les problèmes inhérents au développement de grands systèmes logiciels impliquant différentes parties prenantes et qui se composent de plusieurs composants.

La contribution de cette UE au développement et à la maîtrise des compétences et acquis du (des) programme(s) est accessible à la fin de cette fiche, dans la partie « Programmes/formations proposant cette unité d’enseignement (UE) ».

Modes d'évaluation
des acquis des étudiants
L'évaluation du cours sera basée sur:
  • La participation individuelle aux réunions de groupe hebdomadaires avec les tuteurs de cours;
  • Trois rapports intermédiaires;
  • Le rapport final, le système livré et de la documentation, la présentation et la démonstration du produit final;
  • Un petit examen composé de quelques questions d'examen théorique.
Étant donné que ce cours est basé sur la participation à un projet d'équipe tout au long de l'année, il n'y aura pas de possibilité de faire une deuxième session pour ce cours.
Contenu
Ce projet comprendra le développement (analyse, conception, mise en 'uvre, la validation et la documentation) d'une application logicielle réaliste et non-triviale, si possible proposée par et avec la participation d'un client réel, dans des conditions de travail semi-professionnelles.
 
Des équipes de 6 à 8 élèves (nécessaires pour réaliser un grand projet), collaboreront, supervisées par un chef de projet.
 
Des réunions hebdomadaires auront lieu avec le chef de projet (un assistant d'enseignement ou de l'étudiant-tuteur) pour présenter les progrès et les difficultés rencontrées, pour évaluer les alternatives, et discuter de la distribution et de la planification du travail au sein de l'équipe.
 
La méthodologie de développement logiciel proposé sera structuré selon un modèle en cascade, principalement pour être en mesure d'explorer les différentes phases du cycle de vie de développement logiciel et de faciliter la gestion des les différents groupes par leurs tuteurs.
 
L'application à développer sera très probablement une application web, mais le choix du langage de programmation, de l'environnement, le cadre de l'application et des outils de développement sera principalement laissée ouverte aux étudiants (pour autant que cela réponde aux exigences du client) .
Bibliographie
Des lectures supplémentaire seront suggérées dans le plan de cours qui décrit les produits livrables et de l'organisation du projet.
Lss 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 (s) et les étudiants.
Autres infos

Préalables:

  • Avoir une bonne connaissance et expérience avec les concepts de la programmation orientée objet, les algorithmes et les structures de données.
  • Avoir participé à l'élaboration d'un système logiciel de petite à moyenne échelle.
Faculté ou entité
en charge


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

Intitulé du programme
Sigle
Crédits
Prérequis
Acquis
d'apprentissage
Master [120] : ingénieur civil en informatique
6
-

Master [60] en sciences informatiques
6
-

Master [120] en sciences informatiques
6
-