Module Génie Logiciel
: 411R
Examen Blanc
Module Génie Logiciel I I Durée 30 mm
I-Définitions
et concepts :
1. Qu'est-ce qu'un logiciel ?
Un logiciel est un ensemble de programmes, qui permet à un ordinateur ou à un
système informatique d'assurer une tâche ou une fonction..
2. Définissez le génie logiciel.
Le génie logiciel est l'application d'une approche systématique, disciplinée et
quantifiable à la conception, développement, déploiement,à l'exploitation et à la
maintenance du logiciel.
3. Expliquez le concept de SDLC (Cycle de Développement Logiciel).
Le SDLC est un cadre qui définit les étapes et les activités impliquées dans le
développement d'un logiciel, de sa conception initiale à sa mise en service et à sa
maintenance. Il comprend des phases telles que la planification, l'analyse, la conception,
le développement, les tests, le déploiement et la maintenance.
4. Décrivez les trois approches principales du génie logiciel cascade, en spirale, ag
ile) et leurs principales différences.
- **Cascade** : Un modèle séquentiel où chaque phase du SDLC doit être complétée
avant de passer à la suivante. Adapté aux projets avec des exigences bien définies.
- **Spirale** : Un modèle itératif qui combine des éléments du modèle en cascade
avec une approche itérative pour gérer les risques. Chaque itération passe par les phases
de planification, analyse des risques, développement et évaluation.
- **Agile** : Un ensemble de méthodologies basées sur le développement itératif et
incrémental. Les exigences et les solutions évoluent par la collaboration entre des
équipes auto-organisées. Il met l'accent sur la flexibilité et la réactivité aux
changements.
5. Quels sont les avantages et les inconvénients de chaque approche ?
- **Cascade**
Module Génie Logiciel
: 411R
- Avantages : Simple à comprendre et à utiliser, bien adapté aux projets avec des
exigences stables.
- Inconvénients : Rigide, difficile à adapter aux changements, peut entraîner des retards
si les exigences changent.
- **Spirale**
- Avantages : Gère bien les risques, flexible, permet des retours fréquents.
- Inconvénients : Complexe, peut être coûteux, nécessite une gestion experte des
risques.
- **Agile**
- Avantages : Flexible, permet une collaboration étroite avec les clients, livraison rapide
de versions fonctionnelles.
- Inconvénients : Peut manquer de documentation, peut être difficile à gérer pour les
grands projets.
6. Expliquez l'approche DevOps et ses principaux avantages
DevOps est une approche qui combine le développement de logiciels (Dev) et les
opérations informatiques (Ops) pour améliorer la collaboration et la productivité en
automatisant les processus de développement, de test et de déploiement. Les avantages
incluent une livraison plus rapide des logiciels, une meilleure collaboration entre les
équipes et une amélioration continue.
7. Citez 3 avantages de l'utilisation de SonarQube dans un projet de développement
ogiciel.
Module Génie Logiciel
: 411R
un projet de développement logiciel.**
- Détection précoce des bugs et des vulnérabilités de sécurité.
- Amélioration de la qualité du code grâce à des analyses statiques.
- Facilitation de la maintenance du code par la réduction de la dette technique.
8. Décrivez le rôle du Product Owner dans la méthode Scrum.
Le Product Owner est responsable de maximiser la valeur du produit résultant du travail
de l'équipe de développement. Il gère le backlog du produit, définit les priorités des
tâches et s'assure que l'équipe comprend les exigences et les objectifs du projet.
9. Quelles sont les principales différences entre les approches en cascade et agiles
da ns le développement logiciel ?
Modèle en Cascade :**
-Séquentiel et Linéaire : Chaque phase doit être complétée avant de passer à la suivante.
-Peu de Flexibilité : Difficile de revenir en arrière pour apporter des modifications.
-Exigences Stables : Adapté aux projets avec des exigences bien définies dès le départ.
**Approches Agiles :**
-Iteratif et Incrémental : Développement en sprints courts avec des livraisons fréquentes.
-flexibilité : Adaptation rapide aux changements de priorités et aux nouvelles exigences.
-Feedback Continu : Intégration régulière des retours d'information des utilisateurs.
Module Génie Logiciel
: 411R
10. Expliquez le rôle du Scrum Master dans une équipe Scrum, en détaillant ses
responsabilités et ses objectifs principaux.
**Rôle du Scrum Master :**
- Facilitateur : Organise et conduit les réunions Scrum.
- Éliminateur d'Obstacles : Aide à résoudre les problèmes qui entravent le progrès de
l'équipe.
- Coach et Mentor : Guide l'équipe dans l'application des pratiques Scrum.
- Protection de l'Équipe : Protège l'équipe des interruptions et distractions.
- Médiateur : Facilite la résolution des conflits.
**Objectifs Principaux :**
- Amélioration Continue : Encourage l'équipe à s'améliorer constamment.
- Autonomie de l'Équipe : Aide l'équipe à devenir auto-organisée.
- Adoption de Scrum : Assure une bonne adoption des pratiques Scrum.
- Satisfaction des Parties Prenantes : Veille à ce que les attentes des parties prenantes
soient satisfaites.
- Productivité : Optimise l'efficacité de l'équipe.
II-Questions à Choix Multiple:
1. Lequel de ces éléments N'EST PAS un principe de base du génie logiciel ?
a) Abstraction
b) Modularité
c) Fiabilité
d) Complexité
2. Lequel de ces modèles de cycle de vie est adapté aux projets avec des exigences mal
définie
a) Modèle en Cascade
b) Modèle en V
c) Modèle en Spirale
d) Méthodes Agiles
3. L'approche DevOps met l'accent sur:
a) La séparation des équipes de développement et d'exploitation.
b) La collaboration entre les équipes de développement et d'exploitation.
c) La simplification des processus de développement.
d) La réduction des tests automatisés.
Module Génie Logiciel
: 411R
4. Lequel de ces éléments est un avantage de l'approche agile ?
a) Rigidité
b) Adaptabilité
c) Documentation exhaustive
d) Suivi strict d'un plan
5. Lequel de ces éléments est un principe de base de la qualité du code ?
a) Complexité
b) Redondance
c) Clarté
d) Confidentialité
6. SonarQube est un outil de:
a) Gestion de versions
b) Test d'intégration
c) Analyse de code statique
d) Déploiement automatique
7. Lequel de ces patrons de conception garantit qu'une classe n'a qu'une seule instance ?
a) Factory
b) Singleton
c) Adapter
d) Decorator
8. Lequel de ces éléments N'EST PAS un acteur clé de la méthode Scrum ?
a) Scrum Master
b) Product Owner
c) Scrum Team
d) Project Manager
9. Lequel de ces éléments est une caractéristique du modèle navigationnel de base de
donnée
a) Structure linéaire
b) Structures riches
c) Relations pré-définies
d) Accessibilité limitée aux données
10. Lequel de ces éléments est un avantage de l'unification des méthodes ?
a) Complexité accrue des processus
b) Communication limitée
c) Résolution efficace des problèmes
d) Résistance au changement
Module Génie Logiciel
: 411R
Ill- Vrai ou Faux
1. La méthode Extrême Programming (XP) met l'accent sur des itérations de
développement I ongues. => Faux
2. Le modèle en cascade est adapté aux projets dont les exigences évoluent rapidement.=>
Faux
3. SonarQube permet d'effectuer des tests d'intégration. => Faux
4. Les patrons de conception sont des solutions réutilisables à des problèmes récurrents
dans la conception de logiciels. => Vrai
5. Jenkins est un outil d'automatisation opensource utilisé pour gérer les pipelines de
développement et de déploiement. => Vrai
6. La phase de maintenance d'un logiciel est importante pour corriger les erreurs et
améliorer les performances. => Vrai
7. L'approche en spirale est idéale pour les projets avec des éléments de risque élevé. =>
Vrai
8. L'encapsulation est un principe de l'approche orientée objet qui permet de regrouper les
at tributs et les méthodes d'un objet, en limitant leur accès à des parties spécifiques du
code. => Vrai
9. L'approche en cascade est idéale pour les projets où les exigences sont mal définies ou
cha ngent fréquemment. => Faux
10. DevOps et Scrum ne sont pas des méthodes incompatibles. En fait, Scrum peut être
intégré dans un environnement DevOps pour permettre une livraison plus rapide et plus
fréquente de fonctionnalités, tout en favorisant la collaboration entre les équipes. =>
vrai