IV.2.1.3. PHASES DE CREATION D'UN PROGRAMME
1. Conception
La phase de conception définit le but du programme. Si
on fait une rapide analyse fonctionnelle d'un programme, on détermine
essentiellement les données qu'il va traiter (données
d'entrée), la méthode employée (appelée
l'algorithme), et le résultat (données de sortie). Les
données d'entrée et de sortie peuvent être de nature
très diverses. On peut décrire la méthode employée
pour accomplir le but d'un programme à l'aide d'un algorithme.
La programmation procédurale et fonctionnelle est
basée sur l'algorithmique. On retrouve en général les
mêmes fonctionnalités de base:
« Si » : Prédicat Alors faire
ceci Sinon faire cela
« Tant » : Tant que prédicat
Faire...
« Pour » : Pour variable allant de
borne inférieure à borne supérieure Faire ... «
Pour » (variante) : Pour variable dans conteneur faire
...
2. Codage
Une fois l'algorithme défini, l'étape suivante
est de coder le programme. Le codage dépend de l'architecture sur
laquelle va s'exécuter le programme, de compromis temps-mémoire,
et d'autres contraintes. Ces contraintes vont déterminer quel langage de
programmation utiliser pour " convertir " l'algorithme en code source.
3. Transformation du code source
Le code source n'est (presque) jamais utilisable tel quel. Il
est également écrit dans un langage « de haut niveau »,
compréhensible pour l'homme, mais pas pour la machine.
I S T A 2 0 1 4 - 2 0 1 5 Page | - 99 -
4. Compilation
Certains langages sont ce qu'on appelle des langages
compilés. En toute généralité, la compilation est
l'opération qui consiste à transformer un langage source en un
langage cible. Dans le cas d'un programme, le compilateur va transformer tout
le texte représentant le code source du programme, en code
compréhensible pour la machine, appelé code machine. Dans le cas
de langages dits compilés, ce qui est exécuté est le
résultat de la compilation. Une fois effectuée,
l'exécutable obtenu peut être utilisé sans le code
source.
Il faut également noter que le résultat de la
compilation n'est pas forcément du code machine correspondant à
la machine réelle, mais peut être du code compris par une machine
virtuelle (c'est-à-dire un programme simulant une machine), auquel cas
on parlera de bytecode. C'est par exemple le cas en Java. L'avantage est que,
de cette façon, un programme peut fonctionner sur n'importe quelle
machine réelle, du moment que la machine virtuelle existe pour
celle-ci.
Dans le cas d'une requête SQL, la requête est
compilée en une expression utilisant les opérateurs de
l'algèbre relationnelle. C'est cette expression qui est
évaluée par le système de gestion de bases de
données.
5. Interprétation
D'autres langages ne nécessitent pas de phase
spéciale de compilation. La méthode employée pour
exécuter le programme est alors différente. La phase de
compilation est la plupart du temps incluse dans celle d'exécution. On
dit de ce programme qu'il interprète le code source. Par exemple, python
ou perl sont des langages interprétés. Cependant, ce serait faux
de dire que la compilation n'intervient pas. L'interprète produit le
code machine, au fur et à mesure de l'exécution du programme, en
compilant chaque ligne du code source.
6. Avantages et Inconvénients
Les avantages généralement retenus pour
l'utilisation de langages « compilés », est qu'ils sont plus
rapides à l'exécution que des langages interprétés,
car l'interprète doit être lancé à chaque
exécution du programme, ce qui mobilise systématiquement les
ressources.
Traditionnellement, les langages interprétés
offrent en revanche une certaine portabilité (la capacité
à utiliser le code source sur différentes plates-formes), ainsi
qu'une facilité pour l'écriture du code. En effet, il n'est pas
nécessaire de passer par la phase de compilation pour tester le code
source.
7. Test du programme
C'est l'une des étapes les plus importantes de la
création d'un programme. En principe, tout programmeur se doit de
vérifier chaque partie d'un programme, de le tester. Il existe
différents types de test. On peut citer en particulier :
I S T A 2 0 1 4 - 2 0 1 5 Page | - 100 -
> Test unitaire
> Test d'intégration
> Test de performance
Il convient de noter qu'il est parfois possible de
vérifier un programme informatique, c'est-à-dire prouvé,
de manière plus ou moins automatique, qu'il assure certaines
propriétés.
|