Vous êtes sur la page 1sur 4

Génie logiciel

Un article de Wikipédia, l'encyclopédie libre.

Aller à : Navigation, Rechercher

Le génie logiciel (en anglais : software engineering) désigne l'ensemble des


méthodes, des techniques et outils concourant à la production d'un logiciel, au-delà de
la seule activité de programmation.

Sommaire
[masquer]

• 1 Définitions
• 2 Compétences et habiletés visées par le génie logiciel
• 3 Thématiques et domaines couverts
• 4 Quelques disciplines couvertes par le génie logiciel
• 5 Base de connaissance du génie logiciel
• 6 Outils de production utilisés par le génie logiciel
• 7 Outils de gestion en relation avec le génie logiciel
• 8 Les professions du génie logiciel
• 9 Quelques exemples d'employeurs potentiels
• 10 Bibliographie

• 11 Notes et références

Définitions [modifier]
Si l'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é.1

L'appellation génie 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 les 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 10 000 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éfinit les champs de connaissance du génie logiciel,


comme le Project Management Body of Knowledge (PMBOK) du Project
Management Institute (PMI) le fait, pour la gestion de projet.

Compétences et habiletés visées par le génie logiciel


[modifier]

• la conception et le développement de nouveaux logiciels selon les principes


propres à l'ingénierie
• l'analyse des problèmes en vue de la programmation d'une solution logicielle
économique
• l'établissement des objectifs quantitatifs sur le plan de la sécurité, de
l'utilisation, de l'impact sur la productivité, de la maintenance, de la fiabilité
ainsi que de l'adaptation et de la viabilité d'un projet logiciel d'un point de vue
économique
• la mise en œuvre de solutions par des logiciels bien structurés
• la vérification des logiciels dans le respect des objectifs initiaux
• la gestion et la coordination efficace des projets logiciels et de l'équipe de
développement
• l'évaluation du processus de développement et de son niveau de maturité

Thématiques et domaines couverts [modifier]


Les thématiques du génie logiciel recouvrent notamment :

• les outils et méthodes de spécification de fonctionnalités d'un logiciel


o les formalismes de modélisation (UML par exemple)
o les méthodes formelles (Méthode B par exemple)
o ...
• les outils et les méthodes de conception de logiciel
o Outil de conception, atelier logiciel,
o Ingénierie des modèles Kermeta par exemple,
o Environnement de développement
o ...
• la génération automatique de code d'après une spécification formelle.
• l'utilisation de patrons de conception.
• l'automatisation de l'optimisation du code.

Quelques disciplines couvertes par le génie logiciel


[modifier]

• Gestion de la qualité du logiciel


• Architecture de haut niveau
• Architecture détaillée
• Analyse/spécification des besoins
• Documentation logicielle
• Établissement de programme de mesure du logiciel
• Implantation de norme logicielle (ISO, IEEE)
• Connaissance dans l'application du CMM/CMMI
• Les cycles de vie du logiciel
• Optimisation des interfaces usager
• Gestion de projet
• Les métriques (par exemple : Points-fonction)

Base de connaissance du génie logiciel [modifier]


La base de connaissance du génie logiciel est le SWEBOK (Software Engineering
Body of Knowledge) chapeauté par l'IEEE. Le SWEBOK n'est pas un guide. Il est un
corpus de connaissance.

Outils de production utilisés par le génie logiciel [modifier]


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 :

• la compilation ;
• l'interprétation de code ;
• la traduction de code d'un langage de programmation vers un autre.
• un éditeur dédié au langage de programmation
• les bibliothèques de composants
• les Outils de Planification
• un outil de Gestion des exigences pour développer et gérer les exigences
relatives au code produit
• un outil de Gestion de configuration pour contrôler les évolutions du code
produit
• des moyens de tester pour vérifier la conformité du code produit
• des outils de génération de métriques pour caractériser la conformité du code
produit

Outils de gestion en relation avec le génie logiciel [modifier]


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 :

• La gestion de la qualité permet de contrôler l'organisation de la production du


code.
• La qualité repose sur des méthodes.
• Le management est un modèle et un moyen humain qui a pour but d'améliorer
la production.
Les professions du génie logiciel [modifier]
Le titulaire d'un diplôme dans ce domaine peut exercer dans les diverses professions
suivantes :

• Ingénieur en logiciel
• Ingénieur au niveau conception de logiciel
• Ingénieur en informatique

Quelques exemples d'employeurs potentiels [modifier]


Le titulaire d'un diplôme en génie logiciel sera amené à 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 :

• les sociétés de services en ingénierie informatique (SSII) ;


• les éditeurs de logiciels ;
• les institutions de certification gouvernementales