“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 167 — #177
i
i
i
i
i
i
i
i
3.8 La programmation à petite échelle
167
de programme. L’idée est d’écrire de petites opérations qui sont nécessaires.
Nous utilisons les opérations fournies par le système comme point de départ.
Cette étape nous donne une vue plus claire de ce que doit être la structure du
programme.
– La structure et le codage. À ce point nous pouvons tracer la structure du programme. Nous faisons un plan préliminaire de la structure du programme avec
des opérations de haut niveau. Ensuite nous complétons le code effectif du programme avec les autres opérations. Toutes les opérations doivent être simples.
Pour améliorer la structure nous pouvons grouper les opérations apparentées dans
des modules.
– Les tests et le raisonnement. Maintenant que nous avons un programme, nous
devons vérifier qu’il fait ce qu’il faut. Nous l’essayons sur une série de tests,
y compris les exemples que nous avons imaginés auparavant. Nous corrigeons
des erreurs jusqu’à ce que le programme fonctionne bien. Nous pouvons aussi
raisonner sur le programme et sa complexité en utilisant la sémantique formelle.
Le raisonnement est important surtout pour les parties qui ne sont pas claires.
Les tests et le raisonnement sont complémentaires : il est important de faire les
deux pour obtenir un programme de qualité.
– L’évaluation de la qualité. Le point final est de prendre du recul pour juger la
qualité du programme. Il y a beaucoup de facteurs impliqués dans la qualité : le
fait qu’il résout le bon problème, l’exactitude, l’efficacité, la facilité d’entretien,
l’extensibilité et la simplicité. La simplicité est particulièrement importante,
parce qu’elle facilite beaucoup d’autres facteurs. Un programme compliqué est
un programme inachevé. À côté de la simplicité, il y a aussi la complétude : la
conception a-t-elle (potentiellement) un ensemble complet de fonctionnalités,
pour qu’elle puisse être utilisée comme une base pour l’avenir ?
Cette méthodologie n’est pas figée. Vous devez adapter ces étapes à vos circonstances.
Par exemple, en imaginant des exemples, le programmeur peut réaliser que la spécification doit être changée. Mais n’oubliez pas l’étape la plus importante, les tests. Ils
sont importants parce qu’ils ferment la boucle : ils donnent une rétroaction de l’étape
du codage vers l’étape de la spécification.
3.8.2 Un exemple de conception de programme
Pour illustrer ces étapes, traçons le développement d’une application qui compte la fréquence des mots dans un fichier texte. Voici une première tentative d’une spécification
informelle :
Si on donne le nom d’un fichier, l’application ouvrira une fenêtre
et affichera une liste de paires, où chaque paire contient un mot et
un entier qui compte le nombre de fois que le mot apparaît dans le
fichier.
© Dunod – La photocopie non autorisée est un délit
Précédent

- 182/370

Suivant