Définition du Génie Logiciel

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.


TOUS DROITS RÉSERVÉS © 2008 JBCC