D’après la norme [IEEE 610.12, 1990], le génie logiciel désigne l’application d'une approche systématique, disciplinée et quantifiable au développement, à l'opération et à la maintenance du logiciel.
Le génie logiciel est une discipline créée afin de faire face à la crise de l’industrie du logiciel à la fin des années 70, crise dont les signes les plus évidents étaient l'augmentation des coûts de production du logiciel, le non respect des délais de livraison, la non fiabilité des programmes, un écart important entre les besoins exprimés par les utilisateurs et les fonctions offertes par les systèmes informatiques.
Le génie logiciel consiste en un ensemble de techniques qui organise le travail de développement de logiciels de façon à assurer la qualité des produits construits. L’activité de conception d’un logiciel est régie par le cycle de vie du logiciel : l'ensemble des phases qui constituent son développement et son utilisation. Classiquement, on distingue 5 phases :
Une étude préalable précède la première étape du cycle de vie du logiciel. L’étude préalable est constituée de l’analyse des besoins ou des exigences (« requirements » en anglais). On distingue :
En résumé, l’assurance qualité en GL comporte plusieurs facteurs : la performance du logiciel, la performance et le coût du matériel, la facilité de maintenance, la sécurité, la surêté, la fiabilité et l’interopérabilité. Le respect des exigences fonctionnelles et non fonctionnelles permet d’assurer la qualité des logiciels en GL. Dans ce domaine, les tests de logiciels permettent de découvrir et de traiter les défaillances des logiciels d’un point de vue technique. Dans la section suivante, une définition de la notion d’IHM est proposée.