Software development project [ LINGI2255 ]
6.0 crédits ECTS
15.0 h + 45.0 h
1q
Enseignant(s) |
Mens Kim ;
|
Langue d'enseignement: |
Anglais
|
Lieu de l'activité |
Louvain-la-Neuve
|
Ressources en ligne |
> https://icampus.uclouvain.be/claroline/course/index.php?cid=SINFINFO2255
|
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 |
Le sujet du projet et la méthodologie de développement suivie peuvent varier selon les années, les différents thèmes suivants pourront être plus ou moins développés :
' Méthodologies de développement logiciel, aspects statiques (produits) et dynamiques (procédés) ;
' Analyse des besoins (buts, use cases), conception d'architectures logicielles, styles et patterns architecturaux, conception basée sur les modèles (MDE) ;
' Techniques de programmation, environnements de développement, refactorings ;
' Validation d'un logiciel, tests unitaires et d'intégration, tests fonctionnels et structurels, code reviews.
' Systèmes distribués, client/serveur, sécurité, mobilité, adaptabilité, optimisation, base de données.
' Gestion de projet informatique, planification, estimation des ressources, reporting.
' Gestion de versions en utilisant un outil de gestion de versions.
|
Acquis d'apprentissage |
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 :
-
Mener à bien les différentes étapes d'un développement logiciel (spécifications, architecture, réalisation, validation, documentation) de manière rigoureuse et méthodique ;
-
Appliquer une méthodologie de conception pratiquée en industrie ;
-
Mettre en 'uvre des méthodes et dispositifs permettant d'assurer la qualité du logiciel produit ;
-
Estimer le temps et les ressources nécessaires à la bonne exécution du projet, planifier les tâches et les délivrables et suivre le planning établi ;
-
Utiliser un outil de gestion de projet pour faciliter l'attribution et le suivi des tâches de développement ;
-
Appréhender les problèmes inhérents à un gros projet logiciel impliquant de multiples composants, problématiques et intervenants ;
-
Travailler en équipe en gérant la coordination et la communication entre les membres de l'équipe ;
-
Interagir avec un client pour identifier ses exigences, clarifier les imprécisions et prendre compte les modifications en cours de développement ;
-
Exploiter du code existant et peu ou mal documenté.
|
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 industriel, dans des conditions de travail semi-professionelle. Le sujet à réaliser, ainsi que la méthodologie à suivre, sont proposés par un partenaire industriel, qui participe à l'encadrement du cours. Le projet est mené par groupes de 6-8 é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
|
Cycle et année d'étude |
> Master [120] : ingénieur civil en informatique
> Master [120] : ingénieur civil biomédical
|
Faculté ou entité en charge |
> INFO
|
<<< Page précédente
|