1. L’opération compute cherche si le résultat de l’opération a déjà été calculé pour son argument. Si c’est le cas, elle rend la valeur stockée dans le cache. Sinon, elle réalise le calcul par un appel à la fonction abstraite doComputation. Ensuite, elle ajoute ce nouveau résultat dans la table avant de le rendre à l’appelant.
2. Supposez que doComputation peut lever une exception : il faut protéger l’activité qui appelle cette fonction par un gestionnaire d’exception. Enrichissez donc le diagramme en ajoutant ce gestionnaire et un pin pour représenter la nouvelle signature complète (avec l’exception TypeException) de compute. Le corps du gestionnaire d’exception se contente de lever l’exception appropriée : l’opération d’ajout dans la table qui suit l’activité doComputation n’est pas réalisée.