Software engineering project [ LSINF2255 ]
5.0 crédits ECTS
0 h + 60.0 h
1q
Enseignant(s) |
Van Lamsweerde Axel ;
|
Langue d'enseignement: |
Anglais
|
Lieu de l'activité |
Louvain-la-Neuve
|
Ressources en ligne |
> http://www.info.ucl.ac.be/courses/INGI2255/
|
Préalables |
- logique mathématique telle qu'enseignée dans le cours INGI1101
- maîtrise de la programmation orienté-objet, de l'algorithmique et des structures de données telle que visée par le cours SINF1121
- avoir participé à la réalisation d'un projet logiciel de taille réduite (par exemple SINF1124).
|
Thèmes abordés |
- Cycle de vie d'un projet logiciel: aspects statiques (les produits) et dynamiques (les procédés).
- Introduction à l'analyse des besoins: modélisation semi-formelle, spécification et analyse des exigences auxquelles doit répondre le logiciel.
- Introduction à la conception d'architectures logicielles: hiérarchisation, modularisation; styles et patterns architecturaux.
- Spécification d'un module vu comme unité de travail.
- Validation d'un logiciel: conception de jeux de test: black-box, white-box et d'intégration.
- Documentation des décisions prises au cours des différentes étapes du cycle de vie.
|
Acquis d'apprentissage |
Les étudiants ayant suivi avec fruit ce cours seront capables de
- développer un produit logiciel de grande taille en spécifiant les exigences logicielles, en exploitant une méthodologie de conception de logiciel
- créer, évaluer et mettre en oeuvre un plan de test pour un logiciel de grande taille
- réagir de manière adéquate quand des problèmes inhérents à de gros projets logiciels apparaissent
- utiliser avec rigueur des outils ou des concepts spécifiques pour gérer les étapes critiques d'un grand projet de développement logiciel en gardant à l'esprit l'objectif de qualité durant l'ensemble du processus de développement
- développer des spécifications en se basant sur une description de la situation, des résultats d' entrevues avec les clients et les futurs utilisateurs du logiciel (l'étape d'élucidation des exigences étant grandement simplifiée)
- concevoir une architecture logicielle
- concevoir de «bons» jeux de test
- documenter le processus de développement suivi.
Les étudiants auront développé des compétences méthodologiques et opérationnelles. En particulier, ils auront développé leur capacité à
- travailler en équipe en démontrant, par la participation à un projet d'équipe, les éléments centraux de l'esprit d'équipe et la gestion d'équipe,
- rédiger des rapports montrant de manière claire l'état d'avancement d'un projet et justifiant les choix effectués en les fondant sur une argumentation rigoureuse.
|
Modes d'évaluation des acquis des étudiants |
- quizz en cours de quadrimestre (30%)
- rapports intermédiaires (cahier des charges, architecture du logiciel, formalisation des spécifications et jeux de test) et rapport final, démonstration du logiciel réalisé (40%)
- participation individuelle aux réunions de groupe avec l'assistant (30%)
|
Méthodes d'enseignement |
Le projet est fortement couplé au cours INGI2251. Il consiste à développer un logiciel de grande taille, par équipes, selon les techniques étudiées dans le cours INGI2251.
Le cours INGI2251 est organisé de manière intensive, en début de quadrimestre, pour permettre un démarrage rapide du projet, puis de façon plus épisodique, en fonction des besoins des différentes étapes de développement.
Le projet consiste à développer une application en vraie grandeur, typique d'un produit logiciel industrielle, dans des conditions de travail semi-professionelles
- Travail en équipe de 6-8 développeurs (nécessaire pour mener à bien un gros projet), supervisé par un chef de projet (chercheur)
- Gestion de la traçabilité entre étapes.
- Echange d'unités de travail entre développeurs (spécification d'un composant par A, design de ce composant par B, conception des jeux de test par C, implémentation par D).
- Gestion du parallélisme entre développeurs (à maximiser) et des interactions (à minimiser)
- Rencontre hebdomadaire avec le chef de projet (un chercheur de l'institut): présentation de l'état d'avancement et difficultés, évaluation d'options alternatives, proposition de répartition du travail au sein de l'équipe
Pour les phases principales du projet, travail préalable en équipe sur un mini-projet (application de taille réduite), suivi d'une correction avec les assistants.
A différentes étapes, quizz individuel basé sur ce mini-projet, pour s'assurer que chaque étudiant possède le bagage nécessaire pour contribuer de manière effective à l'avancement du travail de son équipe.
|
Contenu |
Le projet consiste à développer une application en vraie grandeur, typique d'un produit logiciel industrielle, dans des conditions de travail semi-professionelle
Exemples de systèmes ainsi développés: système de vote électronique, dispatching d'ambulances, organisateur de réunions, gestion de ressources pour cybernomades, gestion hospitalière, gestion de bibliothèque, gestion des programmes d'étudiants, ...
|
Bibliographie |
- transparents du cours INGI2251 en ligne
- énoncés et échéanciers du projet en ligne
- support partiel: « Requirements engineering, From System Goals to UML Models to Software Specification », A. van Lamsweerde, Wiley, 2009
|
Autres infos |
- quizz en cours de quadrimestre
- rapports intermédiaires (cahier des charges, architecture du logiciel, formalisation des spécifications et jeux de test) et rapport final, démonstration du logiciel réalisé
- examen écrit en session
|
Cycle et année d'étude |
> Master [60] en sciences informatiques
> Master [120] en sciences informatiques
|
Faculté ou entité en charge |
> INFO
|
<<< Page précédente
|