Examen Architecture Logiciel 01
Exercice 01 : QCM
1. Qu'est-ce que l'architecture logicielle ?
A. La documentation des composants d'un système logiciel et de leurs interactions.
B. La comparaison métaphorique d'un système logiciel à un bâtiment.
C. La mise en œuvre d'un système logiciel en utilisant des options structurelles spécifiques.
D. Le processus de conception de la structure d'un système logiciel, y compris ses composants, leurs interactions, ainsi que les principes et directives régissant leur conception et leur évolution dans le temps.
2. Quel est le rôle d'un architecte logiciel ?
A. Mettre en œuvre le système logiciel en utilisant des options structurelles spécifiques.
B. Documenter les composants d'un système logiciel et leurs interactions.
C. Évaluer et faire évoluer l'architecture du système logiciel.
D. Concevoir la structure du système logiciel, y compris les composants de haut niveau et leurs interactions.
3. Quelles sont les quatre activités principales dans la conception d'une architecture logicielle ?
A. Analyse logicielle, synthèse logicielle, évaluation logicielle et évolution logicielle.
B. Analyse architecturale, synthèse architecturale, évaluation architecturale et évolution architecturale.
C. Conception logicielle, modélisation logicielle, tests logiciels et implémentation logicielle.
D. Planification logicielle, développement logiciel, déploiement logiciel et maintenance logicielle.
4. Quelle est la différence entre conception architecturale et conception détaillée ?
A. La conception architecturale se concentre sur les composants de haut niveau et leurs interactions, tandis que la conception détaillée se concentre sur les détails d'implémentation de bas niveau.
B. Il n'y a aucune différence entre la conception architecturale et la conception détaillée.
C. La conception architecturale se concentre sur les détails d'implémentation de bas niveau, tandis que la conception détaillée se concentre sur les composants de haut niveau et leurs interactions.
D. La conception architecturale se concentre sur le « quoi » du système logiciel, tandis que la conception détaillée se concentre sur le « comment ».
5. Qu'est-ce que l'érosion architecturale ?
A. La comparaison métaphorique d'un système logiciel à un bâtiment.
B. L'écart observé entre l'architecture planifiée et l'architecture réelle d'un système logiciel tel qu'il est implémenté.
C. Le processus de conception de la structure d'un système logiciel, y compris ses composants, leurs interactions et les principes et directives régissant leur conception et évolution dans le temps.
D. La documentation des composants d'un système logiciel et de leurs interactions.
6. Qu'est-ce qu'un modèle architectural (ou pattern architectural) ?
A. Une option structurelle spécifique choisie dans la conception d'un système logiciel.
B. Un mécanisme permettant de modéliser et de représenter les architectures.
C. Une solution générale et réutilisable à un problème fréquent en architecture logicielle dans un contexte donné.
D. Un type d'architecture logicielle qui se concentre sur la stratégie informatique globale d'une organisation.
7. Quel est l'objectif de la documentation de l'architecture logicielle ?
A. Tester les composants d'un système logiciel et leurs interactions.
B. Fournir un plan directeur (blueprint) pour le développement logiciel.
C. Évaluer et faire évoluer l'architecture du système logiciel.
D. Mettre en œuvre le système logiciel en utilisant des options structurelles spécifiques.
8. Dans l'architecture Layered, que représentent les couches ?
A. Des composants d'un même niveau de traitement.
B. Des groupes de méthodes, classes ou paquets avec une responsabilité définie.
C. Des modules indépendants connectés par des tuyaux.
D. Des interfaces utilisateur interagissant directement avec la base de données.
9. Quelle est la différence entre l'architecture logicielle et l'ingénierie des exigences ?
A. L'architecture logicielle s'intéresse à la conception de solutions à des problèmes spécifiques, tandis que l'ingénierie des exigences s'intéresse à la stratégie informatique globale d'une organisation.
B. L'architecture logicielle se concentre sur le « quoi » du système logiciel, tandis que l'ingénierie des exigences se concentre sur le « comment ».
C. Il n'y a aucune différence entre l'architecture logicielle et l'ingénierie des exigences.
D. L'architecture logicielle cible l'« espace solution » ou le « comment », tandis que l'ingénierie des exigences s'adresse à l'« espace problème » ou au « quoi ».
Exercice 02 : Architectures
- Qu’est-ce qui différencie une architecture modulaire d’une architecture monolithique ?
- Expliquez les avantages de la réutilisabilité dans une architecture modulaire.
- Quelle est l'importance des interfaces dans une architecture modulaire ?
- Comment les modules autonomes facilitent-ils les tests unitaires ?
- Quels sont les défis liés à l’assemblage des modules dans une architecture modulaire ?
- Une application modulaire pour une banque contient des modules séparés pour les comptes, les prêts et les cartes de crédit. Lors de la mise à jour du module des prêts, des erreurs apparaissent dans le module des comptes. Identifiez et proposez des solutions pour éviter ces problèmes.
Problème : Architecture pour une Entreprise de Livraison de Colis
Dans la ville de Dschang vous êtes consultant en architecture logicielle pour une entreprise de livraison de colis appelée QuickDeliver. L'entreprise souhaite moderniser son système informatique pour gérer ses opérations de manière plus efficace. Actuellement, le système est monolithique et devient difficile à maintenir. L'entreprise a les besoins suivants :
- Gestion des commandes : Les clients passent des commandes en ligne, et les livreurs doivent les traiter.
- Suivi en temps réel : Les clients doivent pouvoir suivre l'état de leur colis en temps réel.
- Gestion des livreurs : Les livreurs doivent recevoir des notifications sur les nouvelles commandes et mettre à jour l'état des livraisons.
- Base de données centralisée : Toutes les données (clients, commandes, livreurs) doivent être stockées de manière sécurisée et accessible.
- Évolutivité : Le système doit pouvoir s'adapter à une croissance rapide du nombre de clients et de livreurs.
Qustions :
- Proposez une architecture adaptée aux besoins de QuickDeliver. Justifiez votre choix.
- Identifiez les rôles des employés qui interagiront avec le système (ex : développeurs, administrateurs, livreurs, clients).
- Dessinez un schéma de l'architecture proposée.