Module 3 Flashcards

1
Q

Base de l’approche orientée-objet

A

oAbstraction
oHiérarchie
oDécomposition

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

objectifs du UML (Unified Modeling Langage)

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

+operationXXX()
#operationYYY()
-operationZZZ()

A

XXX : publique
YYY : protégée
ZZZ : privée

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Spécification d’un contrat

A

▪ 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

assertions s’appliquant à des méthodes en particulier

A

❑ préconditions
❑ postconditions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

assertions s’appliquant à toutes les méthodes d’une classe en
tout temps.

A

invariants de classe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

préconditions

A

▪ 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]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

postconditions

A

▪ 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]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Invariant

A

▪ 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

(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.

A

vrai

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Les invariants doivent donc être testés quand ?

A

o à la fin de tous les constructeurs.
o à la fin de toutes les méthodes non constantes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

sortie de assert(!estVide()); si faux

A

assertion failed!
file: pile.cpp
line: 234
test: !estVide()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

(vrai ou faux) Dans une méthide, la condition peut être dans la précondition ET dans le corps de la méthode

A

faux (jamais dans les deux)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Une méthode ne devrait-elle pas être préparée pour
traiter toutes les entrées possibles ?

A

Non, plus la précondition est forte, plus la responsabilité du
client sera grande et plus celle du fournisseur sera petite.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qui devrait s’occuper des valeurs anormales?

A

➢décision pratique qui a trait à la division du travail.
✓La meilleure solution est celle qui génère l’architecture
la plus simple

17
Q

les macros pour le contrat

A

▪ “fonction” définie par un #define.
▪ Remplacement textuel, fait par le
préprocesseur.
▪ Dans le fichier ContratException.h,
1. Définition de ces classes
2. + définition des MACROs suivantes:
➢ PRECONDITION(test);
➢ POSTCONDITION(test);
➢ ASSERTION(test);
➢ INVARIANT(test);
➢ INVARIANTS();

18
Q

PRECONDITION sert a XXX
POSTCONDITION sert a YYY
ASSERTION sert a ZZZ

A

XXX : pour valider les données en entrée
YYY : pour valider le bon fonctionnement de la méthode avant le
retour de celle-ci
ZZZ : pour valider un état quelconque au milieu de l’algorithmique.

19
Q

INVARIANTS() fait quoi?

A

appelle verifieInvariant()
(méthode privée const dans le .h de la classe)

20
Q

Test unitaire

A

❑ Pour s’assurer qu’un composant logiciel se
comporte tel que prévu et spécifié.
❑ Teste les cas normaux et les cas anormaux.
❑ Utilise toujours de façon systématique
l’interface publique de la classe.
❑ Première ligne de défense contre les défauts
du logiciel.
❑ Permet de détecter toute anomalie le plus tôt
possible.

21
Q

On doit tester toutes les méthodes XXX

A

XXX : publiques

22
Q

test uniyaire seul test qui assure que ca fonctionne correctement?

A

non

23
Q

(vrai ou faux) on peut mettre plusieurs cas dans un test

A

faux

24
Q

résultats possibles d’une assertion

A

➢ success (test réussi),
➢ nonfatal failure (test échoué)
➢ fatal failure (test échoué et arrête la fonction)

25
Q

2 types d’assertions:

A

EXPECT_* : assertions non-fatales (continue après échec)
ASSERT_* : assertions fatales (arrête le programme)

26
Q

ASSERT_THROW(statement,
exception_type);

A

statement throws an
exception of the given type

27
Q

exemple de test avec fixture pour une pile

A

class PileVide : public ::testing::Test
{
public:
Pile f_unePile;
};
TEST_F(PileVide,PileVideEstVide)
{
ASSERT_TRUE(f_unePile.estVide());
}