Mes astuces pour bien écrire des programmes scientifiques et créer une interface avec Tcl/Tk

AVERTISSEMENT : Ce document ne s'adresse pas aux professionnels des sociétés de services informatiques, mais aux amateurs éclairés que sont les thésards, chercheurs, enseignants et autres passionnés qui créent, inventent de nombreux "programmes de calcul".

Si initialement ils sont à la fois concepteur, réalisateur et unique utilisateur de leur propres codes de calculs, ils peuvent être conduit à les distribuer à leurs collègues. A ce stade de leur travail, il importe de fournir un produit complet, c'est à dire sans erreurs, avec une notice, des jeux tests et une interface simple mais pratique.

C'est ce que je fais depuis plus de 20 années et je veux partager mes recettes issues de mon expérience.

Sommaire (svp cliquer sur la ligne)

1. Des astuces pour écrire des programmes de calcul (cliquer sur la ligne pour fermer)

1.1.Des programmes qui ne se soucient pas du monde extérieur !

Notre propos se limite à une classe de programme dit de "calcul scientifique". Ceux-ci ont un comportement simple, c'est à dire ils ont peu d'interactions avec l'utilisateur ou le monde extérieur. Une fois les données lues, les résultats du calcul vont être produits (ou parfois se bloquer) quelque soit l'avis de l'utilisateur ou de l'état du système. Ceci est différent de la complexité du traitement, celui-ci peut être numériquement très élaborée et demander un temps de calcul long.

Cette caractéristique fait qu'il est possible de développer le code de calcul et l'interface utilisateur séparément. Le pilotage du calcul est simple, il suffit de:

  1. Entrer les données dans un fichier
  2. Lancer le noyau de calcul
  3. Eventuellement intercepter quelques échanges de données avec le système
  4. Mettre en forme les résultats produits.

1.2.Passer du jetable au transférable

Souvent lors de la première phase du travail, ce qui intéresse uniquement le concepteur est le résultat du calcul. Aussi, commenter le programme, écrire une notice, expliciter les cas tests, créer une interface simple, semblent être du temps perdu. Et il y a souvent de bonnes raisons, par exemple la fin d'étude ou la date de publication est proche et le concepteur/utilisateur est "à la bourre". Mais si le programme reste dans cet état, il sera à jeter après usage.

Peu de temps après avoir été utilisé, plus personne sera capable de s'en resservir, pas même l'auteur. Si vous ne me croyez pas, essayez de modifier un de vos programme vieux de plus de deux ans (si si deux ans c'est court!), ou pire encore celui d'une autre personne. Un programme laissé ce stade n'aura plus de valeur. Il est plus rapide et donc moins coûteux de tout ré-écrire que d'essayer de comprendre, d'adapter de déboguer un vieux code. Le mieux que vous puissiez faire est de tout effacer pour gagner de la place disque !

Ne gaspillons pas l'effort d'avoir conçu et écrit ce programme et soyons optimiste. Faisons le pari que dès qu'un programme dépasse quelques lignes, il intéressera d'autres personnes ou que vous l'utiliserez plus tard.

Alors, il faudra l'installer sur d'autres machines et expliquer sont fonctionnement. Bref, il est "payant" de passer à l'étape du programme transférable.

On ne parle pas ici d'un programme distribuable. C'est à dire que de nombreuses personnes pas forcement bien formées doivent pouvoir utiliser.

Dans cette page, je voudrais vous faire partager mes trucs et astuces atteindre ce cap. Il ne s'agit en aucun cas d'un cours de programmation ou d'algorithmique. Les points abordés sont :

  • l'écriture du code, sa structure, commentaires internes,
  • la documentation, les jeux d'exemples
  • la création d'une interface utilisateur simple
  • la présentation des résultats

Dans le dernier chapitre vous pouvez télécharger des maquettes de programme en C et d'interface en Tcl/Tk reprenant certaines astuces (si cela peut vous aider).

2. Ecrire le noyau de calcul, sa notice, etc

Plus un petit ajout qui n'a que peu à voir: Créer une DLL avec DevC++ » et Faire fonctionner un programme de calcul en se servant de Excel comme interface

3. Interface utilisateur en Tcl/Tk

4. Exploiter les résultats et faire de belles sorties

5.Des exemples pour servir de point de départ

1. modele de programme en c »

2. modele de gui pour le lancer »


Retour à la première page. Dernière révision le 14/Feb/2016