Module 3 Flashcards
Base de l’approche orientée-objet
oAbstraction
oHiérarchie
oDécomposition
objectifs du UML (Unified Modeling Langage)
- Modélisation des systèmes utilisant les techniques orientées
objet, depuis la conception jusqu’à la maintenance - Création d’un langage abstrait compréhensible par l’homme et
interprétable par les machines.
+operationXXX()
#operationYYY()
-operationZZZ()
XXX : publique
YYY : protégée
ZZZ : privée
Spécification d’un contrat
▪ Spécification d’une interface
➢peut être vue comme un contrat entre un client (l’utilisateur du
composant/classe) et un fournisseur (le composant/classe).
▪ Le contrat dit ce qui doit être rencontré par le client
➢pour pouvoir appeler une opération de l’interface :
précondition.
▪ Le contrat dit aussi ce qui doit être réalisé par le fournisseur
➢de fait, ce qui est garanti au client
➢pour rencontrer ce qui est prévu par l’opération
postcondition.
assertions s’appliquant à des méthodes en particulier
❑ préconditions
❑ postconditions
assertions s’appliquant à toutes les méthodes d’une classe en
tout temps.
invariants de classe
La prototype d’une opération comprend: (3 trucs)
on ne sait pas: (2 trucs) (c’est pour ça qu’on ajoute precondition et postcondition
comprend :
o le nom de l’opération
o le type et l’ordre des paramètres entrants/sortants
o le type de retour
sait pas :
o dans quel contexte l’opération peut être appelée
o quels résultats sont escomptés
préconditions
▪ conditions devant être remplies avant
d’exécuter une méthode.
➢Si le contrat n’est pas rempli, la méthode n’a pas
à s’exécuter. [Erreur de programmation]
postconditions
▪ conditions devant être remplies après
l’exécution d’une méthode.
➢Si le contrat n’est pas rempli, la méthode ne doit
pas retourner. [Erreur de programmation]
Invariant
▪ représente l’ensemble des conditions logiques devant
être respectées pour assurer un comportement correct
d’une classe.
➢Immédiatement après la création d’un objet de cette classe,
➢doit être respecté et préservé tout au long de la vie de
l’objet.
(Vrai ou faux) Au milieu d’une méthode, les invariants peuvent
être violés mais doivent être rétablis à la fin de
celle-ci.
vrai
Les invariants doivent donc être testés quand ?
o à la fin de tous les constructeurs.
o à la fin de toutes les méthodes non constantes
sortie de assert(!estVide()); si faux
assertion failed!
file: pile.cpp
line: 234
test: !estVide()
(vrai ou faux) Dans une méthide, la condition peut être dans la précondition ET dans le corps de la méthode
faux (jamais dans les deux)
Une méthode ne devrait-elle pas être préparée pour
traiter toutes les entrées possibles ?
Non, plus la précondition est forte, plus la responsabilité du
client sera grande et plus celle du fournisseur sera petite.