Un aperçu de l'ingénierie du logiciel en 12 leçons de L1 Informatique
Abstract
Un cours d’ingénierie du logiciel a été créé cette année en L1 Informatique (deuxième semestre). L’objectif principal est de donner une vision globale du cycle de développement d’un logiciel. Au premier semestre, l’enseignement de l’informatique est commun à la plupart des mentions de la licence Sciences, Technologies, Santé. Au cours de la première année, les élèves ont 48h d’introduction à l’architecture des machines et à l’algorithmique en CAML, et 48h d’initiation à la programmation en Visual Basic et aux outils bureautiques (Word et Excel).
La pédagogie retenue est centrée sur le projet en déroulant le cycle de développement lors de 12 leçons de 2 heures (sur 12 semaines). La répartition des leçons est la suivante : cahier des charges et cycle de développement (1), expression de besoins (2), analyse (3), conception (3), utilisation d’un logiciel correspondant au cahier des charges et non-réalisé par les élèves (1), tests et qualification du logiciel (2). L’accent est volontairement mis sur toutes les activités d’ingénierie du logiciel à l’exception de la programmation.
Sauf pour la conception, le cycle de vie en V permet un apprentissage séquentiel et « par l’exemple » : du cahier des charges à l’expression des exigences avec les cas d’utilisation, des cas d’utilisation à l’analyse avec les diagrammes de classe et de collaboration, de l’analyse aux tests avec un plan de tests et des cas de tests issus des exigences. L’apprentissage de la conception est abordé à l’aide d’une démarche inductive de type rétro-ingénierie. Un modèle de programmation en couches (données, traitements, présentation) est défini et illustré avec Excel, Query et Visual Basic. Ensuite, certains composants déjà programmés sont rétro-conçus pour faire prendre conscience de ce que sont les artefacts de conception (reprenons la définition de l’ISO 15504 : identifier les composants principaux du logiciel et les raffiner en unités plus petites qui peuvent être codées, compilées et testées). A partir de là, il est possible d’effectuer l’activité de conception proprement dite c.à.d. obtenir à partir de l’analyse des modèles de conception : modèle logique de données, vues (ou requêtes), algorithmes de traitement, dialogue homme-machine.
Deux projets sont le support des apprentissages. Le premier, un agenda électronique partagé, est utilisé pour illustrer les produits de sortie (« deliverables ») de chaque phase du cycle. Les "deliverables" du premier projet, établis par les enseignants, servent de base et d’exemple aux élèves lors du développement du deuxième projet, un forum de discussion. Afin d’éviter la phase de codage (hors de portée du cours et des élèves), un forum de discussion correspondant à peu près au cahier des charges est fourni. Les élèves ont à leur charge de configurer ce qui est possible, de constater les écarts avec les exigences qu’ils ont formulées dans les cas d’utilisation et de qualifier le logiciel fourni lors des tests.
L’évaluation porte pour 2/3 sur le projet réalisé (1/3 en commun et 1/3 en examen individuel) et pour 1/3 sur les connaissances enseignées.
Ce cours semble bien reçu par les élèves (une douzaine) malgré des difficultés au début de chaque phase due à la complexité et à l’étendue des sujets abordés.
Domains
Software Engineering [cs.SE]Origin | Files produced by the author(s) |
---|
Loading...