Java pour l'informatique industrielle
Chapitre 1. Introduction aux objets
Chapitre 2. Les structures de contrôle
2.1. Abstraction et modularité
2.2. La comparaison
2.3. Le choix
2.4. Les constructeurs
2.5. La surcharge
2.6. La répétition
2.7. Les variables
2.8. Le domaine de valeur
2.8.1. Les assertions
2.8.2. Les exceptions
2.9. Exercice
Chapitre 3. Unifier et réutiliser
Chapitre 4. Modèle, Vue et Contrôle
Chapitre 5. Les entrées/sorties
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

2.8. Le domaine de valeur

Le type des variables permet de choisir un domaine de valeur adapté. On a vu cependant que le type seul ne permet pas d'être aussi précis que l'on souhaiterait (e.g. compteur 5 bits).

L'analyse par invariants permet de s'assurer que si le domaine de valeur est respecté à l'initialisation des données, il sera toujours respecté par les méthodes réalisées.

Un mécanisme supplémentaire est nécessaire pour garantir que les valeurs entrées par l'utilisateur respecte le domaine de valeur attendu et correspondent bien au cahier des charges. Il est inconcevable d'envisager tous les cas dans lesquels un utilisateur hostile (qui essaie de trouver les failles dans le code) ou distrait (qui a mal lu le cahier des charges) peut se placer. On peut détecter et refuser les cas où les données d'entrée ne satisfont pas le cahier des charges, il faut alors donner des messages d'erreur précis, le plus tôt possible.

Le mécanisme d'exception de Java permet en partie de traiter ces cas. Depuis le JDK 1.4, un mécanisme plus souple a été mis en place, c'est le mécanisme d'assertion.

Nous allons mettre en place ces deux mécanismes pour vérifier les deux invariants rencontrés dans la classe CompteurNBits :

0 < n < 31 et 0 ≤ etat < 2n

Ces deux invariants concernent, ici, uniquement des champs initialisés par le constructeur.

  2.8.1. Les assertions
  2.8.2. Les exceptions
Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante