Examen + correction 1ere session 2016 2017 - design patterns

Examen 1ère Session 2016-2017 : NSY 102 - AISL

Intranet et Design Patterns

1ère Partie – Sans Document

QCM (35 points)

Ce sujet est un QCM dont les questions sont de trois natures :

  • Les questions à 2 propositions : une seule réponse est correcte. +1 point pour la bonne réponse, –1 point pour la mauvaise.
  • Les questions à 3 propositions dont une seule est bonne : +1 point pour la bonne réponse, –½ point pour chaque mauvaise réponse.
  • Les questions à 3 propositions dont une seule est fausse : +½ point pour chaque bonne réponse, –1 point pour la mauvaise.

Pour répondre, cochez les cases appropriées. Si toutes les propositions sont cochées, cela équivaut à aucune réponse (0 point). Ratinez correctement si vous devez corriger une réponse. N'oubliez pas d'écrire votre nom et prénom en en-tête du QCM.

Vous avez droit à 4 points négatifs sans pénalité.

Questions du QCM

1. Réaliser l'architecture d'un Système d'Information (SI) permet de valider les choix techniques pour la réalisation du SI.

2. La Configuration Architecturale d'un Système d'Information est : 1. la description de tous les composants du SI utilisés pour configurer son exécution 2. l'organisation des composants logiciels et sous-composants qui constituent un SI.

3. Dans la description de l'architecture technique, un connecteur est un lien de dépendance entre deux composants qui peut être réalisé par le design pattern de l'injection de dépendance.

4. Dans une Configuration Architecturale, un lien entre deux composants correspond : 1. toujours à une dépendance distante (machine à machine) 2. souvent à la transmission d'information entre les composants.

5. Dans la réalisation de l'architecture d'un futur SI, il n'est pas rare de créer une maquette ou un prototype pour valider les choix sur la capacité et les performances.

6. Ce schéma représente une architecture 4-Tiers.

7. Une application dite "distribuée" est une application logicielle dans laquelle les données informatiques sont : 1. nécessairement centralisées dans un singleton (exemple un Factory) 2. réparties sur le réseau et accessibles par tout logiciel utilisant un ORB.

8. L'IDL (Interface Definition Language) permet de créer les souches et squelettes dans différents langages informatiques pour assurer l'interopérabilité des services.

9. Il existe deux méthodes pour utiliser les méthodes distantes d'un objet distribué : 1. demander le stub de connexion à un annuaire 2. demander le stub de connexion à celui qui a créé l'objet distribué (exemple un Factory), puis utiliser ce stub pour appeler les méthodes distantes.

10. Deux clients (A et B) appellent simultanément la méthode distante m1 de l'objet distribué OD1 : 1. A et B peuvent appeler en même temps la méthode m1 de OD1 2. A et B ne peuvent pas appeler en même temps la méthode m1 de OD1, et il faut donc que la méthode m1 soit "synchronized".

11. Pour transformer un objet en un objet distribué en Java RMI, il suffit de : 1. faire que la classe A implémente l'interface Remote 2. faire que la classe A implémente l'interface Serializable et écrire cet objet dans un annuaire RMI 3. créer un proxy de A héritant de UnicastRemoteObject et implémentant l'interface de A qui hérite de Remote.

12. IhmXXXRmiImp est un Proxy de AppXXX.

13. Dans un schéma RMI avec plusieurs serveurs de socket UnicastRemoteObject, on peut : 1. créer un nouvel OD dans la JVM1 qui s'exécute sur le port 9101 2. créer un nouvel OD dans la JVM1 qui s'exécute sur le port 9102 3. créer un nouvel OD dans la JVM2 qui s'exécute sur le port 9100.

14. En RMI, l'appel d'une méthode distante utilise un proxy de communication de l'objet distribué.

15. En RMI, l'amorce (stub) d'un Objet Distribué est un proxy créé grâce à un Dynamic Proxy.

16. Un Design Pattern (DP) ou Patron de Conception est une norme de description des interfaces entre composants d'une architecture logicielle orientée objet.

17. Dans un système réparti, le DP Singleton est utilisé pour créer un objet distribué unique sur le réseau.

18. Le rôle d'un Factory dans une architecture distribuée est de créer à la demande de nouveaux objets distribués. Ces objets doivent être enregistrés dans un adaptateur local pour être accessibles.

19. Le DP Factory permet la création d'objets dont les classes héritent d'une même classe abstraite ou implémentent la même interface.

20. Dans le DP Factory, la signification des lettres A, B, C et D est : 1. A=Factory, B=Concrete Product, C=Product (Interface), D=Client 2. A=Client, B=Factory, C=Product (Interface), D=Concrete Product 3. A=Client, B=Product (Interface), C=Concrete Product, D=Factory.

21. Le rôle du DP "Délégation" est de déléguer à une autre classe la réalisation de traitements qu'une classe aurait dû implémenter.

22. Le diagramme suivant représente une injection de dépendance par l'utilisation d'un setteur.

23. Dans le DP Observer, la communication entre l'Observable (producteur d'événements) et l'Observer (consommateur d'événements) est : 1. synchrone ou asynchrone (choix de conception) 2. toujours asynchrone 3. toujours synchrone.

24. Le DP Observateur/Observable peut être utilisé pour réaliser un connecteur Producteur/Consommateur.

25. Dans le DP Observateur : 1. la classe ObservableXXX notifie les événements à une instance de Observable 2. la classe ObserverXXX implémente la méthode update de l'interface Observer appelée par Observable 3. la classe Observable pousse les événements à ObserverXXX.

26. Ce diagramme de classe représente celui d'un DP Adaptateur.

27. Un Adaptateur est un DP constitué d'une classe A implémentant une interface I à la place d'une autre classe B qui ne peut pas implémenter cette interface.

28. Ce diagramme de classe représente : 1. le DP Adaptateur 2. le DP Proxy.

29. À l'opposé de la communication synchrone, la communication asynchrone est basée sur le modèle du pull, comme un thread client qui tire régulièrement les événements d'un serveur.

30. Le DP Observateur en Java utilise par conception le modèle de communication synchrone suivant : 1. modèle du pull 2. modèle du push.

31. Dans la communication synchrone via un "canal d'événement", le producteur utilise un proxy de consommateur pour lui pousser un événement.

32. Le modèle de communication "Push asynchrone" est un DP où la classe implémentant l'interface Observer crée un thread pour la notification de l'Observable.

33. Les classes et interfaces en gris représentent : 1. un proxy client de communication entre ObservableHorloge et ObserverHorloge 2. un pont de communication permettant à un Observable de notifier les événements à un Observer dans une autre JVM.

34. Dans un MOM (Message Oriented Middleware), le composant intermédiaire utilise : 1. un DP Factory de canaux d'événement pour créer les canaux 2. un DP Observer/Observable pour notifier les consommateurs des événements produits.

35. Dans une communication entre un composant Java et un composant C++ via un bus CORBA : 1. on définit un IDL qui réalise une projection Java et une projection C++ des composants logiciels pour les faire communiquer.

Questions Libres (15 points)

Chaque question est notée sur 5 points. Répondez sur une copie vierge en indiquant le numéro de la question et votre nom et prénom.

Question Numéro 1

Description du Design Pattern du Dynamic Proxy sous forme d'un diagramme de classe UML :

Le rôle de ce Design Pattern est de créer dynamiquement un proxy sans coder ce dernier explicitement. Le proxy généré implémente toutes les méthodes d'une interface distante et utilise l'InvocationHandler pour réaliser les appels.

Question Numéro 2

Trois exemples d'utilisation du Design Pattern Proxy :

  • Un proxy pour notifier les actions des setteurs dans une couche serveur. Le proxy implémente les méthodes des setteurs en notifiant les changements et en appelant la méthode réelle.
  • Un proxy pour vérifier l'authentification d'un utilisateur avant chaque appel à un contrôleur MVC. Le proxy valide les identifiants et transmet l'appel si correct.
  • Un proxy pour appeler les méthodes d'une classe à distance (exemple : RMI). Le proxy gère la connexion au serveur et l'encodage des requêtes.

Question Numéro 3

Dans un MOM (Message Oriented Middleware), deux modes de communication existent entre producteurs et consommateurs :

  • Queue : Le producteur dépose un événement dans une file d'attente. Les consommateurs le retirent ensuite pour traitement.
  • Topic : Le producteur envoie un événement à un composant intermédiaire qui le distribue aux consommateurs abonnés.

FAQ

Qu'est-ce qu'un Design Pattern ?

Un Design Pattern est une solution éprouvée et réutilisable pour résoudre des problèmes courants dans le développement logiciel, notamment en architecture orientée objet.

À quoi sert un Factory dans une architecture distribuée ?

Un Factory centralise la création d'objets distribués, souvent en implémentant une interface commune, et permet de gérer ces objets de manière unifiée.

Quelle est la différence entre communication synchrone et asynchrone ?

La communication synchrone bloque l'exécution jusqu'à la réponse, tandis que la communication asynchrone permet d'envoyer des messages sans attendre de réponse immédiate.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne