Si on se réfère à l'arrêté ministériel du 30 décembre 1983 relatif à l'enrichissement du vocabulaire de l'informatique [Journal officiel du 19 février 1984], on appelle Génie Logiciel : "l'ensemble des activités de conception et de mise en œuvre des produits et des procédures tendant à rationaliser la production du logiciel et son suivi". Une définition plus pratique pourrait être la suivante : Procédures, méthodes, langages, ateliers, imposés ou préconisés par les normes adaptées à l'environnement d'utilisation afin de favoriser la production et la maintenance de composants logiciels de qualité. [Patrick Jaulent, Génie Logiciel, les méthodes, Armand Colin, Paris, 1992]
L'appellation genie logiciel concerne l'ingénierie appliquée au logiciel informatique. Cette branche de l'informatique s'intéresse plus particulièrement à la manière dont le code source d'un logiciel est spécifié puis produit. Le génie logiciel touche au cycle de vie des logiciels. Toutes les phases de la création d'un logiciel informatique y sont enseignées : l'analyse du besoin, l'élaboration des spécifications, la conceptualisation du mécanisme interne au logiciel ainsi que des techniques de programmation, le développement, la phase de test et finalement à la maintenance. Les projets relatifs à l'ingénierie logicielle sont de l'ordre du "Programming in the large", c’est-à-dire que les projets sont généralement de grande envergure et dépassent souvent les 10000 lignes de code. Ces projets nécessitent une équipe de développement bien structurée. La gestion de projet vient en complément naturel du génie logiciel.
La norme SWEBOK du IEEE définie les champs de connaissance du génie logiciel, comme le PMBOK du PMI (Project Management Institute) le fait, pour la gestion de projet.
Les thématiques du génie logiciel recouvrent notamment :
La base de connaissance du génie logiciel est le SWEBOK (Software Engineering Body of Knowledge) châpeauté par l'IEEE. Le SWEBOK n'est pas un guide. Il est un corpus de connaissance.
D'autres domaines sont connexes au génie logiciel dans la mesure où ils partagent des outils communs : description formelle du code, grammaires des langages manipulés. Ces domaines sont par exemple :
Bien que l'on passe du génie de la production à celui de la décision, ces domaines ont un impact tellement important sur l'activité de génie logiciel qu'ils doivent être mentionnés :
Le titulaire d'un diplôme dans ce domaine peut exercer dans les diverses professions suivantes :
Le titulaire d'un diplome en génie logiciel sera amené a travailler un peu partout où le développement de logiciel sera nécessaire, voici quelques exemples d'employeurs pouvant avoir besoin de personnels spécialisé dans le génie logiciel :
![]() |
Test : Test | Génie logiciel | Prise d'empreinte de la pile TCP/IP |
Outils : Fuzzing | Rétro-ingénierie | Boîte blanche | Boîte noire | Cryptanalyse |
Attaque : Dépassement de tampon | Attaque de l'homme du milieu |
Protection : Sécurité par l'obscurité |
Audit : ISO/CEI 27001 | ISO/CEI 17799 |