Software engineering : development methods [ LINGI2251 ]
5.0 crédits ECTS
30.0 h + 30.0 h
1q
Enseignant(s) |
Van Lamsweerde Axel ;
|
Langue d'enseignement: |
Anglais
|
Lieu de l'activité |
Louvain-la-Neuve
|
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écrire les principaux problèmes rencontrés dans le contexte de gros projets logiciels
- discuter des différentes qualités qu'une application logicielle complexe et de grande taille doivent présenter
- modéliser les systèmeslogiciels complexes (génie logiciel guidé par modèles)
- maîtriser des approches systématiques de développement logiciel
- décrire les différents types de produits et processus impliqués tout au long du cycle de vie du génie logiciel
- appliquer des méthodes classiques d'ingénierie des exigences logicielles et de modélisation, de spécification, de conception, de validation et de documentation de logiciels de haute qualité
- évaluer l'impact des décisions prises aux différentes étapes de ce cycle de vie.
Les étudiants auront développé des compétences méthodologiques et opérationnelles. En particulier, ils auront développé leur capacité à
- modéliser de manière rigoureuse le produit final afin de pouvoir en faire une analyse rigoureuse dès la conception qui assurera la qualité du produit et du processus de développement,
- expliquer commentestimer le volume de ressources (en particulier humaines) nécessaires au développement.
|
Modes d'évaluation des acquis des étudiants |
1. Quizz individuel basé sur le mini-projet, après chaque étape (30% ingi2255)
- pour s'aider à se préparer avant les réunions avec l'assistant
- pour l'auto-évaluation
2. Participation individuelle lors des réunions de groupe hebdomadaires avec chef de projet (30% ingi2255/sinf2255)
(connaissance des techniques nécessaires, degré d'interaction, initiatives, idées, ... )
3. Qualité des livrables: rapports de projet et documentation (40% ingi2255/sinf2255)
4. Examen écrit (Janvier)
- INGI 2251: théorie et étude de cas (100% INGI2251)
|
Méthodes d'enseignement |
Le cours est fortement couplé au développement d'un projet " en vraie grandeur ", par équipes, selon les techniques étudiées (voir INGI2255 : Projet de génie logiciel).
L'enseignement 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.
Certaines séances comportent des tests de connaissance (" quizz ") et des exposés d'études de cas illustrant les techniques à appliquer dans le projet. Les travaux pratiques (2 ECTS) sont totalement intégrés à INGI2255 (5 ECTS) ; cette introduction au génie logiciel correspond donc à une charge globale de 10 ECTS, soit un travail tiers-temps durant tout le quadrimestre.
|
Contenu |
- Génie logiciel: quoi, pourquoi, comment
- Le cycle de vie d'un logiciel
- Cycle de vie statique
- Cycle de vie dynamique
- Estimation des coûts et échéancier
- Spécification dans le cycle de vie logiciel
- Elaboration de documents décrivant les exigences basées sur l'utilisation de modèles
- Spécification des exigences logicielles
- Conception de l'architecture d'un logiciel
- Structuration hiérarchique d'un logiciel
- Modularisation
- Styles architecturaux
- boîte noire, boîte blanche, tests d'intégration
|
Bibliographie |
- transparents disponibles en ligne
- A. van Lamsweerde, Requirements Engineering: Wiley, 2009
- F. Brooks, The Mythical Man-Month, Addison-Wesley, 1995
- S. Pfleeger, Software Engineering: Theory and Practice, 2nd Edition, Prentice-Hall, 2001
|
Cycle et année d'étude |
> Master [60] en sciences informatiques
> Master [120] : ingénieur civil biomédical
> Master [120] : ingénieur civil en informatique
> Master [120] en sciences informatiques
|
Faculté ou entité en charge |
> INFO
|
<<< Page précédente
|