La décomposition d'un programme en modules est une opération essentiellement vitale dans l'industrie logicielle. En effet les programmes dans ce domaine sont très volumineux et complexes, ce qui nécessite leur écriture par un grand nombre de personnes différentes et leur utilisation pendant une longue durée. On peut définir la notion de module comme une généralisation de la notion d'actions paramètrées: un module est un ensemble d'actions paramètrées liées par la même fonctionnalité.