|
Le génie logiciel
est le domaine dédié à l'étude, la conception
et la réalisation de programmes informatiques. Ce terme a été
défini par un groupe de travail en 1968, à Garmisch-Partenkirchen,
sous le parrainage de l'OTAN.
Il a pour objectif de répondre
à un problème qui partait de deux constatations majeures
: les logiciels réalisés sans méthode n'étaient
pas fiables et il était quasiment impossible de les réaliser
dans les délais prévus, tout en satisfaisant le cahier
des charges. Les principaux reproches formulés pouvaient se
décliner en cinq points :
-
augmentation des coûts de développement et de maintenance,
- grandes difficultés d'évolution,
- manque de fiabilité,
- non respect des spécifications exprimées par
les utilisateurs,
- non respect des délais.
Aujourd'hui encore, de
nombreux projets informatiques avortent ou débouchent sur des
coûts prohibitifs par manque de méthode.
Le génie logiciel
peut se définir comme un ensemble composé d'une méthode,
de modèles, d'outils d'aide au développement et de critères
d'évaluation de la qualité permettant à un maître
d'œuvre de produire un logiciel répondant aux besoins
exprimés par un maître d'ouvrage.
Le maître d'ouvrage
est le donneur d'ordre, le client qui commande le logiciel à
développer ; il peut être l'un des futurs utilisateurs
du logiciel mais ce n'est pas toujours le cas. Le maître d'œuvre
est le responsable de la production du logiciel.
La méthode
recouvre trois aspects distincts mais étroitement liés :
-
des modèles pour comprendre, représenter et communiquer
les différents éléments entrant dans la composition
d'un logiciel,
-
une démarche pour indiquer quelles sont les étapes
à suivre et les opérations à réaliser
afin d'aboutir au logiciel souhaité dans les délais
prévus,
-
une documentation type pour mémoriser tous les éléments
techniques et organisationnels qui ont permis d'aboutir au logiciel.
Les outils de développement et de maintenance, souvent désignés
par "Ateliers de Génie Logiciel" (AGL) assistent les
développeurs dans la gestion d'un projet informatique. Un atelier
de génie logiciel propose un ensemble d'outils coordonnés
autour d'une ressource centrale, le dictionnaire des données
ou référentiel et couvrant tout ou partie du cycle de
vie du logiciel (analyse, conception, réalisation, maintenance…).
Les outils proposés permettent de :
-
représenter les modèles en aidant au dessin des diagrammes,
-
produire plus ou moins automatiquement la documentation technique,
-
normaliser les noms et les représentations grâce au dictionnaire
des données,
-
générer le code des programmes : c'est l'utilisation la plus délicate,
car les AGL sont bavards et produisent des codes très mal
optimisés,
-
aider à la conduite de projet : une application de conduite de
projet peut s'interfacer avec les dictionnaires des données,
ainsi que les processus (ressources et délais),
-
aider à la maintenance,
-
aider au suivi d'exploitation,
-
aider au contrôle de la qualité.
Les critères d'évaluation de la qualité
du logiciel à produire ainsi que les moyens à mettre en œuvre
pour les satisfaire sont souvent exprimés dans le Plan Qualité
Logiciel (PQL). Pour les SSII le standard de certification CMMI (Capability Maturity Model Integration) définit une norme de qualité pour l'industrialisation des logiciels. Comme le propose B. Meyer nous distinguerons les facteurs
externes et internes de la qualité. Les facteurs externes correspondent
à ce qui est détectable par l'utilisateur (correction,
ergonomie, performances…) alors que les facteurs internes sont
seulement perceptibles aux informaticiens qui ont accès aux
sources du logiciel pour le corriger ou le faire évoluer. Les
facteurs internes de qualité se traduisent par la modularité,
la simplicité d'écriture, la réutilisabilité…
Il faut remarquer que les facteurs internes ne sont qu'un moyen pour
améliorer les qualités externes qui seules ont de l'importance
pour l'utilisateur.
|