Prévoir tous les effets de bord sur n'importe quel système complexe, est en effet impossible: le "simple" problème de l'arrêt est déjà indécidable.
Ceci dit,
1- Il existe des classes entière d'algorithmes prouvables pour certaines propriétés. Bon, tous les langages ne sont pas égaux devant les preuves de l'implémentation, mais un système de vote pourrait justifier une implémentation dans un langage avec des propriétés sémantiques fortes.
2- Même sans preuve formelle, on commence à avoir un peu de recul sur les tests fonctionnels et unitaires comme tu le suggérais. Je trouverais surprenant qu'un tel logiciel soit écrit sans une batterie de tests adéquats, et encore plus surpris qu'il soit qualifié pour une utilisation réelle sans pouvoir justifier d'un minimum de qualité (mais peut-être suis-je trop optimiste).
3- D'après ce que j'ai compris de l'article suisse (guère plus de détail qu'ici), une modification permettant l'affichage des résultats aurait entraîné une modification des données affichées:
Ça me choque que ce soit possible: la conception devrait l'empêcher (contrôleur d'affichage qui peut modifier les données?) ou l'implémentation (ça manque de const quelque part, non? Encore une fois, tous les langages ne sont pas égaux, mais j'imagine qu'un truc comme ça n'est pas codé sans prendre la qualité en considération).
J'ai déjà du mal à imaginer quoi que ce soit d'imprévisible en informatique: C'est une assertion très forte: qu'on ne peut pas prévoir. Je veux bien admettre la difficulté dans le cas d'un système complexe, fortement parallélisé, avec de très nombreuses dépendances logicielles. Je me trompe peut-être sur la complexité d'un logiciel de vote, mais je la situerais plus dans la partie cryptologie que dans la partie stockage et affichage.
Bref, je préférerais une explication du genre "un humain a vraiment merdé et on a pas de tests" à une explication du genre "le machin est tellement tordu qu'on avait aucune chance de détecter le bug avant qu'il ne se produise"...
[^] # Re: Imprévisible? Vraiment?
Posté par Trollgouin . En réponse au journal L'ordinateur qui a effacé cinq voix. Évalué à 5.
Prévoir tous les effets de bord sur n'importe quel système complexe, est en effet impossible: le "simple" problème de l'arrêt est déjà indécidable.
Ceci dit,
1- Il existe des classes entière d'algorithmes prouvables pour certaines propriétés. Bon, tous les langages ne sont pas égaux devant les preuves de l'implémentation, mais un système de vote pourrait justifier une implémentation dans un langage avec des propriétés sémantiques fortes.
2- Même sans preuve formelle, on commence à avoir un peu de recul sur les tests fonctionnels et unitaires comme tu le suggérais. Je trouverais surprenant qu'un tel logiciel soit écrit sans une batterie de tests adéquats, et encore plus surpris qu'il soit qualifié pour une utilisation réelle sans pouvoir justifier d'un minimum de qualité (mais peut-être suis-je trop optimiste).
3- D'après ce que j'ai compris de l'article suisse (guère plus de détail qu'ici), une modification permettant l'affichage des résultats aurait entraîné une modification des données affichées:
Ça me choque que ce soit possible: la conception devrait l'empêcher (contrôleur d'affichage qui peut modifier les données?) ou l'implémentation (ça manque de const quelque part, non? Encore une fois, tous les langages ne sont pas égaux, mais j'imagine qu'un truc comme ça n'est pas codé sans prendre la qualité en considération).
J'ai déjà du mal à imaginer quoi que ce soit d'imprévisible en informatique: C'est une assertion très forte: qu'on ne peut pas prévoir. Je veux bien admettre la difficulté dans le cas d'un système complexe, fortement parallélisé, avec de très nombreuses dépendances logicielles. Je me trompe peut-être sur la complexité d'un logiciel de vote, mais je la situerais plus dans la partie cryptologie que dans la partie stockage et affichage.
Bref, je préférerais une explication du genre "un humain a vraiment merdé et on a pas de tests" à une explication du genre "le machin est tellement tordu qu'on avait aucune chance de détecter le bug avant qu'il ne se produise"...