Êtes-vous un étudiant de l'EPFL à la recherche d'un projet de semestre?
Travaillez avec nous sur des projets en science des données et en visualisation, et déployez votre projet sous forme d'application sur Graph Search.
Le prototypage logiciel (ou « software prototyping » en anglais) désigne l'ensemble des activités de création de prototypes pour les logiciels, c'est-à-dire des versions incomplètes du programme en cours de développement. Cette activité est donc assez proche de la création et la validation de prototypes, telle qu'on la pratique dans l'industrie. Ainsi, un prototype permet d'explorer de façon interactive des scénarios d'utilisation du produit pour en valider les orientations. Il ne simule toutefois que quelques aspects du logiciel et peut être très différent du produit final. De même que les industriels commencent toujours par procéder à un prototypage avant de construire de coûteuses usines afin de mettre en évidence les défauts qui n'avaient pas été imaginés, il est conseillé au concepteur de logiciels de réaliser une maquette, ou un prototype (ou les deux) pour tester la validité de sa conception, et recevoir les remarques des utilisateurs (il est en effet bien plus facile de comprendre une démonstration sur une maquette que de vérifier des spécifications écrites). Une maquette effectue ses entrées-sorties sur des fichiers simulés (par exemple en mémoire) afin de permettre quelques tests rapides de fonctionnalités, et de prendre l'avis des futurs utilisateurs. Il fonctionne souvent sur un système différent de celui qui sera utilisé (par exemple sur un PC pour une application destinée à un mainframe). Un prototype, lui, travaille sur les fichiers réels de l'entreprise ainsi que sur le réseau réel. Il est susceptible de fonctionner réellement dans le cadre d'un utilisateur. Il ne lui manque plus que les optimisations (assez souvent, la réécriture de tout ou partie du prototype en langage compilé permettant son usage intensif sans consommation excessive de ressources). Le premier jet d'un programme étant assez souvent réécrit, le programmeur n'y perd rien de toute façon. Il évite aussi de s'enfermer ainsi dans des choix prématurés erronés qu'il lui serait difficile de remettre en cause une fois le programme écrit dans le langage final.
Delphine Ribes Lemay, Nicolas Henchoz, Emily Clare Groves, Margherita Motta
Simon Nessim Henein, Florent Cosandier, Hubert Pierre-Marie Benoît Schneegans, Patrick Robert Flückiger