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
|