Chap1 Flashcards
(30 cards)
Décrivez l’importance du génie logiciel.
Le génie logiciel est essentiel pour structurer et gérer le développement de logiciels, en répondant aux défis actuels et en assurant la qualité et la fiabilité des produits.
Comment le processus de développement est-il lié au génie logiciel ?
Le processus de développement dans le génie logiciel fournit une méthodologie systématique pour concevoir, créer et maintenir des logiciels, facilitant ainsi la gestion des projets et l’atteinte des objectifs.
Décrivez les différents types de logiciels mentionnés dans le contenu.
Les types de logiciels incluent les logiciels de base, les systèmes d’exploitation, les applications Web, les jeux vidéo, les logiciels embarqués, et les modules d’intelligence artificielle.
Comment chaque logiciel est-il développé selon le contenu ?
Chaque logiciel est développé en utilisant une approche différente qui nécessite réflexion.
Décrivez l’importance de la livraison dans le génie logiciel.
La livraison est influencée par la pression du marché, comme sortir un produit pour Noël ou devancer la compétition. Il est préférable d’être en retard que de livrer un produit dangereux.
Comment un bogue peut-il impacter un produit logiciel ?
Un bogue peut avoir des conséquences graves, nécessitant un correctif, ou patch”
Décrivez les priorités du développement logiciel.
Découvrir les besoins des clients, trouver des solutions, implémenter et valider que cela correspond aux besoins.
Comment les priorités de la maintenance logicielle se distinguent-elles du développement ?
Corriger les bogues, fermer les failles de sécurité, identifier des besoins émergents et assurer que l’architecture reste saine.
Décrivez les défis liés aux équipes globalisées en génie logiciel.
Les défis incluent la coordination entre différents sites, comme dans le cas de l’Airbus 380 où 16 sites dans 4 pays utilisent des versions différentes de CATIA, entraînant des erreurs de calcul.
Comment les équipes multidisciplinaires contribuent-elles au développement de logiciels ?
Les équipes multidisciplinaires, comprenant des programmeurs, des architectes logiciels, des experts en sécurité, et d’autres rôles, permettent une approche intégrée et diversifiée pour répondre aux besoins complexes des projets.
Décris la loi de Brooks en génie logiciel.
La loi de Brooks stipule qu’ajouter des développeurs à un projet en retard le rendra encore plus en retard, en raison du temps nécessaire pour former les nouveaux membres et les intégrer à l’équipe.
Quels sont les défis rencontrés par une nouvelle personne dans une équipe de développement ?
Une nouvelle personne doit souvent se former, lire la documentation du projet et comprendre la dynamique de l’équipe, ce qui peut la laisser perdue et produire un travail incohérent.
Décris les défis actuels en génie logiciel.
Le marché exige plus de flexibilité, notamment en accélérant le déploiement de correctifs, en réduisant le temps entre l’énoncé du besoin et le déploiement de nouvelles fonctionnalités, et en diminuant le temps entre les versions pour donner une impression d’innovation continue.
Comment les approches agiles contribuent-elles à la flexibilité en génie logiciel ?
Les approches agiles permettent de raccourcir le temps entre l’énoncé du besoin et le déploiement de nouvelles fonctionnalités, facilitant ainsi une réponse rapide aux demandes du marché.
Décris le processus de déploiement utilisé par Facebook, Netflix et Amazon.
Ces entreprises utilisent une implémentation en multiples micro-projets (micro-services) et déploient plusieurs fois par jour lorsque chaque micro-projet est prêt.
Uselesscard
Décrivez les objectifs typiques du génie logiciel.
Produire un produit de qualité, avant la date limite, à un coût raisonnable, et de manière agréable.
Comment la qualité doit-elle être gérée dans un projet de génie logiciel ?
La qualité doit être planifiée et évaluée durant toute la durée du projet, incluant la qualité des exigences, de la conception, du code et des tests.
Décris le concept de l’« usure » dans le génie logiciel.
L’« usure » dans le génie logiciel, également connue sous le nom de software aging ou technical debt, se réfère à la dégradation des performances et de la qualité d’un logiciel due à des modifications non optimales, comme l’ajout de nouvelles fonctionnalités qui ne sont pas bien supportées par l’architecture initiale.
Comment les changements dans un logiciel peuvent-ils introduire des bogues ?
Les changements dans un logiciel peuvent introduire des bogues lorsqu’ils sont effectués sans une compréhension complète des conséquences, un phénomène connu sous le nom de « ignorant surgery », ce qui peut entraîner des erreurs et des problèmes de performance.
Décrivez les problèmes rencontrés avec la machine Therac-25.
Les problèmes incluent une mauvaise approche de réutilisation du code, un suivi inadéquat des plaintes et un enseignement défaillant, entraînant des incidents mortels.
Comment la réutilisation du code a-t-elle contribué aux échecs de Therac-25 ?
La réutilisation de code déficient a conduit à des erreurs non testées, car le code fonctionnel de l’ancienne machine n’avait jamais été associé à des accidents.
Décrivez l’échec du Mars Climate Orbiter en 1999.
L’échec a été causé par un mélange d’unités de mesure entre le système international et le système impérial, entraînant une perte de la sonde de 330 millions de dollars.
Comment la gestion des exigences a-t-elle contribué à l’échec du Mars Climate Orbiter ?
La mauvaise gestion des exigences a été due à des documents différents entre la NASA et Lockheed, ainsi qu’à un manque de tests et à une consultation inadéquate des experts.