Examen Architecture Logicielle NSY 205 : Correction et Sujet
Introduction à l'examen d'architecture logicielle
Ce document rassemble le sujet et la correction officielle d'un examen d'Architecture Logicielle destiné aux étudiants du CNAM. Organisée en février 2016 pour la première session de l'année universitaire 2015-2016, cette évaluation conçue par l'enseignant Jacques Laforgue permet d'éprouver les connaissances théoriques et pratiques des étudiants sur la conception et la mise en œuvre de systèmes d'information répartis.
Structure générale de l'épreuve
L'épreuve, d'une durée totale de deux heures et demie, se divise en deux parties distinctes d'une heure quinze chacune. La première partie se déroule sans document et s'ouvre par un questionnaire à choix multiples (QCM) noté sur 35 points, suivi de questions libres notées sur 15 points. La seconde partie, quant à elle, autorise les documents et propose un problème pratique d'envergure noté sur 50 points, s'appuyant sur un schéma d'architecture technique détaillé et un extrait de code Java.
Le QCM et les notions fondamentales
Le QCM de première partie évalue la maîtrise des concepts clés de l'architecture logicielle à travers 35 questions aux barèmes spécifiques selon la nature des propositions. Les thèmes abordés couvrent l'architecture fonctionnelle et technique, les principes de couplage faible, les architectures multipôles ou multicouches, ainsi que les technologies de persistance comme les moteurs ORM (Object Relational Mapping). Sont également explorés les concepts liés aux composants Java Enterprise Edition (J2EE), aux Enterprise Java Beans (EJB Stateless et Stateful), aux intergiciels orientés messages (MOM), ainsi qu'aux protocoles du web tels que SOAP et REST.
Les questions libres permettent quant à elles de détailler par écrit des notions fondamentales telles que les trois grands modes de réalisation du mapping d'héritage de classe dans un ORM (table unique, table par classe concrète ou abstraite, tables séparées pour chaque classe concrète), les différents types de contrôle de coopération entre composants (procédure, événements, données), et le rôle des conteneurs dans les architectures N-tiers sous J2EE.
Résolution du problème pratique
La seconde partie de l'examen propose un cas concret d'architecture technique pour une application de e-commerce et de gestion de commandes. Le sujet fournit un schéma d'architecture complet représentant l'interaction entre les clients, les servlets, les pages JSP, les différents types d'EJB, un fournisseur JMS (Java Message Service) gérant des canaux de communication pour des salles de préparation, et des entités JPA connectées à une base de données relationnelle.
Les étudiants doivent analyser le texte décrivant le fonctionnement métier de l'application : l'inscription des clients, la consultation du catalogue, la validation des paniers d'achat, le paiement en ligne sécurisé, le dispatching des produits à préparer vers différentes salles via des files de messages, et le traitement des IHM de livraison. La dernière question de ce problème demande d'analyser et de comprendre un code source en Java annoté avec JPA, mettant en œuvre des entités interconnectées telles que Client, Commande et Produit avec des relations de type OneToMany.
Modalités d'utilisation pour les révisions
Ce sujet corrigé constitue un outil de travail précieux pour les étudiants préparant des examens similaires en génie logiciel et en conception de systèmes d'information. Il est conseillé de traiter d'abord l'ensemble des questions du QCM et du problème dans les conditions de temps imparti, sans consulter les réponses, puis de comparer minutieusement ses choix avec les solutions fournies. L'analyse détaillée du schéma d'architecture technique permet de faire le lien entre les concepts théoriques vus en cours et leur application concrète dans un système distribué complexe.
Questions fréquentes
Quel est le niveau requis pour aborder cet examen ?
Cet examen s'adresse à des étudiants de niveau universitaire ou d'école d'ingénieurs en informatique suivant un cursus en architecture logicielle, typiquement au niveau du CNAM pour l'unité d'enseignement NSY 205.
Quelles technologies principales sont étudiées dans ce sujet ?
Le sujet met principalement en œuvre les technologies J2EE, les Enterprise Java Beans (EJB), la persistance des données via JPA et les ORM, les intergiciels orientés messages (MOM et JMS), ainsi que les services web SOAP et REST.
Comment est noté le QCM de la première partie ?
Le QCM comporte trois types de questions : des questions à deux propositions (une seule bonne), des questions à trois propositions avec une seule bonne réponse, et des questions à trois propositions avec une seule fausse réponse. Des points négatifs modérés sont appliqués en cas de mauvaise réponse.
Testez vos connaissances
Question 1
Dans une architecture de type REST, quel protocole est exclusivement utilisé pour la communication entre le client et le serveur selon le cours ?
- Le protocole SOAP
- Le protocole HTTP
- Le protocole RMI
- Le protocole CORBA
Réponse correcte : 2
Explication : L'architecture REST (Representational State Transfer) repose entièrement sur l'utilisation du protocole HTTP pour les échanges entre le client et le serveur.
Question 2
Quel est le rôle principal d'un composant DAO (Data Access Object) dans un système d'information ?
- Assurer la représentation graphique des données sur le client
- Gérer les transactions de messagerie asynchrone
- Fournir une interface d'accès aux objets de la couche métier et réaliser un couplage faible
- Implémenter les règles de routage des services web
Réponse correcte : 3
Explication : Le DAO sert d'interface d'accès aux objets de la couche métier, permettant notamment d'isoler la couche de présentation de la couche de persistance et de garantir un couplage faible.
Question 3
Quelle annotation JPA est généralement utilisée pour traduire le mapping d'une relation de type un-plusieurs (1..*) ?
- @OneToOne
- @ManyToMany
- @OneToMany
- @ManyToOne
Réponse correcte : 3
Explication : L'annotation @OneToMany permet de configurer une association de type un vers plusieurs entre deux entités, comme une commande qui contient plusieurs produits.
Télécharger Examen Architecture Logicielle NSY 205 : Correction et Sujet pdf