ScholarGate
Assistant

Construction et Qualité Logicielle

La construction et la qualité logicielles concernent la création disciplinée de code fonctionnel et les techniques — tests, vérification, revue et mesure — qui établissent et assurent que le logiciel répond à ses exigences et à ses objectifs de qualité.

Trouver un sujet avec PaperMindBientôtFind papers & topics
Tools & resources
Télécharger les diapositives
Learn & explore
VidéoBientôt

Definition

La construction logicielle est la création détaillée de logiciels fonctionnels par le codage, la vérification, les tests unitaires et le débogage, et la qualité logicielle est le degré auquel un logiciel satisfait ses exigences déclarées et implicites, assurée par des activités de vérification, de validation et de gestion de la qualité.

Scope

Ce domaine couvre les pratiques de construction logicielle, y compris les standards de codage, la programmation défensive et les tests unitaires ; les niveaux et techniques de test logiciel ; la vérification et la validation ; l'analyse statique et dynamique ; la revue de code et le refactoring ; les attributs et métriques de qualité logicielle ; et les méthodes formelles pour prouver la correction. Il unifie les activités qui produisent et assurent un logiciel fiable.

Sub-topics

Core questions

  • Quelles pratiques produisent un code correct, lisible et maintenable ?
  • Comment les défauts sont-ils détectés par les tests, la revue et l'analyse ?
  • Comment la qualité logicielle est-elle définie, mesurée et assurée ?
  • Quand la correction peut-elle être établie par une preuve formelle plutôt que par les seuls tests ?

Key theories

Les tests révèlent la présence, et non l'absence, de défauts
Les tests peuvent démontrer l'existence de défauts mais ne peuvent pas prouver leur absence ; des tests efficaces visent donc à maximiser la probabilité de trouver des erreurs par une sélection systématique de cas plutôt que par une exécution exhaustive.
Vérification et validation
La vérification s'assure que le logiciel est construit correctement par rapport à sa spécification, tandis que la validation s'assure que le bon logiciel a été construit pour répondre aux besoins de l'utilisateur ; ensemble, elles couvrent les revues, l'analyse et les tests tout au long du cycle de vie.
La qualité est intégrée dès la conception, non ajoutée par les tests
La qualité résulte des pratiques de construction, de la conception et de la discipline des processus plutôt que de l'inspection finale ; la prévention des défauts et la détection précoce sont bien moins coûteuses qu'une correction tardive.

Clinical relevance

Les activités de construction et de qualité déterminent la fiabilité, la sécurité et la maintenabilité d'un système et dominent le coût des défauts ; une vérification précoce et systématique réduit les défaillances sur le terrain et le travail de reprise, ce qui est essentiel pour livrer un logiciel fiable.

Evidence & guidelines

La norme ISO/IEC 25010 définit un modèle de qualité des produits logiciels, et les domaines de connaissance du SWEBOK sur la construction logicielle, les tests et la qualité fournissent des orientations de référence consensuelles.

History

Les tests systématiques ont été articulés par Myers dans les années 1970, la programmation structurée et la vérification par Dijkstra et Hoare à la même époque, et l'artisanat de la construction par McConnell dans les années 1990 ; les modèles et standards de qualité tels que l'ISO/IEC 25010 ont consolidé les attributs et la mesure de la qualité.

Debates

Tests versus vérification formelle
La question de savoir si la confiance dans la correction doit reposer sur des tests approfondis ou sur une preuve formelle est débattue ; les tests s'adaptent aux grands systèmes mais ne peuvent garantir la correction, tandis que les méthodes formelles offrent des garanties solides à un coût plus élevé et sont réservées aux composants critiques.

Key figures

  • Glenford Myers
  • Steve McConnell
  • C. A. R. Hoare
  • Edsger Dijkstra

Related topics

Seminal works

  • myers2011
  • mcconnell2004
  • swebok2014

Frequently asked questions

Les tests peuvent-ils prouver qu'un programme est correct ?
Non. Les tests exercent un ensemble fini d'entrées et peuvent révéler des défauts, mais ne peuvent pas démontrer leur absence ; prouver la correction pour toutes les entrées nécessite une vérification formelle, ce qui n'est réalisable que pour des parties restreintes ou critiques d'un système.
La qualité est-elle la même chose que l'absence de bogues ?
Non. La qualité logicielle est multidimensionnelle, englobant la correction fonctionnelle ainsi que des attributs tels que la fiabilité, la performance, la sécurité, l'utilisabilité et la maintenabilité ; un programme avec peu de bogues peut néanmoins être de mauvaise qualité s'il est impossible à maintenir ou peu sécurisé.

Methods for this concept

Related concepts