ScholarGate
Assistant

Ingénierie des exigences

L'ingénierie des exigences est la discipline qui consiste à découvrir, analyser, documenter, valider et gérer ce qu'un système logiciel doit faire et les contraintes sous lesquelles il doit fonctionner.

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

Definition

L'ingénierie des exigences est le processus systématique d'élicitation, d'analyse, de spécification, de validation et de gestion des services qu'un système logiciel doit fournir et des contraintes pesant sur son fonctionnement et son développement.

Scope

Ce domaine couvre l'élicitation des besoins des parties prenantes ; l'analyse et la négociation des objectifs contradictoires ; la distinction entre les exigences fonctionnelles et non fonctionnelles (de qualité) ; les techniques de spécification allant des énoncés en langage naturel aux modèles formels ; la validation par la revue et le prototypage ; et la gestion des changements d'exigences et de la traçabilité tout au long du cycle de vie.

Sub-topics

Core questions

  • Comment les besoins réels des parties prenantes sont-ils découverts et désambiguïsés ?
  • Comment les exigences fonctionnelles et non fonctionnelles doivent-elles être spécifiées de manière précise mais compréhensible ?
  • Comment les exigences contradictoires sont-elles détectées, négociées et résolues ?
  • Comment les exigences sont-elles validées et maintenues cohérentes à mesure qu'elles évoluent ?

Key theories

Exigences fonctionnelles versus non fonctionnelles
Les exigences sont divisées en énoncés fonctionnels de ce que le système doit faire et en contraintes non fonctionnelles (de qualité) telles que la performance, la sécurité et l'utilisabilité, qui souvent traversent l'ensemble du système et déterminent l'architecture.
Ingénierie des exigences orientée objectifs
Les systèmes sont analysés en termes d'objectifs des parties prenantes qui sont affinés en sous-objectifs et opérationnalisés en exigences, fournissant une justification, une détection des conflits et une traçabilité de l'intention de haut niveau aux fonctions du système.

Clinical relevance

Les erreurs d'exigences comptent parmi les défauts les plus coûteux car elles se propagent dans la conception et le code ; une ingénierie des exigences rigoureuse réduit les reprises, aligne le logiciel livré sur les besoins des parties prenantes et constitue la base des tests d'acceptation et des accords contractuels.

Evidence & guidelines

La norme ISO/IEC/IEEE 29148 spécifie les processus d'ingénierie des exigences et le contenu des spécifications d'exigences, et le domaine de connaissances SWEBOK Software Requirements fournit une référence consensuelle.

History

L'ingénierie des exigences est passée des méthodes d'analyse structurée des années 1970 à une sous-discipline reconnue dans les années 1990, marquée par des conférences (RE) et des revues dédiées, l'essor de la modélisation basée sur les objectifs et les scénarios, et une attention croissante aux exigences non fonctionnelles et à la négociation avec les parties prenantes.

Debates

Exigences initiales versus exigences émergentes
La pratique axée sur la planification privilégie la spécification approfondie des exigences avant la construction, tandis que la pratique agile considère les exigences comme émergentes et affinées par itération ; le compromis dépend de la volatilité, des contraintes contractuelles et du coût des changements tardifs.

Key figures

  • Axel van Lamsweerde
  • Bashar Nuseibeh
  • Steve Easterbrook
  • Michael Jackson

Related topics

Seminal works

  • vanlamsweerde2009
  • nuseibeh2000
  • sommerville2015

Frequently asked questions

Pourquoi les erreurs d'exigences sont-elles si coûteuses ?
Une exigence mal comprise ou manquante n'est souvent découverte que tardivement, après que la conception et le code ont été construits sur elle, de sorte que sa correction nécessite de défaire le travail en aval ; les études empiriques montrent constamment que le coût de correction d'un défaut augmente fortement plus il est découvert tardivement.
Les projets agiles font-ils de l'ingénierie des exigences ?
Oui, mais différemment. Les projets agiles élicitent, analysent et valident les exigences en continu par le biais de récits utilisateur, de l'affinage du backlog et de retours fréquents, plutôt que de produire un document de spécification volumineux en amont.

Methods for this concept

Related concepts