<- Archives UCL - Programme d'études ->



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