Développement logiciel et gestion de projet
Apprenez le développement logiciel et la gestion de projet avec des QCM : processus de développement comme le modèle en cascade, le cycle en V et le développement agile (Scrum), exigences et conception (UML, cohésion et couplage des modules), techniques de test (partitionnement en classes d'équivalence, analyse des valeurs limites, couverture des instructions et des branches), Git et revues, gestion de projet avec la WBS, le chemin critique, l'EVM et PERT, SLA et gestion des problèmes.
Développement logiciel et gestion de projet : points clés
La qualité et les délais d'un logiciel dépendent moins de la quantité de code écrite que de ce que l'on construit et dans quel ordre, de la façon dont on le vérifie et dont on gère son planning et ses coûts. Dans les développements proches des semi-conducteurs et du matériel, comme les micrologiciels, les pilotes, les scripts EDA et les environnements de vérification, la qualité de cette démarche détermine aussi celle du produit final.
Ce thème couvre les façons de développer des logiciels comme le modèle en cascade et le cycle en V, Scrum, le développement piloté par les tests et la CI/CD ; les notions de conception comme les exigences non fonctionnelles, UML, la cohésion et le couplage des modules ; et les techniques de test comme le partitionnement en classes d'équivalence, l'analyse des valeurs limites et la couverture des branches. Il aborde aussi les bases de la gestion de projet et de la gestion des services, principalement au moyen de questions de calcul : chemin critique dans les diagrammes fléchés, estimation à trois points, gestion de la valeur acquise, réponses aux risques, SLA et gestion des problèmes. Il aide aussi à préparer les parties développement logiciel et management des examens de certification informatique.
Toutes les questions sur Développement logiciel et gestion de projet (40)
- Quelle est une caractéristique du modèle en cascade de développement logiciel ?
- Dans le cycle en V du développement logiciel, quel test correspond à la phase de définition des exigences et vérifie que ce qui a été décidé dans cette phase est satisfait ?
- Dans Scrum, quel rôle est responsable du contenu et de l'ordre (la priorité) des éléments du Product Backlog, ainsi que de la maximisation de la valeur du produit ?
- Dans Scrum, quel événement a lieu à la fin d'un Sprint pour présenter aux parties prenantes l'Increment terminé (le produit qui fonctionne), recueillir leurs retours et ajuster l'orientation future et le Product Backlog ?
- Dans les méthodes de développement agile comme l'Extreme Programming (XP), comment s'appelle l'activité qui réorganise la structure interne d'un programme pour la rendre plus facile à comprendre et à modifier, sans changer son comportement visible de l'extérieur ?
- Quelle description du déroulement du développement piloté par les tests (TDD) est correcte ?
- Quelle description de l'intégration continue (CI) est correcte ?
- Quelle description de la différence entre livraison continue et déploiement continu est correcte ?
- Parmi les exigences suivantes pour un système de gestion, laquelle est une exigence non fonctionnelle ?
- En UML, quel diagramme convient pour montrer comment l'état d'un objet change en réponse à des événements (appui sur un bouton, expiration d'une minuterie, température atteinte, etc.), comme dans le logiciel de commande d'un cuiseur à riz ?
- En UML, quel diagramme montre, dans l'ordre chronologique de haut en bas, les messages (appels et réponses) échangés entre plusieurs objets ?
- Parmi les niveaux de force de module (cohésion) servant à évaluer l'indépendance des modules, lequel est le plus fort et est considéré comme le plus souhaitable ?
- Parmi les types de couplage entre modules, lequel est le plus faible et donne la plus grande indépendance des modules ?
- Quel patron de conception du GoF fait en sorte que les objets qui dépendent d'un objet soient avertis automatiquement quand l'état de cet objet change ?
- Quand on applique un outil d'analyse statique au code source d'un micrologiciel, quel problème est-il le plus apte à trouver sans exécuter le programme ?
- Quelle description du test boîte noire est correcte ?
- Un champ de saisie n'accepte que des entiers ; les valeurs de 1 à 100 inclus sont acceptées et toutes les autres provoquent une erreur. Quand on découpe l'entrée par partitionnement en classes d'équivalence, combien y a-t-il de classes d'équivalence au total (classes valides et invalides confondues) ?
- Un programme fixe le prix d'entrée selon l'âge (un entier supérieur ou égal à 0) : de 0 à 17 ans, tarif enfant ; de 18 à 64 ans, tarif adulte ; à partir de 65 ans, tarif senior. Quel jeu de valeurs de test est le plus approprié pour que l'analyse des valeurs limites vérifie les frontières où la catégorie de tarif change ?
- La spécification dit « émettre un avertissement si la température est de 85 °C ou plus », mais le micrologiciel contient par erreur « if (t > 85) ». La température t est un entier. Laquelle des valeurs de test suivantes permet de détecter cette erreur ?
- Les valeurs de temp et err peuvent être choisies indépendamment l'une de l'autre. Pour le code « if (temp > 80) { fan = HIGH; } else { fan = LOW; } if (err) { log(); } », quel est le nombre minimal de cas de test nécessaires pour atteindre la couverture des instructions (exécuter chaque instruction au moins une fois) ?
- Les valeurs de vérité de a, b et c peuvent être choisies indépendamment les unes des autres. Pour le code « if (a) { S1; } if (b) { S2; } if (c) { S3; } », quel est le nombre minimal de cas de test nécessaires pour atteindre la couverture des branches (exécuter au moins une fois l'issue vraie et l'issue fausse de chaque décision) ?
- Pour la décision « A et B » (A et B sont des conditions dont les valeurs de vérité peuvent être fixées indépendamment), on a exécuté deux cas de test : (A = vrai, B = faux) et (A = faux, B = vrai). Quelle affirmation sur les critères de couverture est correcte ?
- Dans le test ascendant (bottom-up), que construit-on pour remplacer un module de niveau supérieur qui n'existe pas encore, afin qu'il appelle le module de niveau inférieur testé, lui transmette les données de test et reçoive les résultats ?
- Pendant les tests, on a tracé une courbe de croissance de fiabilité avec le temps de test (ou le nombre de cas de test exécutés) en abscisse et le nombre cumulé de défauts trouvés en ordonnée. La courbe monte encore, sans signe de saturation (de palier). Quel jugement est le plus approprié ?
- Lors du test d'intégration d'un micrologiciel de 25 KLOC (25 000 lignes), on a trouvé 30 défauts. D'après les résultats passés de l'organisation, la valeur de référence des défauts trouvés dans cette phase est de 2 à 4 par KLOC. Quelle est l'évaluation la plus appropriée de ce résultat ?
- Avec Git, deux développeurs ont modifié la même ligne du même fichier sur des branches différentes, puis l'une des branches a été fusionnée dans l'autre. Que se passe-t-il ?
- Quelle méthode de revue des documents de conception ou du code source est dirigée par un modérateur, attribue des rôles aux participants, se déroule de façon formelle à l'aide de listes de contrôle, etc., et enregistre les défauts trouvés et vérifie leur correction ?
- Après une version de micrologiciel dont on sait qu'elle fonctionne correctement, il y a 1000 commits, et le dernier commit présente un bogue. Le bogue a été introduit par un commit et se produit dans tous les commits suivants. Quand on identifie le commit fautif par recherche dichotomique, comme avec git bisect, combien de fois au maximum faut-il compiler et tester le micrologiciel ?
- Dans une WBS, qui décompose hiérarchiquement les livrables et le travail d'un projet, comment s'appelle l'élément de plus bas niveau, utilisé comme unité pour estimer la durée et le coût et pour affecter les personnes ?
- Dans un diagramme fléché à nœuds ① à ⑥, les activités, notées « nom : nœud de début → nœud de fin, durée », sont A : ① → ②, 6 jours ; B : ① → ③, 4 jours ; C : ② → ④, 4 jours ; D : ③ → ⑤, 4 jours ; E : ④ → ⑥, 2 jours ; F : ⑤ → ⑥, 3 jours ; et une activité fictive : ② → ③ (durée 0). Quelle est la durée minimale du projet complet ?
- Un projet comporte les activités, durées et prédécesseurs suivants : A : 4 jours (sans prédécesseur) ; B : 2 jours (aucun) ; C : 3 jours (A) ; D : 2 jours (B) ; E : 5 jours (C) ; F : 4 jours (C et D) ; G : 2 jours (F). Si toutes les autres activités commencent au plus tôt, de combien de jours au maximum peut-on retarder le début de l'activité B sans allonger la durée totale du projet ?
- Un projet comporte les activités, durées et prédécesseurs suivants : A : 6 jours (aucun) ; B : 4 jours (aucun) ; C : 4 jours (A) ; D : 4 jours (A et B) ; E : 2 jours (C) ; F : 3 jours (D), et sa durée totale est de 13 jours. Le surcoût pour raccourcir chaque activité d'un jour est de 300 000 yens pour A, 50 000 yens pour B, 100 000 yens pour C, 200 000 yens pour D, 80 000 yens pour E et 250 000 yens pour F. Quelle est la façon la moins coûteuse de raccourcir d'un jour la durée totale du projet ?
- Une estimation à trois points de la durée d'une activité donne une valeur optimiste de 4 jours, une valeur la plus probable de 7 jours et une valeur pessimiste de 16 jours. Quelle est la durée espérée donnée par la formule PERT ?
- Dans un projet dont le budget à l'achèvement (BAC) est de 20 millions de yens, à un certain moment, la valeur planifiée (PV) était de 8 millions de yens, la valeur acquise (EV) de 6 millions de yens et le coût réel (AC) de 7,5 millions de yens. Quelle description de l'état du projet à ce moment est correcte ?
- Dans un projet dont le budget à l'achèvement (BAC) est de 12 millions de yens, la valeur planifiée (PV) actuelle est de 6 millions de yens, la valeur acquise (EV) de 4,8 millions de yens et le coût réel (AC) de 6 millions de yens. En supposant que l'efficacité actuelle des coûts se maintienne, quelle est l'estimation à l'achèvement (EAC) ?
- Dans un projet logiciel en retard, on a fait passer le nombre de développeurs de 5 à 10. Par combien est multiplié le nombre de canaux de communication entre deux personnes (le nombre de paires) ?
- Quelle réponse aux risques d'un projet reporte l'impact sur un tiers, par exemple en souscrivant une assurance contre les pertes si le risque se réalise, ou en confiant le travail à une entreprise spécialisée par contrat ?
- Quelle description de la méthode des points de fonction utilisée pour estimer la taille d'un logiciel est correcte ?
- Le SLA d'un service spécifie une disponibilité mensuelle d'au moins 99,95 %. Un mois compte 30 jours, et les arrêts planifiés sont inclus dans le calcul. Ce mois-ci, le service a déjà été arrêté au total 15 minutes à cause de pannes. Quelle durée d'arrêt supplémentaire reste admissible pour le reste du mois tout en respectant le SLA ?
- Dans la gestion des services informatiques, quel processus vise principalement à rechercher la cause profonde des pannes récurrentes et à empêcher qu'elles se reproduisent grâce à des corrections définitives ?
Autres thèmes de Systèmes informatiques
- Arithmétique des ordinateurs IEEE 754, virgule fixe, erreur d'arrondi
- Probabilités, statistiques et files d'attente Dénombrement, lois de probabilité, estimation et tests, M/M/1
- ISA et assembleur RISC-V, modes d'adressage, conventions d'appel
- Compilateurs Analyse syntaxique, SSA, optimisation, registres
- Éditeurs de liens, chargeurs et exécutables ELF, symboles, relocalisation, liaison dynamique
- Système d'exploitation et matériel Interruptions, appels système, défauts de page
- Hiérarchie mémoire Cache, remplacement, trois types de défauts
- Multicœur et synchronisation MESI, instructions atomiques, barrières mémoire
- Programmation GPU Warps, mémoire partagée, coalescence, occupation
- Pile matérielle et logicielle de l'IA Inférence/entraînement, quantification, roofline
- Bases de l'apprentissage automatique Types d'apprentissage, métriques et réseaux de neurones
- Systèmes embarqués et firmware GPIO, UART/SPI/I2C, RTOS
- HDL et vérification Verilog, latches, machines à états, testbenches
- Interfaces d'E/S et bus PCIe, USB, SerDes, CXL
- Bases des réseaux informatiques TCP/IP, sous-réseaux, DNS, TLS
- Bases des technologies web HTTP, cookies, REST, CORS, cache
- Bases des communications sans fil Modulation, OFDM, MIMO et circuits RF
- Bases de la sécurité de l'information Cryptographie, authentification, attaques web
- Bases des bases de données SQL, normalisation, transactions
- Structures de données et algorithmes Complexité, recherche, tris, graphes
- Bases de la programmation (trace de pseudo-code) Pseudo-code, trace, tableaux et récursion
- Bases de la programmation en C Pointeurs, mémoire, comportement indéfini
- Bases de la stratégie d'entreprise et de la comptabilité Comptabilité, seuil de rentabilité, stratégie, marketing
- Gestion des services et audit des systèmes d'information SLA, incidents et problèmes, audit et contrôle interne
- Architecture des systèmes et fiabilité Redondance, RAID, sauvegardes et cloud
- Analyse des performances Loi d'Amdahl, CPI, goulots d'étranglement
- Sécurité matérielle Canaux auxiliaires, secure boot, TEE, PUF
- Gestion de l'énergie DVFS, power gating, états de veille