Kahoot
1. Quel patron GRASP nous permet d’éviter les relations plusieurs-à-plusieurs en deux classes?
a. Indirection
b. Polymorphisme
c. Cohésion élevée
2. Vrai ou Faux : Dans un diagramme de concepts, les concepts incluent tant leurs attributs que
leurs méthodes.
3. Quelle opération parmi les suivantes ne générera pas d’erreur de compilation?
a. (*p)++
b. p++
c. *(p++)
d. p = &b
4. Vrai ou Faux : Un paquetage de la couche de présentation peut importer un paquetage de la
couche de logique d’application.
TD 8 – Révision
1. Associez chaque diagramme UML au point de vue correspondant sur un système.
1- Vue utilisateur 2- Vue logique 3- Vue comportement 4- Vue d’implémentation 5- Vue déploiement
a. Diagramme de cas d’utilisation
Vue utilisateur
b. Diagramme de concepts
Vue logique
c. Digramme de classes
Vue logique
d. Diagramme de séquence
Vue comportement
e. Diagramme de collaboration
Vue comportement
f. Diagramme de paquetages
Vue logique
2. La principale différence entre un acteur et une partie prenante est que:
a. Un acteur est toujours impliqué dans plusieurs cas d'utilisation, mais une partie
prenante pas nécessairement.
b. Un acteur est toujours un humain, mais une partie prenante pas nécessairement.
c. Un acteur interagit toujours avec le système, mais une partie prenante pas
nécessairement.
d. Un acteur a toujours un intérêt à ce que le système soit réalisé, mais une partie
prenante pas nécessairement.
e. Un acteur comprend toujours en détail comment fonctionne le système, mais une
partie prenante pas nécessairement.
3. Parmi les énoncés suivants, sélectionnez tous ceux qui s'appliquent à un modèle
conceptuel ou à un diagramme de concepts.
a. Les composantes de l'interface graphique d'un logiciel sont des éléments
importants à inclure dans un modèle conceptuel.
b. C'est pendant la définition du modèle conceptuel d'un système que les
développeurs devraient résoudre les ambiguïtés dans le vocabulaire du domaine.
c. Les concepts fournissent un point de départ pour définir plusieurs classes d'un
système.
d. Un modèle conceptuel tente de modéliser les principaux éléments de la solution
aux problèmes logiciels dans un système.
e. Un modèle conceptuel (représenté sous la forme d'un diagramme de concepts)
identifie sous forme de classes simplifiées tous les éléments du domaine d'un
problème.
f. Un modèle conceptuel est principalement construit durant la phase d'analyse du
système.
4. Vous modélisez un concept « Moteur » dans le cadre d’un projet en mécanique
automobile. Vous devez déterminer quelles entités doivent être considérées comme des
attributs de « Moteur » ou bien comme des concepts autonomes. Lesquels des énoncés
suivants constituent des arguments valables pour éclairer vos choix?
a. L’élément « Fabricant » devrait être modélisé comme un concept indépendant si
on souhaite que les informations sur le fabricant survivent à la destruction des
objets « Moteur ».
b. L’élément « Taux d’efficacité » devrait être modélisé comme un concept
indépendant si on souhaite le représenter comme un scalaire uniquement.
c. L’élément « Taux d’efficacité » devrait être modélisé comme un attribut de «
Moteur » si on souhaite le représenter comme un scalaire uniquement.
d. L’élément « Fabricant » devrait être modélisé comme un concept indépendant si
on souhaite y consigner des informations telles que le nom du fabricant et ses
coordonnées.
e. L’élément « Puissance » devrait être modélisé comme un concept indépendant si
on souhaite le représenter à l’aide d’un scalaire et d’une unité de mesure.
f. L’élément « Puissance » devrait être modélisé comme un attribut de « Moteur »
étant donné que la notion de puissance ne peut s’appliquer qu’en présence du
moteur.
5. Voici deux modèles conceptuels pour représenter une transaction de virement:
Choisissez parmi les énoncés suivants ceux qui justifient de choisir la modélisation 2
plutôt que la modélisation 1.
a. La modélisation 2 fait apparaître des concepts qui peuvent être utiles ailleurs dans
le système.
b. La modélisation 1 ne permet pas de convertir entre deux devises.
c. Dans la modélisation 1, les unités dans lesquelles le montant du virement est
exprimé reste implicite.
d. Dans la modélisation 2, les concepts de Virement et Devise n'ont pas d'attributs et
ne devraient donc pas être identifiés comme des concepts.
6. Pour chacun des énoncés suivants, identifiez le patron GRASP qui justifie le mieux
l'assignation de responsabilité décrite dans l'énoncé.
a. J'ai assigné la responsabilité à la classe A parce que c'est cette classe qui possède
l'information nécessaire
Expert
b. J'ai assigné la responsabilité de créer des objets de la classe B à la classe A parce
que les classes A et B étaient déjà liées
Créateur
c. J'ai séparé ces deux responsabilités dans deux classes A et B parce je voulais
m'assurer que chaque classe puisse être facilement réutilisée
Cohésion élevée
d. J'ai remplacé cet énoncé 'switch' par des sous-classes qui traitent chacune un cas
spécifique
Polymorphisme
7. Quel patron GRASP consiste à évaluer des alternatives selon le critère de qualité suivant?
Une mesure du degré auquel un élément est lié à un autre, en connaît un autre ou a besoin
de ses services.
a. Haute cohésion
b. Faible couplage
c. Indirection
d. Polymorphisme
e. Contrôleur
8. Le patron de conception MVC a été utilisé pour la première fois pour créer des interfaces
graphiques avec le langage de programmation Smalltak en 1980.
Assigner correctement les responsabilités (Modèle, Vue ou Contrôleur) aux différents
éléments:
a. Accepte les entrées utilisateur en tant qu'événement. Traduit les événements en
demandes de service pour le modèle.
Contrôleur
b. Récupère les informations affichables du modèle et affiche des informations à
l'utilisateur.
Vue
c. Représente un objet spécifique à une application qui peut être modifié ou affiché.
Avertit les composantes dépendantes des changements d'état.
Modèle
9. On vous demande de concevoir l’architecture du logiciel de bord d’un véhicule
automobile. Assignez chacune des responsabilités suivantes à l’un des trois niveaux de
l’architecture logicielle « classique ».
1- Logique d’application 2- Présentation 3- Persistance
a. Contrôle de la vitesse des roues
Logique d'application
b. Sauvegarde de l'état de l'application dans un système de stockage permanent
Persistance
c. Affichage des informations sur le tableau de bord
Présentation
d. Calcul de la charge de la pile
Logique d'application
e. Capture des commandes du porte-clef
Présentation
10. Indiquez le type de fonction ou de méthode le plus susceptible d’être utilisé pour chaque
problème.
a. Fonction d’une seule ligne retournant la valeur d’un attribut privé
Méthode « inline »
b. Méthode qui ne peut être surchargée dans une classe enfant
Méthode « final »
c. Méthode définie au niveau de la classe plutôt qu’à celui des objets individuels:
Méthode statique ou de classe
d. Méthode qui surcharge explicitement une méthode d’une classe parent
Méthode « override »
e. Méthode qui déclare explicitement ne pas modifier l’état de l’objet
Méthode « const »
f. Fonction membre qui rend une classe abstraite
Méthode virtuelle pure
g. Opérateur d’entrée/sortie pour une classe donnée
Fonction globale amie
h. Fonction qui permet la conversion implicite de type sur tous ses paramètres
Fonction globale « régulière »
i. Fonction membre d’une classe non-abstraite et susceptible d’être surchargée dans
une ou plusieurs classes enfants
Méthode virtuelle