57 lines
1.2 KiB
Plaintext
57 lines
1.2 KiB
Plaintext
|
Les modules
|
|||
|
============
|
|||
|
|
|||
|
Il s'agit de décomposer un grand programme en
|
|||
|
morceaux (**modules**) connectés entre eux par des **interfaces** bien
|
|||
|
définies.
|
|||
|
|
|||
|
Ces modules doivent être aussi indépendants que possible.
|
|||
|
|
|||
|
module
|
|||
|
|
|||
|
ensemble de ressources liées sémantiquement
|
|||
|
|
|||
|
interface
|
|||
|
|
|||
|
mode d’emploi du module, avec en plus un principe de masquage
|
|||
|
des informations (partie publique, partie secrète)
|
|||
|
|
|||
|
Exemples d'interface
|
|||
|
--------------------
|
|||
|
|
|||
|
::
|
|||
|
|
|||
|
type: son type
|
|||
|
arguments
|
|||
|
arg1 : description de l'argument 1
|
|||
|
arg2 : description de l'argument 2
|
|||
|
préconditions:
|
|||
|
arg1 > 10
|
|||
|
postconditions:
|
|||
|
result < 19
|
|||
|
raises: TypeError, AssertionError, SystemError...
|
|||
|
test: tests nominaux pour chaque cas spécifié
|
|||
|
|
|||
|
- L'interface racine carrée
|
|||
|
|
|||
|
::
|
|||
|
|
|||
|
racine:
|
|||
|
type: float -> float
|
|||
|
arguments x: float, flottant dont on veut calculer la racine
|
|||
|
pré: x >= 0
|
|||
|
test: racine 25.0 -> 5.0 ; racine (-25) -> raises TypeError
|
|||
|
|
|||
|
- L'interface `lendemain`
|
|||
|
|
|||
|
Il faut définir auparavant un type spécifique appelé `date`
|
|||
|
|
|||
|
::
|
|||
|
|
|||
|
lendemain: le lendemain est la date qui désigne
|
|||
|
le jour suivant de la date passée en argument
|
|||
|
type: date -> date
|
|||
|
arguments :
|
|||
|
d: date
|
|||
|
description: la date dont on veut calculer le lendemain
|