Le découpage d’une application en de nombreux modules permet:
Les travail de l’un va être utilisé par d’autres: quelles influences cela va-t-il avoir sur les codes impliqués?
Contrainte du typage : si le code B utilise le code A comment vérifier qu’il l’utilise correctement? (par ex: passe t-on les paramètres requis?).
Contrainte de l’encapsulation : le code B peut-il modifier le comportement fondamental du code A? (par ex: A fixe une valeur pour une variable et B la modifie!).
La modularité va concerner les données (qui a le droit de modifier quoi?), les codes (qui est responsable de tel traitement?), et les interdépendances codes/données.
Ici les codes appelant d’un module vont être contraints de passer par des points d’entrée réservés (l’A.P.I) et n’auront pas le droit d’intervenir dans le domaine privé d’un autre module.