Examens corriges

LOG8430 Architecture logicielle - Examen final et corrigé

Introduction à l'examen final de LOG8430

Ce document rassemble le sujet et les éléments de correction d'un examen final universitaire consacré à l'architecture logicielle et à la conception avancée. Conçu pour évaluer les connaissances théoriques et pratiques des étudiants, il aborde les notions fondamentales de modélisation, de patrons de conception, de composants et de gestion de projets d'ingénierie logicielle.

Présentation générale du document

Le sujet provient de l'École Polytechnique de Montréal, plus précisément du Département de génie informatique et génie logiciel. Rédigé en français, ce support d'évaluation s'adresse aux étudiants de niveau universitaire suivant l'enseignement dispensé par l'enseignant Zéphyrin Soh. L'épreuve est encadrée par des consignes strictes interdisant toute documentation extérieure ou calculatrice, et exige des réponses précises rédigées directement dans les espaces dédiés.

Thèmes et notions abordés

L'évaluation est structurée en plusieurs parties couvrant divers aspects de la discipline :

  • Connaissances fondamentales : Définition de l'architecture logicielle, identification de ses utilités principales (compréhension, réutilisation, construction, évolution, analyse, gestion) et types d'interconnexions entre une bibliothèque et un programme.
  • Modélisation et concepts avancés : Étude du diagramme des relations entre classe et métaclasse en Java, du modèle de composants Fractal, de son composant d'amorçage (BootStrap Component), ainsi que des notions de points d'action et de points de jonction en programmation par aspects.
  • Défauts de conception : Caractérisation d'un défaut de conception et description des étapes méthodologiques pour sa détection et sa correction, incluant l'analyse du code et le calcul de métriques.
  • Interprétation de code : Analyse de cas pratiques en Java, tels que la mise en œuvre du patron Singleton et ses problématiques de synchronisation en contexte multithread, ou encore l'examen de l'héritage et du comptage d'éléments dans des collections spécialisées.
  • Résolution de problèmes et architecture d'entreprise : Un exercice pratique de grande envergure basé sur un cas réel de modernisation de système informatique pour une entreprise de produits d'entretien. L'exercice demande de planifier la transition d'un ancien système vers une nouvelle architecture intranet/Internet sans interruption brutale, en mobilisant des techniques comme les patrons de façade, la programmation par aspects ou les ponts architecturaux.

Modalités d'utilisation pour les révisions

Ce type de document constitue un support d'entraînement pertinent pour tester ses compétences en conception logicielle avancée. Les étudiants peuvent s'en servir pour s'exercer dans des conditions proches d'une évaluation réelle, en s'attardant particulièrement sur la partie de résolution de problèmes qui demande une réflexion méthodologique approfondie sur la refactorisation et l'évolution des systèmes existants.

Questions fréquentes

Quel est l'établissement à l'origine de ce document ?

Ce sujet d'examen provient de l'École Polytechnique de Montréal, au Québec, émis par le Département de génie informatique et génie logiciel.

Quels grands domaines de l'architecture logicielle sont évalués ?

L'examen évalue les définitions conceptuelles, les modèles de composants comme Fractal, la programmation par aspects, la détection de défauts de conception, l'analyse de code Java et la conduite de refactorisation architecturale sur un cas concret.

À quel public s'adresse cette évaluation ?

Ce sujet s'adresse principalement aux étudiants inscrits au cours de deuxième cycle ou de fin de baccalauréat en génie logiciel portant sur l'architecture et la conception avancée.

Testez vos connaissances

Question 1

Quel composant du modèle Fractal est considéré par défaut comme le premier pouvant instancier d'autres composants ?

  1. Le composant racine
  2. Le BootStrap Component
  3. Le connecteur dynamique
  4. La façade de liaison

Réponse correcte : Le BootStrap Component

Explication : Le BootStrap Component de Fractal est explicitement défini comme le premier composant par défaut capable d'instancier d'autres composants au sein du modèle.

Question 2

Parmi les propositions suivantes, laquelle désigne un type d'interconnexion possible entre une bibliothèque et le reste d'un programme ?

  1. L'héritage multiple strict
  2. Le chaînage des liens (linking)
  3. La compilation incrémentale
  4. La surcharge dynamique

Réponse correcte : Le chaînage des liens (linking)

Explication : Le chaînage des liens fait partie des cinq types d'interconnexions recensés entre une bibliothèque ou un cadriciel et le reste d'un programme.

Question 3

Quelle est la première étape mentionnée dans la démarche de détection et de correction des défauts de conception ?

  1. Analyser le code source
  2. Effectuer une refactorisation globale
  3. Spécifier les règles pour le défaut
  4. Calculer les métriques de complexité

Réponse correcte : Spécifier les règles pour le défaut

Explication : La méthodologie débute par la spécification des règles caractérisant le défaut avant d'analyser le code et de calculer les métriques associées.





Télécharger