Fiche de révision : Introduction au génie logiciel

Plan du Cours

  1. Rôle et définition du logiciel
  2. Terminologie du génie logiciel
  3. Difficultés et crise logicielle
  4. Critères de qualité logicielle
  5. Phases du cycle de développement
  6. Modèles linéaires et prototypage
  7. Modèles incrémentaux et itératifs
  8. Développement agile

1. Rôle et définition du logiciel

Notions clés & Définitions

  • Logiciel : Ensemble de programmes permettant à un système informatique d’exécuter une tâche ou une fonction spécifique.

★ À maîtriser

📌 Un logiciel est un produit abstrait développé entièrement par des humains, tandis qu’un produit concret possède des composants physiques assemblables et remplaçables.

Compléments

  • Les logiciels accélèrent le traitement, résolvent rapidement des problèmes complexes et offrent une capacité importante de calcul, de stockage et de traitement.

  • En 1962, une formule mathématique mal transcrite dans le code a dévié la fusée spatiale Mariner-1 de sa trajectoire.

  • En 1985, un bogue du déclencheur de radiation de l’accélérateur médical Therac-25 a causé la mort d’au moins cinq personnes.

Astuce mémo

Le logiciel est invisible et abstrait, contrairement au produit concret.

2. Terminologie du génie logiciel

Notions clés & Définitions

  • Modèle : Représentation de quelque chose ou simplification de la réalité réalisée avec un langage de modélisation.
  • Génie logiciel : Ensemble de méthodes, techniques et outils consacrés à la conception, au développement et à la maintenance des logiciels.
  • Partie prenante : Personne ou groupe affecté par un projet de développement logiciel, à l’intérieur ou à l’extérieur de l’organisation.
  • Cahier des exigences logiciel : Document qui décrit les exigences du client que l’équipe de développement doit satisfaire pour assurer la réussite du logiciel.

Points essentiels

  • Les langages de modélisation se classent en: langages formels, comme les mathématiques, langages semi-formels, comme les graphes et diagrammes, langages informels, comme le pseudo-code et le langage naturel

3. Difficultés et crise logicielle

Points essentiels

  • La crise logicielle des années 1960 et 1970 se caractérisait par des délais et des budgets non respectés, des logiciels ne répondant pas aux besoins et des difficultés d’utilisation, de maintenance et de mise à niveau.

  • Les principales causes de faible qualité sont: l’invisibilité du logiciel, sa complexité, la difficulté de mesurer sa qualité, la taille des équipes, l’absence de méthodes de conception, l’absence de méthodes et d’outils de validation et de vérification, la négligence des besoins du client, le faible engagement du client

📌 L’objectif du génie logiciel est d’appliquer des procédures systématiques afin que la spécification corresponde aux besoins réels, que le logiciel respecte sa spécification et que les délais et les coûts soient respectés.

Astuce mémo

Complexité et erreurs humaines → retards, dépassements et logiciels de faible qualité.

4. Critères de qualité logicielle

Notions clés & Définitions

  • Aptitude fonctionnelle : Signifie que les fonctions du logiciel sont correctes, complètes et appropriées au système.
  • Validité : Signifie que le logiciel constitue la bonne solution au problème réel du client et respecte ses besoins et exigences.
  • Fiabilité : Signifie que le logiciel tolère les fautes et produit des résultats corrects à chaque utilisation.
  • Utilisabilité : Signifie que l’interface du logiciel est simple et facile à utiliser.
  • Performance : Signifie que le logiciel possède un bon temps de réponse, un bon débit et une bonne fluidité.

Points essentiels

  • Les critères de qualité comprennent:
    • l’aptitude fonctionnelle
    • la validité
    • l’utilisabilité
    • la performance
    • la fiabilité
    • la sécurité
    • la maintenabilité
    • la portabilité
    • la compatibilité

Astuce mémo

FUVP-RS-MPC : fonctionnel, valide, utilisable, performant, fiable, sécurisé, maintenable, portable, compatible.

5. Phases du cycle de développement

Notions clés & Définitions

  • Étude de faisabilité : Détermine pourquoi le logiciel doit être développé, quelles alternatives existent et si les ressources, le personnel, l’équipement et le budget sont disponibles.
  • Spécification : Analyse les exigences afin de décrire clairement les fonctionnalités, les exigences de qualité et l’interface du logiciel, en levant les ambiguïtés et les contradictions.

Points essentiels

  • 🔄 Les phases successives sont:
    1. étude de faisabilité
    2. spécification
    3. conception
    4. programmation
    5. validation et vérification
    6. livraison
    7. maintenance

📌 Les exigences fonctionnelles décrivent les fonctionnalités essentielles et la manière dont le logiciel doit fonctionner, tandis que les exigences non fonctionnelles décrivent ses propriétés générales et ses contraintes.

📌 La validation vérifie que les besoins du client sont satisfaits, tandis que la vérification vérifie que le logiciel respecte sa spécification à l’aide du cahier des exigences.

  • Les trois types de maintenance sont:
    • la maintenance corrective des erreurs
    • la maintenance adaptative aux changements de l’environnement
    • la maintenance perfective des performances, fonctionnalités et maintenabilité

Astuce mémo

Pourquoi → quoi → comment → coder → vérifier → livrer → maintenir.

6. Modèles linéaires et prototypage

Notions clés & Définitions

  • Modèle en cascade : Cycle linéaire composé de phases successives, fortement documentées, dans lequel chaque phase peut seulement remettre en cause la phase précédente.
  • Prototypage : Consiste à développer rapidement un prototype avec le client pour valider ses besoins avant la spécification et le développement linéaire.

★ À maîtriser

📌 Le cycle en V associe à chaque phase de spécification, conception et codage une activité de vérification correspondante, comme les tests de validation, d’intégration et unitaires.

Compléments

📌 Le prototypage jetable est abandonné après la compréhension des besoins, tandis que le prototypage évaluatif est conservé, amélioré et complété jusqu’à produire le logiciel final.

Astuce mémo

Cascade : spécifier, concevoir, coder, tester ; prototype : comprendre avant de développer.

7. Modèles incrémentaux et itératifs

Notions clés & Définitions

  • Modèle incrémental : Développe le logiciel étape par étape en ajoutant des fonctionnalités jusqu’à obtenir un logiciel minimal fonctionnel à chaque étape.
  • Modèle en spirale : Le modèle en spirale répète des cycles comprenant la consultation du client, l’analyse des risques, la conception, l’implémentation, les tests et la planification du cycle suivant.

★ À maîtriser

📌 Le modèle en spirale convient aux logiciels critiques, notamment les logiciels militaires ou médicaux, car il offre une meilleure gestion des risques.

Compléments

  • Le modèle incrémental est adapté lorsque le client demande une livraison rapide du logiciel ou lorsque les exigences sont nombreuses.

Astuce mémo

Incrément : ajouter ; itération : répéter jusqu’à satisfaction.

8. Développement agile

Notions clés & Définitions

  • Modèle agile : Combine les approches incrémentale et itérative afin de s’adapter à l’instabilité technologique et aux modifications des exigences du client.

★ À maîtriser

  • Le développement agile accélère le développement en produisant d’abord une version minimale, puis en intégrant progressivement les fonctionnalités grâce aux retours du client et aux tests réguliers.

📌 Les modèles classiques utilisent des étapes strictes, une documentation importante et conviennent notamment aux grands projets, tandis que les modèles agiles privilégient de petites livraisons fréquentes et conviennent plutôt aux projets petits ou moyens.

Compléments

📌 Le choix d’un processus de développement dépend des contraintes réelles du projet, notamment la taille de l’équipe, le temps disponible et le niveau de qualité attendu.

Astuce mémo

Besoins instables → livraisons fréquentes, retours réguliers et adaptation continue.

Tableaux de synthèse

Comparaison des critères de qualité

CritèreCe qu’il vérifieMoyens cités
Aptitude fonctionnelleFonctions correctes, complètes et appropriéesTests, vérification, retour client
ValiditéAdéquation au problème réel du clientCahier des exigences, retour client
PerformanceTemps de réponse, débit et fluiditéSimplification, analyse de complexité
SécuritéProtection des données et contrôle des accèsCryptographie, contrôle d’accès, rôles

Teste tes connaissances

Teste tes connaissances sur Introduction au génie logiciel avec 26 questions à choix multiples et corrections détaillées.

1. Quelle définition décrit le mieux un logiciel ?

2. Quelle distinction caractérise correctement un logiciel par rapport à un produit concret ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Introduction au génie logiciel avec 45 flashcards interactives.

Qu'est-ce qu'un logiciel en informatique ?

Un ensemble de programmes permettant d'exécuter une tâche spécifique.

Quelle différence existe entre un logiciel et un produit concret ?

Un logiciel est abstrait et développé par des humains, un produit concret a des composants physiques.

Qu'est-ce qu'un modèle en génie logiciel ?

Une représentation ou simplification de la réalité avec un langage de modélisation.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches